Popis konceptů plánovače clusteru

Dokončeno

Na konci této lekce byste měli být schopni popsat základní funkce plánovačů úloh, správců prostředků, vysokovýkonného výpočetního prostředí a vysokovýkonného výpočetního prostředí.

Plánovače úloh

Plánovač úloh cluster computingu je softwarová komponenta, která spravuje a přiřazuje výpočetní prostředky (například procesory, paměť a disky) úlohám odeslaným do clusteru. Plánovače úloh určují nejvhodnější uzly v clusteru ke spuštění konkrétní úlohy na základě dostupnosti prostředků, priority úlohy a dalších faktorů. Plánovače úloh zajišťují, aby mezi sebou nerušovalo několik paralelních úloh. Plánovače úloh zahrnují fronty pro uchovávání čekajících úloh a zásad pro jejich plánování.

Hlavními cíli plánovače úloh jsou:

  • Minimalizujte čas mezi dokončením úlohy odeslání úlohy.
  • Optimalizujte využití procesoru.
  • Maximalizujte propustnost úlohy.

Uživatelé odesílali do plánovače neinteraktivní dávkové úlohy. Plánovač ukládá dávkové úlohy, vyhodnocuje jejich požadavky na prostředky a priority a distribuuje úlohy do vhodných výpočetních uzlů.

Skript úlohy odeslaný prostřednictvím plánovače přidá úlohu do fronty úloh. V závislosti na dostupných prostředcích, které úloha potřebuje, se plánovač rozhodne, kdy úloha opustí frontu, a na kterém z back-endových uzlů se spustí.

Existuje několik základních strategií, které plánovači můžou použít k určení úlohy, která se má spustit dále:

  • First Come, First Serve: Úlohy se spouštějí ve stejném pořadí, ve kterém poprvé vstoupí do fronty. Výhodou je, že každá úloha bude určitě spuštěna; Malá sada úloh však může v porovnání se skutečnou dobou provádění čekat na nedostatečně dlouhou dobu.

  • Nejdříve nejkratší úloha: Na základě doby provádění deklarované ve skriptu úlohy plánovač odhaduje dobu provádění úlohy. Úlohy jsou seřazené ve vzestupném pořadí doby provádění. Krátké úlohy se sice spustí po krátké době čekání, ale dlouhotrvající úlohy (nebo alespoň úlohy deklarované jako takové) se nemusí vůbec spustit.

  • Backfilling: Plánovač udržuje koncept First Come, First Serve bez toho, aby se zabránilo provádění dlouhotrvajících úloh. Plánovač spustí úlohu pouze v případech, kdy je možné spustit první úlohu ve frontě. V opačném případě plánovač prochází zbývající částí fronty a kontroluje, jestli se dá spustit jiná úloha bez rozšíření první úlohy v době čekání fronty. Pokud takovou úlohu najde, plánovač tuto úlohu spustí. Malé úlohy se obvykle setkávají s krátkými časy fronty.

Správce zdrojů

Správce prostředků výpočetního clusteru přiděluje prostředky v rámci výpočetního clusteru. Správci prostředků zodpovídají za přidělování paměti, procesoru, úložiště a šířky pásma sítě úlohám spuštěným v clusteru. Tato komponenta monitoruje využití prostředků v clusteru, detekuje všechny nečinné nebo nedostatečně využité prostředky a relokuje je do jiných úloh nebo úloh, které je vyžadují.

Přehled slurm

Slurm je opensourcový plánovač úloh a správce prostředků pro spouštění úloh v clusterech s Linuxem. Slurm poskytuje rozšiřitelnou architekturu pro správu prostředků a plánování úloh v prostředí clusteru s Linuxem. Podporuje širokou škálu typů úloh, včetně paralelních úloh, dávkových úloh a interaktivních úloh. Slurm umožňuje uživatelům odesílat úlohy prostřednictvím různých rozhraní, včetně rozhraní příkazového řádku, webového rozhraní a rozhraní API. Slurm je oblíbené řešení, které využívá řada nejvýkonnějších superpočítačů a výpočetních clusterů a je k dispozici jako možnost při použití vysokovýkonného výpočetního prostředí (HPC) v Microsoft Azure.

Slurm umožňuje shodovat odpovídající výpočetní prostředky na základě kritérií prostředků, včetně procesorů, GPU a paměti.

