当使用比实际处理器更多的进程运行时,为什么不需要--oversubscribe?

时间:2018-12-21 19:18:08

标签: mpi core openmpi processor hyperthreading

我有一个配备i7双核处理器的2015 Macbook pro。因此,我应该能够在并行化的代码上最多运行2个处理器,而不会超额订阅。如果我使用

运行可执行文件
mpirun -n num_proc ./executable

它给出了错误:

There are not enough slots available in the system to satisfy the 4 slots
that were requested by the application:
  ./bin/pso

Either request fewer slots for your application, or make more slots available
for use.
-----------

num_proc > 2。如果使用--oversubscribe标志,则最多可以使用num_proc = 56。附带说明一下,这个56数字从何而来?

返回主题:我在朋友的macbook pro上运行相同的代码。它是i5四核。所以他应该有4个处理器。但是我可以执行

mpirun -n num_proc ./executable

用于num_proc > 4,而无需使用--oversubscribe标志。我很困惑为什么他的CPU允许这样做?它是否与某些已设置的默认超线程有关(我对此一无所知)?

0 个答案:

没有答案