Slurm: Difference between revisions

From TÜ Narva Kolledži Wiki
Jump to navigation Jump to search
Content deleted Content added
Mastakov (talk | contribs)
Created page with "Mastakov"
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Slurm Workload Manager==
Mastakov
Slurm Workload Manager (ранее Slurm был известен, как утилита Linux для управления ресурсами). Slim является бесплатным планировщиком задач с открыто исходным кодом для Linux и Unix-подобных систем, которые используют многие мировые суперкомпьютеры и компьютерные кластеры.Slurm начал свое развитие еще в 2001 году, тогда он развивался в качестве проекта Национальной лаборатории Лоуренса Ливермора, SchedMD, Linux Networx, Hewlett-Packard, а также Bull Group в качестве менеджера ресурсов на основе свободного программного обеспечения.
Только уже позднее он смог превратится в сложный планировщик задач, который способен удовлетворить различные требования многих крупнейших вычислительных центров, которые на данный момент используются очень часто.
Cотрудники LLNL Morris (Moe) Jette и Danny Auble включили в 2010 году SchedMD LLC в развитие и продажу Slurm.
==Структура Slurm==
Конструкция Slurm, которая состоит из множества модулей с десятками дополнительных плагинов, очень проста в конфигурации, не требуя больших временных затрат. Благодаря этому Slurm можно установить и настроить всего за пару минут. Более сложные конфигурации могут удовлетворить потребности планирования заданий в вычислительных центрах мирового класса и полагаться на базу данных MySQL для архивации учетных записей, для управления лимитами ресурсов пользователем или банковским счетом, а также для поддержки сложных алгоритмов приоритезации заданий.
==Уникальность Slurm ==
Что касается Slurm, то у него есть уникальные моменты, которые его отличают от других утилит:

* Высокая масштабируемость (планирование до 100 000 независимых заданий на 100 000 сокетов IBM Sequoia)
* Высокая производительность (до 1000 отправленных заданий в секунду и 600 выполненных заданий в секунду)
* Свободный и открытый исходный код: его исходный код свободно доступен в соответствии с GNU General Public License.
* Переносимость: написано на C с двигателем конфигурации GNU General Public License autoconf. Первоначально написанный для Linux, Slurm был перенесен в разнообразный ассортимент систем.
* Управление питанием: задание может указывать желаемую частоту процессора и записывать потребление энергии по заданию. Свободные ресурсы могут быть отключены до тех пор, пока это не понадобится.
* Fault Tolerant: Slurm очень терпим к сбоям системы, включая отказ узла, выполняющего его функции управления.
* Широкие возможности настройки, около 100 плагинов
* Гибкость: существует механизм плагинов, который поддерживает различные межсоединения, механизмов аутентификации, планировщиков и т. д. Эти плагины документированы и достаточно просты, чтобы мотивированный конечный пользователь смог понять источник и добавить функциональность.
* Изменение размера рабочих мест: Удобством является то, что рабочие места могут как расти так и сокращаться по требованию. А также представления работы могут указывать диапазоны размеров и времени.
* Работы по статусу: статус выполнения заданий на уровне отдельных задач, чтобы помочь определить дисбаланс нагрузки и другие аномалии.
==Установка Slurm==
# Нужно убедиться, что время, пользователи и группы (UID и GID) синхронизированы по всему кластеру.
# Установить MUNGE для аутентификации. Проверить, что все узлы в кластере имеют одинаковый munge.key. Затем проверить, что демон MUNGE, munged запущен, прежде чем запустить демоны Slurm.
# bunzip2 - распределенный tar-шар, для его работы нужно распаковать файлы:
<code>tar --bzip -x -f slurm * tar.bz2</code>
# Затем перейти в каталог, содержащий источник Slurm, и ввести ./configure с соответствующими параметрами, обычно --prefix = и --sysconfdir =
# Ввести make для компиляции Slurm.
# Ввести make install для установки программ, документации, библиотек, заголовочных файлов и т.д.
# Создайть файл конфигурации, используя веб-браузер и doc / html / configurator.html.
# Ввести:
<code>ldconfig -n <library_location></code>
чтобы библиотеки Slurm могли быть найдены приложениями, которые намерены напрямую использовать API-интерфейсы Slurm.
Установить файл конфигурации в
<code>l<sysconfdir> /slurm.conf.</code>
Запустить демоны slurmctld и slurmd.
==Список доступных команд==


Справочные man-руководства существуют для всех сервисов SLURM, команд, и API функций. Параметр --help выдает краткий перечень возможных параметров команды. Заметьте, что параметры команд не зависят от регистра.

<code>sacct</code>используется, чтобы сообщать задаче или подзадаче учетную информацию о текущих или завершенных задачах.

