Beskriva integrering och autoskalning av Azure CycleCloud-schemaläggare

Slutförd

Genom att använda molnflexialitet kan företag dra full nytta av Hyperskala-funktionerna i Azure samtidigt som driftkostnaden för användning av beräkningsresurser minimeras. Möjligheten att automatiskt skala mängden resurser som svar på deras användningsmönster är en viktig komponent i den flexibiliteten. I samband med Azure CycleCloud och HPC innebär detta att implementera en nära korrelation mellan resurskraven för klusterjobb och antalet klusterberäkningsnoder.

I allmänhet är det schemaläggarna som ansvarar för orkestreringen av skalning av klusternoder. Schemaläggare måste kunna förmedla sina krav till den plattform som tillhandahåller beräkningsresurser. Azure CycleCloud hjälper dig att implementera den här funktionen. I den här lektionen får du lära dig om principerna för den här implementeringen.

Vilken roll har Azure CycleCloud i autoskalning av kluster?

Azure CycleCloud underlättar distributionen av schemaläggare i Azure, som i sin tur distribuerar och hanterar jobb som körs på kluster som består av Azure-resurser. Azure CycleCloud fungerar inte som schemaläggare. I stället fungerar den som en mellanhand mellan schemaläggare och den underliggande plattformen. Azure CycleCloud förenklar också utvecklingen av funktioner för automatisk skalning för motsvarande schemaläggare genom att tillhandahålla ett REST API-baserat programmeringsgränssnitt och ett Python-baserat klientbibliotek.

Med Azure CycleCloud kan du korrelera autoskalningsbeteendet för hanterade kluster med längden på klusterjobbsköerna. Du kan ytterligare anpassa det här beteendet genom att definiera mallparametrar som styr, till exempel hur lång tid som inaktiva noder avslutas eller frekvensen för automatiska kontroller.

Alla inbyggda mallar exponerar inställningarna för automatisk skalning direkt i det grafiska Azure CycleCloud-gränssnittet. I varje fall innehåller inställningarna alternativet att ange de nedre och övre gränserna för autoskalningsintervallet, uttryckt i antalet CPU-kärnor. Den övre gränsen hjälper dig att minimera risken för oväntade avgifter. Du kan minska risken ytterligare genom att ange budgetaviseringar.

Med det lägre tröskelvärdet inställt på 0 resulterar skapandet av ett kluster i etablering av endast scheduler-huvudnoden. Men när schemaläggaren identifierar köade jobb initieras etablering av de beräkningsnoder som krävs för att köra motsvarande arbetsbelastning, upp till den gräns som du har definierat. För att stödja löst kopplade eller parallella jobb, där enskilda uppgifter körs oberoende av varandra, börjar jobben köras så snart den första noden blir tillgänglig. För nära kopplade jobb, till exempel de som använder MPI-funktionen (Message Passing Interface), är väntetiden längre, beroende på omfattningen av internodberoenden. När jobbkön är tom under den tid som överskrider den tillåtna inaktivitetstiden börjar beräkningsnoderna att fyllas på automatiskt och klustret består återigen endast av scheduler-huvudnoden.

Kommentar

De underliggande begrepp som beskrivs i den här lektionen är vanliga bland schemaläggare. Deras implementeringsinformation är dock schemaläggningsspecifik. Detaljerad information om varje implementering finns i dokumentationen för enskilda schemaläggare.

Så här integrerar du schemaläggare med automatisk skalning i Azure CycleCloud

De två primära komponenterna som implementerar integrering med autoskalning i Azure CycleCloud är Azure CycleCloud Autoscale Library och Demand Calculator.

Diagram över arkitekturen på hög nivå i Azure CycleCloud.

Autoskalningsbiblioteket för Azure CycleCloud är ett GitHub-värdbaserat Projekt med öppen källkod som gör det möjligt för Python-hjälpare att förenkla utvecklingen av autoskalning för alla schemaläggare som distribueras till Azure. Hjälparna använder Azure CycleCloud REST API för att samordna etablering av Azure-resurser. Projektet använder Python 3 och har många Python-beroenden. Men dess kärnfunktioner förlitar sig på Azure CycleCloud Python-klientbiblioteket. Autoskalning integreras med schemaläggarens huvudnoder som övervakar jobbköer. Autoskalning ökar eller minskar antalet beräkningsnoder genom att interagera med rest-API:et för automatisk skalning som körs på Azure CycleCloud-programservern.

Kalkylatorn för efterfrågan ansvarar för att utvärdera resurskrav baserat på beräkningsnoden och jobbdata som samlas in av schemaläggaren. Den här utvärderingen tar hänsyn till beräknings- och nätverksbegränsningar, till exempel den maximala klusterstorleken eller InfiniBand-relaterade gränser. De resulterande resurskraven översätts till en begäran om etablering eller avetablering av virtuella Azure-datorer av en viss storlek och konfiguration. Autoskalningsbibliotek vidarebefordrar dessa begäranden till Rest-API:et för Azure CycleCloud, som sedan levererar dem via dess dirigerator till Azure Resource Manager.

Kommentar

Även om scheduler-integreringen rymmer löst kopplade eller parallella arbetsbelastningar där hanteringen av klustrets storlek är det främsta övervägandet, stöder Azure CycleCloud också nära kopplade arbetsbelastningar, där nodernas närhet och nätverksfördröjning är kritiska.