Bewerken

Delen via


Integratie van kwantumcomputing met klassieke apps

Azure Quantum
Azure Key Vault
Microsoft Entra ID

Klassieke computing wordt steeds moeilijker vanwege de meest complexe rekenproblemen van vandaag, zelfs op de schaal van onze krachtigste supercomputers. Kwantumcomputers bieden de belofte om onze rekenmogelijkheden aanzienlijk uit te breiden. Door gebruik te maken van de eigenschappen van kwantumfysica om berekeningen uit te voeren, bieden ze exponentiële versnellingen voor bepaalde soorten problemen. Kwantumcomputers doen bijvoorbeeld uitzonderlijk goed met problemen waarvoor een groot aantal mogelijke combinaties moeten worden berekend die vaak worden gevonden in optimalisatie-, simulatie- of machine learning-scenario's.

Kwantumcomputingonderdelen hebben echter een ander operationeel model dan die van klassieke software. Er zijn doorgaans een of meer klassieke rekenonderdelen die de uitvoering van kwantumonderdelen organiseren. Deze indeling omvat de volgende activiteiten:

  • Voorbereiding van invoergegevens
  • Verzending van kwantumcomputing taken naar een doel quantumomgeving
  • Bewaking van taakuitvoering
  • Naverwerking van taakresultaten

U kunt deze indeling op twee manieren integreren met klassieke toepassingen:

  • Integratie via strakke koppeling. Logica voor de indeling van kwantumbronnen is geïntegreerd in het klassieke onderdeel of de klassieke onderdelen.
  • Integratie via losse koppeling. Logica voor de indeling van kwantumbronnen wordt weergegeven als een API die kan worden aangeroepen door verschillende klassieke softwareonderdelen.

In dit artikel wordt beschreven hoe u kwantumtoepassingen implementeert in elk van deze ontwerpen. Elke implementatie maakt gebruik van Azure Quantum als de kwantumcomputing-engine, maar ze verschillen enigszins in andere aspecten, zoals hieronder wordt beschreven.

Nauw gekoppelde benadering

Mogelijke gebruiksvoorbeelden

In deze gevallen wordt de voorkeur gegeven aan de nauw gekoppelde benadering:

  • Eén team is eigenaar van zowel de kwantumcode als de klassieke code en de code is geïntegreerd.
  • Kwantumonderdelen delen dezelfde levenscyclus als de klassieke onderdelen.
  • Het gebruik van de kwantumonderdelen is beperkt tot één toepassing of een kleine set gerelateerde toepassingen.
  • De kwantumtaak vertegenwoordigt een gespecialiseerde oplossing (bijvoorbeeld een moleculaire simulatie) die slechts door één gespecialiseerde klassieke toepassing wordt gebruikt.
  • Het geïmplementeerde algoritme is van nature hybride kwantum-klassiek, bijvoorbeeld Variational Quantum Eigensolvers (VQE) en Quantum Approximate Optimization Algorithms (QAOA).

Architectuur

architectuurdiagram met een hybride app die een nauw gekoppelde kwantumcomputingtaak bevat.

een PowerPoint-bestand downloaden van deze architectuur.

Gegevensstroom

  1. Een aangemelde gebruiker activeert de uitvoering van kwantumtaken via een klassieke clienttoepassing.
  2. De clienttoepassing plaatst invoergegevens in Azure Storage.
  3. De clienttoepassing verzendt de taak naar een Azure Quantum-werkruimte en geeft het uitvoeringsdoel of de doelen op. De client identificeert de werkruimte via gegevens die zijn opgeslagen in Key Vault en verifieert de werkruimte via beheerde identiteit.
  4. Een kwantumprovider voert de taak uit in een doelomgeving.
  5. De clienttoepassing bewaakt de uitvoering van taken door de taakstatus te peilen.
  6. Zodra de kwantumtaak is voltooid, haalt de clienttoepassing het rekenresultaat op uit Storage.

