Оптимизируйте использование сети с помощью slurm

#slurm

Вопрос:

У меня есть сетка с десятью одинаковыми узлами. Каждый узел имеет 32 ядра и два графических процессора.

Существует две категории задач, которые отправляются в сетку:

  1. Задачи процессора, требующие 1-ЦП
  2. Задачи с графическим процессором, для которых требуется 1 процессор и 1 графический процессор

Прямо сейчас нет ограничений на ресурсы для отправки SBATCH, поэтому, если кто-то отправит 1000 задач типа 1, 320 задач будут выполняться параллельно, пока все не будут завершены. Это приводит к блокировке любой отправки задач типа 2, даже если графический процессор не используется.

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

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

Комментарии:

1. Без прав администратора это будет сложно. Если у вас есть возможность связаться со всеми другими пользователями, вы можете попросить всех пользователей, работающих только с процессором, повысить ценность своих заданий #SBATCH --nice=2147483600 (придать заданиям низкий приоритет) при их отправке. Таким образом, когда задания cpu и cpu gpu ожидают ресурсов, задания cpu и gpu с большей вероятностью получат ресурсы.