Skip to main content
IBM Quantum Platform

Einführung in OpenQASM

OpenQASM (open quantum assembly language), eine maschinenunabhängige Programmierschnittstelle, die mit IBM® QPUs kompatibel ist, ist eine imperative Programmiersprache zur Beschreibung von Quantenschaltungen. OpenQASM verwendet das Quantenschaltkreismodell, um Quantenprogramme als geordnete Sequenzen von parametrisierten Operationen (wie Gatter, Messungen und Rücksetzungen) und klassische Echtzeitberechnungen auszudrücken. Neben Quantenalgorithmen kann OpenQASM auch Schaltungen beschreiben, die zur Charakterisierung, Validierung oder Fehlersuche von Quantenprozessoren dienen.

Da sich die Anforderungen an die QPU-Entwicklung weiterentwickelt haben, wurde die Funktionsliste von „ OpenQASM's “ entsprechend erweitert. Die neueste Version, „ OpenQASM. 3“, enthält Erweiterungen wie klassische Feedforward-Flusskontrolle, Gate-Modifikatoren und Impulsimplementierungen.

OpenQASM ist aufgrund seiner Vielseitigkeit die erste Wahl für eine Vielzahl von Zielgruppen. In der Einleitung des Dokuments OpenQASM 31 werden Beispiele genannt:

"Obwohl OpenQASM keine Hochsprache ist, würden viele Benutzer gerne einfache Quantenschaltungen mit einer ausdrucksstarken domänenspezifischen Sprache von Hand schreiben. Forscher, die sich mit der Kompilierung von Schaltungen befassen, benötigen die in den Zwischendarstellungen aufgezeichneten Informationen auf hoher Ebene, um die Optimierungs- und Synthesealgorithmen zu informieren. Experimentatoren bevorzugen die Bequemlichkeit, Schaltungen auf einer relativ hohen Ebene zu schreiben, müssen aber oft das Timing oder die Gatterbeschreibungen auf Impulsebene an verschiedenen Stellen der Schaltung manuell ändern. Hardware-Ingenieure, die die klassischen Controller und Wellenformgeneratoren entwerfen, bevorzugen Sprachen, die angesichts der Hardware-Beschränkungen praktisch zu kompilieren sind und eine explizite Schaltungsstruktur aufweisen, die die Controller nutzen können

OpenQASM ist das gemeinsame Austauschformat für unabhängige Quantensoftware. Für Entwickler, die ein Werkzeug für den Aufbau von Schaltkreisen, ein anderes für die Transpilierung usw. bevorzugen, ist OpenQASM die Lingua franca, die als Brücke zwischen diesen Werkzeugen dient.

Das Qiskit SDK bietet Möglichkeiten zur Konvertierung zwischen OpenQASM und der QuantumCircuit klasse zu konvertieren (siehe OpenQASM 2 und Qiskit und OpenQASM 3 und Qiskit für Anweisungen).

Weitere Informationen finden Sie in der Live-Spezifikation „ OpenQASM “.


OpenQASM Code-Beispiel: Cat-Status


OPENQASM 3;
include "stdgates.inc";

const n = 3; // number of qubits
qubit[n] q; // a register 'q' of n qubits
bit[n] c; // a register 'c' of n classical bits

h q[0]; // Hadamard
for k in [0:n-1] { 
  cnot q[k], q[k+1]; // Controlled-NOT from control qubit q[k] to target qubit q[k+1] 
}

c = measure q; // measure quantum register

Nächste Schritte

Empfehlungen

Footnotes

  1. Andrew W. Cross et al. ""OpenQASM 3: A broader and deeper quantum assembly language," ACM Transactions on Quantum Computing, Volume 3, Issue 3 (2022). https://doi.org/10.48550/arXiv.2104.14722 ↩

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.