Een Windows RDMA-cluster met HPC Pack instellen voor het uitvoeren van MPI-toepassingen

Belangrijk

Klassieke VM's worden op 1 maart 2023 buiten gebruik gesteld.

Als u IaaS-resources van ASM gebruikt, dient u de migratie uiterlijk 1 maart 2023 te voltooien. U wordt aangeraden al eerder over te schakelen om te kunnen profiteren van de vele functieverbeteringen in Azure Resource Manager.

Zie Uw IaaS-resources vóór 1 maart 2023 naar Azure Resource Manager migreren voor meer informatie.

Stel een Windows RDMA-cluster in Azure in met Microsoft HPC Pack en RDMA-compatibele HPC VM-grootten om parallelle MPI-toepassingen (Message Passing Interface) uit te voeren. Wanneer u RDMA-compatibele Windows Server-knooppunten instelt in een HPC Pack-cluster, communiceren MPI-toepassingen efficiënt via een netwerk met lage latentie, hoge doorvoer in Azure dat is gebaseerd op RDMA-technologie (Remote Direct Memory Access).

Implementatieopties voor HPC Pack-clusters

Microsoft HPC Pack is een hulpprogramma dat zonder extra kosten wordt geleverd om ON-premises HPC-clusters te maken of in Azure om Windows- of Linux HPC-toepassingen uit te voeren. HPC Pack bevat een runtime-omgeving voor de Microsoft-implementatie van de Message Passing Interface voor Windows (MS-MPI). Wanneer HPC Pack wordt gebruikt met RDMA-exemplaren met een ondersteund Windows Server-besturingssysteem, biedt HPC Pack een efficiënte optie om Windows MPI-toepassingen uit te voeren die toegang hebben tot het Azure RDMA-netwerk.

Dit artikel bevat twee scenario's en koppelingen naar gedetailleerde richtlijnen voor het instellen van een Windows RDMA-cluster met Microsoft HPC Pack 2012 R2.

  • Scenario 1. Rekenintensieve werkrolinstanties (PaaS) implementeren
  • Scenario 2. Rekenknooppunten implementeren in rekenintensieve VM's (IaaS)

Scenario 1: Rekenintensieve werkrolinstanties (PaaS) implementeren

Voeg vanuit een bestaand HPC Pack-cluster extra rekenresources toe in Azure-werkrolinstanties (Azure-knooppunten) die worden uitgevoerd in een cloudservice (PaaS). Deze functie, ook wel 'burst to Azure' van HPC Pack genoemd, ondersteunt een reeks grootten voor de rolinstanties van de werkrol. Geef bij het toevoegen van de Azure-knooppunten een van de RDMA-compatibele grootten op.

Hieronder volgen overwegingen en stappen voor het bursten naar AZURE-exemplaren die geschikt zijn voor RDMA vanuit een bestaand (meestal on-premises) cluster. Gebruik vergelijkbare procedures om werkrolinstanties toe te voegen aan een HPC Pack-hoofdknooppunt dat is geïmplementeerd in een Azure-VM.

Notitie

Zie Een hybride cluster instellen met HPC Pack voor een zelfstudie over het bursten naar Azure met HPC Pack. Let op de overwegingen in de volgende stappen die specifiek van toepassing zijn op Azure-knooppunten die geschikt zijn voor RDMA.

Burst naar Azure