Deze werkstroom implementeert het asynchrone Request-Reply patroon en de stappen die zijn gedefinieerd voor de levenscyclus van Azure Quantum-taken.

Onderdelen

  • Azure Quantum biedt een werkruimte, toegankelijk vanuit Azure Portal, voor assets die zijn gekoppeld aan het uitvoeren van kwantumtaken op verschillende doelen. Taken worden uitgevoerd op kwantumsimulators of kwantumhardware, afhankelijk van de provider die u kiest.
  • Microsoft Entra ID coördineert gebruikersverificatie en helpt de toegang tot de Azure Quantum-werkruimte te beveiligen.
  • Key Vault de controle over sleutels en andere geheimen behoudt, zoals de naam van de Azure Quantum-werkruimte.
  • Azure Storage- biedt opslag voor invoergegevens en resultaten van de kwantumprovider.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Frameworkvoor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Controlelijst ontwerpbeoordeling voor betrouwbaarheidvoor meer informatie.

De beschikbaarheid van de kwantumcomputingsfunctionaliteit hangt sterk af van de beschikbaarheid en installatiebasis van de kwantumcomputingprovider. Afhankelijk van het rekendoel kan de klassieke clienttoepassing lange vertragingen of onbeschikbaarheid van het doel ondervinden.

Voor de omringende Azure-services zijn de gebruikelijke overwegingen voor beschikbaarheid van toepassing:

  • Gebruik de Key Vault redundantieopties.
  • Overweeg indien nodig de replicatieopties in Storagete gebruiken.

Veiligheid

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie voor meer informatie controlelijst ontwerpbeoordeling voor Security.

In tegenstelling tot de architectuur voor de losjes gekoppelde alternatieve, is de hier gepresenteerde architectuur gebaseerd op de veronderstelling dat slechts één client toegang heeft tot de Azure Quantum-werkruimte. Dit scenario leidt tot de volgende configuraties:

  • Omdat de client bekend is, kunt u verificatie implementeren via beheerde identiteit, gekoppeld aan de toepassing.
  • U kunt beperking van aanvragen en caching van resultaten in de client zelf implementeren.

Over het algemeen kunt u overwegen om de typische ontwerppatronen voor beveiliging toe te passen, indien van toepassing.

Losjes gekoppelde benadering

Mogelijke gebruiksvoorbeelden

In deze gevallen wordt de voorkeur gegeven aan de losjes gekoppelde benadering:

  • U hebt een speciaal team van kwantumspecialisten die centraal kwantumfunctionaliteit bieden aan andere teams en de kwantumonderdelen onafhankelijk van alle klassieke clientonderdelen worden ontwikkeld.
  • De kwantumtaak vertegenwoordigt een algemene oplossing (bijvoorbeeld taakplanning) die kan worden hergebruikt door meerdere klassieke toepassingen.

Architectuur

architectuurdiagram met een hybride app die een losjes gekoppelde kwantumcomputingtaak bevat.

een PowerPoint-bestand downloaden van deze architectuur.

Gegevensstroom

  1. Een aangemelde gebruiker activeert de uitvoering van kwantumtaken via een klassieke toepassing.
  2. De klassieke toepassing roept de API voor aangepaste taken aan om de taak in te dienen.
  3. De API-gateway activeert de Azure-functie voor het verzenden van taken, waarmee taakinvoergegevens worden doorgegeven.
  4. De functie plaatst de invoergegevens in Azure Storage.
  5. De functie verzendt de taak naar een Azure Quantum-werkruimte, waarbij het uitvoeringsdoel of de doelen worden opgegeven. De functie identificeert de werkruimte via gegevens die zijn opgeslagen in Azure Key Vault en verifieert de werkruimte via beheerde identiteit.
  6. Een kwantumprovider voert de taak uit in een doelomgeving.
  7. De clienttoepassing bewaakt de uitvoering van taken door de taakstatus te peilen via API-aanroepen.
  8. De API-gateway bewaakt de uitvoering van taken door de taakstatus van de kwantumprovider te peilen.
  9. Wanneer de taak is voltooid, worden de rekenresultaten opgeslagen in Azure Storage. De clienttoepassing haalt de resultaten op met behulp van een API die is geïmplementeerd via de Azure-functie.

