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

Slurm, ограничьте количество заданий на раздел

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

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

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

Т.е. У меня есть 2 раздела, короткий и длинный, с одинаковыми вычислительными узлами, но с разными временными ограничениями и приоритетом. Если все пользователи запускают длинные задания с использованием длинного раздела, они могут заблокировать кластер. Итак, я хочу ограничить количество максимальных заданий, выполняемых для длинного раздела.

Заранее спасибо.

Теперь, когда я видел ваше редактирование, на самом деле это должно быть выполнено с помощью приоритета и совместного использования узлов, а не ограничения заданий.
Смотрите оба многофакторный приоритет и упреждение если вы не ведете учет.

Вытеснение проще настроить с большим запасом, с PreemptType = preempt / partition_prio и установкой более высокого приоритета для очереди коротких заданий.
вам нужно будет установить PreemptMode = SUSPEND, GANG в slurm.conf и Shared = FORCE для очереди по умолчанию / каждой очереди, настроенной для приоритета.

он работает довольно хорошо, но может привести к тому, что длительные рабочие места просто не будут работать.

Многофакторность более справедливая, но вам придется поэкспериментировать, чтобы увидеть, что работает для вас. Вы, вероятно, захотите установить PriorityWeightPartition, поскольку нет прямого фактора, связанного с временем стены вакансий.

В противном случае - установите бухгалтерию и просто берите больше за длительные работы.

Поскольку я еще не могу комментировать, я отправляю в качестве ответа.
Вы можете поделиться своими рассуждениями? slurm отлично работает как менеджер ресурсов - он не позволит использовать больше ресурсов, чем доступно, если вы не разрешите избыточную подписку. зачем вам вводить искусственный лимит сверх этого?

В любом случае, если вы используете обратную засыпку, вы можете обойтись простым bf_max_job_part = # или более общим partition_job_depth = #

Прочтите об этих параметрах в man slurm.conf

Лучший способ добиться этого - использовать QoS. Для каждого QoS вы можете установить различные ограничения на количество ЦП или максимальное время стены для этого QoS и т. Д. QoS более гибок, чем разделение с точки зрения ограничений.

Поэтому я рекомендую использовать только один раздел с 2 QoS и устанавливать ограничения на уровне QoS.