Как запросить количество узлов (не процессов) при отправке задания в SGE?
например В TORQUE мы можем указать
qsub -l nodes=3
Как запросить узлы по их именам в SGE?
например В TORQUE мы можем сделать это с помощью
qsub -l nodes=abc+xyz+pqr
, гдеabc
,xyz
иpqr
— имена хостов.Для одного имени хоста
qsub -l hostname=abc
это работает. Но как разграничить несколько имен хостов в SGE?
Запрос узлов по номерам и их именам в SGE
Ответы (2)
Запрос количества узлов с помощью Grid Engine выполняется косвенно. Если вы хотите отправить параллельное задание, вам нужно запросить параллельную среду (man sge_pe
) вместе с количеством слотов (процессоров и т. д.), например qsub -pe mytestpe 12
...
В зависимости от allocation_rule
, определенного в параллельной среде (qconf -sp mytestpe
), слоты распределяются по одному или нескольким узлам. Если у вас есть так называемое фиксированное правило распределения, когда вы просто добавляете определенное число в качестве правила распределения, например 4 (4 слота на хост), это легко. Если вам нравится один хост, просто отправьте -pe mytestpe 4
, если вы хотите 10 узлов, просто отправьте -pe mytestpe 40
.
Имя узла может быть запрошено -l h=abc
. Поскольку имена узлов RESTRINGS
(строки регулярных выражений) в Grid Engine, вы можете создать регулярное выражение для фильтрации узлов: qsub -l h="abc|xyz"
. Вы также можете создавать группы хостов (qconf -ahgrp
) и запрашивать так называемые домены очереди (qsub -q all.q@@mygroup
).
Даниэль
вы можете использовать -tc, чтобы ограничить количество одновременных задач (т. е. количество слотов, которые будут использоваться для задания массива). Я использую это, когда отправляю задания массива со 100 подзаданиями, чтобы ограничить влияние на нашу очередь, по умолчанию до 10 одновременных заданий с -tc 10. По мере завершения каждого задания будет отправлено другое задание массива из ожидающего пула.
единственный способ, которым я смог это сделать, - это установить определенные наборы квот ресурсов (используя qconf -mrqs), указав конкретные группы хостов, которые вы хотите использовать. Сначала вам нужно будет настроить все комбинации, которые вы хотите. Однако я не вижу реальной причины указывать конкретные хосты, если только у этих хостов нет определенных ресурсов, которые вы хотите использовать (в этом случае я бы установил для них потребляемые ресурсы и применил соответствующее количество ресурсов к каждому хосту). которые могут предоставить их, а затем используйте это вместо указания конкретных хостов для конкретного задания).