Почему --oversubscribe не требуется при работе с большим количеством процессов, чем на реальных процессорах? - PullRequest
0 голосов
/ 21 декабря 2018

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

...