Какой процесс идет к какому сокету процессора в MPI?

Я запускаю программу MPI, и в моем хост-файле есть только один узел. Узел имеет 2 скокета, по 8 физических ядер в каждом, и гиперпоточность отключена.

mpiexec -n 8 -f /pathtohostfile/host_file_test ./a.out

Я использую likwid для измерения энергии, потребляемой моей программой.

Вопрос :

  1. Выполняются ли указанные выше 8 процессов на одном и том же сокете (для экономии энергии) или процессы могут быть случайным образом назначены любому сокету?
  2. Не уверен, но может ли контекст процесса переключиться на другой сокет?
  3. Если процесс назначается случайным образом, могу ли я закрепить свой процесс на ядре / сокете для измерения энергии?

1 ответ

Поскольку у вас есть только один узел, все ваши 8 процессов находятся под контролем планировщика Linux, поэтому, если вы не используете что-то для их закрепления, ОС поместит их для лучшей балансировки нагрузки. И он может принять решение о переносе их. Посмотрите в numactlи другие инструменты для «закрепления». hwlocтакже может сделать это для вас.

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