Databehandling med höga prestanda (HPC) i Azure

Introduktion till HPC

I databehandling med höga prestanda (HPC), även kallat ”Big Compute”, används ett stort antal CPU- eller GPU-baserade datorer för att lösa komplexa matematiska uppgifter.

HPC används inom många branscher för att lösa svåraste problem. Det kan vara arbetsbelastningar som:

  • Genomics
  • Olja- och gassimuleringar
  • Finance
  • Halvledardesign
  • Teknik
  • Vädermodellering

Hur är HPC annorlunda i molnet?

En av de främsta skillnaderna mellan ett lokalt HPC-system och ett i molnet är möjligheten att dynamiskt lägga till och ta bort resurser när de behövs. Med dynamisk skalning är beräkningskapaciteten inte längre en flaskhals, utan kunderna kan storleksanpassa sin infrastruktur efter verksamhetens behov.

I följande artiklar finns mer information om funktionen för dynamisk skalning.

Checklista för implementering

När du vill implementera din HPC-lösning i Azure bör du först läsa igenom följande avsnitt:

Infrastruktur

Det finns ett antal infrastrukturkomponenter som är nödvändiga när du skapar ett HPC-system. Beräkning, lagring och nätverk utgör de underliggande komponenterna, oavsett hur du väljer att hantera dina HPC-arbetsbelastningar.

Exempel på HPC-arkitekturer

Det finns ett antal olika sätt att utforma och implementera en HPC-arkitektur på Azure. HPC-program kan skalas till tusentals databehandlingskärnor, utökas till lokala klister och köras som en 100 %-ig molnlösning.

I följande scenarier beskrivs några vanliga sätt att skapa HPC-lösningar.

  • Diagram som visar exempel på HPC-arkitektur för datorstödda tekniska tjänster i Azure.

    Datorstödda tekniska tjänster i Azure

    Tillhandahåll en programvara som en tjänst (SaaS)-plattform för datorstödd teknik (CAE) i Azure.

  • Diagram som visar exempel på HPC-arkitektur för simuleringar av beräkningsdynamik i Azure.

    Simulationer av beräkningsströmningsdynamik (CFD) i Azure

    Kör simulationer av beräkningsströmningsdynamik (CFD) i Azure.

  • Diagram som visar exempel på HPC-arkitektur för 3D-videoåtergivning i Azure.

    3D-videoåtergivning i Azure

    Kör inbyggda HPC-arbetsbelastningar i Azure med hjälp av Azure Batch-tjänsten

Compute

Azure erbjuder en mängd storlekar som är optimerade för båda PROCESSOR & GPU-intensiva arbetsbelastningar.

CPU-baserade virtuella datorer

GPU-aktiverade virtuella datorer

Virtuella datorer i N-serien har NVIDIA-grafikprocessorer för beräknings- och grafikintensiva program som artificiell intelligens (AI) och visualisering.

Storage

Storskaliga Batch- och HPC-arbetsbelastningar ställer stora krav på datalagring och åtkomst, som överskrider funktionerna i traditionella molnfilsystem. Det finns flera olika sätt att hantera hastighets- och kapacitetsbehoven för HPC-program på Azure

Om du vill ha mer information om hur du jämför Enre, GlusterFS och BeeGFS på Azure kan du läsa e-boken Parallel Files Systems on Azure (Parallella filsystem på Azure) och Blogg om Ändare på Azure.

Nätverk

Virtuella datorer med H16r, H16mr, A8 och A9-datorer kan ansluta till ett RDMA-nätverk med högt dataflöde i serverdelen. Nätverket kan ge bättre prestanda för tätt anslutna parallella program som körs under Microsoft MPI eller Intel MPI.

Hantering

Gör det själv

Att skapa ett HPC-system från grunden i Azure ger stor flexibilitet men är ofta mycket underhållskrävande.

  1. Konfigurera din egen klustermiljö med virtuella datorer i Azure eller med VM-skalningsuppsättningar.
  2. Använd Azure Resource Manager-mallar för att distribuera ledande arbetsbelastningshanterare, infrastrukturer och program.
  3. Välj storlekar för virtuella datorer med HPC och GPU som omfattar specialiserad maskinvara och nätverksanslutningar för MPI- eller GPU-arbetsbelastningar.
  4. Lägg till högpresterande lagring för I/O-intensiva arbetsbelastningar.

Hybrid och cloud bursting

