Torque/OpenMPI динамически распределяет узлы в зависимости от количества процессоров
Мне было интересно, достаточно ли крутит Torque, чтобы назначить правильное количество узлов в зависимости от того, сколько MPI-ядер вы запрашиваете. Для нашего кластера у нас есть разнородные узлы, и это может быть довольно расточительным, просто указать желаемое количество узлов и процессоров на узел. Поэтому мне было интересно, если вы могли бы просто сделать что-то подобное
qsub -I -l procs:1000
mpiexec -n 1000 mympijob
Тем не менее, крутящий момент выделяет только один узел с этой командой (так как я не указал количество узлов). Есть ли способ правильного количества узлов на основе моего количества процедур, чтобы он мог быть максимально эффективным?
Боковая панель - Мы, вероятно, скоро перейдем на SLURM, это хорошо в пределах возможностей?
1 ответ
Как правило, то, что мы делаем после распределения ресурсов, не является тем, что планировщик может контролировать.
В этом случае,
mpirun/mpiexec -n 1000
исполняется после того, как ресурсы выделены schduler.
Лучший способ продвинуться вперед - это использовать переменные среды, установленные планировщиком
$MPI_HOSTS
так как значение передается через переключатель -n.
пример:
mpirun $MPI_HOSTS <your program of choice>
Вы можете запросить нужное количество ядер, добавив аргумент ppn к узлам.
qsub -l nodes=2:ppn=16
Это выделяет 32 ядра в двух узлах.