SLURM: Systém na správu clusteru a plánovanie úloh¶
SLURM (Simple Linux Utility for Resource Management) je open-source vysoko škálovateľný systém na plánovanie úloh navrhnutý na správu výpočtových zdrojov Linux clustroch. SLURM funguje bez potreby úprav jadra (kernel), čím zostáva relatívne samostatný.
Má tri základné funkcie:
-
Pridelenie zdrojov: SLURM prideľuje exkluzívny a/alebo neexkluzívny prístup k výpočtovým uzlom na definované obdobie, vďaka čomu môžu používatelia vykonávať svoju prácu.
-
Vykonávanie a monitorovanie úloh: Poskytuje rámec na spustenie, vykonávanie a monitorovanie úloh (často paralelných) na pridelených uzloch.
-
Arbitrácia zdrojov: SLURM riadi frontu úloh a rieši konflikty pri využívaní zdrojov clusteru prostredníctvom plánovača úloh.
Užitočné príkazy¶
SLURM poskytuje rozsiahlu sadu príkazov na správu zdrojov a úloh.
Podrobnejšiu dokumentáciu je možné zobraziť na man stránkach alebo
pomocou možnosti --help, ktorá poskytuje stručný prehľad dostupných
možností.
Základné príkazy¶
-
sinfo: Zobrazuje stav front a uzlov spravovaných systémom SLURM. Zahŕňa možnosti filtrovania, triedenia a formátovania výstupu.
-
squeue: Zobrazuje stav úloh alebo krokov úloh. Predvolený výstup zobrazuje bežiace úlohy v poradí podľa priority, nasledované čakajúcimi úlohami.
-
srun: Slúži na spustenie kroku úlohy v reálnom čase (v rámci alokácie) alebo na interaktívne spustenie úlohy. Umožňuje špecifikovať požiadavky na zdroje, ako sú počet procesorov, pamäť, diskový priestor a ďalšie. Podporuje sekvenčné aj paralelné kroky úloh.
-
sbatch: Odosiela batch script na neskoršie vykonanie. Skript zvyčajne obsahuje jeden alebo viac príkazov
srunna spustenie paralelných úloh. -
scancel: Ruší čakajúcu alebo bežiacu úlohu alebo krok úlohy. Môže tiež odosielať ľubovoľné signály procesom pridruženým k úlohe.
-
seff: Vygeneruje správu o efektívnosti úloh, ktoré boli dokončené a odstránené z fronty.
Ďalšie príkazy¶
-
sacct: Zobrazuje accounting informácie o úlohe alebo kroku úlohy pre aktívne alebo dokončené úlohy.
-
sprojects: Zobrazuje informácie o projektoch používateľa a zostávajúcej CPU a GPU alokácii.
-
sprio: Poskytuje podrobný prehľad faktorov ovplyvňujúcich prioritu úlohy.
-
sshare: Zobrazuje informácie o použití fairshare v clustri.
-
salloc: Prideľuje zdroje pre úlohu v reálnom čase a spúšťa shell. Tento shell sa používa na vykonávanie príkazov
srunna spustenie paralelných úloh. -
sattach: Umožňuje pripojiť štandardné toky vstupu, výstupu a chýb k bežiacej úlohe alebo kroku úlohy a odosielať im signály.
-
sbcast: Prenáša súbory z lokálneho disku na lokálny disk uzlov pridelených úlohe. To je obzvlášť užitočné pre výpočtové uzly bez disku.
-
sstat: Zobrazuje informácie o využití zdrojov bežiacich úloh alebo krokov úloh.
-
scontrol: Je administratívnym nástrojom na zobrazenie a úpravu stavov SLURM. Niektoré príkazy
scontrolvyžadujú oprávnenia používateľa root.
Dôležité poznámky¶
Príkazy SLURM rozlišujú veľké a malé písmená
Vždy je potrebné používať správnu syntax príkazov a možností.
Podrobnejšie informácie je možné získať pomocou man <command>
alebo <command> --help.
Najlepší postup pri efektívnej správe úloh
- Je potrebné požadovať len zdroje, ktoré sú potrebné
(
CPU,RAM,GPU), aby sa zabránilo zbytočne dlhému čakaniu vo fronte. - Na efektívne spúšťanie viacerých úloh sa odporúča používať array jobs.
- Stav úloh je vhodné pravidelne kontrolovať pomocou
squeuea podľa potreby optimalizovať batch skripty.
Ďalšie informácie o stratégiách odosielania úloh pomocou SLURM sú uvedené v návode na odosielanie úloh.