Менеджер рабочей нагрузки Slurm
Разработчик(и) | ШедМД |
---|---|
Стабильная версия | |
Репозиторий | |
Написано в | С |
Операционная система | Linux , BSD |
Тип | Планировщик заданий для кластеров и суперкомпьютеров |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | хмуриться |
Slurm Workload Manager , ранее известный как Simple Linux Utility for Resource Management ( SLURM ), или просто Slurm , представляет собой с открытым исходным кодом бесплатный планировщик заданий для Linux и Unix-подобных ядер , используемый многими суперкомпьютерами и компьютерными кластерами мира .
Он обеспечивает три ключевые функции:
- выделение пользователям монопольного и/или неисключительного доступа к ресурсам (компьютерным узлам) на определенный период времени, чтобы они могли выполнять работу,
- предоставление структуры для запуска, выполнения и мониторинга работы, обычно параллельной работы, такой как интерфейс передачи сообщений (MPI) на наборе выделенных узлов, и
- разрешение конфликтов за ресурсы путем управления очередью ожидающих заданий.
Slurm является менеджером рабочих нагрузок примерно на 60% суперкомпьютеров из ТОП500 . [1]
Slurm использует алгоритм наилучшего соответствия, основанный на планировании кривой Гильберта или топологии сети «толстое дерево» , чтобы оптимизировать локальность назначения задач на параллельных компьютерах. [2]
История
[ редактировать ]Slurm начал разработку как совместную работу, главным образом, Ливерморской национальной лаборатории Лоуренса , SchedMD , [3] Linux NetworX, Hewlett-Packard и Groupe Bull в качестве менеджера ресурсов свободного программного обеспечения. Он был вдохновлен Quadrics RMS с закрытым исходным кодом и имеет аналогичный синтаксис. Название является отсылкой к газировке из Футурамы . [4] В проекте приняли участие более 100 человек со всего мира. С тех пор он превратился в сложный пакетный планировщик, способный удовлетворить требования многих крупных компьютерных центров.
По состоянию на ноябрь 2021 г. [update]Список TOP500 самых мощных компьютеров в мире указывает на то , что Slurm является менеджером рабочей нагрузки более чем на половине из десяти лучших систем.
Структура
[ редактировать ]Дизайн Slurm очень модульный и включает около 100 дополнительных плагинов. В самой простой конфигурации его можно установить и настроить за пару минут. Более сложные конфигурации обеспечивают интеграцию базы данных для учета, управления лимитами ресурсов и определения приоритетов рабочих нагрузок.
Функции
[ редактировать ]Особенности Slurm включают в себя: [ нужна ссылка ]
- Отсутствие единой точки отказа, демоны резервного копирования, отказоустойчивые варианты заданий.
- Высокая масштабируемость (планируется до 100 000 независимых заданий на 100 000 сокетах IBM Sequoia )
- Высокая производительность (до 1000 отправок заданий в секунду и 600 выполнений заданий в секунду)
- Бесплатное программное обеспечение с открытым исходным кодом ( GNU General Public License )
- Широкие возможности настройки, около 100 плагинов.
- Справедливое планирование с использованием иерархических банковских счетов
- Упреждающее и групповое планирование (распределение времени параллельных заданий)
- Интегрирована с базой данных для учета и настройки
- Распределение ресурсов оптимизировано для топологии сети и топологии узла (сокеты, ядра и гиперпотоки).
- Предварительное бронирование
- Неработающие узлы могут быть отключены
- Для каждого задания могут быть загружены разные операционные системы.
- Планирование общих ресурсов (например, графического процессора )
- Учет в режиме реального времени вплоть до уровня задач (определение конкретных задач с высокой загрузкой ЦП или памяти)
- Ограничения ресурсов по пользователю или банковскому счету
- Учет энергопотребления по заданиям
- Поддержка параллельной среды IBM (PE/POE)
- Поддержка массивов заданий
- Профилирование заданий (периодическая выборка данных об использовании ЦП каждой задачей, использовании памяти, энергопотреблении, использовании сети и файловой системы)
- Сложные многофакторные алгоритмы определения приоритетов задач
- Поддержка MapReduce+
- Поддержка пакетного буфера , который ускоряет перемещение научных данных.
В версии 14.11 Slurm, выпущенной в ноябре 2014 года, анонсированы следующие функции: [5]
- Улучшенная структура данных и масштабируемость массива заданий.
- Поддержка гетерогенных универсальных ресурсов
- Добавьте пользовательские параметры для установки регулятора ЦП.
- Политика автоматического запроса заданий на основе значения выхода
- Отчет об использовании API по пользователю, типу, количеству и затраченному времени
- Узлы коммуникационных шлюзов улучшают масштабируемость
Поддерживаемые платформы
[ редактировать ]Slurm в первую очередь разработан для работы вместе с дистрибутивами Linux , хотя имеется также поддержка нескольких других POSIX на базе операционных систем , включая BSD ( FreeBSD , NetBSD и OpenBSD ). [6] Slurm также поддерживает несколько уникальных компьютерных архитектур, в том числе:
- Модели IBM BlueGene с производительностью 20 петафлопс /Q, включая IBM Sequoia
- Cray XT, XE и Cascade
- Tianhe-2 — система с производительностью 33,9 петафлопс, 32 000 чипов Intel Ivy Bridge и 48 000 чипов Intel Xeon Phi с общим числом ядер 3,1 миллиона.
- Параллельная среда IBM
- Антон
Лицензия
[ редактировать ]Slurm доступен по лицензии GNU General Public License v2 .
Коммерческая поддержка
[ редактировать ]В 2010 году разработчики Slurm основали SchedMD, которая поддерживает канонический исходный код, обеспечивает разработку, коммерческую поддержку уровня 3 и услуги по обучению. Коммерческую поддержку также можно получить от Bull, Cray и Science + Computing.
Использование
[ редактировать ]Система «слёрм» состоит из трёх основных частей:
- центральный демон `slurmctld` (Slurm Control), работающий на одном управляющем узле (опционально с резервным копированием при сбое );
- множество вычислительных узлов, каждый из которых оснащен одним или несколькими демонами slurmd;
- клиенты, которые подключаются к узлу менеджера, часто с помощью ssh .
Клиенты могут отправлять команды демону управления, который будет принимать и распределять рабочую нагрузку между вычислительными демонами.
Для клиентов основными командами являются `srun` (постановка интерактивного задания в очередь), `sbatch` (постановка задания в очередь), `squeue` (печать очереди заданий), `scancel` (удаление задания из очереди).
Задания могут выполняться в пакетном или интерактивном режиме . В интерактивном режиме вычислительный узел запускает оболочку, подключает к ней клиента и запускает задание. Отсюда пользователь может наблюдать за заданием и взаимодействовать с ним во время его выполнения. Обычно для начальной отладки используются интерактивные задания, а после отладки то же самое задание будет отправлено с помощью `sbatch`. Для задания пакетного режима выходные данные stdout и stderr обычно направляются в текстовые файлы для последующей проверки.
См. также
[ редактировать ]- Планировщик заданий и пакетная организация очередей для кластеров
- Кластер Беовульф
- Планировщик кластеров Мауи
- Ресурсы кластерных приложений с открытым исходным кодом (OSCAR)
- МОМЕНТ
- Сетевой движок Univa
- Платформа ЛСФ
Ссылки
[ редактировать ]- ^ «Выполнение задания на HPC с использованием Slurm | HPC | USC» . hpcc.usc.edu . Архивировано из оригинала 06 марта 2019 г. Проверено 5 марта 2019 г.
- ^ Паскуаль, Хосе Антонио; Наваридас, Хавьер; Мигель-Алонсо, Хосе (2009). Влияние политик распределения с учетом топологии на производительность планирования . Стратегии планирования заданий для параллельной обработки. Конспекты лекций по информатике. Том. 5798. стр. 138–144. дои : 10.1007/978-3-642-04633-9_8 . ISBN 978-3-642-04632-2 .
- ^ «Коммерческая поддержка, разработка и установка Slurm» . ЩедМД . Проверено 23 февраля 2014 г.
- ^ «SLURM: Простая утилита Linux для управления ресурсами» (PDF) . 23 июня 2003 года . Проверено 11 января 2016 г.
- ^ «Слёрм – Что нового» . ЩедМД . Проверено 29 августа 2014 г.
- ^ Платформы Слёрма
Дальнейшее чтение
[ редактировать ]- Балле, Сюзанна М.; Палермо, Дэниел Дж. (2008). Расширение диспетчера ресурсов с открытым исходным кодом за счет поддержки многоядерности и многопоточности . Стратегии планирования заданий для параллельной обработки. Конспекты лекций по информатике . Том. 4942. с. 37. дои : 10.1007/978-3-540-78699-3_3 . ISBN 978-3-540-78698-6 .
- Джетт, М.; Грондона, М. (июнь 2003 г.). «SLURM: Простая утилита Linux для управления ресурсами» (PDF) . Материалы конференции и выставки ClusterWorld . Сан-Хосе, Калифорния.
- Лейтон, Джеффри Б. (5 февраля 2009 г.). «Caos NSA и Perceus: универсальный стек кластерного программного обеспечения» . Журнал Линукс . Архивировано из оригинала 11 февраля 2009 года.
{{cite journal}}
: CS1 maint: неподходящий URL ( ссылка ) - Йоу, Энди Б.; Джетт, Моррис А.; Грондона, Марк (2003). SLURM: Простая утилита Linux для управления ресурсами . Стратегии планирования заданий для параллельной обработки. Конспекты лекций по информатике. Том. 2862. с. 44 . CiteSeerX 10.1.1.10.6834 . дои : 10.1007/10968987_3 . ISBN 978-3-540-20405-3 .