CycleCloud: Kernconcepten

Een HPC-systeem (High Performance Computing) is een groep rekenresources die worden ondersteund door krachtige bestandssystemen en onderling zijn verbonden door netwerken met lage latentie. Deze rekenresources worden meestal beheerd door HPC Schedulers, softwaretoepassingen die taken plannen.

Het bouwen van afzonderlijke HPC-systemen in Azure vanuit basisinfrastructuureenheden zoals Virtual Machines, schijven en netwerkinterfaces kan omslachtig zijn, met name als deze resources kortstondig zijn en alleen bestaan gedurende de tijd die nodig is om de opgegeven HPC-taak op te lossen. Daarnaast willen operators meerdere, afzonderlijke HPC-omgevingen maken die kunnen worden afgestemd op verschillende bedrijfseenheden, onderzoeksteams of individuen. Het beheren van deze meerdere HPC-systemen kan operationeel ingewikkeld zijn.

Wat is CycleCloud?

Azure CycleCloud is een hulpprogramma waarmee HPC-systemen in Azure kunnen worden gebouwd. Deze systemen worden zo ingedeeld dat ze een elastische grootte hebben op basis van de HPC-taken die worden uitgevoerd, zonder het gedoe van het beheren van basisbouwstenen van Azure. CycleCloud is ontworpen door een team van ervaren HPC-professionals voor HPC-beheerders en -gebruikers, met name gebruikers die op zoek zijn naar build HPC-systemen in Azure die lijken op een interne HPC-infrastructuur waarmee ze bekend zijn.

Indelingsdiagram

Operationeel is CycleCloud een toepassingsserver die is geïnstalleerd in een Linux-VM in Azure of op een on-premises server die toegang heeft tot Azure-API's en -resources. CycleCloud verwerft en richt Azure-VM's in om CycleCloud-clusters te maken die planners en gebruikerstoepassingen kunnen integreren. CycleCloud biedt ook integraties voor automatisch schalen voor een aantal HPC-planners en een CycleCloud-agent die wordt uitgevoerd op Azure-VM's.

Toepassingsserver

Deze toepassingsserver biedt:

  1. Een REST API voor het maken en beheren van HPC-systemen in Azure.
  2. Een grafische gebruikersinterface waarmee een gebruiker HPC-systemen kan beheren en bewaken.
  3. Een CLI die de integratie van CycleCloud in bestaande werkstromen vereenvoudigt.
  4. Een intern NoSQL-gegevensarchief dat de cluster- en knooppuntstatus in de cache opslaat.
  5. Een toewijzings- en indelingssysteem voor het verkrijgen en beheren van Azure-VM's
  6. Een knooppuntbewakingssysteem voor bestaande VM's dat waarschuwingen over statuswijzigingen waarschuwt.

Integraties

CycleCloud biedt ook een aantal integraties in algemene planners en de Azure-VM's. De bieden:

  1. Een knooppuntvoorbereidings- en configuratiesysteem voor het converteren van een ingerichte VM naar een HPC-knooppunt.
  2. Automatisch schalen voor HPC-planners waarmee hpc-planningstaakvereisten worden omgezet in Azure-resources.

Wat kan CycleCloud doen

CycleCloud is gericht op HPC-operators (beheerders en gebruikers) die HPC-systemen in Azure implementeren en die de infrastructuur die ze intern hebben uitgevoerd, willen repliceren, van de HPC-planner tot koppelpunten van het bestandssysteem voor toepassingsinstallaties en gegevenstoegang. Deze gebruikers kijken met name naar ondersteunende toepassingen, werkstroomengines en rekenkundige pijplijnen zonder dat ze hun interne processen opnieuw hoeven te ontwikkelen.

CycleCloud biedt een uitgebreide en declaratieve syntaxis waarmee gebruikers hun HPC-systeem kunnen beschrijven, van de clustertopologie (het aantal en typen clusterknooppunten), tot de koppelpunten en toepassingen die op elk knooppunt worden geïmplementeerd. CycleCloud is ontworpen om te werken met HPC-planners zoals PBSPro, Slurm, IBM LSF, Grid Engine en HT Condor, zodat gebruikers in elke planner verschillende wachtrijen kunnen maken en deze kunnen toewijzen aan rekenknooppunten van verschillende VM-grootten in Azure. Daarnaast zijn invoegtoepassingen voor automatische schaalaanpassing geïntegreerd met de hoofdknooppunten van de scheduler die luisteren naar taakwachtrijen in elk systeem en dienovereenkomstig de grootte van het rekencluster aanpassen door te communiceren met de REST API voor automatische schaalaanpassing die wordt uitgevoerd op de toepassingsserver.

Naast het inrichten en maken van HPC-knooppunten biedt CycleCloud ook een framework voor het voorbereiden en configureren van een virtuele machine, in feite een systeem voor het converteren van een lege VM naar een functioneel onderdeel van een HPC-systeem. Via dit framework kunnen gebruikers last-mile-configuratie uitvoeren op een VM.

Daarnaast biedt CycleCloud de volgende functies:

  • Gebruikerstoegang

    CycleCloud wordt geleverd met ingebouwde ondersteuning voor het maken van lokale gebruikersaccounts op elk knooppunt van een HPC-systeem. Met dit systeem kan gebruikerstoegang worden beheerd via één beheervlak zonder een adreslijstservice te implementeren.

  • Controle

    Metrische gegevens op knooppuntniveau worden verzameld en weergegeven in de CycleCloud-gebruikersinterface. Deze zijn handig voor het bewaken van de belasting van het systeem en kunnen worden gekoppeld aan rapportage- en waarschuwingsservices.

  • Logboekregistratie

    CycleCloud biedt een systeem voor het vastleggen van activiteiten en gebeurtenissen op knooppunt- en toepassingsserverniveau.

  • Draagbaarheid

    Het systeem vereist niet dat een specifieke VM-installatiekopieën of een specifiek besturingssysteem worden gebruikt. CycleCloud ondersteunt de belangrijkste Windows- en Linux-besturingssystemen op HPC-knooppunten. Daarnaast kunnen gebruikers hun eigen VM-installatiekopieën bouwen en deze gebruiken in hun HPC-systeem.

  • Infrastructuur als code

    Omdat alles wat in CycleCloud wordt gemaakt, wordt gedefinieerd in sjablonen en configuratiescripts, zijn HPC-systemen die via CycleCloud worden geïmplementeerd, herhaalbaar en draagbaar. Dit biedt operators consistentie bij het implementeren van HPC-systemen in verschillende omgevingen: Sandbox, Ontwikkeling, Testen en Productie. Operators kunnen ook identieke HPC-systemen implementeren voor verschillende bedrijfsgroepen of teams om accountingproblemen te scheiden.

  • Losjes gekoppelde of nauw gekoppelde workloads

    HPC-clusters die door CycleCloud zijn gemaakt, zijn niet alleen ontworpen om losjes gekoppelde of gênant parallelle taken te ondersteunen, waarbij schaal (de grootte van het cluster) de belangrijkste zorg is. CycleCloud-clusters zijn ook ontworpen met de Infiniband-backbone van Azure in gedachten, en bieden ondersteuning voor nauw gekoppelde of MPI-workloads waarbij de nabijheid van knooppunten en netwerklatentie essentieel zijn. Deze uitbreidingsconcepten en nauw gekoppelde concepten zijn ingebakken in de scheduler-integraties die CycleCloud ondersteunt.