2014-11-28 2 views
0

Я хочу иметь возможность планировать задание на нескольких узлах с одним процессом на узел. Я также хочу, чтобы этот процесс использовал потоки, которые используют все ядра, доступные на этом узле. Я знаю, что «ppn» используется для планирования заданий PBS, поэтому я попробовал его с планировщиком Univa. Оболочка двоеточия не работает, поэтому я использовал два флага -l. Я попыталсяКак планировать задание на нескольких узлах с помощью qsub Univa 8.1.7?

qsub -cwd -j y -l nodes=4 -l ppn=1 -N hellonodes mpirunscript.sh 

Это дает

Невозможно выполнить задание: неизвестный ресурс "PPN".

Выход.

В человеке странице qsub говорится

комплекс (5) описывает, как можно получить список доступных ресурсов и их связанных действительных спецификаторов значений.

К сожалению, такой документации на кластере я не использую. Тем не менее, я нашел один here. В конце концов я обнаружил, что, чтобы получить список устанавливаемых значений ресурсов, что мне нужно, чтобы запустить

qconf - sc 

Этот выход ниже (сокращенно):

#name    shortcut type  relop requestable consumable default urgency 
#------------------------------------------------------------------------------------------ 
... 
cpu     cpu  DOUBLE  >=  YES   NO   0  0 
... 
m_numa_nodes  nodes  INT   <=  YES   NO   0  0 
m_socket   socket  INT   <=  YES   NO   0  0 
m_thread   thread  INT   <=  YES   NO   0  0 
... 
num_proc   p   INT   ==  YES   NO   0  0 
... 
slots    s   INT   <=  YES   YES  1  1000 
... 

«ППН» (процессы на узел для PBS) был не перечисленные, и не было ничего подобного, что я мог найти. Может ли кто-нибудь сказать мне, возможно ли это, и если да, то как?

ответ

0

Поскольку это параллельное задание, вам необходимо запросить параллельную среду с -pe Администратор должен создать параллельную среду, которая в первую очередь отвечает вашим требованиям. Затем он является постоянным и может использоваться для такого типа параллельных заданий. См: http://www.gridengine.eu/mangridengine/htmlman5/sge_pe.html

Для создания параллельной среды: qconf -ap mype Для перечисления всех ТЭЛА: qconf -spl Затем присоедините PE в очередь: qconf -mq all.q (в случае all.q) -> «pe_list mype»

Важно: alloc_rule Здесь вы должны установить: 1 -> Это означает, что один процесс на каждый хост.

Установите слоты на высокое значение (например, количество ядер в вашем кластере). Это ограничение для всех заданий, использующих эту параллельную среду.

Тогда вы или ваши пользователи могут начать работу: qsub -pe mytpe 8 myscript.sh

Тогда вы получите 8 вычислительных узлов для этой работы с 1 слот каждого. qstat -g t показывает вам где.

Помогает ли это?

Daniel

 Смежные вопросы

  • Нет связанных вопросов^_^