SLURM Workload Manager, wcześniej znany jako Simple Linux Utility for Resource Management (SLURM), to darmowy program o otwartym kodzie źródłowym służący do planowania zadań dla jąder systemów Linux/Unix. SLURM jest szeroko stosowany w centrach obliczeniowych na całym świecie jako system kolejkowy do zarządzania obliczeniami na superkomputerach i klastrach komputerowych - warto dodać, że około 60% superkomputerów największej mocy z listy TOP500 jest pod kontrolą SLURM.
SLURM zapewnia trzy kluczowe funkcje:
|
Warto dodać, że SLURM umożliwia nie tylko uruchamianie zadań wysoce zrównoleglonych jak i rozproszonych ale pozwala również na wykorzystanie do obliczeń dodatkowych zasobów takich jak karty graficzne lub koprocesory Xeon Phi znacznie przyspieszające obliczenia. Ponadto system kolejkowy pozwala na tworzenie zależności między zadaniami jak również może poinformować użytkownika mailem o dacie i czasie rozpoczęcia i/lub zakończenia wykonywania danego zadania.
SLURM posiada kilka trybów pracy, które umożliwiają efektywne wykorzystanie zasobów klastra - najważniejsze z nich to:
|
Oprócz tych dwóch podstawowych trybów, SLURM oferuje także wiele zaawansowanych opcji konfiguracyjnych, które pozwalają dostosować zarządzanie zasobami do konkretnych potrzeb użytkownika i klastra komputerowego.
Tryb wsadowy w SLURM to jeden z podstawowych trybów pracy w tym systemie zarządzania zasobami w klastrach obliczeniowych. Jest to tryb przeznaczony do obsługi zadań, które nie wymagają natychmiastowego dostępu do zasobów klastra (jak np. testowanie kodu), ale mogą być planowane i uruchamiane w określonym czasie.
Kluczowe elementy trybu wsadowego:
|
Tryb wsadowy jest szczególnie przydatny w przypadku, gdzie wiele zadań jest wykonanych jednocześnie na zasobach klastra. Użytkownicy mogą dostosować swoje zadania do wymagań swoich aplikacji, a SLURM zapewnia efektywne zarządzanie zasobami, minimalizując konflikty o dostęp do zasobów i zapewniając równomierne wykorzystanie klastra.
SLURM oferuje wiele podstawowych komend, które pozwalają użytkownikom zarządzać zadaniami i zasobami w klastrze komputerowym
sbatch oraz srun - służą do uruchamiania zadań w trybie wsadowym, ale różnią się swoim zastosowaniem i sposobem użycia.
Komenda sbatch
Przykładowe zastosowanie komendy sbatch:
|
Komenda srun
Przykładowe zastosowanie komendy srun:
|
squeue - pozwala na przeglądanie listy zadań znajdujących się w kolejce. Komenda squeue wyświetla informacje o bieżących zadaniach, takie jak identyfikatory, stan zadania, użytkownik, czas wykonania etc.
Przykładowe zastosowanie komendy:
|
scancel - pozwala na anulowanie zadania znajdującego się w kolejce lub uruchomionego zadania. Komendy używa się wraz z identyfikatorem zadania, które chcemy anulować.
Przykładowe zastosowanie komendy:
|
scontrol - pozwala na zaawansowaną kontrolę i zarządzanie zadaniami i zasobami SLURM poprzez różne opcje konfiguracyjne i komendy. Komenda może mieć także zastosowanie do wyświetlania właściwości kolejki (partycji) lub węzła obliczeniowego
Przykładowe zastosowanie komendy scontrol do wyświetlenia właściwości partycji:
|
Przykładowe zastosowanie komendy scontrol do wyświetlenia właściwości węzła:
|
sinfo - wyświetla informacje o dostępnych węzłach w klastrze, w tym ich dostępności, liczbę dostępnych rdzeni, ilość dostępnej pamięci etc.
Przykładowe zastosowanie komendy:
|
Plik wsadowy (batch script) w systemie zarządzania zasobami SLURM to skrypt lub plik tekstowy, który zawiera instrukcje i parametry niezbędne do uruchomienia zadania w trybie wsadowym na klastrze obliczeniowym. Pliki wsadowe są używane do zdefiniowania zadania, określenia wymaganych zasobów, załadowania lub aktywacji środowiska obliczeń, podania komendy do wykonania oraz innych ustawień związanych z przetwarzaniem.
Plik wsadowy możemy podzielić na dwie części
|
W systemie zarządzania zasobami SLURM można określić część opcji komendy sbatch w pliku wsadowym (skrypcie wsadowym) a część w linii poleceń. Jest to przydatne bo pozwala na elastyczne dostosowywanie parametrów zadania, przy jednoczesnym wykorzystaniu wspólnego pliku wsadowego do wielu uruchomień. Opcje określone w pliku wsadowym nadpisują opcje podane w linii poleceń. To oznacza, że opcje w pliku wsadowym będą one miały pierwszeństwo nad opcjami podanymi w linii poleceń.
Uruchomienie pliku
za pomocą komendy
będzie równoznaczne z uruchomieniem poprzedniego przykładowego pliku za pomocą czystej komendy sbatch:
|
Jest to przydatne aby zachować elastyczność i dostosować niektóre parametry zadania na podstawie określonej sytuacji lub dynamicznie zmieniać je przy każdym uruchomieniu.
Poniżej znajdują się przykładowe pliki kolejkowe do obliczeń na klastrze BlueOcean
Gaussian G09
#!/bin/bash #SBATCH -J moje_zadanie #SBATCH --output=wynik.txt #SBATCH --error=bledy.txt # Definicja zasobów #SBATCH -N 1 #SBATCH --cpus-per-task=36 #SBATCH --ntasks-per-node=1 #SBATCH -p bo-science #SBATCH --mem-per-cpu=5G # Zaladowanie srodowiska obliczen module load gaussian9_E_01 module list # Wywolanie obliczen cd $SLURM_SUBMIT_DIR g09 plik_obliczen_gaussiana_G09.com |
tak przygotowany plik wsadowy należy dodać do kolejki za pomocą komendy
sbatch przykladowy_plik_wsadowy_G09 |