Bearbeiten

Integration von Quantencomputing in klassische Apps

Azure Quantum
Azure-Schlüsseltresor
Microsoft Entra ID

Klassisches Computing sieht sich zunehmend durch Berechnungsprobleme höchster Komplexität der Neuzeit herausgefordert – selbst in der Größenordnung unserer leistungsstärksten Supercomputer. Quantencomputer bergen das Versprechen, unsere Computefähigkeiten dramatisch zu erweitern. Durch die Nutzung der Eigenschaften der Quantenphysik zur Durchführung von Berechnungen bieten sie exponentielle Geschwindigkeitssteigerungen für bestimmte Arten von Problemen. Quantencomputer funktionieren beispielsweise besonders gut bei Problemen, für die sie eine große Anzahl möglicher Kombinationen berechnen müssen, was häufig in Optimierungs-, Simulations- oder Machine Learning-Szenarien vorkommt.

Quantencomputingkomponenten verfügen jedoch über ein anderes Betriebsmodell als klassische Software. Es gibt in der Regel eine oder mehrere klassische Computekomponenten, die die Ausführung von Quantenkomponenten orchestrieren. Diese Orchestrierung umfasst die folgenden Aktivitäten:

  • Vorbereitung von Eingabedaten
  • Übermitteln von Quantencomputingaufträgen an eine Quantenzielumgebung
  • Überwachen der Auftragsausführung
  • Nachverarbeitung von Auftragsergebnissen

Sie können diese Orchestrierung auf eine von zwei Arten in klassische Anwendungen integrieren:

  • Integration über enge Kopplung. Die Logik für die Orchestrierung von Quantenressourcen ist in die klassische/n Komponente/n integriert.
  • Integration über lose Kopplung. Die 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 nutzt Azure Quantum als Quantencomputing-Engine, wobei sie sich aber leicht in anderen Aspekten unterscheiden, wie im Folgenden beschrieben.

Ansatz mit enger Kopplung

Mögliche Anwendungsfälle

Der fest gekoppelte Ansatz wird in folgenden Fällen bevorzugt:

  • Ein Team besitzt sowohl den Quantencode als auch den klassischen Code und der Code ist integriert.
  • Quantenkomponenten nutzen den gleichen Lebenszyklus wie die klassischen Komponenten.
  • Die Verwendung der Quantenkomponenten ist auf eine einzelne Anwendung oder eine kleine Gruppe verwandter Anwendungen beschränkt.
  • Die Quantenaufgabe stellt eine spezialisierte Lösung dar (z. B. eine Molekularsimulation), die nur von einer spezialisierten klassischen Anwendung verwendet wird.
  • Der implementierte Algorithmus ist grundsätzlich ein hybrider quantenklassischer Algorithmus, z. B. Variational Quantum Eigensolver (VQE) und Quantum Approximate Optimization Algorithms (QAOA).

Aufbau

Architecture diagram that shows a hybrid app that contains a tightly coupled quantum computing job.

Laden Sie eine PowerPoint-Datei zu dieser Architektur herunter.

Datenfluss

  1. Ein angemeldeter Benutzer löst die Ausführung von Quantenaufträgen über eine klassische Clientanwendung aus.
  2. Die Clientanwendung fügt Eingabedaten in Azure Storage ein.
  3. Die Clientanwendung sendet den Auftrag an einen Azure Quantum Arbeitsbereich, wobei sie ein oder mehrere Ausführungsziele angibt. Der Client identifiziert den Arbeitsbereich über Daten, die in Key Vault gespeichert sind, und authentifiziert sich mittels verwalteter Identität beim Arbeitsbereich.
  4. Ein Quantenanbieter führt den Auftrag in einer Zielumgebung aus.
  5. Die Clientanwendung überwacht die Auftragsausführung, indem der Auftragsstatus abgefragt wird.
  6. Sobald der Quantenauftrag abgeschlossen ist, ruft die Clientanwendung das Computeergebnis aus Storage ab.

Dieser Workflow implementiert das asynchrone Anforderung-Antwort-Muster (Request-Reply) und die für den Azure Quantum-Auftragslebenszyklus definierten Schritte.

Komponenten

  • Azure Quantum bietet einen Arbeitsbereich, auf den über das Azure-Portal zugegriffen werden kann, für Ressourcen, die mit der Ausführung von Quanten- oder Optimierungsaufträgen auf verschiedenen Zielen verknüpft sind. Aufträge werden abhängig vom gewählten Anbieter in Quantensimulatoren, auf Quantenhardware oder in Optimierungssolvern ausgeführt.
  • Microsoft Entra ID koordiniert die Benutzerauthentifizierung und hilft beim Schutz des Zugriffs auf den Azure Quantum-Arbeitsbereich.
  • Key Vault schützt Schlüssel und andere Geheimnisse (etwa den Namen des Azure Quantum-Arbeitsbereichs) und behält die Kontrolle über sie.
  • Azure Storage bietet Speicher für Eingabedaten und Ergebnisse des Quantenanbieters.