Stappen

  1. Een HPC Pack 2012 R2-hoofdknooppunt implementeren en configureren

    Download het HPC Pack-installatiepakket vanuit het Microsoft Downloadcentrum. Zie Burst naar Azure Worker Instances met Microsoft HPC Pack voor vereisten en instructies voor het voorbereiden van een Azure Burst-implementatie.

  2. Een beheercertificaat configureren in het Azure-abonnement

    Configureer een certificaat om de verbinding tussen het hoofdknooppunt en Azure te beveiligen. Zie Scenario's voor het configureren van het Azure Management Certificate voor HPC Pack voor opties en procedures. Voor testimplementaties installeert HPC Pack een standaard Microsoft HPC Azure Management Certificate dat u snel kunt uploaden naar uw Azure-abonnement.

  3. Een nieuwe cloudservice en een opslagaccount maken

    Gebruik de Azure Portal om een cloudservice (klassiek) en een opslagaccount (klassiek) te maken voor de implementatie. Maak deze resources in een regio waarin de grootte van de H-serie, A8 of A9 die u wilt gebruiken beschikbaar is. Zie Azure-producten per regio.

  4. Een Azure-knooppuntsjabloon maken

    Gebruik de wizard Knooppuntsjabloon maken in HPC-clusterbeheer. Zie Een Azure-knooppuntsjabloon maken in 'Stappen voor het implementeren van Azure-knooppunten met Microsoft HPC Pack'.

    Voor de eerste tests raden we u aan om een handmatig beschikbaarheidsbeleid in de sjabloon te configureren.

  5. Knooppunten toevoegen aan de cluster

    Gebruik de wizard Knooppunt toevoegen in HPC-clusterbeheer. Zie Azure-knooppunten toevoegen aan het Windows HPC-cluster voor meer informatie.

    Wanneer u de grootte van de knooppunten opgeeft, selecteert u een van de rdma-compatibele exemplaargrootten.

    Notitie

    In elke burst naar Azure-implementatie met de rekenintensieve exemplaren implementeert HPC Pack automatisch minimaal twee RDMA-exemplaren (zoals A8) als proxyknooppunten, naast de instanties van de Azure-werkrol die u opgeeft. De proxyknooppunten maken gebruik van kernen die zijn toegewezen aan het abonnement en kosten in rekening worden gebracht, samen met de Azure-werkrolinstanties.

  6. Start (richt) de knooppunten in en breng ze online om taken uit te voeren

    Selecteer de knooppunten en gebruik de actie Starten in HPC-clusterbeheer. Wanneer het inrichten is voltooid, selecteert u de knooppunten en gebruikt u de actie Online brengen in HPC-clusterbeheer. De knooppunten zijn klaar om taken uit te voeren.

  7. Taken verzenden naar het cluster

    Gebruik HPC Pack-hulpprogramma's voor het indienen van taken om clustertaken uit te voeren. Zie Microsoft HPC Pack: Taakbeheer.

  8. De knooppunten stoppen (de inrichting ongedaan maken)

    Wanneer u klaar bent met het uitvoeren van taken, neemt u de knooppunten offline en gebruikt u de actie Stoppen in HPC-clusterbeheer.

Scenario 2: Rekenknooppunten implementeren in rekenintensieve VM's (IaaS)

In dit scenario implementeert u het HPC Pack-hoofdknooppunt en de rekenknooppunten van het cluster op VM's in een virtueel Azure-netwerk. HPC Pack biedt verschillende implementatieopties in Virtuele Azure-machines, waaronder geautomatiseerde implementatiescripts en Azure-quickstartsjablonen. De volgende overwegingen en stappen helpen u bijvoorbeeld bij het gebruik van het HPC Pack IaaS-implementatiescript om de implementatie van een HPC Pack 2012 R2-cluster in Azure te automatiseren.

Cluster in Azure-VM's

