Preskočiť na obsah

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:

  1. 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.

  2. Vykonávanie a monitorovanie úloh: Poskytuje rámec na spustenie, vykonávanie a monitorovanie úloh (často paralelných) na pridelených uzloch.

  3. 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 srun na 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 srun na 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 scontrol vyž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 squeue a 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.

Created by: Marek Štekláč