Redigera

Dela via


Integrering av kvantberäkning med klassiska appar

Azure Quantum
Azure Key Vault
Microsoft Entra ID

Klassisk databehandling utmanas i allt högre grad av dagens mest komplexa beräkningsproblem – även i skalan av våra mest kraftfulla superdatorer. Kvantdatorer har löftet att dramatiskt utöka våra beräkningsfunktioner. Genom att utnyttja kvantfysikens egenskaper för att utföra beräkningar ger de exponentiella hastigheter för vissa typer av problem. Kvantdatorer klarar sig till exempel exceptionellt bra med problem som kräver beräkning av ett stort antal möjliga kombinationer som ofta finns i optimerings-, simulerings- eller maskininlärningsscenarier.

Kvantberäkningskomponenter har dock en annan driftsmodell än klassisk programvara. Det finns vanligtvis en eller flera klassiska beräkningskomponenter som samordnar körningen av kvantkomponenter. Den här orkestreringen omfattar följande aktiviteter:

  • Förberedelse av indata
  • Inlämning av kvantberäkningsjobb till en kvantmiljö för mål
  • Övervakning av jobbkörning
  • Efterbearbetning av jobbresultat

Du kan integrera den här orkestreringen med klassiska program på något av två sätt:

  • Integrering via nära koppling. Logik för orkestrering av kvantresurser är integrerad i den klassiska komponenten eller komponenterna.
  • Integrering via lös koppling. Logik för orkestrering av kvantresurser exponeras som ett API som kan anropas av olika klassiska programvarukomponenter.

Den här artikeln beskriver hur du implementerar kvantprogram i var och en av dessa designer. Varje implementering använder Azure Quantum som kvantberäkningsmotor, men de skiljer sig något åt i andra aspekter enligt beskrivningen nedan.

Nära kopplat tillvägagångssätt

Potentiella användningsfall

Den nära kopplade metoden är att föredra i dessa fall:

  • Ett team äger både kvantkoden och den klassiska koden, och koden är integrerad.
  • Kvantkomponenter delar samma livscykel som de klassiska komponenterna.
  • Användningen av kvantkomponenterna är begränsad till ett enda program eller en liten uppsättning relaterade program.
  • Kvantjobbet representerar en specialiserad lösning (till exempel en molekylär simulering) som endast används av ett specialiserat klassiskt program.
  • Den implementerade algoritmen är hybrid kvantklassicistisk till sin natur, till exempel Variantal Quantum Eigensolvers (VQE) och Quantum Approximate Optimization Algorithms (QAOA).

Arkitektur

Arkitekturdiagram som visar en hybridapp som innehåller ett nära kopplat kvantberäkningsjobb.

Ladda ned en PowerPoint-fil med den här arkitekturen.

Dataflöde

  1. En inloggad användare utlöser kvantjobbkörning via ett klassiskt klientprogram.
  2. Klientprogrammet placerar indata i Azure Storage.
  3. Klientprogrammet skickar jobbet till en Azure Quantum-arbetsyta och anger körningsmål eller mål. Klienten identifierar arbetsytan via data som lagras i Key Vault och autentiserar till arbetsytan via hanterad identitet.
  4. En kvantprovider kör jobbet i en målmiljö.
  5. Klientprogrammet övervakar jobbkörningen efter status för avsökningsjobbet.
  6. Så snart kvantjobbet är klart hämtar klientprogrammet beräkningsresultatet från Storage.

Det här arbetsflödet implementerar mönstret Asynkront begärandesvar och de steg som definierats för Azure Quantum-jobblivscykeln.

Komponenter

  • Azure Quantum tillhandahåller en arbetsyta som är tillgänglig från Azure-portalen för tillgångar som är associerade med att köra kvantjobb på olika mål. Jobb körs på kvantsimulatorer eller kvantmaskinvara, beroende på vilken leverantör du väljer.
  • Microsoft Entra ID samordnar användarautentisering och hjälper till att skydda åtkomsten till Azure Quantum-arbetsytan.
  • Key Vault skyddar och behåller kontrollen över nycklar och andra hemligheter, till exempel namnet på Azure Quantum-arbetsytan.
  • Azure Storage tillhandahåller lagring för indata och resultat från kvantprovidern.

