Microsoft HPC Pack
Överväg att använda Microsoft HPC Pack för högnivåkontroll av din högpresterande infrastruktur eller för att hantera både molnbaserade och lokala virtuella datorer.
I ditt ingenjörsföretag vill du migrera högpresterande infrastruktur från lokala datacenter till Azure. Eftersom dessa system är affärskritiska vill du migrera gradvis. Du måste se till att du snabbt kan svara på efterfrågan och hantera virtuella datorer flexibelt under migreringen, när det finns både lokala och molnbaserade virtuella datorer.
Här får du lära dig hur HPC Pack kan hantera HPC-infrastrukturen.
Vad är HPC Pack?
När du undersökte alternativ för den tekniska organisationen tittade du på Azure Batch- och Azure HPC-instanser. Men vad händer om du vill ha fullständig kontroll över hanteringen och schemaläggningen av dina kluster av virtuella datorer? Vad händer om du har betydande investeringar i lokal infrastruktur i ditt datacenter? HPC Pack erbjuder en serie installationsprogram för Windows som gör att du kan konfigurera ditt eget kontroll- och hanteringsplan och mycket flexibla distributioner av lokala noder och molnnoder. Till skillnad från den uteslutande molnbaserade Batch har HPC Pack flexibiliteten att distribuera till lokalt och molnet. Den använder en hybrid av båda för att expandera till molnet när dina lokala reserver inte räcker till.
HPC Pack är en version av batchhanterings- och schemaläggningskontrollskiktet, vilket ger dig fullständig kontroll och ansvar. Distribution av HPC Pack kräver Windows Server 2012 eller senare.
Planera för HPC Pack
Normalt bör du förbereda dig för installationen av HPC Pack med en fullständig granskning av kraven. Du behöver SQL Server och en Active Directory-styrenhet. Du måste också planera en topologi. Hur många huvud- eller kontrollnoder ska det finnas och hur många arbetsnoder? Behöver du expandera upp till Azure? I så fall etablerar du Azure-noder i förväg som en del av klustret. Storleken på de huvuddatorer som utgör kontrollplanet (huvud- och kontrollnoder, SQL Server och Active Directory-domänkontrollant) beror på den beräknade klusterstorleken.
När du installerar HPC Pack visas en jobbschemaläggare med stöd för både HPC- och parallella jobb. Schemaläggaren visas i Microsoft Message Passing Interface. HPC Pack är mycket integrerat med Windows, så du kan använda Visual Studio för parallell felsökning. Du kan se alla program-, nätverks- och operativsystemhändelser från beräkningsnoderna i klustret i en enda felsökningsvy.
HPC Pack erbjuder också en avancerad jobbschemaläggare. Du kan snabbt distribuera, även till noder som inte uteslutande är dedikerade till HPC Pack, till Linux-baserade noder och Azure-noder. Det innebär att du kan använda outnyttjad kapacitet i ditt datacenter. HPC Pack är ett idealiskt sätt att använda befintliga infrastrukturinvesteringar och behålla mer diskret kontroll över hur arbetet delas upp än vad som är möjligt med Batch.
Använda en blandning av tekniker
De alternativ som du överväger i den här modulen utesluter inte varandra. Du kan använda de virtuella datorerna i H-serien, som du tittade på i den senaste lektionen, som möjliga Azure-noder i en HPC-konfiguration. Även om du har koncentrerat dig på hybridanvändningsfall för att belysa skillnaderna med Batch är HPC Pack flexibelt. Det möjliggör både uteslutande lokala distributioner och uteslutande molnbaserade distributioner. Den här flexibiliteten är användbar när du vill ha mer detaljerad kontroll än Batch-erbjudanden.
Distribuera och hantera HPC-system
Orkestrering av HPC-system
Ett av de viktigaste begreppen inom molnbaserad databehandling är Orchestration. Det handlar om att övervaka distributionen, körningen och övervakningen av alla komponenter i ett program i klustret.
Dessutom kan en orkestrerare utföra andra uppgifter som återställning (hantering av fel), skalning och loggning. Orkestrerare som den välkända Kubernetes eller Mesos kan komma åt molnklusterresurser direkt genom virtualisering.
Implementera HPC-system
HPC-distributioner i Azure kan variera beroende på dina specifika arbetsbelastningsbehov och din budget. Det finns några standardkomponenter i alla distributioner, inklusive:
- Azure Resource Manager: Aktiverar distribution av program till kluster med hjälp av skriptfiler eller mallar.
- HPC-huvudnod: Möjliggör att schemalägga jobb och arbetsbelastningar på arbetsnoder. Det är en virtuell dator (VM) som används för att hantera HPC-kluster.
- virtuellt nätverk: Gör det möjligt att skapa ett isolerat nätverk av kluster och lagring via säkra anslutningar med ExpressRoute eller IPsec VPN. Du kan integrera etablerade DNS-servrar och IP-adresser i nätverket och kontrollera trafiken mellan undernät.
- Vm-skalningsuppsättningar: Möjliggör etablering av virtuella datorer med kluster och innehåller funktioner för automatisk skalning, distributioner i flera zoner och belastningsutjämning. Du kan använda skalningsuppsättningar för att köra flera databaser, inklusive MongoDB, Cassandra och Hadoop.
- Storage: Aktiverar montering av beständiga lagringskluster i form av blob, disk, fil, hybrid eller datasjölagring.
Hantera Azure HPC-distributioner
Azure erbjuder några interna tjänster som hjälper dig att hantera dina HPC-distributioner. De här verktygen ger flexibilitet för din hantering och kan hjälpa dig att schemalägga arbetsbelastningar i Azure och i hybridresurser.
- Microsoft HPC Pack: En uppsättning verktyg som gör att du kan konfigurera och hantera VM-kluster, övervaka åtgärder och schemalägga arbetsbelastningar. HPC Pack innehåller funktioner som hjälper dig att migrera lokala arbetsbelastningar eller fortsätta att arbeta med en hybriddistribution. Verktyget etablerar eller hanterar inte virtuella datorer eller nätverksinfrastruktur åt dig.
- Azure CycleCloud: Ett gränssnitt för valfri schemaläggare. Du kan använda Azure CycleCloud med en rad interna alternativ och alternativ från tredje part, inklusive HPC Pack, Grid Engine, Slurm och Symphony. Med CycleCloud kan du hantera och samordna arbetsbelastningar, definiera åtkomstkontroller med Active Directory och anpassa klusterprinciper.
- Azure Batch: Ett hanterat verktyg som du kan använda för att autoskala distributioner och ange principer för schemaläggning av jobb. Azure Batch-tjänsten hanterar etablering, tilldelning, körning och övervakning av dina arbetsbelastningar. Om du vill använda den behöver du bara ladda upp dina arbetsbelastningar och konfigurera din VM-pool.
Azure HPC-arbetsbelastningar erbjuder maskininlärning, visualisering och rendering, som alla stärker program i halvledarbranschen. Det möjliggör sömlös och elastisk molnintegrering av olje- och gasarbetsbelastningar, samt molnbaserad genomisk sekvensering och halvledardesign.
Metodtips för Azure HPC-distributioner
Följande metodtips kan hjälpa dig att få den förväntade prestandan och värdet.
Distribuera distributioner mellan molntjänster: Distribution av stora distributioner mellan molntjänster kan hjälpa dig att undvika begränsningar som skapas genom överlagring eller användning av en enda tjänst. Genom att dela upp distributionen i mindre segment kan du:
- Stoppa inaktiva instanser efter jobbets slutförande utan att avbryta andra processer
- Starta och stoppa nodkluster flexibelt
- Hitta enklare tillgängliga noder i dina kluster
- Använd flera datacenter för att säkerställa katastrofåterställning
Använd flera Azure Storage-konton för noddistributioner: Liknar distributioner mellan tjänster rekommenderar vi att du kopplar flera lagringskonton till varje distribution. Det kan ge bättre prestanda för stora distributioner, program som begränsas av indata-/utdataåtgärder och anpassade program. När du konfigurerar dina lagringskonton bör du ha ett konto för nodetablering och ett annat för att flytta jobb- eller uppgiftsdata för att säkerställa konsekvens och låg svarstid.
sv-SE: Öka proxynodinstanser så att de matchar distributionsstorleken: Proxynoder möjliggör kommunikation mellan huvudnoder som du kör lokalt och Azure-arbetsnoder. Dessa noder kopplas automatiskt när du distribuerar arbetare i Azure. Om du kör stora jobb som uppfyller eller överskrider de resurser som tillhandahålls av proxynoderna kan du överväga att öka antalet proxynoder som körs. Att utöka är särskilt viktigt när implementeringen blir större.
Anslut till huvudnoden med HPC-klientverktygen:
HPC Pack-klientverktygen är den bästa metoden för att ansluta till huvudnoden, särskilt om du kör stora jobb. Du kan installera dessa verktyg på användarnas arbetsstationer och fjärråtkomst till huvudnoden efter behov i stället för att använda Fjärrskrivbordstjänster (RDS). Dessa verktyg är särskilt användbara om många användare ansluter samtidigt.
Schemaläggning av aktiviteter
En annan HPC-tjänst som erbjuds är schemaläggning av uppgifter. Du kan använda schemaläggaren i ditt program för att skicka arbete, vilket gör att batchjobb kan köras effektivt. Schemaläggarens huvudmål kan i stort sett klassificeras som:
- Minimera tiden mellan inlämning och slutfört arbete. Inget jobb ska vara kvar i kön under långa tidsperioder.
- Optimera processoranvändningen. Särskilt lägre cpu-stilleståndstid.
- Maximera jobbdataflöde, skalning av jobb per tidsenhet.
Om schemaläggning av aktiviteter
Användare skickar icke-interaktiva batchjobb till schemaläggaren. Schemaläggaren lagrar batchjobben, utvärderar deras resurskrav och prioriteringar och distribuerar jobben till lämpliga beräkningsnoder. De utgör den största delen av HPC-kluster (cirka 98%) eftersom de är de mest energikrävande.
Till skillnad från inloggningsnoderna och deras interaktiva användning är beräkningsnoder inte direkt tillgängliga via ssh. Schemaläggaren på inloggningsnoden fungerar som ett gränssnitt mellan beräkningsnoden och användaren. Användaren måste ange programmet i ett jobbskript baserat på tids- och minnesresurser.
Jobbskriptet som skickas via schemaläggaren lägger till jobbet i en jobbkö. Beroende på vilka resurser som finns tillgängliga och som jobbet behöver, bestämmer schemaläggaren när jobbet lämnar kön och på vilka bakändnoder eller delar av dem det körs.
Användaren måste se till att de begärda resurserna ligger inom systemets gränser. Till exempel:
- Schemaläggaren dödar jobbet när den allokerade tiden är slut, även om jobbet kräver mer tid.
- Jobbet har fastnat i kön för alltid om jobbet kräver mer minne än vad som är tillgängligt i systemet.
Bild
Förutsatt att batchsystemet du använder består av sex noder använder schemaläggaren IT för att placera de nio jobben i kön på de tillgängliga noderna. Målet är att eliminera bortkastade resurser, som visas i följande diagram som de lediga områden som visar noder utan jobbkörning på dem.
Därför kanske jobben inte distribueras mellan noderna i samma ordning som de först gick in i kön. Den tid och det antal noder som krävs för att köra en uppgift avgör det utrymme som ett jobb tar upp. Schemaläggaren spelar en flerdimensionell rotationsroll för att fylla klustrets noder på ett enhetligt sätt genom att balansera resurskraven för alla jobb med tillgängliga resurser i klustret.
schemaläggningsalgoritmer
Det finns två grundläggande strategier som schemaläggare kan använda för att avgöra vilket jobb som ska köras härnäst. Moderna schemaläggare håller sig inte strikt till bara en av dessa algoritmer, utan använder snarare en kombination av de två. Dessutom finns det många fler aspekter som en schemaläggare måste ta hänsyn till, t.ex. den aktuella systembelastningen.
Först till kvarn Jobb körs i exakt samma ordning som de först kommer in i kön. Fördelen är att varje jobb genomförs säkert. Dock kan en liten uppsättning jobb vänta för längre tid än nödvändigt jämfört med deras faktiska körningstid.
Kortast jobb först Baserat på körtiden som angetts i jobbskriptet uppskattar schemaläggaren körtiden för jobbet. Jobben rangordnas i stigande följd efter exekveringstid. Korta jobb startar efter en kort väntetid, men långvariga jobb (eller åtminstone jobb som deklareras som sådana) kanske aldrig startar.
Backfilling: Schemaläggaren upprätthåller begreppet First Come, First Serve utan att hindra tidskrävande jobb från att köras. Schemaläggaren kör bara jobbet när det första jobbet i kön kan köras. Om inte, går schemaläggaren igenom resten av kön för att kontrollera om ett annat jobb kan köras utan att förlänga väntetiden för det första jobbet. Om den hittar ett sådant jobb kör schemaläggaren jobbet. Små jobb stöter vanligtvis på korta kötider.
Arbetsflödeshantering
Uppgiftslänkning & automation
Upprepade åtgärder som verktygsanvändning och körning av programvaruprocesser kan ordnas i en pipeline. Om du automatiserar den kan den övergripande användningen av programvara och verktyg bli effektivare. Det skapar effektivitet genom att göra själva uppgiften snabbare och minska bördan för kunskapsarbetaren för dess ledning.
Automation kan minska felfrekvensen för en process genom att eliminera variansen i hur den utförs. Och pipelining och automatisering av en uppgift kan öppna dörren för ytterligare processinnovationer som parallellisering och molndistribution.
Verktyg för arbetsflödeshantering
Använda Azure Batch
Använd Azure Batch för att effektivt köra storskaliga parallella och högpresterande databehandlingsjobb (HPC) i Azure. Azure Batch skapar och hanterar en pool med beräkningsnoder (virtuella datorer), installerar de program som du vill köra och schemalägger jobb som ska köras på noderna. Det finns ingen programvara för kluster eller jobbschemaläggare för att installera, hantera eller skala. I stället använder du Batch-API:er och -verktyg, kommandoradsskript eller Azure-portalen för att konfigurera, hantera och övervaka dina jobb.
Fullständig information om Azure Batch, inklusive fler funktioner och hur det fungerar, finns i Azure Batch.
Använda Azure CycleCloud
Azure CycleCloud är ett företagsvänligt verktyg för att orkestrera och hantera HPC-miljöer (High Performance Computing) i Azure. Med CycleCloud kan användarna planera infrastruktur för HPC-system, distribuera välbekanta HPC-schemaläggare och automatiskt skala infrastrukturen för att köra jobb effektivt i valfri skala. Via CycleCloud kan användare skapa olika typer av filsystem och montera dem på beräkningsklustrets noder för att stödja HPC-arbetsbelastningar.
Mer information om Azure CycleCloud finns i Azure CycleCloud-.