Verfügbarkeit

Die Verfügbarkeit der Quantencomputingfunktionalität hängt stark von der Verfügbarkeit und der Installationsbasis des Quantencomputinganbieters und des Optimierungsanbieters ab. Je nach Computeziel kann es bei der klassischen Clientanwendung zu langen Verzögerungen oder einer Nichtverfügbarkeit des Ziels kommen.

Für die umgebenden Azure-Dienste gelten die üblichen Überlegungen zur Verfügbarkeit:

  • Verwenden Sie die Redundanzoptionen von Key Vault.
  • Erwägen Sie ggf. die Verwendung der Replikationsoptionen in Storage.

Sicherheit

Im Gegensatz zur Architektur für die lose gekoppelte Alternative basiert die hier vorgestellte Architektur auf der Annahme, dass nur ein Clientzugriff auf den Azure Quantum-Arbeitsbereich zugreifen. Dieses Szenario führt zu den folgenden Konfigurationen:

  • Da der Client bekannt ist, können Sie die Authentifizierung über eine verwaltete Identität implementieren, die der Anwendung zugeordnet ist.
  • Sie können die Drosselung von Anforderungen und das Zwischenspeichern von Ergebnissen im Client selbst implementieren.

Erwägen Sie generell die Anwendung der typischen Entwurfsmuster für die Sicherheit, wo dies möglich ist.

Ansatz mit loser Kopplung

Mögliche Anwendungsfälle

Der lose gekoppelte Ansatz wird in folgenden Fällen bevorzugt:

  • Sie haben ein dediziertes Team von Quantenspezialisten, die zentral Quantenfunktionen für andere Teams bereitstellen, und die Quantenkomponenten werden unabhängig von allen klassischen Clientkomponenten entwickelt.
  • Der Quantenauftrag stellt eine generische Lösung (z. B. Auftragsplanung) dar, die von mehreren klassischen Anwendungen wiederverwendet werden kann.

Aufbau

Architecture diagram that shows a hybrid app that contains a loosely coupled quantum computing job.

Laden Sie eine PowerPoint-Datei zu dieser Architektur herunter.

Datenfluss

  1. Ein angemeldeter Benutzer löst die Ausführung von Quantenaufträgen über eine klassische Anwendung aus.
  2. Die klassische Anwendung ruft die API für benutzerdefinierte Aufträge auf, um den Auftrag zu übermitteln.
  3. Das API-Gateway löst die Azure-Funktion für die Auftragsübermittlung aus, die Auftragseingabedaten übergibt.
  4. Die Funktion legt die Eingabedaten in Azure Storage ab.
  5. Die Funktion sendet den Auftrag an einen Azure Quantum Arbeitsbereich, wobei sie ein oder mehrere Ausführungsziele angibt. Die Funktion identifiziert den Arbeitsbereich über in Azure Key Vault gespeicherte Daten und authentifiziert sich mittels verwalteter Identität beim Arbeitsbereich.
  6. Ein Quantenanbieter führt den Auftrag in einer Zielumgebung aus.
  7. Die Clientanwendung überwacht die Auftragsausführung, indem der Auftragsstatus über API-Aufrufe abgefragt wird.
  8. Das API-Gateway überwacht die Auftragsausführung, indem der Auftragsstatus vom Quantenanbieter abgerufen wird.
  9. 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 ist.

Dieser Workflow implementiert das asynchrone Anforderung-Antwort-Muster (Request-Reply) und die für den Azure Quantum-Auftragslebenszyklus definierten Schritte.

Komponenten

  • Azure Quantum bietet einen Arbeitsbereich, auf den über das Azure-Portal zugegriffen werden kann, für Ressourcen, die mit der Ausführung von Quanten- oder Optimierungsaufträgen auf verschiedenen Zielen verknüpft sind. Aufträge werden abhängig vom gewählten Anbieter in Quantensimulatoren, auf Quantenhardware oder in Optimierungssolvern ausgeführt.
  • Microsoft Entra ID koordiniert die Benutzerauthentifizierung und hilft beim Schutz des Zugriffs auf den Azure Quantum-Arbeitsbereich.
  • 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 die entsprechenden Quantenressourcen weiterzuleiten.
  • Azure Key Vault schützt Schlüssel und andere Geheimnisse (etwa den Namen des Azure Quantum-Arbeitsbereichs) und behält die Kontrolle über sie.
  • Azure Storage bietet Speicher für Eingabedaten und Ergebnisse des Quantenanbieters.