Tillgänglighet

Tillgängligheten för kvantberäkningsfunktionerna beror mycket på tillgängligheten och installationsbasen för kvantberäkningsprovidern. Beroende på beräkningsmålet kan det klassiska klientprogrammet uppleva långa fördröjningar eller otillgänglighet för målet.

För de omgivande Azure-tjänsterna gäller de vanliga tillgänglighetsövervägandena:

Säkerhet

Till skillnad från arkitekturen för det löst kopplade alternativet baseras arkitekturen som presenteras här på antagandet att endast en klient kommer åt Azure Quantum-arbetsytan. Det här scenariot leder till följande konfigurationer:

  • Eftersom klienten är känd kan du implementera autentisering via hanterad identitet som är associerad med programmet.
  • Du kan implementera begränsning av begäranden och cachelagring av resultat i själva klienten.

I allmänhet bör du överväga att använda de typiska designmönstren för säkerhet när det är lämpligt.

Löst kopplat tillvägagångssätt

Potentiella användningsfall

Den löst kopplade metoden är att föredra i dessa fall:

  • Du har ett dedikerat team av kvantspecialister som centralt tillhandahåller kvantfunktioner till andra team och kvantkomponenterna utvecklas oberoende av klassiska klientkomponenter.
  • Kvantjobbet representerar en allmän lösning (till exempel jobbschemaläggning) som kan återanvändas av flera klassiska program.

Arkitektur

Arkitekturdiagram som visar en hybridapp som innehåller ett löst kopplat kvantberäkningsjobb.

Ladda ned en PowerPoint-fil med den här arkitekturen.

Dataflöde

  1. En inloggad användare utlöser kvantjobbkörning via ett klassiskt program.
  2. Det klassiska programmet anropar DET anpassade jobb-API:et för att skicka jobbet.
  3. API-gatewayen utlöser azure-funktionen för jobböverföring, som skickar jobbindata.
  4. Funktionen placerar indata i Azure Storage.
  5. Funktionen skickar jobbet till en Azure Quantum-arbetsyta och anger körningsmål eller mål. Funktionen identifierar arbetsytan via data som lagras i Azure Key Vault och autentiserar till arbetsytan via hanterad identitet.
  6. En kvantprovider kör jobbet i en målmiljö.
  7. Klientprogrammet övervakar jobbkörningen genom att avsöka jobbstatus via API-anrop.
  8. API-gatewayen övervakar jobbkörningen genom att avsöka jobbstatus från kvantprovidern.
  9. När jobbet är klart lagras beräkningsresultaten i Azure Storage. Klientprogrammet hämtar resultaten med hjälp av ett API som implementeras via Azure-funktionen.

Det här arbetsflödet implementerar mönstret Asynkront begärandesvar och de steg som definierats för Azure Quantum-jobblivscykeln.

Komponenter

  • Azure Quantum tillhandahåller en arbetsyta som är tillgänglig från Azure-portalen för tillgångar som är associerade med att köra kvantjobb på olika mål. Jobb körs på kvantsimulatorer eller kvantmaskinvara, beroende på vilken leverantör du väljer.
  • Microsoft Entra ID samordnar användarautentisering och hjälper till att skydda åtkomsten till Azure Quantum-arbetsytan.
  • API Management är DEN API-gateway som centralt exponerar API-slutpunkterna för kvantjobbshantering.
  • Azure Functions används för att vidarebefordra klientbegäranden till lämpliga kvantresurser.
  • Azure Key Vault skyddar och behåller kontrollen över nycklar och andra hemligheter, till exempel namnet på Azure Quantum-arbetsytan.
  • Azure Storage tillhandahåller lagring för indata och resultat från kvantprovidern.

Tillgänglighet

Tillgängligheten för kvantberäkningsfunktionen är mycket beroende av tillgängligheten och installationsbasen för kvantberäkningsprovidern. Beroende på beräkningsmålet kan det klassiska klientprogrammet uppleva långa fördröjningar eller otillgänglighet för målet.

