Перекрывающиеся очереди в Sun Grid Engine?

5

Мы хотели бы иметь вычислительный кластер на основе SGE с очередью, которая дает доступ ко всем узлам для вычислительного персонала, и вторую очередь кластера, которая дает доступ, скажем, к половине узлов для случайного (но интенсивного) использования другим персоналом ,

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

Есть ли способ настроить две (или более) очереди SGE одного набора узлов, чтобы одна очередь могла содержать все узлы, а вторая очередь содержала подмножество одинаковых узлов, и обе очереди работали одновременно?

Какие конкретные параметры конфигурации SGE я изучу, чтобы настроить что-то подобное?

Алекс Рейнольдс
источник

Ответы:

5

Конечно, это вполне возможно. Очереди 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.

ajdecon
источник