Базовая привязка для выполнения определенного ранга в 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
для получения дополнительной информации об этом.
Вот руководство пользователя.