Базовая привязка для выполнения определенного ранга в MPICH2 говорит sched_setaffinity: неверный аргумент.


Я работаю на HPC, который имеет 144 ядра.
У меня есть 24 узла, и у каждого узла есть 6cpus. лайк
узел 0:0,1,2,3,4,5
узел 1: 6,7,8,9,10,11
...
Использование Mpich2. Я запускаю мой c exececutable, как это.mpiexec -n 25./a.out
В a.out он будет работать, так как ранг 0 делает мастер-ранг 1 (который свободен), а мастер-ранг 1 делает X=6 чисел (это изменится иногда 3,6,7) параллельно execs. на ранге 2,3,4,5,6,7 с использованием numaactl -l --phycpubind = %d x.out это работает, но дело в том, что я получаю ошибку sched_setaffinity: Invalid аргумент.
ps -aF печатает привязку записи в PSR для x.out.
sched_setaffinity: неверный аргумент. в будущем создает проблему или создает проблему сейчас.
Спасибо.

1 ответ

То, что вы ищете, это "Сродство к процессу".

Выбранная парадигма сходства направляет реализацию для сопоставления процесса с выбранной вами схемой, у вас есть возможность сопоставить процесс сокету / ядру / hwthread.

Mpich имеет переключатель "-bind-to", который позволяет это. Например:

mpiexec -bind-to core:144 -n ...

должен привязать ваши процессы к 144 эксклюзивным ядрам.

пытаться mpiexec -bind-to -help для получения дополнительной информации об этом.

Вот руководство пользователя.

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