HPC-cluster geïmplementeerd in de cloud

Pipelines
Blob Storage
Batch
Monitor

Oplossingsidee

Als u wilt dat we dit artikel uitbreiden met meer informatie, zoals mogelijke use cases, alternatieve services, implementatieoverwegingen of prijsinformatie, laat het ons dan weten met GitHub Feedback!

HPC-toepassingen (High Performance Computing) kunnen worden geschaald naar duizenden rekenkernen, on-premises big compute uitbreiden of worden uitgevoerd als een 100% cloudeigen oplossing. Deze HPC-oplossing is gebouwd op de beheerde Azure-service: Azure Batchen geïnitieerd door een Azure Pipelines-taak. Deze services worden uitgevoerd in een omgeving met hoge beschikbaarheid, gepatcht en ondersteund, zodat u zich kunt richten op uw oplossing in plaats van op de omgeving waarin ze worden uitgevoerd.

Architectuur

Architectuurdiagram Download een SVG van deze architectuur.

De oplossing bestaat uit de volgende stappen:

  1. Azure Pipelines start een pijplijn die het codeproject van het team compileert en als een uitvoerbaar bestand in een Azure Storage
  2. De pijplijn-taak wordt voortgezet door enkele verwerkingsgegevens in het opslagaccount te laden.
  3. Ten slotte vraagt Azure Pipelines aan dat de Azure Batch service de verwerkings job start en de pijplijn voltooit.
  4. De Azure Batch-service kopieert de uitvoerbare bestanden van het programma en voert gegevens uit de opslag in en wijst deze toe aan een pool met rekenknooppunten
  5. De Batch-service voert taak- en taakbeheer uit voor de pool, en voert taken opnieuw uit of wijs taken opnieuw toe wanneer de knooppunten hun werk voltooien.
  6. Terwijl de rekenknooppunten werken, Azure Monitor prestatiegegevens uit de pool (CPU, geheugen, schijf-I/O) en logboekbestanden. Het team kan deze telemetrie bestuderen om in de toekomst betere taken te bouwen.
  7. Wanneer de rekenknooppunten taken voltooien, voeren ze de programmagegevens terug naar Azure Storage voor de beoordeling van het team.

Onderdelen

  • Azure Pipelines bouwt en test codeprojecten en initieert de HPC-taken op de Azure Batch service.
  • Azure Storage bevatten HPC-gegevens en uitvoerbare bestanden die in een taak worden gebruikt.
  • Azure Batch plant de jobs en taken op een groot aantal knooppunten en beheert alle rekenbronnen.
  • Azure Virtual Machines uitgevoerd als werksters en voert de rekentaken uit.
  • Virtual Network biedt IP-connectiviteit tussen de rekenbronnen en de andere cloudservices, boven en buiten systeemeigen Infiniband- of RDMA-communicatie.
  • Azure Monitor verzamelt metrische prestatiegegevens en logboeken van de cloudbronnen voor rapporten, waarschuwingen en geautomatiseerde reacties.

Overwegingen

Batch-rekengroepen hoeven geen basishardware te bevatten. Gespecialiseerde virtuele machines met GPU-processors en geavanceerde netwerken kunnen worden gebruikt door Azure Batch. Voor GPU geoptimaliseerde virtuele machines met NVIDIA Tesla GPU's en Infiniband-netwerken met hoge doorvoer zijn beschikbaar.

Batch-rekengroepen kunnen automatisch wordengeschaald, waardoor het aantal knooppunten in de pool toeneemt en afneemt naarmate de hoeveelheid werk verandert. In plaats van te betalen voor niet-gebruikte poolleden, kan automatisch schalen de rekenkosten van een taak verlagen tot alleen de resources die taken uitvoeren.

Prijzen

Als u de kosten van het uitvoeren van dit scenario wilt verkennen, gebruikt u de Azure-prijscalculator , waarmee alle Azure-services vooraf worden geconfigureerd.

Azure Batch is een gratis service en klanten betalen alleen voor de onderliggende kosten voor virtuele machines, opslag en netwerken. In deze oplossing zijn er extra kosten voor de Azure Pipelines en Azure Monitor services. Specifiek voor Azure Batch is echter een optie om grafische renderingsoftware (zoals Autodesk Maya en Chaos Group V-Ray) per minuut te kopen. Zie Azure Batch prijzen voor meer informatie.

Volgende stappen