У меня MacBook Pro 2015 года с двухъядерным процессором i7.Таким образом, я должен иметь возможность запускать максимум 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
.Я запутался, почему его процессор позволяет это сделать?Это связано с какой-то гиперпоточностью по умолчанию, которая была настроена (я не знаю об этом)?