Om du har ett befintligt lokalt HPC-system som du vill ansluta till Azure finns det ett antal resurser som hjälper dig att komma igång.

Läs först artikeln om alternativ för att ansluta ett lokalt nätverk till Azure i dokumentationen. Du kan också behöva information om anslutningsalternativen:

När nätverksanslutningen har upprättats på ett säkert sätt kan du börja använda molnberäkningsresurser på begäran med bursting-funktionerna i din befintliga arbetsbelastningshanterare.

Marketplace-lösningar

Det finns flera arbetsbelastningshanterare på Azure Marketplace.

Azure Batch

Azure Batch är en plattformstjänst för effektiv körning av storskaliga parallella program och HPC-program (databehandling med höga prestanda) i molnet. Azure Batch schemalägger beräkningsintensivt arbete för körning i en hanterad pool med virtuella datorer. Tjänsten kan automatiskt skala beräkningsresurser efter de jobb som körs.

Leverantörer och utvecklare av SaaS kan använda SDK:erna och verktygen i Batch för att integrera HPC-program och containerarbetsbelastningar med Azure, organisera data i Azure och skapa pipelines för jobbkörning.

Azure CycleCloud

Azure CycleCloud är det enklaste sättet att hantera HPC-arbetsbelastningar med valfri schemaläggare (som Slurm, Grid Engine, HPC Pack, HTCondor, LSF, PBS Pro eller Symphony) på Azure

Med CycleCloud kan du:

  • Distribuera hela kluster och andra resurser, bland annat schemaläggare, virtuella beräkningsdatorer, minne, nätverk och cache
  • Orkestrera arbetsflöden för jobb, data och molnet
  • Ge administratörer full kontroll över vilka användare som kan köra jobb, var de kan köra dem och till vilken kostnad
  • Anpassa och optimera kluster med avancerade funktioner för policy och efterlevnad, bland annat kostnadskontroller, Active Directory-integration, övervakning och rapportering
  • Använda din befintliga jobbschemaläggare och dina program utan modifiering
  • Dra nytta av inbyggd autoskalning och stridstestad referensarkitektur för många olika HPC-arbetsflöden och -branscher

Arbetsbelastningshanterare

Här följer några exempel på kluster och arbetsbelastningshanterare som kan köras i Azure-infrastrukturen. Skapa fristående kluster i virtuella Azure-datorer eller använd burst från virtuella Azure-datorer från ett lokalt kluster.

Containers

Containrar kan också användas för att hantera vissa HPC-arbetsbelastningar. Med tjänster som Azure Kubernetes Service (AKS) blir det enkelt att distribuera ett hanterat Kubernetes-kluster i Azure.

Kostnadshantering

Du kan hantera dina HPC-kostnader i Azure på olika sätt. Gå igenom inköpsalternativen för Azure för att hitta den metod som passar bäst för din organisation.

Säkerhet

En översikt över säkerhetsmetoder i Azure finns i dokumentationen om Azure Security.

Förutom de nätverkskonfigurationer som finns i avsnittet Cloud Bursting kanske du vill implementera en hub-spoke-konfiguration för att isolera dina beräkningsresurser:

HPC-program

Köra anpassade eller kommersiella HPC-program i Azure. Flera av exemplen in det här avsnittet är testade för effektiv skalning med fler virtuella datorer eller beräkningskärnor. Distributionsfärdiga lösningar finns på Azure Marketplace.

Anteckning

Fråga leverantören av kommersiella program om licensiering krävs eller om det finns andra begränsningar för körning i molnet. Alla leverantörer erbjuder inte licensiering enligt modellen Betala per användning. Du kan behöva ha en licensserver i molnet för din lösning eller ansluta till en lokal licensserver.

Skapa program

Grafik och återgivning

AI och djupinlärning

MPI-leverantörer

Fjärrvisualisering

Kör GPU-drivna virtuella datorer i Azure i samma region som HPC-utdata för kortast svarstid, åtkomst och för att visualisera via en fjärrlagring via Azure Virtual Desktop, Citrix eller VMware Horizon.

Mått

Kundberättelser

Många kunder har fått bra resultat genom att använda Azure för sina HPC-arbetsbelastningar. Några av kundfallstudierna finns här:

Annan viktig information

  • Se till att du har ökat din vCPU-kvot innan du försöker köra storskaliga arbetsbelastningar.

Nästa steg

De senaste nyheterna finns här:

Microsoft Batch-exempel

I de här självstudierna får du information om hur du kör program på Microsoft Batch