<code>salloc</code> используется, чтобы выделить ресурсы для задачи в реальном времени. Обычно эта команда используется, чтобы получить ресурсы и shell-доступ к ним. Затем используется командная строка, чтобы выполнять srun-команды для запуска параллельных задач.

<code>sattach</code> используется, чтобы связать потоки стандартного ввода, вывода, ошибок, передачу сигналов с запущенной задачей или подзадачей.

<code>sbatch</code> используется, чтобы запустить скрипт пакетной обработки для дальнейшего выполнения. Скрипт обычно содержит одну или больше srun-команд для запуска параллельных задач.

<code>sbcast</code> используется, чтобы переместить файл из сервера запуска на вычислительный узел задачи. Это может быть использовано, чтобы эффективнее использовать бездисковые вычислительные узлы или обеспечить улучшенную производительность общей файловой системы.

<code>scancel</code> используется, чтобы отменить случайно запущенные или зависшие задачи и подзадачи. Она может также быть использована, чтобы отправить управляющий сигнал всем процессам, связанным с выполняющейся задачей или подзадачей.
[0:13]
<code>scontrol</code> - инструмент администрирования для просмотра и/или изменения состояния SLURM. Отметим, что многие из управляющих команд могут выполняются только суперпользователем.

<code>sinfo</code> сообщает состояние разделов и узлов, управляемых SLURM. Она имеет много способов фильтрации, сортировки, и форматирования выдаваемых результатов.

<code>smap</code> предоставляет графическую информацию о состоянии задач, разделов, и узлов, управляемых SLURM.

<code>squeue</code> докладывает о состоянии задач и подзадач. Она имеет много способов фильтрации, сортировки, и форматирования выдаваемых результатов. По умолчанию, она в первую очередь сообщает о запущенных задачах, зависшие задачи идут следующими по ранжированию.

<code>srun</code> используется, чтобы запустить задачу или подзадачу в реальном времени. srun имеет много различных параметров, чтобы конкретизировать требования к ресурсам, в том числе: минимальное и максимальное количество узлов, количество процессоров, указать какие узлы использовать или не использовать, характеристики узлов (сколько памяти, дискового пространства, определенные требуемые особенности, и т.п.). Задача может содержать множество job шагов, выполняющихся последовательно или в параллельно на независимых или общих узлах в пределах выделенных задаче узлов.

<code>strigger</code> используется для установки, и просмотра триггеров событий. Триггеры событий включают страбатывают в таких случаях, как например выход из строя узлов или задач, приближающихся к их пределу времени.

==Коммерческая поддержка==
В 2010 году разработчики Slurm основали компанию SchedMD, которая поддерживает канонический исходный код, обеспечивает разработку, коммерческую поддержку уровня 3 и услуги по обучению. Коммерческая поддержка также доступна от Bull, Cray и Science + Computing.

Latest revision as of 23:11, 9 January 2023

Slurm Workload Manager

Slurm Workload Manager (ранее Slurm был известен, как утилита Linux для управления ресурсами). Slim является бесплатным планировщиком задач с открыто исходным кодом для Linux и Unix-подобных систем, которые используют многие мировые суперкомпьютеры и компьютерные кластеры.Slurm начал свое развитие еще в 2001 году, тогда он развивался в качестве проекта Национальной лаборатории Лоуренса Ливермора, SchedMD, Linux Networx, Hewlett-Packard, а также Bull Group в качестве менеджера ресурсов на основе свободного программного обеспечения. Только уже позднее он смог превратится в сложный планировщик задач, который способен удовлетворить различные требования многих крупнейших вычислительных центров, которые на данный момент используются очень часто. Cотрудники LLNL Morris (Moe) Jette и Danny Auble включили в 2010 году SchedMD LLC в развитие и продажу Slurm.

Структура Slurm

Конструкция Slurm, которая состоит из множества модулей с десятками дополнительных плагинов, очень проста в конфигурации, не требуя больших временных затрат. Благодаря этому Slurm можно установить и настроить всего за пару минут. Более сложные конфигурации могут удовлетворить потребности планирования заданий в вычислительных центрах мирового класса и полагаться на базу данных MySQL для архивации учетных записей, для управления лимитами ресурсов пользователем или банковским счетом, а также для поддержки сложных алгоритмов приоритезации заданий.

Уникальность Slurm

