#process #multiprocessing #mpi #context-switch #likwid
#процесс #многопроцессорная обработка #mpi #переключение контекста #ликвид
Вопрос:
Я запускаю программу MPI, и в моем файле хоста у меня есть только один узел. Узел имеет 2 блока, по 8 физических ядер в каждом, и гиперпоточность отключена.
mpiexec -n 8 -f /pathtohostfile/host_file_test ./a.out
Я использую likwid для измерения энергии, потребляемой моей программой.
Вопрос :
- Выполняются ли вышеуказанные 8 процессов в одном и том же сокете(для экономии энергии) или процессы могут быть случайным образом назначены любому сокету?
- Не уверен в этом, но может ли контекст процесса переключиться на другой сокет?
- В случае, если процесс назначается случайным образом, могу ли я прикрепить свой процесс к ядру/разъему для измерения энергии?
Ответ №1:
Поскольку у вас только один узел, все ваши 8 процессов находятся под контролем планировщика Linux, поэтому, если вы не используете numactl
их или что-то для их закрепления, ОС разместит их для лучшей балансировки нагрузки. И он может решить перенести их. Изучите numactl
и другие инструменты «закрепления». hwloc
может также сделать это за вас.