2015-03-04 2 views
0

Мне было интересно, достаточно ли Torque, чтобы назначить правильное количество узлов на основе того, сколько mpi-ядер вы запрашиваете. Для нашего кластера у нас есть гетерогенные узлы, и может быть довольно расточительно просто указать количество узлов, которые вы хотите, и процессоры на узел. Так что мне было интересно, если вы могли бы просто сделать что-то вроде этогоTorque/OpenMPI динамически распределяет узлы на основе количества процессоров

qsub -I -l procs:1000 
mpiexec -n 1000 mympijob 

Однако крутящий момент только выделяет один узел с помощью этой команды (как я не указать # узлов). Есть ли способ правильного количества узлов, основанных на моем количестве процессов, чтобы он мог быть максимально эффективным?

Боковая панель - Вероятно, мы скоро перейдем к SLURM, это хорошо в рамках возможностей?

+0

Какой планировщик вы используете? Torque может это сделать, но планировщик должен назначить узлы. – dbeer

+0

just pbs Я думаю – jwillis0720

+0

Это работает с Torque, но вам также нужно использовать планировщик, такой как Moab. – dbeer

ответ

1

Как правило, то, что мы делаем после выделения ресурсов, не является тем, что может контролировать планировщик.

В этом случае

mpirun/mpiexec -n 1000 

запускается на выполнение после распределения ресурсов по schduler.

Лучший способ, чтобы идти вперед, чтобы использовать переменные окружения, установленные планировщиком

$MPI_HOSTS 

значение, переданное через коммутатор -n.

пример:

mpirun $MPI_HOSTS <your program of choice> 

Вы можете запросить количество ядер, которые вы хотите, добавляя ППН аргумент к узлам.

qsub -l nodes=2:ppn=16 

Это выделяет 32 ядра в двух узлах.

+0

узлы 2: ppn = 16 потребовали бы, чтобы два узла были освобождены, каждый из которых имел 16 процессоров. Что, если в настоящее время у вас есть 3 узла только с 8 процессорами, которые могут быть использованы, но не будут, из-за этого утверждения управления ресурсами? – jwillis0720