Begrepp för schemaläggning och automatisk skalning i CycleCloud

CycleCloud är inte en schemaläggare, utan snarare en plattform som gör det möjligt för användare att distribuera sin egen schemaläggare i Azure för att hantera och distribuera jobb till ett kluster med noder. Dessutom tillhandahåller CycleCloud ett REST-API och ett Python-bibliotek för att utveckla autoskalningskort för schemaläggare, vilket gör att dessa hanterade kluster kan storleksbeläggas upp eller ned enligt längden på jobbköer och styrningsprinciper.

Orkestreringsdiagram

Schemaläggare

En schemaläggare är en programvara som accepterar en lista över jobb (eller uppgifter) och distribuerar dessa uppgifter i pooler med tillgängliga resurser, med hänsyn till resurskraven för jobben samt beroenden och prioriteringar mellan jobb. De här jobblistorna kallas ofta köer.

CycleCloud har inbyggt stöd för ett antal vanliga schemaläggare (PBS Professional OSS, Slurm, IBM LSF, Grid Engine och HT Condor), som tillhandahåller mallar för distribution av dessa schemaläggare i Azure. Dessa mallar är standardtopologier som representerar metodtips för att skapa HPC-kluster i Azure som utnyttjar unika specialiserade funktioner som InfiniBand-nätverk med låg latens.

Dessutom skapas projekt för varje schemaläggare och används för att installera och initiera scheduler-daemoner på huvudnoder och beräkningsnoder.

Scheduler-kort

Kort som skapats för varje typ av schemaläggare spelar två primära roller: 1) aggregerade resurskrav från scheduler-köer och 2) översätter resurskraven till allokeringsbegäranden för uppsättningar av vm-storlekar i Azure. Dessa allokeringsbegäranden skapas med vissa begränsningar i åtanke, till exempel VM-kvoter, gränser för klustrets storlek och begränsningar som införts av InfiniBand-nätverkstopologin (för lämpliga VM-storlekar). I vissa aspekter liknar dessa kort en mäklare som förhandlar om efterfrågan och utbud från flera parter.

Monitor

Övervakaren är en process som körs på CycleCloud-programservern och regelbundet avsöker Azure-tjänsterna efter resurstillgänglighet i Azure-prenumerationen. Den här övervakaren tillhandahåller den här informationen till scheduler-korten för asynkron koordinator på begäran.

Nodallokerare

Nodallokeraren körs på CycleCloud-programservern. Den tar emot allokeringsbegäran från scheduler-korten via ett REST-API, etablerar de Azure-resurser som krävs för att uppfylla begäran och presenterar de etablerade resurserna tillbaka till scheduler-korten som uppsättningar noder.

Anteckning

Även om de underliggande begreppen ovan är vanliga bland schemaläggarna skiljer sig implementeringsinformationen mellan schemaläggare. Mer detaljerad information om varje implementering finns på de enskilda scheduler-sidorna.