Почему --oversubscribe не требуется при работе с большим количеством процессов, чем на реальных процессорах?

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

0 ответов

Другие вопросы по тегам