CycleCloud-plannings- en automatische schaalaanpassingsconcepten

CycleCloud is geen scheduler, maar een platform waarmee gebruikers hun eigen scheduler in Azure kunnen implementeren om taken te beheren en te distribueren in een cluster van knooppunten. Daarnaast biedt CycleCloud een REST API en een Python-bibliotheek voor het ontwikkelen van adapters voor automatisch schalen voor planners, waardoor deze beheerde clusters omhoog of omlaag kunnen worden geschaald op basis van de lengte van taakwachtrijen en governancebeleidsregels.

Indelingsdiagram

Planners

Een scheduler is een software die een lijst met taken (of taken) accepteert en deze taken distribueert in pools met beschikbare resources, rekening houdend met de resourcevereisten van de taken en afhankelijkheden en prioriteiten tussen taken. Deze lijsten met taken worden vaak wachtrijen genoemd.

CycleCloud wordt geleverd met ingebouwde ondersteuning voor een aantal veelgebruikte planners (PBS Professional OSS, Slurm, IBM LSF, Grid Engine en HT Condor), die sjablonen bieden voor het implementeren van deze planners in Azure. Deze sjablonen zijn standaardtopologieën, die best practices vertegenwoordigen voor het bouwen van HPC-clusters in Azure die gebruikmaken van unieke gespecialiseerde functies, zoals InfiniBand-netwerken met lage latentie.

Daarnaast worden projecten gemaakt voor elke scheduler en gebruikt voor het installeren en initialiseren van scheduler-daemons op hoofdknooppunten en rekenknooppunten.

Scheduler-adapters

Adapters die voor elk type planner zijn gemaakt, spelen twee primaire rollen: 1) aggregeren van resourcevereisten uit scheduler-wachtrijen en 2) vertalen de resourcevereisten in toewijzingsaanvragen voor sets met Azure-VM-grootten. Deze toewijzingsaanvragen worden samengesteld met bepaalde beperkingen in het achterhoofd, bijvoorbeeld VM-quota, limieten voor de grootte van het cluster en limieten die worden opgelegd door de InfiniBand-netwerktopologie (voor de juiste VM-grootten). In bepaalde aspecten lijken deze adapters op een broker die onderhandelt over vraag en aanbod van meerdere partijen.

Monitor

De monitor is een proces dat wordt uitgevoerd in de CycleCloud-toepassingsserver en periodiek de Azure-services controleert op de beschikbaarheid van resources in het Azure-abonnement. Deze monitor biedt deze informatie aan de scheduler-adapters voor vraagbrokering.

Knooppunt allocator

De knooppunt allocator wordt uitgevoerd in de CycleCloud-toepassingsserver. Het ontvangt de toewijzingsaanvraag van de scheduler-adapters via een REST API, richt de Azure-resources in die nodig zijn om aan de aanvraag te voldoen en presenteert de ingerichte resources als sets knooppunten aan de planneradapters.

Notitie

Hoewel de bovenstaande onderliggende concepten gangbaar zijn bij de planners, verschillen de implementatiedetails per planner. Zie de afzonderlijke scheduler-pagina's voor meer gedetailleerde informatie over elke implementatie.