Stappen

  1. Een clusterhoofdknooppunt en rekenknooppunt-VM's maken door het IAAS-implementatiescript HPC Pack uit te voeren op een clientcomputer

    Download het HPC Pack IaaS Deployment Script-pakket vanuit het Microsoft Downloadcentrum.

    Als u de clientcomputer wilt voorbereiden, maakt u het scriptconfiguratiebestand en voert u het script uit. Zie Een HPC-cluster maken met het IAAS-implementatiescript HPC Pack.

    Zie High Performance Compute VM-grootten en let op het volgende voor overwegingen bij het implementeren van rekenknooppunten die geschikt zijn voor RDMA:

    • Virtueel netwerk: geef een nieuw virtueel netwerk op in een regio waarin de grootte van de H-serie, A8 of A9 die u wilt gebruiken beschikbaar is. Zie Azure-producten per regio.

    • Windows Server-besturingssysteem: als u RDMA-connectiviteit wilt ondersteunen, geeft u een compatibel Windows Server-besturingssysteem op, zoals Windows Server 2012 R2 voor de vm's van het rekenknooppunt.

    • Cloudservices: omdat het script gebruikmaakt van het klassieke implementatiemodel, worden de cluster-VM's geïmplementeerd met behulp van Azure-cloudservices (ServiceName instellingen in het configuratiebestand). We raden u aan uw hoofdknooppunt te implementeren in één cloudservice en uw rekenknooppunten in een andere cloudservice.

    • Grootte van hoofdknooppunt: Overweeg voor dit scenario een grootte van ten minste A4 (Extra groot) voor het hoofdknooppunt.

    • HpcVmDrivers-extensie: het implementatiescript installeert de Azure VM-agent en de HpcVmDrivers-extensie automatisch wanneer u de grootte A8- of A9-rekenknooppunten implementeert met een Windows Server-besturingssysteem. HpcVmDrivers installeert stuurprogramma's op de VM's van het rekenknooppunt, zodat ze verbinding kunnen maken met het RDMA-netwerk. Op VM's uit de RDMA-serie die geschikt zijn voor H-serie, moet u de HpcVmDrivers-extensie handmatig installeren. Zie High Performance Compute VM-grootten.

    • Clusternetwerkconfiguratie: Met het implementatiescript wordt het HPC Pack-cluster automatisch ingesteld in Topologie 5 (alle knooppunten in het bedrijfsnetwerk). Deze topologie is vereist voor alle HPC Pack-clusterimplementaties in VM's. Wijzig de clusternetwerktopologie later niet.

  2. Breng de rekenknooppunten online om taken uit te voeren

    Selecteer de knooppunten en gebruik de actie Online brengen in HPC-clusterbeheer. De knooppunten zijn klaar om taken uit te voeren.

  3. Taken verzenden naar het cluster

    Maak verbinding met het hoofdknooppunt om taken te verzenden of stel een on-premises computer in om dit te doen. Zie Taken verzenden naar een HPC-cluster in Azure voor meer informatie.

  4. Haal de knooppunten offline en stop ze (toewijzing ongedaan maken)

    Wanneer u klaar bent met het uitvoeren van taken, neemt u de knooppunten offline in HPC-clusterbeheer. Gebruik vervolgens Azure-beheerhulpprogramma's om ze af te sluiten.

MPI-toepassingen uitvoeren op het cluster

Voorbeeld: Mpipingpong uitvoeren op een HPC Pack-cluster

Als u een HPC Pack-implementatie van de RDMA-exemplaren wilt controleren, voert u de HPC Pack mpipingpong-opdracht uit op het cluster. mpipingpong verzendt pakketten gegevens tussen gekoppelde knooppunten herhaaldelijk om latentie- en doorvoermetingen en statistieken voor het RDMA-toepassingsnetwerk te berekenen. In dit voorbeeld ziet u een typisch patroon voor het uitvoeren van een MPI-taak (in dit geval mpipingpong) met behulp van de opdracht cluster mpiexec .