Plánovač úloh Slurm má následující důležité funkce:

  • Přidělí přístup k výpočetním uzlům v clusterech PROSTŘEDÍ HPC uživatelům, aby bylo možné provádět jejich úlohy.
  • Poskytuje architekturu pro spouštění, spouštění a monitorování práce na sadě přidělených uzlů.
  • Rozhodí kolize pro prostředky tím, že spravuje frontu čekajících úloh.

Úlohy Slurm

Pokud ke spuštění úlohy v clusteru prostředí HPC s Linuxem použijete Slurm, dojde k následujícím krokům vysoké úrovně:

  1. Odeslání úlohy: Prvním krokem je, že uživatel odešle úlohu plánovači Slurm vytvořením skriptu úlohy, který obsahuje požadavky na prostředky a sadu příkazů, které úloha vyžaduje.
  2. Přidělení úlohy: Další fáze zahrnuje plánovač Slurm, který zkoumá požadavky na prostředky úlohy, jako je počet uzlů, procesorů a paměť potřebných, a také všechna další omezení, jako jsou oddíly a časové limity. Na základě těchto požadavků plánovač určuje nejlepší dostupné prostředky, které se mají pro úlohu přidělit, a to vzhledem k aktuálnímu využití clusteru a dalším čekajícími úlohám.
  3. Řazení úloh do fronty: Plánovač určuje, jestli jsou požadované prostředky k dispozici. Pokud jsou prostředky okamžitě dostupné, úloha se spustí. Pokud požadované prostředky nejsou okamžitě dostupné, úloha se umístí do fronty. Plánovač průběžně vyhodnocuje úlohy ve frontě a jejich priority, aby přiděloval prostředky, jakmile budou k dispozici.
  4. Provádění úlohy: Po přidělení požadovaných prostředků k úloze se úloha Slurm spustí na přiřazených uzlech. Úlohy zadané ve skriptu se spouštějí na uzlech.
  5. Dokončení úlohy: Posledním krokem je dokončení úlohy, ve kterém se výpočetní prostředky uvolní zpět do clusteru a plánovač aktualizuje stav úlohy na dokončení. Výstup úlohy a všechny chybové zprávy, které mohly být generovány během provádění úlohy, se uloží do určených výstupních souborů.
  6. Účtování úloh a generování sestav: Slurm generuje účetní data o dokončených úlohách, včetně využití prostředků a doby provádění.

Příkazy slurm

Pomocí sady nástrojů příkazového řádku můžete provádět akce na výpočetním clusteru spravovaném přes Slurm. Tady je několik běžných uživatelských příkazů Slurm:

Příkaz Function
sacct Tento příkaz hlásí informace o monitorování úlohy a kroku úlohy, které jsou aktivní nebo dokončené.
salloc Pomocí tohoto příkazu přidělte prostředky pro úlohu v reálném čase. Umožňuje vytvořit prostředí a přijmout srun příkazy jako způsob inicializace paralelních úloh.
sattach Tento příkaz připojí standardní možnosti vstupu, výstupu a chybového signálu k aktuálně spuštěné úloze nebo kroku úlohy.
sbatch Pomocí tohoto příkazu odešlete skript úlohy pro pozdější spuštění. Tyto skripty obvykle obsahují jeden nebo více srun příkazů pro zahájení paralelních úloh.
scancel Tento příkaz použijte k přenosu souboru na potřebných uzlech.
scontrol Toto je nástroj pro správu Slurm, který umožňuje zobrazit a upravit stav slurm. Většina scontrol příkazů vyžaduje kořenová oprávnění.
sinfo Tento příkaz zobrazí informace o oddílech a uzlech, které spravuje Slurm.
sprio Tento příkaz slouží k zobrazení informací o komponentách, které mají vliv na prioritu úlohy.
squeue Tento příkaz slouží k zobrazení stavu úloh nebo kroků úlohy.
srun Pomocí tohoto příkazu odešlete úlohu ke spuštění nebo k aktivaci kroků úlohy v reálném čase. Můžete použít srun k určení požadavků na prostředky, jako je minimální a maximální počet uzlů, počet procesorů a charakteristiky uzlů.
sstat Tento příkaz slouží k zobrazení informací o prostředcích využívaných spuštěním úloh nebo kroků úloh.
strigger Pomocí tohoto příkazu můžete nakonfigurovat nebo zobrazit triggery událostí, například co dělat, když uzel selže nebo se úloha blíží časovému limitu.
sview Tento příkaz slouží k zobrazení informací o stavu úloh, oddílů a uzlů, které spravuje Slurm.

Další informace opříkazch