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