Deze werkstroom implementeert het asynchrone Request-Reply patroon en de stappen die zijn gedefinieerd voor de levenscyclus van Azure Quantum-taken.

Onderdelen

  • Azure Quantum biedt een werkruimte, toegankelijk vanuit Azure Portal, voor assets die zijn gekoppeld aan het uitvoeren van kwantumtaken op verschillende doelen. Taken worden uitgevoerd op kwantumsimulators of kwantumhardware, afhankelijk van de provider die u kiest.
  • Microsoft Entra ID coördineert gebruikersverificatie en helpt de toegang tot de Azure Quantum-werkruimte te beveiligen.
  • API Management is de API-gateway die de API-eindpunten centraal beschikbaar maakt voor kwantumtaakbeheer.
  • Azure Functions- wordt gebruikt om de clientaanvragen door te sturen naar de juiste kwantumbronnen.
  • Azure Key Vault beveiliging en onderhoudt het beheer van sleutels en andere geheimen, zoals de naam van de Azure Quantum-werkruimte.
  • Azure Storage- biedt opslag voor invoergegevens en resultaten van de kwantumprovider.

Betrouwbaarheid

De beschikbaarheid van de kwantumcomputingsfunctionaliteit is sterk afhankelijk van de beschikbaarheid en installatiebasis van de kwantumcomputingprovider. Afhankelijk van het rekendoel kan de klassieke clienttoepassing lange vertragingen of onbeschikbaarheid van het doel ondervinden.

Voor de omringende Azure-services zijn de gebruikelijke overwegingen voor beschikbaarheid van toepassing:

  • Voor hoge beschikbaarheid kunt u API Management- implementeren in meerdere zones of regio's.
  • Als u geo-replicatie gebruikt, kunt u Azure Functions in meerdere regio's inrichten.
  • Gebruik de Key Vault redundantieopties.
  • Overweeg indien nodig de replicatieopties in Storagete gebruiken.

Veiligheid

In tegenstelling tot de architectuur voor de nauw gekoppelde alternatieve, is de hier gepresenteerde architectuur gebaseerd op de veronderstelling dat meerdere clients toegang hebben tot de Azure Quantum-werkruimte via de API. Dit scenario leidt tot de volgende configuraties:

  • Clients moeten worden geverifieerd bij de API. U kunt deze verificatie implementeren met behulp van verificatiebeleid.
  • U kunt verificatie van de Azure-functies implementeren via beheerde identiteiten die zijn gekoppeld aan de functies. U kunt deze identiteiten gebruiken om te verifiëren bij de Azure Quantum-werkruimte.
  • Meerdere clients hebben toegang tot de API. U kunt aanvraagbeperking implementeren met behulp van API Management-aanvraagbeperking om de kwantumback-end te beveiligen en het gebruik van kwantumbronnen te beperken.
  • Afhankelijk van het aanvraagpatroon kunt u mogelijk de caching van kwantumcomputingresultaten implementeren met behulp van API Management-cachebeleid.

Over het algemeen kunt u overwegen om de typische ontwerppatronen voor beveiliging toe te passen, indien van toepassing.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid van uw workload om te schalen om te voldoen aan de eisen die gebruikers op een efficiënte manier stellen. Zie controlelijst ontwerpbeoordeling voor prestatie-efficiëntievoor meer informatie.