Verfügbarkeit

Die Verfügbarkeit der Quantencomputingfunktionalität hängt stark von der Verfügbarkeit und der Installationsbasis des Quantencomputinganbieters und des Optimierungsanbieters ab. Je nach Computeziel kann es bei der klassischen Clientanwendung zu langen Verzögerungen oder einer Nichtverfügbarkeit des Ziels kommen.

Für die umgebenden Azure-Dienste gelten die üblichen Überlegungen zur Verfügbarkeit:

  • Für Hochverfügbarkeit können Sie API Management in mehreren Zonen oder Regionen bereitstellen.
  • Wenn Sie Georeplikation verwenden, können Sie Azure Functions in mehreren Regionen bereitstellen.
  • Verwenden Sie die Redundanzoptionen von Key Vault.
  • Erwägen Sie ggf. die Verwendung der Replikationsoptionen in Storage.

Leistung und Skalierbarkeit

Die Anwendungsleistung hängt von der Verfügbarkeit und Leistung der zugrunde liegenden Quantencomputingziele ab. Informationen zur Leistung und Skalierbarkeit der klassischen Komponenten finden Sie in den typischen Entwurfsmustern für Skalierbarkeit und in der Checkliste zur Leistungseffizienz.

Sicherheit

Im Gegensatz zur Architektur für die eng gekoppelte Alternative basiert 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 von Authentifizierungsrichtlinien implementieren.
  • Sie können die Authentifizierung der Azure-Funktionen über verwaltete Identitäten implementieren, die 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 Anforderungsdrosselung implementieren, indem Sie API Management-Anforderungsdrosselung verwenden, um das Quanten-Back-End zu schützen und die Verwendung von Quantenressourcen einzuschränken.
  • Je nach Anforderungsmuster können Sie möglicherweise die Zwischenspeicherung von Quantencomputingergebnissen implementieren, indem Sie Cacherichtlinien für API Management verwenden.

Erwägen Sie generell die Anwendung der typischen Entwurfsmuster für die Sicherheit, wo dies möglich ist.

Allgemeine Funktionen

Die folgenden Features sind sowohl in eng gekoppelten als auch in lose gekoppelten Implementierungsmodellen enthalten.

Alternativen

Die hier vorgestellten Architekturen sind für Geschäftsprobleme vorgesehen, die Quantencomputingressourcen für ihre Computeaufgaben erfordern. Bei einigen Computeproblemen können vorhandene Dienste, die für Hochleistungscomputing entwickelt wurden oder KI-Funktionen bereitstellen, eine Alternative sein.

Überlegungen

Einige der Azure Quantum-Ziele (insbesondere Quantenhardware) werden in absehbarer Zukunft eine begrenzte Ressource bleiben. 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 zu erwartende Wartezeit abrufen, indem Sie die verfügbaren Ziele auflisten. Um die vollständige Antwortzeit zu berechnen, müssen Sie der Auftragsausführungszeit die Zeit hinzufügen, die für das Warten auf eine verfügbare Ressource aufgewendet wurde.

Leistung und Skalierbarkeit

Die Anwendungsleistung hängt von der Verfügbarkeit und Leistung der zugrunde liegenden Quantencomputingziele ab. Informationen zur Leistung und Skalierbarkeit der klassischen Komponenten finden Sie in den typischen Entwurfsmustern für Skalierbarkeit und in der Checkliste zur Leistungseffizienz.

Resilienz

Da Quantenzielumgebungen wie Azure Quantum in der Regel nur eine begrenzte Fehlerkorrektur bieten (begrenzt auf den Quantenprozessor im Falle von Azure Quantum), können andere Fehler wie Quantencomputertimeouts immer noch auftreten. Daher empfiehlt es sich, 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 des Ergebnisses, um eine unnötige Blockierung des aufrufenden Clients zu vermeiden.

Da Quantencomputingressourcen in der Regel begrenzt sind, sollten die Erwartungen hinsichtlich der Resilienz diesen Faktor berücksichtigen. Somit können die Vorschläge, die in diesem Artikel angeboten werden, zusätzliche Measures für die Resilienz bereitstellen.

DevOps

Die Integration von Quantenaufträgen in klassische CI/CD-Pipelines kann mittels Azure DevOps mit nur kleinen Änderungen an einem typischen Design erreicht werden. Im folgenden Entwurf wird ein DevOps-Pipelineworkflow gezeigt, der auf die eng gekoppelten wie auf die lose gekoppelten Architekturen angewendet werden kann.

Aufbau

