我有一个配备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允许这样做?它是否与某些已设置的默认超线程有关(我对此一无所知)?