För de omgivande Azure-tjänsterna gäller de vanliga tillgänglighetsövervägandena:

  • För hög tillgänglighet kan du distribuera API Management till flera zoner eller regioner.
  • Om du använder geo-replikering kan du etablera Azure Functions i flera regioner.
  • Använd alternativen för Key Vault-redundans .
  • Överväg att använda replikeringsalternativen i Storage om det behövs.

Prestanda och skalbarhet   

Programmets prestanda beror på tillgängligheten och prestandan för de underliggande kvantberäkningsmålen. Information om prestanda och skalbarhet för klassiska komponenter finns i de typiska designmönstren för skalbarhet och checklista för prestandaeffektivitet.

Säkerhet

Till skillnad från arkitekturen för det nära kopplade alternativet baseras arkitekturen som presenteras här på antagandet att flera klienter kommer åt Azure Quantum-arbetsytan via API:et. Det här scenariot leder till följande konfigurationer:

  • Klienter måste autentisera till API:et. Du kan implementera den här autentiseringen med hjälp av autentiseringsprinciper.
  • Du kan implementera autentisering av Azure-funktionerna via hanterade identiteter som är associerade med funktionerna. Du kan använda dessa identiteter för att autentisera till Azure Quantum-arbetsytan.
  • Flera klienter har åtkomst till API:et. Du kan implementera begränsning av begäranden med hjälp av API Management-begärandebegränsning för att skydda kvantserverdelen och begränsa användningen av kvantresurser.
  • Beroende på begärandemönstret kanske du kan implementera cachelagring av kvantberäkningsresultat med hjälp av API Management-cachelagringsprinciper.

I allmänhet bör du överväga att använda de typiska designmönstren för säkerhet när det är lämpligt.

Vanliga funktioner

Följande funktioner är gemensamma för både tätt kopplade och löst kopplade implementeringsmodeller

Alternativ

De arkitekturer som presenteras här är för affärsproblem som kräver kvantberäkningsresurser för sina beräkningsuppgifter. För vissa beräkningsutmaningar kan befintliga tjänster som skapats för att utföra databehandling med höga prestanda eller tillhandahålla AI-funktioner vara ett alternativ.

Att tänka på

Några av Azure-kvantmålen (särskilt kvantmaskinvara) kommer att vara en begränsad resurs under överskådlig framtid. Åtkomst till dessa resurser implementeras via en kömekanism. När du skickar ett kvantjobb till Azure Quantum läggs det här jobbet till i en jobbkö. Jobbet körs när målet har slutfört bearbetningen av tidigare köposter. Du kan få den förväntade väntetiden genom att visa tillgängliga mål. För att beräkna den fullständiga svarstiden måste du lägga till den tid som ägnas åt att vänta på en tillgänglig resurs till jobbkörningstiden.

Prestanda och skalbarhet   

Programmets prestanda beror på tillgängligheten och prestandan för de underliggande kvantberäkningsmålen. Information om prestanda och skalbarhet för klassiska komponenter finns i de typiska designmönstren för skalbarhet och checklista för prestandaeffektivitet.

Motståndskraft

Eftersom kvantmålmiljöer som Azure Quantum vanligtvis ger begränsad felkorrigering (begränsad till kvantprocessorn när det gäller Azure Quantum) kan andra fel, till exempel timeout för kvantdatorer, fortfarande inträffa, så vi rekommenderar att du övervakar jobbkörningen så att du kan informera användaren om jobbstatus. När jobbkörningen misslyckas på grund av ett tillfälligt fel implementerar du ett återförsöksmönster. Skicka jobben via asynkrona anrop, med avsökning för resultatet, för att undvika onödig blockering av den anropande klienten.

Eftersom kvantberäkningsresurser vanligtvis är begränsade bör förväntningarna på återhämtning överväga den här faktorn. Därför kan de förslag som erbjuds i den här artikeln ge ytterligare mått på återhämtning.

DevOps

