SLURM (Simple Linux Utility for Resource Management) — это вспомогательная хорошо масштабируемая система с открытым исходным кодом для планирования задач и управления как малыми так и большими кластерами на Linux.
Slurm имеет три основные функции:
- во-первых, он предоставляет эксклюзивный и/или неэксклюзивный доступ к ресурсам пользователям, которые хотят выполнять какую-либо работу в течение заданного периода времени.
- затем Slurm использует структуру, которая помогает запускать, выполнять и контролировать работу на наборе выделенных хостов в кластере.
- ее последняя функция заключается в том, что она контролирует использование ресурсов, управляя очередью ожидающих работ.
Создание задачи
Задача состоит из двух частей: запрос ресурсов и шагов выполнения. В запросе ресурсов указывается необходимое количество процессорных ядер и графических ускорителей, ожидаемое время выполнения, объём памяти и дискового пространства и т.д. Шаги выполнения описывают задачи (tasks) и программы, которые необходимо выполнить. Задачи могут быть запущены в “пакетном” режиме (sbatch) с возможностью подготовки окружения и загрузки необходимых модулей, а также в “интерактивном” режиме (srun), с выводом результатов расчётов на экран.
Задачи в очереди запускаются на расчет согласно приоритетам. В некоторых случаях, даже при наличии свободных ресурсов, задача не сможет их занять, если есть более приоритетная задача, которая ждет дополнительных ядер. Одним из способов повысить приоритет своей задачи является уменьшение максимально возможного времени её выполнения при помощи опции —time. **
Запуск задачи в пакетном режиме с помощью sbatch
Мощность кластерной установки наибольшим образом раскрывается при использовании пакетного режима выполнения задач. Для его работы необходимо подготовить скрипт-файл, в котором запрашиваются различные ресурсы, подготавливается окружение и затем выполняются необходимые программы. Во время работы задачи вывод и ошибки сохраняются на диск для дальнейшей обработки. Любая задача может быть запущена в пакетном режиме, если она не требует отклика от пользователя во время работы. Большинство научного ПО имеет специальные ключи запуска для работы в пакетном режиме. Общий синтаксис запуска следующий: sbatch [опции] script_name.sbatch
или sbatch [опции] --wrap="команда запуска"
В качестве должен выступать скрипт-файл, в котором описываются требуемые ресурсы и шаги выполнения задачи. Общий синтаксис скрипта для передачи в sbatch выглядит следующим образом:
#!/bin/bash #SBATCH <ключ sbatch> <значение> ... #SBATCH <ключ sbatch> <значение> <пользовательские команды> ... <пользовательские команды>