Entwicklungsworkflow
Der Begriff „Qiskit-Muster” beschreibt den Entwicklungsworkflow zum Aufschlüsseln domänenspezifischer Probleme und zum schrittweisen Kontextualisieren der erforderlichen Fähigkeiten. Dies ermöglicht die nahtlose Kombinierbarkeit neuer Funktionen, die von Forschern der „ IBM Quantum® “ (und anderen) entwickelt wurden, und eröffnet eine Zukunft, in der Quantencomputing-Aufgaben von einer leistungsstarken heterogenen (CPU/GPU/QPU) Computing-Infrastruktur ausgeführt werden. Blöcke oder Gruppen von Blöcken führen die Schritte eines Musters aus, wobei die Blockchain-Plattform „ Qiskit SDK “ eine wichtige Grundlage bildet, die durch andere Tools oder Dienste unterstützt wird, die von „ IBM Quantum “ oder der Open-Source-Quantum-Community entwickelt wurden. Mit Qiskit-Mustern können Fachleute ein Problem spezifizieren und die Werkzeuge (Blöcke) zusammenstellen, mit denen ein Qiskit-Muster realisiert wird. Dieses Muster kann dann lokal, über Cloud-Dienste oder mit „ Qiskit Serverless “ ausgeführt werden.
Die vier Schritte eines Qiskit-Musters sind wie folgt:
- Problem auf Quantenschaltungen und Operatoren abbilden
- Für Zielhardware optimieren
- Auf der Zielhardware ausführen
- Nachbearbeitungsergebnisse
Die einzelnen Schritte werden in den folgenden Abschnitten beschrieben.
Das Problem auf Quantenschaltungen und -operatoren abbilden
In diesem Schritt wird beschrieben, wie ein Benutzer von einem klassischen Problem ausgeht und herausfindet, wie er es auf einen Quantencomputer abbilden kann. In Anwendungsbereichen wie der Chemie und der Quantensimulation umfasst dieser Schritt in der Regel die Erstellung eines Quantenschaltkreises, der den zu lösenden Hamilton-Operator darstellt. In diesem Schritt kann es bei bestimmten Problemen auch sinnvoll sein, die Abbildung des Problems auf die Qubits im Heavy-Hex-Gitter (oder Bruttogitter) der „ IBM® “-Hardware von vornherein festzulegen, sofern sich die Struktur des Problems für eine frühzeitige Optimierung eignet. An dieser Stelle lohnt es sich auch, darüber nachzudenken, welches Ergebnis der jeweilige Algorithmus liefern wird, um sich auf den späteren Ausführungsschritt vorzubereiten – wenn das gewünschte Ergebnis beispielsweise die Ableitung von Korrelationsfunktionen mithilfe von Hadamard-Tests beinhaltet, sollten Sie sich auf die Verwendung von „Sampler“ vorbereiten, während die Angabe von Observablen die Verwendung von „Estimator“ erfordern würde und zahlreiche Optionen zur Fehlerminimierung bieten könnte.
Das Ergebnis dieses Schritts ist normalerweise eine Sammlung von Schaltkreisen oder Quantenoperatoren, die im nächsten Schritt für die Hardware optimiert werden können.
Für die Zielhardware optimieren
In diesem Schritt werden die abstrakten Schaltungen (oder Operatoren) aus dem Map-Schritt genommen und eine Reihe von Optimierungen an ihnen vorgenommen. Dies kann die Abbildung der Route und des Layouts der Schaltung auf physische Qubit-Hardware, die Konvertierung in Basisgatter der Hardware und die Verringerung der Anzahl der Operationen umfassen, die alle darauf abzielen, die Erfolgswahrscheinlichkeit im späteren Ausführungsschritt zu optimieren. An dieser Stelle können Sie Ihre Schaltungen auch mit einem Simulator testen, bevor Sie sie im nächsten Schritt auf echter Hardware ausführen.
In diesem Schritt müssen abstrakte Schaltungen in Schaltungen der Befehlssatzarchitektur (ISA) transpiliert werden. Eine ISA-Schaltung besteht ausschließlich aus Gatter, die von der Zielhardware verstanden werden (Basisgatter), sowie aus allen Multi-Qubit-Gattern, die zur Einhaltung etwaiger Verbindungsbeschränkungen erforderlich sind (Kopplungskarte). Auf der „ IBM “-Hardware können mithilfe des „ IBM Quantum Compute Service“ ausschließlich ISA-Schaltungen ausgeführt werden.
Auf Zielhardware ausführen
In diesem Schritt werden Ihre Schaltkreise auf der Hardware ausgeführt, wodurch die Ergebnisse der Quantenberechnung erzeugt werden. Die im vorherigen Schritt erstellten ISA-Schaltungen können entweder mithilfe einer Sampler- oder Estimator-Primitive aus dem Paket qiskit-ibm-runtime ausgeführt werden, die lokal auf Ihrem Computer oder in einem Cluster bzw. einer anderen heterogenen Rechenumgebung initialisiert wurde. Diese können in einem Batch ausgeführt werden, was eine parallele Transpilierung im Sinne klassischer Recheneffizienz ermöglicht – oder in einer Session, wodurch iterative Aufgaben effizient und ohne Verzögerungen durch Warteschlangen umgesetzt werden können. In diesem Schritt besteht zudem die Möglichkeit, bestimmte von […] bereitgestellte Techniken zur Fehlerunterdrückung und -minderung zu konfigurieren qiskit-ibm-runtime.
Je nachdem, ob Sie die Primitive „Sampler“ oder „Estimator“ verwenden, fällt das Ergebnis dieses Schritts unterschiedlich aus. Bei Verwendung von Sampler werden die Messwerte pro Schuss in Form von Bitstrings ausgegeben. Bei Verwendung von Estimator sind die Ergebnisse Erwartungswerte von Observablen, die physikalischen Größen oder Kostenfunktionen entsprechen.
Nachbearbeitungsergebnisse
In diesem letzten Schritt werden die Ergebnisse des vorherigen Schritts wieder zusammengefügt, um das gewünschte Ergebnis zu erzielen. Dies kann eine Reihe klassischer Datenverarbeitungsschritte umfassen, wie beispielsweise die Visualisierung von Ergebnissen, Techniken zur Minderung von Auslesefehlern, die Marginalisierung von Quasi-Wahrscheinlichkeitsverteilungen zur Ermittlung von Ergebnissen anhand kleinerer Qubit-Mengen oder die Nachselektion anhand von dem Problem innewohnenden Eigenschaften wie Gesamtspin, Parität oder Teilchenerhaltung durch Eliminierung unphysikalischer Observablen.
Die Flexibilität und Leichtigkeit, mit der die Qiskit-Muster den Nutzern die Möglichkeit geben, die verschiedenen Schritte des Musters zusammenzustellen, eröffnet dem Quantencomputing eine Vielzahl von Anwendungen und Techniken, die von Quantencomputern leicht genutzt werden können.