Att införliva kvantjobb i klassiska CI/CD-pipelines kan utföras med hjälp av Azure DevOps med mindre ändringar i en typisk design. Designen nedan illustrerar ett DevOps-pipelinearbetsflöde som kan tillämpas på de nära kopplade och löst kopplade arkitekturerna.

Arkitektur

Arkitekturdiagram som visar en klassisk CI/CD-pipeline med Azure Quantum som ingår i den.

Ladda ned en PowerPoint-fil med den här arkitekturen.

Dataflöde

  1. Utvecklaren ändrar källkoden för programkomponenterna.
  2. Ändringar görs i källkodslagringsplatsen.
  3. Ändringar i kvantkoden utlöser kvantgenereringspipelinen. Bygg-pipelinen checkar ut koden, kompilerar den, uppskattar nödvändiga resurser och kör algoritmen på en simulator.
  4. Den kompilerade kvantalgoritmen skickas till en kvantmiljö för testning.
  5. Ändringar utlöser en byggpipeline för de klassiska komponenterna. Pipelinen checkar ut koden, kompilerar den och kör enhets- och integreringstester.
  6. Lyckad kompilering och tester utlöser en versionspipeline. Pipelinen etablerar först Azure-miljön genom att distribuera Azure Resource Manager-mallarna som lagras på lagringsplatsen (infrastruktur som kod).
  7. Kompilerade klassiska programartefakter distribueras till Azure. Kvantjobben skickas till en kvantarbetsyta under körningen.
  8. Application Insights övervakar körningsbeteende, hälsa, prestanda och användningsinformation.
  9. Kvarvarande uppgifter uppdateras efter behov, beroende på övervakningsresultat.
  10. Utvecklaren använder Application Insights för programfeedback och optimering.

Komponenter

Den här lösningen använder följande DevOps-verktyg:

  • Azure Repos tillhandahåller obegränsade, molnbaserade privata Git-lagringsplatser. Den används här för att lagra den kvant- och klassiska koden och De Azure Resource Manager-mallar som används för att etablera miljön.
  • Med Azure Pipelines kan du kontinuerligt skapa, testa och distribuera till molnet. Här används den för att implementera CI/CD, inklusive miljöetablering före koddistribution.

Alternativt kan du använda GitHub-lagringsplatser och GitHub-åtgärder för att implementera CI/CD-processerna.

Lösningen använder följande andra komponenter:

  • Ett klientprogram samordnar kvantjobbet. Du kan implementera integrering med hjälp av en nära kopplad eller löst kopplad metod.
  • Azure Quantum tillhandahåller en arbetsyta för tillgångar som är associerade med att köra kvantberäkningsprogram. Jobb körs på kvantsimulatorer eller kvantmaskinvara, beroende på vilken leverantör du väljer.
  • Microsoft Entra ID samordnar användarautentisering och skyddar åtkomsten till Azure Quantum-arbetsytan.
  • Azure Key Vault skyddar och behåller kontrollen över nycklar och andra hemligheter, till exempel namnet på kvantarbetsytan.
  • Azure Storage innehåller indata och utdata för kvantjobbet.
  • Application Insights övervakar programmet, identifierar programavvikelser som dåliga prestanda och fel och skickar telemetri till Azure-portalen.

Kostnadsoptimering

Den totala kostnaden för den här lösningen beror på det kvantberäkningsmål som du väljer för att köra kvantjobbet. Det är enkelt att beräkna uppskattade kostnader för de klassiska komponenterna. Du kan använda priskalkylatorn för Azure.

För Azure Quantum-tjänsten bör du tänka på att kvantberäkningsleverantörer kan användas via ett Azure Marketplace-erbjudande. Prissättningen beror på typen av resurs (simulator eller maskinvara), SKU:n och din användning. Mer information finns på referenssidan för providern som behövs för ditt scenario. Dessa referenssidor visas i Kvantberäkningsprovidrar på Azure Quantum.

Deltagare

Den här artikeln underhålls av Microsoft. Den skrevs ursprungligen av följande deltagare.

Huvudförfattare:

  • Holger Sirtl | Senior Technical Architect på Microsoft Technology Center

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg