使用Erlang进行测试。

使用Erlang进行测试。,erlang,smp,Erlang,Smp,我可以在具有单核erlang程序的计算机上测试四个或更多核吗 在不使用任何参数的情况下启动时,erlang smp假定为2:2,如下所示: Erlang R14A(erts-5.8)[smp:2:2][rq:2][异步线程:0] 我使用的是奔腾4,这是否意味着我有两个内核?默认情况下,每个可用内核启动一个调度程序,并使用多运行队列(每个调度程序一个队列;自R13起可用)。在shell中,[SMP2:2]意味着您有两个调度程序在两个内核上运行[rq:2]表示您正在使用两个运行队列 如果要更改调度程

我可以在具有单核erlang程序的计算机上测试四个或更多核吗

在不使用任何参数的情况下启动时,erlang smp假定为2:2,如下所示:

Erlang R14A(erts-5.8)[smp:2:2][rq:2][异步线程:0]


我使用的是奔腾4,这是否意味着我有两个内核?

默认情况下,每个可用内核启动一个调度程序,并使用多运行队列(每个调度程序一个队列;自R13起可用)。在shell中,
[SMP2:2]
意味着您有两个调度程序在两个内核上运行<代码>[rq:2]表示您正在使用两个运行队列

如果要更改调度程序的数量,请从四个调度程序的
erl+S 4
开始


确保如果您在单核系统上编译erlang,那么您可以使用
--enable smp support
在配置脚本中启用smp。否则,您可能无法使用多个调度程序。

我有点困惑。如果我在单个内核上运行erlang,可以使用它来模拟其他数量的smp内核吗?例如,如果在单核4核中运行,模拟所花费的时间与直接运行4核相同?您可以执行此测试吗?每个调度程序都是一个单独的操作系统进程,默认情况下,每个核心都会启动一个调度程序。不过,运行多个调度程序是可能的,但这当然不会使您的计算机“更快”。单核机器是一种特殊情况,因为如果您构建一个没有SMP的VM,与支持SMP的机器相比,它可能会有一些调整(因为使用更少的锁)。