Toepassingsprestaties zijn afhankelijk van de beschikbaarheid en prestaties van de onderliggende kwantumcomputingdoelen. Raadpleeg voor informatie over de prestaties en schaalbaarheid van de klassieke onderdelen de typische ontwerppatronen voor schaalbaarheid en de controlelijst voor prestatie-efficiëntie.

Algemene functies

De volgende functies zijn gebruikelijk voor zowel nauw gekoppelde als losjes gekoppelde implementatiemodellen

Alternatieven

De hier gepresenteerde architecturen zijn voor zakelijke problemen waarvoor kwantumcomputingresources nodig zijn voor hun rekentaken. Voor sommige rekenproblemen zijn bestaande services die zijn gebouwd voor het uitvoeren van high-performance computing of bieden AI-functionaliteit mogelijk een alternatief.

Overwegingen

Sommige azure-kwantumdoelen (met name kwantumhardware) zijn een beperkte resource voor de nabije toekomst. Toegang tot deze resources wordt geïmplementeerd via een wachtrijmechanisme. Wanneer u een kwantumtaak naar Azure Quantum verzendt, wordt deze taak toegevoegd aan een taakwachtrij. De taak wordt uitgevoerd zodra het doel de verwerking van eerdere wachtrijvermeldingen heeft voltooid. U kunt de verwachte wachttijd verkrijgen door beschikbare doelente vermelden. Als u de volledige reactietijd wilt berekenen, moet u de tijd die is besteed aan het wachten op een beschikbare resource toevoegen aan de uitvoeringstijd van de taak.

Betrouwbaarheid

Aangezien kwantumdoelomgevingen zoals Azure Quantum doorgaans een beperkte foutcorrectie bieden (beperkt tot de kwantumprocessor in het geval van Azure Quantum), kunnen andere fouten, zoals time-out van kwantumcomputers, nog steeds optreden, zodat het raadzaam is om de taakuitvoering te controleren, zodat u de gebruiker op de hoogte kunt stellen van de taakstatus. Wanneer taakuitvoering mislukt vanwege een tijdelijke fout, implementeert u een patroon voor opnieuw proberen. Verzend de taken via asynchrone aanroepen, met polling voor het resultaat, om te voorkomen dat de aanroepende client onnodig wordt geblokkeerd.

Aangezien kwantumcomputingresources doorgaans beperkt zijn, moeten toleranties rekening houden met deze factor. Als zodanig kunnen de suggesties die in dit artikel worden aangeboden, aanvullende metingen voor tolerantie bieden.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie controlelijst ontwerpbeoordeling voor kostenoptimalisatievoor meer informatie.

De totale kosten van deze oplossing zijn afhankelijk van het kwantumcomputingsdoel dat u selecteert om de kwantumtaak uit te voeren. Het berekenen van de geschatte kosten voor de klassieke onderdelen is eenvoudig. U kunt de Azure-prijscalculatorgebruiken.

Houd er voor de Azure Quantum-service rekening mee dat Kwantumcomputingproviders kunnen worden gebruikt via een Azure Marketplace-aanbieding. De prijzen zijn afhankelijk van het type resource (simulator of hardware), de SKU en uw gebruik. Zie de referentiepagina voor de provider die nodig is voor uw scenario voor meer informatie. Deze referentiepagina's worden vermeld in Quantum-computingproviders in Azure Quantum.

Operationele uitmuntendheid

Operational Excellence behandelt de operationele processen die een toepassing implementeren en deze in productie houden. Zie controlelijst ontwerpbeoordeling voor Operational Excellencevoor meer informatie.

Het integreren van kwantumtaken in klassieke CI/CD-pijplijnen kan worden uitgevoerd met behulp van Azure DevOps met kleine wijzigingen in een typisch ontwerp. In het onderstaande ontwerp ziet u een DevOps-pijplijnwerkstroom die kan worden toegepast op de nauw gekoppelde en losjes gekoppelde architecturen.

Architectuur

architectuurdiagram met een klassieke CI/CD-pijplijn waarin Azure Quantum is opgenomen.

