Кому-нибудь повезло с рандомизацией распределения узлов Slurm? У нас есть небольшой кластер из 12 узлов, который может использовать от 1 до 8 человек одновременно с заданиями разного размера и длины. При тестировании нашей новой настройки Slurm задания всегда переходят к первому узлу раздела, если нет других пользователей как для интерактивных, так и для пакетных заданий. Есть ли способ рандомизировать это расписание?
Похоже, что в зависимости от временной шкалы пользователя они могут постоянно получать одни и те же узлы, и это может замаскировать проблемы в оборудовании / конфигурации, которые в противном случае могли бы быть видимыми. Наши узлы всегда эксклюзивны, поэтому мы рассматриваем только рандомизацию планирования на уровне узлов ...
Посмотрите настройку веса в slurm.conf
Приоритет узла для целей планирования. При прочих равных, задания будут распределены по узлам с наименьшим весом, удовлетворяющим их требованиям. Например, разнородный набор узлов может быть помещен в один раздел для большего использования системы, скорости реакции и возможностей. Было бы предпочтительнее выделять узлы памяти меньшего размера, чем узлы памяти большего размера, если они удовлетворяют требованиям задания. Единицы веса являются произвольными, но больший вес должен быть назначен узлам с большим количеством процессоров, памяти, дискового пространства, более высокой скоростью процессора и т. Д. Обратите внимание, что если запрос распределения задания не может быть удовлетворен с использованием узлов с самым низким весом, набор узлов со следующим наименьшим весом добавляется к набору узлов, рассматриваемых для использования (при необходимости повторите для более высоких значений веса). Если вы абсолютно хотите минимизировать количество узлов с более высоким весом, выделяемых для задания (за счет более высоких накладных расходов на планирование), дайте каждому узлу отдельное значение веса, и они будут добавлены в пул узлов, рассматриваемых для планирования индивидуально. Значение по умолчанию - 1.
Вы можете добавить в раздел «LLN = YES».
LLN Распределяет ресурсы по заданиям на наименее загруженных узлах (в зависимости от количества простаивающих процессоров).
Я не верю, что можно рандомизировать распределение узлов без изменения кода или предоставления собственного плагина. Есть много способов повлиять на то, какие узлы будут выбраны при задании, но ни один из них не является случайным. Как отметил @Tux_DEV_NULL, вы можете использовать вес, чтобы предпочесть подмножество узлов, но если вы не меняете веса случайным образом, вы все равно будете снова и снова попадать на один и тот же узел, если весь ваш кластер простаивает. Я считаю, что время безотказной работы узлов является решающим фактором.
Если вас беспокоит отсутствие неправильно сконфигурированных или сломанных узлов, вам следует использовать скрипт проверки работоспособности узла с помощью параметра HealthCheckProgram в slurm.conf. Хороший для использования можно найти здесь: https://github.com/mej/nhc