Что касается Slurm, то у него есть уникальные моменты, которые его отличают от других утилит:

  • Высокая масштабируемость (планирование до 100 000 независимых заданий на 100 000 сокетов IBM Sequoia)
  • Высокая производительность (до 1000 отправленных заданий в секунду и 600 выполненных заданий в секунду)
  • Свободный и открытый исходный код: его исходный код свободно доступен в соответствии с GNU General Public License.
  • Переносимость: написано на C с двигателем конфигурации GNU General Public License autoconf. Первоначально написанный для Linux, Slurm был перенесен в разнообразный ассортимент систем.
  • Управление питанием: задание может указывать желаемую частоту процессора и записывать потребление энергии по заданию. Свободные ресурсы могут быть отключены до тех пор, пока это не понадобится.
  • Fault Tolerant: Slurm очень терпим к сбоям системы, включая отказ узла, выполняющего его функции управления.
  • Широкие возможности настройки, около 100 плагинов
  • Гибкость: существует механизм плагинов, который поддерживает различные межсоединения, механизмов аутентификации, планировщиков и т. д. Эти плагины документированы и достаточно просты, чтобы мотивированный конечный пользователь смог понять источник и добавить функциональность.
  • Изменение размера рабочих мест: Удобством является то, что рабочие места могут как расти так и сокращаться по требованию. А также представления работы могут указывать диапазоны размеров и времени.
  • Работы по статусу: статус выполнения заданий на уровне отдельных задач, чтобы помочь определить дисбаланс нагрузки и другие аномалии.

Установка Slurm

  1. Нужно убедиться, что время, пользователи и группы (UID и GID) синхронизированы по всему кластеру.
  2. Установить MUNGE для аутентификации. Проверить, что все узлы в кластере имеют одинаковый munge.key. Затем проверить, что демон MUNGE, munged запущен, прежде чем запустить демоны Slurm.
  3. bunzip2 - распределенный tar-шар, для его работы нужно распаковать файлы:
 tar --bzip -x -f slurm * tar.bz2
  1. Затем перейти в каталог, содержащий источник Slurm, и ввести ./configure с соответствующими параметрами, обычно --prefix = и --sysconfdir =
  2. Ввести make для компиляции Slurm.
  3. Ввести make install для установки программ, документации, библиотек, заголовочных файлов и т.д.
  4. Создайть файл конфигурации, используя веб-браузер и doc / html / configurator.html.
  5. Ввести:

ldconfig -n <library_location> чтобы библиотеки Slurm могли быть найдены приложениями, которые намерены напрямую использовать API-интерфейсы Slurm. Установить файл конфигурации в l<sysconfdir> /slurm.conf. Запустить демоны slurmctld и slurmd.

Список доступных команд

Справочные man-руководства существуют для всех сервисов SLURM, команд, и API функций. Параметр --help выдает краткий перечень возможных параметров команды. Заметьте, что параметры команд не зависят от регистра.

sacctиспользуется, чтобы сообщать задаче или подзадаче учетную информацию о текущих или завершенных задачах.

salloc используется, чтобы выделить ресурсы для задачи в реальном времени. Обычно эта команда используется, чтобы получить ресурсы и shell-доступ к ним. Затем используется командная строка, чтобы выполнять srun-команды для запуска параллельных задач.

sattach используется, чтобы связать потоки стандартного ввода, вывода, ошибок, передачу сигналов с запущенной задачей или подзадачей.

sbatch используется, чтобы запустить скрипт пакетной обработки для дальнейшего выполнения. Скрипт обычно содержит одну или больше srun-команд для запуска параллельных задач.

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

scancel используется, чтобы отменить случайно запущенные или зависшие задачи и подзадачи. Она может также быть использована, чтобы отправить управляющий сигнал всем процессам, связанным с выполняющейся задачей или подзадачей. [0:13] scontrol - инструмент администрирования для просмотра и/или изменения состояния SLURM. Отметим, что многие из управляющих команд могут выполняются только суперпользователем.

sinfo сообщает состояние разделов и узлов, управляемых SLURM. Она имеет много способов фильтрации, сортировки, и форматирования выдаваемых результатов.

smap предоставляет графическую информацию о состоянии задач, разделов, и узлов, управляемых SLURM.

squeue докладывает о состоянии задач и подзадач. Она имеет много способов фильтрации, сортировки, и форматирования выдаваемых результатов. По умолчанию, она в первую очередь сообщает о запущенных задачах, зависшие задачи идут следующими по ранжированию.

srun используется, чтобы запустить задачу или подзадачу в реальном времени. srun имеет много различных параметров, чтобы конкретизировать требования к ресурсам, в том числе: минимальное и максимальное количество узлов, количество процессоров, указать какие узлы использовать или не использовать, характеристики узлов (сколько памяти, дискового пространства, определенные требуемые особенности, и т.п.). Задача может содержать множество job шагов, выполняющихся последовательно или в параллельно на независимых или общих узлах в пределах выделенных задаче узлов.

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

Коммерческая поддержка

В 2010 году разработчики Slurm основали компанию SchedMD, которая поддерживает канонический исходный код, обеспечивает разработку, коммерческую поддержку уровня 3 и услуги по обучению. Коммерческая поддержка также доступна от Bull, Cray и Science + Computing.