Как я могу установить максимальное количество запущенных заданий на пользователя в SGE?

9

Мы используем SGE (Sun Grid Manager). У нас есть некоторые ограничения на общее количество одновременных заданий от всех пользователей.

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

Например, пользователь daveсобирается отправить 500 заданий, но он хотел бы, чтобы не более 100 выполнялось одновременно, например, поскольку он знает, что задания выполняют много операций ввода-вывода, что приводит к зависанию файловой системы (к сожалению, правдивая история).

Это возможно?

Дэвид Б
источник

Ответы:

9

Вы можете определить комплекс с qconf -mc. Назовите это как-нибудь high_ioили как хотите, и установите для поля расходных материалов значение YES. Затем либо в глобальной конфигурации, qconf -me globalлибо в определенной очереди с qconf -mq <queue name>установленными high_io=500в комплексных значениях. Теперь попросите своих пользователей указать -l high_io=1или сколько «токенов» вы бы хотели использовать. Это ограничит количество одновременных заданий тем, на которое вы устанавливаете комплексное значение.

Другой способ сделать это с помощью квот. Добавьте квоту, qconf -arqsкоторая выглядит примерно так:

 {
        name         dave_max_slots
        description  "Limit dave to 500 slots"
        enabled      true
        limit        users {dave} to slots=500
 }
Камил Кисиэль
источник
Спасибо, Камил, и извините за поздний ответ. Пара повторений, так как я совсем новичок qconf. Что касается вашего первого предложения, не могли бы вы быть более откровенным? Что такое «расходный материал»? После настройки, как уже упоминалось, я просто говорю пользователю qsubс -l high_io=1?
Дэвид Б.
1
По сути, комплекс - это ресурс, который может быть запрошен заданием с -lпереключателем на qsub. Установив комплекс для потребления, это означает, что когда задание запрашивает этот комплекс, доступное количество уменьшается. Таким образом, если в очереди 500 комплексов high_io и 20 запросов на работу, для других работ будет доступно 480. Вы бы запросили комплекс так же, как в вашем примере.
Камил Кисиэль
Спасибо, Камил. Извините, я не могу проголосовать (пока недостаточно репутации).
Дэвид Б