IBM hat die Einstiegspunkte zu Qiskit über Python hinaus erweitert und ermöglicht dessen Nutzung aus Fortran, C++ und Julia über eine einheitliche C-Schnittstelle, die auf den leistungsfähigen, in Rust geschriebenen Kern zugreift. Nach Angaben des Unternehmens erlaubt dieses Design, Quanten-Schaltkreise direkt innerhalb bestehender Anwendungen zu erstellen und auszuführen, ohne einen Python-Interpreter einzubetten oder Daten in Python-Objekte zu übertragen.
Der Schritt erfolgt seit Qiskit 2.0, das eine C-Schnittstelle für das zugrunde liegende Datenmodell des Entwicklungspakets eingeführt hat. Da die drei Sprachbindungen dieselbe gemeinsame Qiskit-Bibliothek verwenden, können in einer Sprache erstellte Schaltkreise prinzipiell an eine andere Sprache wie C++ oder Fortran übergeben werden, wobei dasselbe Objekt erhalten bleibt.
Drei Wege zu Qiskit
Für Fortran stellt IBM die Schnittstelle qiskit-fortran zum Erstellen und Verarbeiten von Schaltkreisen bereit. Dabei wird der standardisierte Mechanismus iso_c_binding genutzt, um die C-Schnittstelle aufzurufen. Der Schaltkreis verwendet einen abgeleiteten Typ, der den Speicher freigibt, sobald die Variable den Gültigkeitsbereich verlässt. Daten wie ein Hamiltonoperator können außerdem direkt aus bereits vorhandenen Quantenchemie-Anwendungen im Fortran-Speicher an Routinen zum Aufbau des Schaltkreises übergeben werden, ohne sie nach Python zu kopieren oder neu zuzuweisen.
qiskit-cpp, das IBM erstmals im Vorjahr angekündigt hatte, ist eine C++-Schnittstelle, die ausschließlich über Header-Dateien funktioniert. Das Programm kann mit der Qiskit-C-Bibliothek verknüpft werden, während der Speicher des Schaltkreisobjekts automatisch verwaltet wird, sobald es den Gültigkeitsbereich verlässt. IBM nennt die Möglichkeit, Schaltkreise über den C-Client von qiskit-ibm-runtime oder über QRMI und SQC zu senden.
Qiskit.jl und QiskitIBMRuntime.jl bieten Julia-Nutzern einen interaktiven Weg, einschließlich der Arbeit in Jupyter-Notebooks und des Zugriffs auf IBM-Quantum-Hardware. Die beiden Pakete verbergen die Details der C-Zeiger und ermöglichen das Erstellen und Ausführen von Schaltkreisen in einem Stil, der Qiskit in Python ähnelt. Dabei ist zu beachten, dass Julia die Qubits ab 1 nummeriert, während Python die Nummerierung ab 0 verwendet.
Was ändert sich in der Praxis?
Die neuen Schnittstellen richten sich an Forscher, deren wissenschaftliche Anwendungen auf Fortran, C++ oder Julia basieren, insbesondere in den Bereichen Simulation, Physik, Chemie, Ingenieurwesen und High-Performance-Computing. Statt Qiskit als separaten Prozess auszuführen oder Python zur Koordination jedes einzelnen Schritts zu verwenden, kann der Quanten-Schaltkreis als eingebundene Routine direkt innerhalb derselben klassischen Anwendung aufgerufen werden. Dazu gehören der Aufbau des Schaltkreises, seine Optimierung für eine bestimmte Hardware, die Übermittlung an die Hardware und anschließend die Verarbeitung der Ergebnisse.
IBM veranschaulicht diesen Ablauf anhand eines Julia-Beispiels zur Simulation eines Ising-Modells mit transversalem Feld auf einem System mit bis zu 100 Qubits. Das Beispiel umfasst eine Approximation der Entwicklung der Schrödinger-Gleichung mittels Trotterization, anschließend die Optimierung des Schaltkreises, seine Ausführung auf der Hardware und die Berechnung der Stellenmagnetisierung. Die konzeptionellen Ergebnisse des Beispiels zeigen, dass eine Verringerung der Trotter-Schrittweite den Approximationsfehler senkt, zugleich aber die Tiefe des Schaltkreises erhöht. Dadurch kann die Hardwarerauschbelastung letztlich größer werden als der durch die höhere Genauigkeit erzielte Gewinn.
Einschränkungen und offene Fragen
IBM betont, dass sich alle nicht für Python bestimmten Bindungen weiterhin in aktiver Entwicklung befinden. Daher stellt die Ankündigung weder endgültige stabile Schnittstellen noch detaillierte Vergleichsergebnisse zur Leistung vor. Das Beispiel mit 100 Qubits bedeutet außerdem nicht, dass die praktischen Grenzen des Quantencomputings überwunden wären: Die klassische Simulationsreferenz mit Tensor-Netzwerken wird mit zunehmender Verschränkung weniger zuverlässig, während die Ausführungsgenauigkeit weiterhin vom Trotter-Fehler und vom Hardwarerauschen abhängt.
Der zentrale Wert liegt hier in der Verringerung der programmatischen Hürden bei der Integration quantenbezogener Ressourcen in bestehende HPC-Codes, nicht in der Bereitstellung einer an sich neuen Quantenfähigkeit. Die Wirkung der Schnittstellen wird von der Reife der Pakete, ihrer Integration in bestehende Forschungsumgebungen und der Fähigkeit der Quantenhardware abhängen, Ergebnisse zu liefern, die über das hinausgehen, was klassische Alternativen bieten.