Назад | Перейти на главную страницу

Параллельная среда (PE) в Sun Grid Engine (6.2u5) не запускает задания: «предлагает только 0 слотов»

У меня установлен Sun Grid Engine (версия 6.2u5) на сервере Ubuntu 10.10 с 8 ядрами. Чтобы иметь возможность зарезервировать несколько слотов, у меня есть параллельная среда (PE), настроенная следующим образом:

pe_name            serial
slots              999
user_lists         NONE
xuser_lists        NONE
start_proc_args    /bin/true
stop_proc_args     /bin/true
allocation_rule    $pe_slots
control_slaves     FALSE
job_is_first_task  TRUE
urgency_slots      min
accounting_summary FALSE

Это связано с all.q на рассматриваемом сервере (назовем сервер A). Однако, когда я отправляю задание, которое использует 4 потока, например, qsub -q all.q@A -pe serial 4 mycmd.sh, это никогда не будет запланировано, и я получаю следующие рассуждения от qstat:

не может работать в PE "последовательном", потому что он предлагает только 0 слотов

Почему SGE говорит, что "последовательный" предлагает только 0 слотов, поскольку на указанном мной сервере (сервер A) доступно 8 слотов?

Рассматриваемая очередь настроена таким образом (изменены имена серверов):

qname                 all.q
hostlist              @allhosts
seq_no                0
load_thresholds       np_load_avg=1.75
suspend_thresholds    NONE
nsuspend              1
suspend_interval      00:05:00
priority              0
min_cpu_interval      00:05:00
processors            UNDEFINED
qtype                 BATCH INTERACTIVE
ckpt_list             NONE
pe_list               make orte serial
rerun                 FALSE
slots                 1,[D=32],[C=8], \
              [B=30],[A=8]
tmpdir                /tmp
shell                 /bin/sh
prolog                NONE
epilog                NONE
shell_start_mode      posix_compliant
starter_method        NONE
suspend_method        NONE
resume_method         NONE
terminate_method      NONE
notify                00:00:60
owner_list            NONE
user_lists            NONE
xuser_lists           NONE
subordinate_list      NONE
complex_values        NONE
projects              NONE
xprojects             NONE
calendar              NONE
initial_state         default
s_rt                  INFINITY
h_rt                  08:00:00
s_cpu                 INFINITY
h_cpu                 INFINITY
s_fsize               INFINITY
h_fsize               INFINITY
s_data                INFINITY
h_data                INFINITY
s_stack               INFINITY
h_stack               INFINITY
s_core                INFINITY
h_core                INFINITY
s_rss                 INFINITY
h_rss                 INFINITY
s_vmem                INFINITY
h_vmem                INFINITY,[A=30g], \
              [B=5g]

Правило распределения $pe_slots требует, чтобы вы отправляли задания того же размера, что и количество ядер на любой из ваших машин. Либо измените правило распределения на $fill_up или попробуйте отправить задание, для которого требуется 8, 30 или 32 ядра.

Я не знаю ответа, но вы можете получить гораздо больше информации о том, почему движок сетки не планирует задание, запустив qalter -w p и qalter -w v. Единственное предостережение: по крайней мере, в некоторых версиях qalter -w v не игнорирует эксклюзивные ресурсы, как следует.