In dit voorbeeld wordt ervan uitgegaan dat u Azure-knooppunten hebt toegevoegd in een 'burst to Azure'-configuratie ([Scenario 1](#scenario-1.-deploy-compute-intensive-worker-role-instances-(PaaS) in dit artikel). Als u HPC Pack hebt geïmplementeerd op een cluster met Virtuele Azure-machines, moet u de syntaxis van de opdracht wijzigen om een andere knooppuntgroep op te geven en aanvullende omgevingsvariabelen in te stellen om netwerkverkeer naar het RDMA-netwerk te leiden.

Mpipingpong uitvoeren op het cluster:

  1. Open een opdrachtprompt op het hoofdknooppunt of op een correct geconfigureerde clientcomputer.

  2. Als u een schatting wilt maken van de latentie tussen paren van knooppunten in een Azure-burstimplementatie van vier knooppunten, typt u de volgende opdracht om een taak uit te voeren om mpipingpong uit te voeren met een kleine pakketgrootte en veel iteraties:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 1:100000 -op -s nul
    

    De opdracht retourneert de id van de taak die wordt verzonden.

    Als u het HPC Pack-cluster hebt geïmplementeerd op Virtuele Azure-machines, geeft u een knooppuntgroep op die VM's voor rekenknooppunten bevat die zijn geïmplementeerd in één cloudservice en wijzigt u de mpiexec-opdracht als volgt:

    job submit /nodegroup:vmcomputenodes /numnodes:4 mpiexec -c 1 -affinity -env MSMPI_DISABLE_SOCK 1 -env MSMPI_PRECONNECT all -env MPICH_NETMASK 172.16.0.0/255.255.0.0 mpipingpong -p 1:100000 -op -s nul
    
  3. Wanneer de taak is voltooid, typt u het volgende om de uitvoer weer te geven (in dit geval de uitvoer van taak 1 van de taak)

    task view <JobID>.1
    

    waarbij <JobID> de id is van de taak die is verzonden.

    De uitvoer bevat latentieresultaten die vergelijkbaar zijn met het volgende.

    Ping ponglatentie

  4. Als u de doorvoer tussen paren van Azure-burstknooppunten wilt schatten, typt u de volgende opdracht om een taak te verzenden om mpipingpong uit te voeren met een grote pakketgrootte en een paar iteraties:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 4000000:1000 -op -s nul
    

    De opdracht retourneert de id van de taak die wordt verzonden.

    Wijzig de opdracht op een HPC Pack-cluster dat is geïmplementeerd op Virtuele Azure-machines, zoals vermeld in stap 2.

  5. Wanneer de taak is voltooid, typt u het volgende om de uitvoer weer te geven (in dit geval de uitvoer van taak 1 van de taak):

    task view <JobID>.1
    

    De uitvoer bevat doorvoerresultaten die vergelijkbaar zijn met de volgende.

    Ping pong doorvoer

Overwegingen voor MPI-toepassingen

Hieronder volgen overwegingen voor het uitvoeren van MPI-toepassingen met HPC Pack in Azure. Sommige zijn alleen van toepassing op implementaties van Azure-knooppunten (werkrolexemplaren die zijn toegevoegd in een burst-naar-Azure-configuratie).

  • Werkrolexemplaren in een cloudservice worden periodiek opnieuw ingedeeld zonder kennisgeving door Azure (bijvoorbeeld voor systeemonderhoud of in het geval dat een exemplaar uitvalt). Als een exemplaar opnieuw wordt ingerichte tijdens het uitvoeren van een MPI-taak, verliest het exemplaar de gegevens en keert deze terug naar de status toen deze voor het eerst werd geïmplementeerd, waardoor de MPI-taak kan mislukken. Hoe meer knooppunten u gebruikt voor één MPI-taak en hoe langer de taak wordt uitgevoerd, hoe groter de kans dat een van de exemplaren opnieuw wordt geprovisioneerd terwijl een taak wordt uitgevoerd. Houd er ook rekening mee als u één knooppunt in de implementatie als bestandsserver aanwijst.

  • Als u MPI-taken wilt uitvoeren in Azure, hoeft u de RDMA-compatibele exemplaren niet te gebruiken. U kunt elke instantiegrootte gebruiken die wordt ondersteund door HPC Pack. De rdma-compatibele exemplaren worden echter aanbevolen voor het uitvoeren van relatief grootschalige MPI-taken die gevoelig zijn voor de latentie en de bandbreedte van het netwerk dat de knooppunten verbindt. Als u andere grootten gebruikt om latentie- en bandbreedtegevoelige MPI-taken uit te voeren, raden we u aan kleine taken uit te voeren, waarbij één taak op slechts een paar knooppunten wordt uitgevoerd.

  • Toepassingen die zijn geïmplementeerd in Azure-exemplaren, zijn onderhevig aan de licentievoorwaarden die zijn gekoppeld aan de toepassing. Neem contact op met de leverancier van een commerciële toepassing, voor licentieverlening of andere beperkingen voor het uitvoeren van die toepassing in de cloud. Niet alle leveranciers bieden licenties waarbij u betaalt naar gebruik.

  • Azure-exemplaren moeten verder worden ingesteld voor toegang tot on-premises knooppunten, shares en licentieservers. Als u bijvoorbeeld de Azure-knooppunten toegang wilt geven tot een on-premises licentieserver, kunt u een site-naar-site virtueel Azure-netwerk configureren.

  • Als u MPI-toepassingen wilt uitvoeren op Azure-exemplaren, registreert u elke MPI-toepassing bij Windows Firewall op de exemplaren door de opdracht hpcfwutil uit te voeren. Hierdoor kan MPI-communicatie plaatsvinden op een poort die dynamisch wordt toegewezen door de firewall.

    Notitie

    Voor burst-naar-Azure-implementaties kunt u ook een firewalluitzonderingsopdracht configureren om automatisch uit te voeren op alle nieuwe Azure-knooppunten die aan uw cluster worden toegevoegd. Nadat u de hpcfwutil-opdracht hebt uitgevoerd en hebt gecontroleerd of uw toepassing werkt, voegt u de opdracht toe aan een opstartscript voor uw Azure-knooppunten. Zie Een opstartscript gebruiken voor Azure-knooppunten voor meer informatie.

  • HPC Pack maakt gebruik van de omgevingsvariabele CCP_MPI_NETMASK cluster om een bereik van acceptabele adressen voor MPI-communicatie op te geven. Vanaf HPC Pack 2012 R2 is de omgevingsvariabele CCP_MPI_NETMASK cluster alleen van invloed op MPI-communicatie tussen rekenknooppunten die lid zijn van een domein (on-premises of in Azure-VM's). De variabele wordt genegeerd door knooppunten die in een burst zijn toegevoegd aan de Azure-configuratie.

  • MPI-taken kunnen niet worden uitgevoerd in Azure-exemplaren die zijn geïmplementeerd in verschillende cloudservices (bijvoorbeeld in burst naar Azure-implementaties met verschillende knooppuntsjablonen of Azure VM-rekenknooppunten die zijn geïmplementeerd in meerdere cloudservices). Als u meerdere Azure-knooppuntimplementaties hebt die zijn gestart met verschillende knooppuntsjablonen, moet de MPI-taak slechts op één set Azure-knooppunten worden uitgevoerd.

  • Wanneer u Azure-knooppunten toevoegt aan uw cluster en deze online brengt, probeert de HPC Job Scheduler-service onmiddellijk taken op de knooppunten te starten. Als slechts een deel van uw workload kan worden uitgevoerd in Azure, moet u ervoor zorgen dat u taaksjablonen bijwerkt of maakt om te definiëren welke taaktypen in Azure kunnen worden uitgevoerd. Als u er bijvoorbeeld voor wilt zorgen dat taken die zijn verzonden met een taaksjabloon alleen worden uitgevoerd op Azure-knooppunten, voegt u de eigenschap Node Groups toe aan de taaksjabloon en selecteert u AzureNodes als de vereiste waarde. Als u aangepaste groepen wilt maken voor uw Azure-knooppunten, gebruikt u de Add-HpcGroup HPC PowerShell-cmdlet.

Volgende stappen