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

#process #multiprocessing #mpi #context-switch #likwid

#процесс #многопроцессорная обработка #mpi #переключение контекста #ликвид

Вопрос:

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

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

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

Вопрос :

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

Ответ №1:

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