Конечно, это вполне возможно. Очереди SGE не зависят друг от друга, поэтому вы можете назначать любые узлы, которые вы хотите, каждой очереди, позволяя им перекрываться по вашему желанию.
Чтобы создать очередь, введите qconf -aq
: это откроет ваш редактор по умолчанию (обычно vim). Введите имя очереди как qname
, добавьте хосты, которые вы хотите назначить в hostlist
, и для slots
, добавьте разделенный запятыми список записей в формате [hostname=numslots]
. Обычно количество слотов - это количество ядер на хосте, но вы можете переподписать или переподписать, если хотите. Если вы хотите, чтобы очереди перекрывались, просто добавьте одни и те же узлы в несколько очередей.
Обратите внимание, что по умолчанию перекрывающиеся очереди не знают об использовании друг друга. Они оба будут с радостью назначать задания одному и тому же узлу и ожидать, что они будут выполняться.
Самый распространенный способ предотвратить это - сделать узлы эксклюзивными для работы, поэтому одновременно может выполняться только одна задача. (Это значение по умолчанию в других планировщиках, таких как PBS.) SGE делает это немного сложным и включает создание виртуального «ресурса», который может использоваться только один раз для каждого узла. Для этого наберите qconf -mc
для управления расходуемыми ресурсами . Откроется редактор со списком расходуемых ресурсов: добавьте новый с именем «эксклюзивный», например:
#name shortcut type relop requestable consumable default urgency
#-----------------------------------------------------------------------------------------
exclusive excl BOOL EXCL YES YES 1 1000
Для получения дополнительной информации см. Вики-движок сетки .
Вы также можете настроить так называемые подчиненные очереди . В этом случае вы устанавливаете одну очередь так, чтобы она автоматически перекрывала другую, когда назначается более определенного количества слотов на узел. Чтобы настроить это, запустите qconf -mq queue1
и под «подчиненным» укажите queue2=N
. Тогда всякий раз, когда число слотов, используемых на узле в очереди 1, превышает N , задание в очереди 2 будет приостановлено до завершения задания очереди 1.