В нашем локальном кластере у нас возникла следующая проблема со Slurm. Пользователь A отправляет множество заданий, которые заполняют кластер с высоким приоритетом, и хочет оставить несколько узлов свободными для использования пользователем B. Таким образом, пользователь B может продолжать работать даже с очень ограниченными ресурсами.
Реализация и проблема: пользователь A исключает некоторые узлы, и они действительно пусты, когда он запускается. Но задания пользователя B по-прежнему не запускаются на этих узлах, даже если они пусты! Это может быть связано с тем, что задания пользователя A имеют гораздо более высокий приоритет, чем задания B, но все же при наличии свободных ресурсов задания пользователя B должны их использовать.
Так, может быть, исключение узлов - не способ добиться этого в Slurm? Как еще мы можем делать то, что хотим?
Первым делом нужно убедиться, что засыпка включена. Проверьте свой файл конфигурации на наличие SchedulerType
, которым должен быть sched/backfill
.
Тогда вам следует рассмотреть:
В таких случаях вы можете использовать параметр bf_max_job_user
, чтобы ограничить количество заданий на пользователя в очереди обратной засыпки.
Спасибо за ответы. Я действительно проверил, и засыпка уже идет. Я попробую решение bf_max_job_user, спасибо!
Если используется планировщик обратной засыпки, причина, по которой задания пользователя B не запускаются, может заключаться в том, что планировщик обратной засыпки проверяет только часть очереди на предмет заданий, которые будут использоваться при обратной засыпке. Если пользователь A уже поставил в очередь больше заданий, чем установлен предел обратной засыпки, задания пользователя B даже не будут рассматриваться. Следовательно, решения, предоставленные @damienfrancois, являются лучшим подходом, чем текущий.