een PowerPoint-bestand downloaden van deze architectuur.

Gegevensstroom
  1. De ontwikkelaar wijzigt de broncode van de toepassingsonderdelen.
  2. Wijzigingen worden doorgevoerd in de broncodeopslagplaats.
  3. Wijzigingen in kwantumcode activeren de kwantumbuildpijplijn. De build-pijplijn controleert de code, compileert deze, schat de vereiste resources en voert het algoritme uit op een simulator.
  4. Het gecompileerde kwantumalgoritmen worden verzonden naar een kwantumomgeving voor tests.
  5. Wijzigingen activeren een build-pijplijn voor de klassieke onderdelen. De pijplijn controleert de code, compileert deze en voert eenheids- en integratietests uit.
  6. Geslaagde compilatie en tests activeren een release-pijplijn. De pijplijn richt eerst de Azure-omgeving in door de Azure Resource Manager-sjablonen te implementeren die zijn opgeslagen in de opslagplaats (Infrastructuur als code).
  7. Gecompileerde klassieke toepassingsartefacten worden geïmplementeerd in Azure. De kwantumtaken worden tijdens runtime verzonden naar een kwantumwerkruimte.
  8. Application Insights bewaakt runtimegedrag, status, prestaties en gebruiksgegevens.
  9. Backlog-items worden indien nodig bijgewerkt, afhankelijk van de bewakingsresultaten.
  10. De ontwikkelaar gebruikt Application Insights voor feedback en optimalisatie van toepassingen.
Onderdelen

Deze oplossing maakt gebruik van de volgende DevOps-hulpprogramma's:

  • Azure-opslagplaatsen onbeperkte, in de cloud gehoste git-opslagplaatsen biedt. Het wordt hier gebruikt om de kwantum- en klassieke code en de Azure Resource Manager-sjablonen op te slaan die worden gebruikt om de omgeving in te richten.
  • Azure Pipelines kunt u continu bouwen, testen en implementeren in de cloud. Hier wordt het gebruikt om CI/CD te implementeren, inclusief de omgevingsinrichting vóór de code-implementatie.

Als alternatief kunt u GitHub-opslagplaatsen en GitHub-acties gebruiken om de CI/CD-processen te implementeren.

De oplossing maakt gebruik van de volgende andere onderdelen:

  • Een clienttoepassing organiseert de kwantumtaak. U kunt integratie implementeren met behulp van een nauw gekoppelde of een losjes gekoppelde benadering.
  • Azure Quantum biedt een werkruimte voor assets die zijn gekoppeld aan het uitvoeren van kwantumcomputingtoepassingen. Taken worden uitgevoerd op kwantumsimulators of kwantumhardware, afhankelijk van de provider die u kiest.
  • Microsoft Entra ID coördineert gebruikersverificatie en beveiligt de toegang tot de Azure Quantum-werkruimte.
  • Azure Key Vault beveiliging en onderhoudt het beheer van sleutels en andere geheimen, zoals de naam van de kwantumwerkruimte.
  • Azure Storage- de invoer- en uitvoergegevens van de kwantumtaak bevat.
  • Application Insights de toepassing bewaakt, toepassingsafwijkingen zoals slechte prestaties en storingen detecteert en telemetrie verzendt naar Azure Portal.

Prestatie-efficiëntie

Toepassingsprestaties zijn afhankelijk van de beschikbaarheid en prestaties van de onderliggende kwantumcomputingdoelen. Raadpleeg voor informatie over de prestaties en schaalbaarheid van de klassieke onderdelen de typische ontwerppatronen voor schaalbaarheid en de controlelijst voor prestatie-efficiëntie.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzender.

Hoofdauteur:

  • Holger Sirtl | Senior Technical Architect bij het Microsoft Technology Center

Meld u aan bij LinkedIn als u niet-openbare LinkedIn-profielen wilt zien.

Volgende stappen