Popis integrace Slurm s Azure CycleCloudem
Na konci této lekce byste měli být schopni popsat, jak se Slurm integruje s Azure CycleCloudem, a popsat klíčové oblasti integrace mezi Slurmem a Azure CycleCloudem.
Co je Azure CycleCloud?
Azure CycleCloud je nástroj pro nasazení clusterů PROSTŘEDÍ HPC v Azure a správu jejich úloh. Nabízí širokou škálu funkcí PROSTŘEDÍ HPC, včetně:
- Nasazení clusterů HPC založené na šablonách: Azure CycleCloud poskytuje integrované přizpůsobitelné šablony, které nasazují nejběžnější plánovače clusterů, včetně Slurm, OpenPBS, LSF, Grid Engine a HTCondor. Mnoho dalších předdefinovaných šablon, které můžete importovat do instance Azure CycleCloud, jsou k dispozici v úložišti CycleCloud Na GitHubu.
- Ruční a automatizované škálování uzlů clusteru: Azure CycleCloud umožňuje ruční a automatizované horizontální škálování spravovaných clusterů podle délky front úloh a zásad správného řízení. Nabízí také rozhraní REST API pro vývoj adaptérů automatického škálování pro vlastní plánovače.
- Konfigurace uzlů prostřednictvím skriptů cloud-init: Azure CycleCloud podporuje správu konfigurace na základě vlastních skriptů, které se spouští v uzlech spravovaného clusteru před všemi jinými úlohami konfigurace specifické pro CycleCloud.
- Správa interního a externího úložiště clusteru: Azure CycleCloud umožňuje nakonfigurovat úložiště clusteru zřízením, připojením a formátováním spravovaných disků Azure a úložiště připojené k síti, jako jsou servery NFS nebo clustery BeeGFS.
- Monitorování, protokolování a upozorňování: Azure CycleCloud nabízí integrované monitorování clusteru a integruje se se službou Azure Monitor. Do Log Analytics je také možné ukládat data protokolů z clusterů CycleCloud a vytvářet vlastní řídicí panely metrik. Můžete také vytvořit vlastní upozornění a e-mailová oznámení aktivovaná telemetrickými daty. Protokolují se všechny aktivity Azure CycleCloud.
- Ověřování a autorizace: Azure CycleCloud podporuje integrované místní ověřování. Alternativně ji můžete integrovat se službami Doména služby Active Directory Services (AD DS) nebo jinými zprostředkovateli identit založenými na protokolu LDAP (Lightweight Directory Access Protocol). Ve výchozím nastavení mají místně definovaní uživatelé přístup k operačnímu systému na uzlech spravovaného clusteru, ale je možné spravovat uživatele clusteru samostatně. Ke správě prostředků v předplatném Azure můžete použít instanční objekt Microsoft Entra nebo spravovanou identitu.
- Generování sestav a ovládací prvky nákladů téměř v reálném čase: Azure CycleCloud sleduje využití clusteru a odhaduje odpovídající náklady. Tato funkce umožňuje nastavit upozornění rozpočtu, která se aktivují, když náklady na cluster překročí zadanou peněžní částku. Azure CycleCloud se také integruje se službou Microsoft Cost Management.
Azure CycleCloud a Azure Batch
Azure CycleCloud a Azure Batch jsou služby Azure navržené pro správu a spouštění rozsáhlých paralelních a vysoce výkonných výpočetních úloh v cloudu. Tyto služby se liší v cílových skupinách, sadách funkcí a případech použití.
Azure CycleCloud se zaměřuje na vytváření, správu a optimalizaci clusterů HPC a HTC v Azure. CycleCloud cílí na úlohy HPC a HTC specifické pro doménu, jako jsou výpočetní dynamika tekutin, genomické a technické simulace. CycleCloud podporuje různé plánovače clusterů, jako je Slurm, Grid Engine, LSF a HTCondor. Integruje se také se službami Azure, jako je Azure Blob Storage, Azure Spravované disky a Azure NetApp Files pro řešení úložiště.
Azure Batch je spravovaná služba navržená pro spouštění rozsáhlých paralelních a dávkových úloh zpracování v Azure. Azure Batch je vhodný pro různé typy úloh dávkového zpracování, jako je zpracování dat, vykreslování a trénování modelu strojového učení. Azure Batch se stará o správu prostředků, plánování úloh a škálování výpočetních uzlů na základě požadavků na úlohy.
Azure CycleCloud je speciálně navržený pro úlohy HPC a HTC s podporou více plánovačů clusterů, zatímco Azure Batch je obecnější a podporuje různé typy paralelních a dávkových úloh zpracování.
Principy oddílů HPC a HTC
Oddíl Azure CycleCloud je logické seskupení výpočetních uzlů s konkrétní konfigurací, účelem nebo typem úlohy. Termíny oddíly HPC a oddíl HTC odkazují na oddíly nakonfigurované pro zpracování úloh vysokovýkonné výpočetní prostředí a vysokovýkonné výpočetní úlohy.
Oddíly prostředí HPC používají k provádění složitých úloh velký počet virtuálních počítačů založených na procesoru nebo GPU. HTC je architektura, která využívá mnoho výpočetních prostředků po dlouhou dobu k provádění velkého počtu volně propojených úloh. Oddíly prostředí HPC můžete použít v případě, že potřebujete provádět rozsáhlé a složité výpočty, například ty, které jsou součástí vědeckých a technických simulací.
Oddíl HTC využívá velký počet uzlů virtuálních počítačů založených na PROCESORu nebo GPU k řešení složitých matematických úloh, které vyžadují úzkou a rychlou komunikaci. Úlohy HTC jsou obvykle nezávislé, sekvenční a dají se naplánovat na různých výpočetních prostředcích napříč několika lokalitami. Úlohy PROSTŘEDÍ HPC jsou obvykle paralelní, vzájemně závislé a musí běžet v jedné lokalitě s propojením s nízkou latencí. HTC je vhodný pro zpracování velkých objemů menších úloh a je vhodný pro dávkové zpracování úloh náročných na data, které je možné rozdělit na malé prvky. Dávkové zpracování v HTC umožňuje zpracovávat velké objemy dat nebo výpočetních úloh jejich rozdělením do menších, spravovatelných skupin nazývaných dávky. Clustery zpracovávají tyto dávky paralelně přidělením každé dávky do jiného uzlu ve výpočetním clusteru.
V cloudových prostředích, jako je Azure CycleCloud, může HTC a HPC běžet na stejné architektuře clusteru.
Implementace Azure CycleCloudu
CycleCloud se implementuje jako webová aplikace založená na Linuxu, kterou můžete nainstalovat do libovolného umístění, ze kterého budete mít přístup ke svému prostředí Azure. Nejjednodušší způsob, jak ho nastavit, je nasazením virtuálního počítače Azure pomocí odpovídající image Azure Marketplace s možností automatizace nasazení pomocí šablony Azure Resource Manageru (ARM). Alternativně můžete použít yum
nebo apt
balíčky nebo image kontejneru dostupnou ve službě Container Registry od Microsoftu.
Během počáteční konfigurace máte možnost poskytnout klíč SSH pro zabezpečení přístupu k operačnímu systému hostujícímu aplikaci CycleCloud a následně nasazeným uzlům clusteru. Pokud chcete aplikaci CycleCloud povolit interakci s ARM, budete muset zvolit identitu Microsoft Entra, která bude poskytovat kontext zabezpečení pro tuto interakci, a přiřadit jí dostatečná oprávnění v cílovém předplatném Azure pomocí řízení přístupu na základě role (RBAC). Tato identita může mít formu instančního objektu nebo pokud hostujete aplikaci Azure CycleCloud na virtuálním počítači Azure, spravovanou identitu.
Instance Azure CycleCloud také vyžaduje účet úložiště Azure a doprovodný kontejner objektů blob. Tento kontejner, označovaný jakolocker, poskytuje pracovní oblast pro nasazování projektů do uzlů clusteru.
Po instalaci poskytuje aplikace Azure CycleCloud grafické uživatelské rozhraní, které umožňuje uživateli spravovat a monitorovat systémy HPC a rozhraní příkazového řádku (CLI), které usnadňuje automatizaci a integraci CycleCloudu do stávajících pracovních postupů. Rozhraní příkazového řádku můžete také použít k importu šablon, automatizaci zřizování clusterů a provádění pokročilejších úloh správy.
Principy automatického škálování clusteru CycleCloud
Azure CycleCloud usnadňuje nasazování plánovačů v Azure, které zase distribuují a spravují úlohy spuštěné v clusterech složených z prostředků Azure. Azure CycleCloud nefunguje jako plánovač. Místo toho funguje jako zprostředkovatel mezi plánovači a podkladovou platformou. Azure CycleCloud také zjednodušuje vývoj funkcí automatického škálování pro odpovídající plánovače tím, že poskytuje programovací rozhraní založené na rozhraní REST API a klientskou knihovnu založenou na Pythonu.
Azure CycleCloud umožňuje korelovat chování automatického škálování spravovaných clusterů s délkou front úloh clusteru. Toto chování můžete dále přizpůsobit definováním parametrů šablony, které řídí (například) dobu, po které se nečinné uzly ukončí, nebo četnost kontrol automatického dokončení.
Všechny integrované šablony zveřejňují nastavení automatického škálování přímo v grafickém rozhraní Azure CycleCloud. V každém případě nastavení zahrnují možnost určit dolní a horní limity rozsahu automatického škálování vyjádřený počtem jader procesoru. Horní limit vám pomůže minimalizovat možnost neočekážených poplatků. Toto riziko můžete dále zmírnit nastavením upozornění rozpočtu.
Když je nižší prahová hodnota nastavená na 0, vytvoření clusteru způsobí zřízení pouze hlavního uzlu plánovače. Když však plánovač zjistí úlohy ve frontě, zahájí zřizování výpočetních uzlů, které jsou nezbytné ke spuštění odpovídající úlohy, až do vámi definovaného limitu. Pro podporu volně propojených nebo paralelních úloh, kdy se jednotlivé úkoly provádějí nezávisle na sobě, se úlohy spustí, jakmile bude k dispozici první uzel. U úzce propojených úloh, jako jsou úlohy používající funkci MPI (Message Passing Interface), je doba čekání delší v závislosti na rozsahu závislostí mezi uzly. Jakmile bude fronta úloh po dobu delší než povolená doba nečinnosti prázdná, začnou se výpočetní uzly automaticky nastopovat a váš cluster se bude znovu skládat pouze z hlavního uzlu plánovače.
Integrace slurm s CycleCloudem
Slurm se službou Azure CycleCloud můžete integrovat nastavením clusteru založeného na slurmu v CycleCloudu, kde CycleCloud spravuje základní infrastrukturu a Slurm se stará o plánování úloh a správu prostředků.
Slurm se integruje s Azure CycleCloudem následujícím způsobem:
- Konfigurace clusteru: Při vytváření nového clusteru v Azure CycleCloudu můžete jako plánovač clusteru zvolit Slurm. To znamená, že CycleCloud nakonfiguruje prostředky clusteru (například virtuální počítače, úložiště, sítě) a nasadí plánovač Slurm do hlavního uzlu clusteru (nebo uzlu kontroleru).
-
Nasazení clusteru Azure CycleCloud nasadí cluster Slurm v Azure a vytvoří potřebné virtuální počítače pro hlavní uzel a výpočetní uzly. Hlavní uzel spouští proces démon kontroleru Slurm (
slurmctld
) a výpočetní uzly spouští proces démon Slurm (slurmd
), který je zodpovědný za provádění úloh. CycleCloud nastaví prostředky sítě a úložiště a nakonfiguruje cluster Slurm podle zadaných nastavení. - Automatické škálování: Azure CycleCloud může dynamicky škálovat clustery Slurm přidáním nebo odebráním výpočetních uzlů na základě požadavků na úlohy a definovaných zásad automatického škálování. To pomáhá optimalizovat využití prostředků a řídit náklady. Když se odesílají nové úlohy a prostředky nejsou dostatečné, Může CycleCloud automaticky zřídit další výpočetní uzly a přidat je do clusteru Slurm. Podobně když se zatížení sníží, může CycleCloud automaticky odebrat nečinné výpočetní uzly, aby se ušetřily náklady.
- Monitorování a správa: Azure CycleCloud poskytuje funkce monitorování a správy pro cluster Slurm, jako je sledování výkonu clusteru, využití prostředků a stav úlohy. Můžete také spravovat životní cyklus clusteru, spustit nebo zastavit cluster a podle potřeby použít aktualizace.
-
Odeslání úlohy: Úlohy můžete odeslat do clusteru Slurm pomocí standardních příkazů Slurm, jako je
sbatch
,srun
asalloc
. Tyto úlohy se pak naplánují a spustí na virtuálních počítačích Azure, které tvoří výpočetní uzly clusteru Slurm.