Klassisches Computing stellt sich zunehmend mit den komplexesten Rechenproblemen der heutigen Zeit in Herausforderungen – auch im Maßstab unserer leistungsstärksten Supercomputer. Quantencomputer halten das Versprechen, unsere Rechenfunktionen erheblich zu erweitern. Indem sie die Eigenschaften der Quantenphysik nutzen, um Berechnungen durchzuführen, stellen sie exponentielle Geschwindigkeiten für bestimmte Arten von Problemen bereit. So eignet sich beispielsweise Quantencomputer besonders gut mit Problemen, die eine große Anzahl möglicher Kombinationen berechnen müssen, die häufig in Optimierungs-, Simulations- oder Machine Learning-Szenarien zu finden sind.
Quantencomputingkomponenten haben jedoch ein anderes Betriebsmodell als die klassische Software. In der Regel gibt es eine oder mehrere klassische Berechnungskomponenten, die die Ausführung von Quantenkomponenten koordinieren. Diese Orchestrierung umfasst die folgenden Aktivitäten:
- Vorbereitung von Eingabedaten
- Übermittlung von Quantencomputing Jobs an eine Ziel-Quantenumgebung
- Überwachung der Auftragsausführung
- Nachbearbeitung von Auftragsergebnissen
Sie können diese Orchestrierung auf eine von zwei Arten in klassische Anwendungen integrieren:
- Integration über enge Kopplung. Logik für die Orchestrierung von Quantenressourcen wird in die klassische Komponente oder Komponenten integriert.
- Integration über lose Kopplung. Logik für die Orchestrierung von Quantenressourcen wird als API verfügbar gemacht, die von verschiedenen klassischen Softwarekomponenten aufgerufen werden kann.
In diesem Artikel wird beschrieben, wie Quantenanwendungen in jedem dieser Designs implementiert werden. Jede Implementierung verwendet Azure Quantum als Quantencomputingmodul, unterscheidet sich jedoch geringfügig in anderen Aspekten, wie unten beschrieben.
Eng gekoppelter Ansatz
Potenzielle Anwendungsfälle
Der eng gekoppelte Ansatz wird in diesen Fällen bevorzugt:
- Ein Team besitzt sowohl den Quantencode als auch den klassischen Code, und der Code ist integriert.
- Quantenkomponenten teilen den gleichen Lebenszyklus wie die klassischen Komponenten.
- Die Verwendung der Quantenkomponenten ist auf eine einzelne Anwendung oder eine kleine Gruppe verwandter Anwendungen beschränkt.
- Der Quantenauftrag stellt eine spezielle Lösung (z. B. eine molekulare Simulation) dar, die nur von einer spezialisierten klassischen Anwendung verwendet wird.
- Der implementierte Algorithmus ist eine hybride Quantenklassik aus der Natur, z. B. Variationsal Quantum Eigensolvers (VQE) und Quantum Approximate Optimization Algorithms (QAOA).
Architektur
Laden Sie eine PowerPoint-Datei dieser Architektur herunter.
Datenfluss
- Ein angemeldeter Benutzer löst die Quantenauftragsausführung über eine klassische Clientanwendung aus.
- Die Clientanwendung fügt Eingabedaten in Azure Storage ein.
- Die Clientanwendung sendet den Auftrag an einen Azure Quantum-Arbeitsbereich, der das Ausführungsziel oder die Ziele angibt. Der Client identifiziert den Arbeitsbereich über Daten, die im Key Vault gespeichert sind, und authentifiziert sich beim Arbeitsbereich über verwaltete Identität.
- Ein Quantenanbieter führt den Auftrag in einer Zielumgebung aus.
- Die Clientanwendung überwacht die Auftragsausführung durch Abrufen des Auftragsstatus.
- Sobald der Quantenauftrag abgeschlossen ist, erhält die Clientanwendung das Berechnungsergebnis aus Storage.
Dieser Workflow implementiert das Asynchrones Request-Reply Muster und die Schritte, die für den Azure Quantum-Auftragslebenszyklusdefiniert sind.
Komponenten
- Azure Quantum bietet einen Arbeitsbereich, auf den über das Azure-Portal zugegriffen werden kann, für Ressourcen, die mit der Ausführung von Quantenaufträgen auf verschiedenen Zielen verbunden sind. Aufträge werden auf Quantensimulatoren oder Quantenhardware ausgeführt, je nachdem, welche Anbieter Sie auswählen.
- Microsoft Entra ID die Benutzerauthentifizierung koordiniert und hilft, den Zugriff auf den Azure Quantum-Arbeitsbereich zu schützen.
- Key Vault die Kontrolle über Schlüssel und andere geheime Schlüssel wie den Namen des Azure Quantum-Arbeitsbereichs.
- Azure Storage bietet Speicher für Eingabedaten und Ergebnisse des Quantenanbieters.
Betrachtungen
Diese Überlegungen implementieren die Säulen des Azure Well-Architected-Frameworks, das eine Reihe von leitden Tenets ist, die verwendet werden können, um die Qualität einer Workload zu verbessern. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.
Zuverlässigkeit
Zuverlässigkeit stellt sicher, dass Ihre Anwendung die Verpflichtungen erfüllen kann, die Sie an Ihre Kunden vornehmen. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für Zuverlässigkeit.
Die Verfügbarkeit der Quantenberechnungsfunktionalität hängt stark von der Verfügbarkeit und Installation des Quantencomputinganbietersab. Je nach Berechnungsziel kann die klassische Clientanwendung lange Verzögerungen oder Nichtverfügbarkeit des Ziels haben.
Für die umgebenden Azure-Dienste gelten die üblichen Verfügbarkeitsüberlegungen:
- Verwenden Sie die Key Vault Redundanzoptionen.
- Ziehen Sie bei Bedarf die Replikationsoptionen in Storagein Betracht.
Sicherheit
Die Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für sicherheitsrelevante.
Im Gegensatz zur Architektur für die lose gekoppelten alternativenbasiert die hier vorgestellte Architektur auf der Annahme, dass nur ein Client auf den Azure Quantum-Arbeitsbereich zugreift. Dieses Szenario führt zu den folgenden Konfigurationen:
- Da der Client bekannt ist, können Sie die Authentifizierung über verwaltete Identitätimplementieren, die der Anwendung zugeordnet ist.
- Sie können die Drosselung von Anforderungen und das Zwischenspeichern von Ergebnissen im Client selbst implementieren.
Im Allgemeinen sollten Sie bei Bedarf die typischen Entwurfsmuster für sicherheitsrelevante anwenden.
Lose gekoppelter Ansatz
Potenzielle Anwendungsfälle
Der lose gekoppelte Ansatz wird in diesen Fällen bevorzugt:
- Sie verfügen über ein dediziertes Team von Quantenspezialisten, die Quantenfunktionen für andere Teams zentral bereitstellen und die Quantenkomponenten unabhängig von klassischen Clientkomponenten entwickelt werden.
- Der Quantenauftrag stellt eine generische Lösung (z. B. Auftragsplanung) dar, die von mehreren klassischen Anwendungen wiederverwendet werden kann.
Architektur
Laden Sie eine PowerPoint-Datei dieser Architektur herunter.
Datenfluss
- Ein angemeldeter Benutzer löst die Quantenauftragsausführung über eine klassische Anwendung aus.
- Die klassische Anwendung ruft die benutzerdefinierte Auftrags-API auf, um den Auftrag zu übermitteln.
- Das API-Gateway löst die Azure-Funktion der Auftragsübermittlung aus, die Auftragseingabedaten übergibt.
- Die Funktion fügt die Eingabedaten in Azure Storage ein.
- Die Funktion sendet den Auftrag an einen Azure Quantum-Arbeitsbereich, der das Ausführungsziel oder die Ziele angibt. Die Funktion identifiziert den Arbeitsbereich über daten, die in Azure Key Vault gespeichert sind, und authentifiziert sich beim Arbeitsbereich über verwaltete Identität.
- Ein Quantenanbieter führt den Auftrag in einer Zielumgebung aus.
- Die Clientanwendung überwacht die Auftragsausführung, indem der Auftragsstatus über API-Aufrufe abgerufen wird.
- Das API-Gateway überwacht die Auftragsausführung, indem der Auftragsstatus vom Quantenanbieter abgerufen wird.
- Nach Abschluss des Auftrags werden die Computeergebnisse in Azure Storage gespeichert. Die Clientanwendung ruft die Ergebnisse mithilfe einer API ab, die über die Azure-Funktion implementiert wird.
Dieser Workflow implementiert das Asynchrones Request-Reply Muster und die Schritte, die für den Azure Quantum-Auftragslebenszyklusdefiniert sind.
Komponenten
- Azure Quantum bietet einen Arbeitsbereich, auf den über das Azure-Portal zugegriffen werden kann, für Ressourcen, die mit der Ausführung von Quantenaufträgen auf verschiedenen Zielen verbunden sind. Aufträge werden auf Quantensimulatoren oder Quantenhardware ausgeführt, je nachdem, welche Anbieter Sie auswählen.
- Microsoft Entra ID die Benutzerauthentifizierung koordiniert und hilft, den Zugriff auf den Azure Quantum-Arbeitsbereich zu schützen.
- API Management ist das API-Gateway, das die API-Endpunkte für die Quantenauftragsverwaltung zentral verfügbar macht.
- Azure Functions wird verwendet, um die Clientanforderungen an geeignete Quantenressourcen weiterzuleiten.
- Azure Key Vault schützt und verwaltet die Kontrolle über Schlüssel und andere geheime Schlüssel, z. B. den Namen des Azure Quantum-Arbeitsbereichs.
- Azure Storage bietet Speicher für Eingabedaten und Ergebnisse des Quantenanbieters.
Zuverlässigkeit
Die Verfügbarkeit der Quantenberechnungsfunktion hängt stark von der Verfügbarkeit und Installation der Quantencomputinganbietersab. Je nach Berechnungsziel kann die klassische Clientanwendung lange Verzögerungen oder Nichtverfügbarkeit des Ziels haben.
Für die umgebenden Azure-Dienste gelten die üblichen Verfügbarkeitsüberlegungen:
- Für hohe Verfügbarkeit können Sie API-Verwaltungs- in mehreren Zonen oder Regionen bereitstellen.
- Wenn Sie georeplikation verwenden, können Sie Azure Functions in mehreren Regionen bereitstellen.
- Verwenden Sie die Key Vault Redundanzoptionen.
- Ziehen Sie bei Bedarf die Replikationsoptionen in Storagein Betracht.
Sicherheit
Im Gegensatz zur Architektur für die eng gekoppelten alternativenbasiert die hier vorgestellte Architektur auf der Annahme, dass mehrere Clients über die API auf den Azure Quantum-Arbeitsbereich zugreifen. Dieses Szenario führt zu den folgenden Konfigurationen:
- Clients müssen sich bei der API authentifizieren. Sie können diese Authentifizierung mithilfe Authentifizierungsrichtlinienimplementieren.
- Sie können die Authentifizierung der Azure-Funktionen über verwaltete Identitäten implementieren, den Funktionen zugeordnet sind. Sie können diese Identitäten verwenden, um sich beim Azure Quantum-Arbeitsbereich zu authentifizieren.
- Mehrere Clients greifen auf die API zu. Sie können die Anforderungseinschränkung implementieren, indem Sie API Management-Anforderungsdrosselung verwenden, um das Quantum-Back-End zu schützen und die Verwendung von Quantenressourcen einzuschränken.
- Je nach Anforderungsmuster können Sie die Zwischenspeicherung von Quantencomputingergebnissen mithilfe API-Verwaltungszwischenspeicherungsrichtlinienimplementieren.
Im Allgemeinen sollten Sie bei Bedarf die typischen Entwurfsmuster für sicherheitsrelevante anwenden.
Leistungseffizienz
Die Leistungseffizienz ist die Fähigkeit Ihrer Arbeitsauslastung, um die Anforderungen zu erfüllen, die die Benutzer auf effiziente Weise an sie stellen. Weitere Informationen finden Sie unter Prüfliste zur Entwurfsüberprüfung für die Leistungseffizienz.
Die Anwendungsleistung hängt von der Verfügbarkeit und Leistung der zugrunde liegenden Quantencomputingziele ab. Informationen zur Leistung und Skalierbarkeit der klassischen Komponenten, lesen Sie die typischen Entwurfsmuster für Skalierbarkeit und die Prüfliste zur Leistungseffizienz.
Allgemeine Features
Die folgenden Features gelten sowohl für eng gekoppelte als auch lose gekoppelte Implementierungsmodelle.
Alternativen
Die hier vorgestellten Architekturen beziehen sich auf Geschäftsprobleme, die Quantencomputingressourcen für ihre Rechenaufgaben erfordern. Bei einigen Rechenproblemen können vorhandene Dienste, die für hochleistungsintensive Computing- entwickelt wurden, oder KI-Funktionalität bereitstellen eine Alternative sein.
Betrachtungen
Einige der Azure-Quantenziele (insbesondere Quantenhardware) werden eine begrenzte Ressource für die vorhersehbare Zukunft sein. Der Zugriff auf diese Ressourcen wird über einen Warteschlangenmechanismus implementiert. Wenn Sie einen Quantenauftrag an Azure Quantum übermitteln, wird dieser Auftrag einer Auftragswarteschlange hinzugefügt. Der Auftrag wird ausgeführt, sobald das Ziel die Verarbeitung früherer Warteschlangeneinträge abgeschlossen hat. Sie können die erwartete Wartezeit erhalten, indem Sie verfügbare Zieleauflisten. Um die vollständige Antwortzeit zu berechnen, müssen Sie die zeitverwendete Wartezeit für eine verfügbare Ressource zur Ausführungszeit des Auftrags hinzufügen.
Zuverlässigkeit
Da Quantenzielumgebungen wie Azure Quantum in der Regel eine begrenzte Fehlerkorrektur (begrenzt auf den Quantenprozessor im Falle von Azure Quantum) bieten, können andere Fehler wie quantum machine timeout weiterhin auftreten, sodass es empfohlen wird, die Auftragsausführung zu überwachen, damit Sie den Benutzer über den Auftragsstatus informieren können. Wenn die Auftragsausführung aufgrund eines vorübergehenden Fehlers fehlschlägt, implementieren Sie ein Wiederholungsmuster. Übermitteln Sie die Aufträge über asynchrone Aufrufe mit Abruf für das Ergebnis, um unnötige Blockierung des aufrufenden Clients zu vermeiden.
Da Quantencomputingressourcen in der Regel begrenzt sind, sollten die Resilienzerwartungen diesen Faktor berücksichtigen. Daher können die in diesem Artikel angebotenen Vorschläge zusätzliche Maßnahmen zur Resilienz enthalten.
Kostenoptimierung
Bei der Kostenoptimierung geht es um Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Prüfliste für die Überprüfung der Kostenoptimierung.
Die Gesamtkosten dieser Lösung hängen vom Quantencomputingziel ab, das Sie für die Ausführung des Quantenauftrags auswählen. Die Berechnung der geschätzten Kosten für die klassischen Komponenten ist einfach. Sie können den Azure-Preisrechnerverwenden.
Berücksichtigen Sie für den Azure Quantum-Dienst, dass Quantum Computing-Anbieter über ein Azure Marketplace-Angebot genutzt werden können. Die Preise hängen vom Typ der Ressource (Simulator oder Hardware), der SKU und Ihrer Nutzung ab. Ausführliche Informationen finden Sie auf der Referenzseite für den Anbieter, der für Ihr Szenario erforderlich ist. Diese Referenzseiten werden in Quantum Computing-Anbietern auf Azure Quantumaufgeführt.
Operative Exzellenz
Operational Excellence deckt die Betriebsprozesse ab, mit denen eine Anwendung bereitgestellt und in der Produktion ausgeführt wird. Weitere Informationen finden Sie unter Prüfliste für die Überprüfung von Operational Excellence.
Das Integrieren von Quantenaufträgen in klassische CI/CD-Pipelines kann mithilfe von Azure DevOps mit geringfügigen Änderungen an einem typischen Design erreicht werden. Das folgende Design veranschaulicht einen DevOps-Pipelineworkflow, der auf eng gekoppelte und lose gekoppelte Architekturen angewendet werden kann.
Architektur
Laden Sie eine PowerPoint-Datei dieser Architektur herunter.
Datenfluss
- Der Entwickler ändert den Quellcode der Anwendungskomponenten.
- Änderungen werden für das Quellcode-Repository übernommen.
- Änderungen am Quantencode lösen die Quantenbuildpipeline aus. Die Buildpipeline überprüft den Code, kompiliert ihn, schätzt die erforderlichen Ressourcen und führt den Algorithmus auf einem Simulator aus.
- Der kompilierte Quantenalgorithmus wird zur Prüfung an eine Quantenumgebung übermittelt.
- Änderungen lösen eine Buildpipeline für die klassischen Komponenten aus. Die Pipeline überprüft den Code, kompiliert ihn und führt Komponenten- und Integrationstests aus.
- Erfolgreiche Kompilierung und Tests lösen eine Releasepipeline aus. Die Pipeline stellt zunächst die Azure-Umgebung bereit, indem die Azure Resource Manager-Vorlagen bereitgestellt werden, die im Repository (Infrastruktur als Code) gespeichert sind.
- Kompilierte klassische Anwendungsartefakte werden in Azure bereitgestellt. Die Quantenaufträge werden während der Laufzeit an einen Quantenarbeitsbereich übermittelt.
- Application Insights überwacht Laufzeitverhalten, Integrität, Leistung und Nutzungsinformationen.
- Backlog-Elemente werden je nach Bedarf aktualisiert, abhängig von den Überwachungsergebnissen.
- Der Entwickler verwendet Application Insights für Anwendungsfeedback und Optimierung.
Komponenten
Diese Lösung verwendet die folgenden DevOps-Tools:
- Azure Repos bietet unbegrenzte, in der Cloud gehostete private Git-Repositorys. Es wird hier verwendet, um den Quanten- und klassischen Code und die Azure Resource Manager-Vorlagen zu speichern, die zur Bereitstellung der Umgebung verwendet werden.
- Azure Pipelines ermöglicht Es Ihnen, kontinuierlich in der Cloud zu erstellen, zu testen und bereitzustellen. Hier wird es verwendet, um CI/CD zu implementieren, einschließlich der Umgebungsbereitstellung vor der Codebereitstellung.
Alternativ können Sie GitHub-Repositorys und GitHub-Aktionen verwenden, um die CI/CD-Prozesse zu implementieren.
Die Lösung verwendet die folgenden anderen Komponenten:
- Eine Clientanwendung koordiniert den Quantenauftrag. Sie können die Integration implementieren, indem Sie eine eng gekoppelte oder einen lose gekoppelten Ansatz verwenden.
- Azure Quantum bietet einen Arbeitsbereich für Ressourcen, die mit der Ausführung von Quantum Computing-Anwendungen verbunden sind. Aufträge werden auf Quantensimulatoren oder Quantenhardware ausgeführt, je nachdem, welche Anbieter Sie auswählen.
- Microsoft Entra ID die Benutzerauthentifizierung koordiniert und schützt den Zugriff auf den Azure Quantum-Arbeitsbereich.
- Azure Key Vault schützt und verwaltet die Kontrolle über Schlüssel und andere geheime Schlüssel, z. B. den Namen des Quantenarbeitsbereichs.
- Azure Storage enthält die Eingabe- und Ausgabedaten des Quantenauftrags.
- Application Insights überwacht die Anwendung, erkennt Anwendungsanomalien wie schlechte Leistung und Fehler und sendet Telemetrie an das Azure-Portal.
Leistungseffizienz
Die Anwendungsleistung hängt von der Verfügbarkeit und Leistung der zugrunde liegenden Quantencomputingziele ab. Informationen zur Leistung und Skalierbarkeit der klassischen Komponenten, lesen Sie die typischen Entwurfsmuster für Skalierbarkeit und die Prüfliste zur Leistungseffizienz.
Beitragende
Dieser Artikel wird von Microsoft verwaltet. Sie wurde ursprünglich von dem folgenden Mitwirkenden verfasst.
Hauptautor:
- Holger Sirtl | Senior Technical Architect im Microsoft Technology Center
Um nicht öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.
Nächste Schritte
- Eine Übersicht über Microsoft Quantum, ein Full-Stack-, Open-Cloud-Quantum Computing-Ökosystem, finden Sie unter Microsoft Quantum und schließen Sie die Quantum Computing-Grundlagen Lernpfad ab.
- Weitere Informationen zum Azure Quantum-Dienst finden Sie unter Azure Quantum.
- Allgemeine Informationen zur Azure Quantum-Auftragsverwaltung finden Sie unter Arbeiten mit Azure Quantum-Aufträgen.
- Informationen zum Ausführen von Algorithmen auf Quantenhardware finden Sie im Modul Ausführen von Algorithmen auf Quantenhardware mithilfe von Azure Quantum.