Architecture diagram that shows a classical CI/CD pipeline with Azure Quantum incorporated into it.

Laden Sie eine PowerPoint-Datei zu dieser Architektur herunter.

Datenfluss

  1. Der Entwickler ändert den Quellcode der Anwendungskomponenten.
  2. Änderungen werden im Quellcoderepository committet.
  3. Durch Änderungen am Quantencode wird die Quantenbuildpipeline ausgelöst. Die Buildpipeline überprüft den Code, kompiliert ihn, schätzt den Ressourcenbedarf und führt den Algorithmus in einem Simulator aus.
  4. Der kompilierte Quantenalgorithmus wird zum Testen an eine Quantenumgebung übermittelt.
  5. Aufgrund von Änderungen wird eine Buildpipeline für die klassischen Komponenten ausgelöst. Die Pipeline überprüft den Code, kompiliert ihn und führt Komponenten- und Integrationstests aus.
  6. Waren Kompilierung und Tests erfolgreich, wird eine Releasepipeline ausgelöst. Die Pipeline stellt zunächst die Azure-Umgebung bereit. Hierzu werden die im Repository gespeicherten Azure Resource Manager-Vorlagen bereitgestellt (Infrastructure-as-Code).
  7. Kompilierte klassische Anwendungsartefakte werden in Azure bereitgestellt. Die Quantenaufträge werden zur Laufzeit an einen Quantenarbeitsbereich übermittelt.
  8. Von Application Insights werden Laufzeitverhalten, Integrität, Leistung und Nutzungsinformationen überwacht.
  9. Backlog Items werden abhängig von den Überwachungsergebnissen ggf. aktualisiert.
  10. Der Entwickler verwendet Application Insights für Anwendungsfeedback und zur Optimierung.

Komponenten

Von dieser Lösung werden folgende DevOps-Tools verwendet:

  • Azure Repos bietet unbegrenzte, in der Cloud gehostete private Git-Repositorys. Hier dient es zum Speichern des Quantencodes und des klassischen Codes sowie der Azure Resource Manager-Vorlagen, die zum Bereitstellen der Umgebung verwendet werden.
  • Azure Pipelines ermöglicht fortlaufendes Erstellen, Testen und Bereitstellen in der Cloud. Hier wird es zur Implementierung von CI/CD verwendet (einschließlich der Umgebungsbereitstellung vor der Codebereitstellung).

Alternativ können Sie GitHub-Repositorys und GitHub Actions verwenden, um die CI/CD-Prozesse zu implementieren.

Außerdem werden folgende Komponenten verwendet:

  • Eine Clientanwendung orchestriert den Quantenauftrag. Für die Integration kann ein eng gekoppelter oder ein lose gekoppelter Ansatz verwendet werden.
  • Azure Quantum stellt einen Arbeitsbereich für Ressourcen bereit, die mit der Ausführung von Quantencomputinganwendungen zusammenhängen. Aufträge werden abhängig vom gewählten Anbieter in Quantensimulatoren, auf Quantenhardware oder in Optimierungssolvern ausgeführt.
  • Microsoft Entra ID koordiniert die Benutzerauthentifizierung und schützt den Zugriff auf den Azure Quantum-Arbeitsbereich.
  • Azure Key Vault schützt Schlüssel und andere Geheimnisse (etwa den Namen des Quantenarbeitsbereichs) und behält die Kontrolle über sie.
  • Azure Storage wird zum Speichern der Ein- und Ausgabedaten des Quantenauftrags verwendet.
  • Application Insights überwacht die Anwendung, erkennt Anwendungsanomalien (beispielsweise Leistungsprobleme und Fehler) und sendet Telemetriedaten an das Azure-Portal.

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-Preisrechner verwenden.

Beachten Sie für den Azure Quantum-Dienst die folgenden Punkte:

  • Microsoft QIO-Solver werden über die Azure-Abonnementrechnung abgerechnet. Die Kosten hängen von der SKU und Ihrem Nutzungsmuster ab. Ausführliche Informationen finden Sie unter Preisdetails für Azure Quantum.
  • Andere Optimierungsanbieter sind im Azure Marketplace verfügbar. Preisdetails finden Sie auf der entsprechenden Referenzseite unter Optimierungsanbieter in Azure Quantum.
  • Quantencomputinganbieter können über ein Azure Marketplace-Angebot verwendet werden. Die Preise hängen vom Typ der Ressource (Simulator oder Hardware), der SKU und Ihrer Nutzung ab. Weitere Informationen finden Sie auf der Referenzseite für den Anbieter, der für Ihr Szenario benötigt wird. Diese Referenzseiten sind unter Quantencomputinganbieter in Azure Quantum zu finden.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben.

Hauptautor:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte