Skip to main content
IBM Quantum Platform

Introduction à la OpenQASM

OpenQASM (open quantum assembly language), une interface de programmation indépendante de la machine et compatible avec les QPU IBM®, est un langage de programmation impératif pour décrire les circuits quantiques. OpenQASM utilise le modèle de circuit quantique pour exprimer les programmes quantiques sous forme de séquences ordonnées d'opérations paramétrées (telles que les portes, les mesures et les réinitialisations) et le calcul classique en temps réel. Outre les algorithmes quantiques, OpenQASM peut décrire les circuits destinés à caractériser, valider ou déboguer les processeurs quantiques.

Au fur et à mesure que les besoins en matière de développement de QPU ont évolué, la liste des fonctionnalités d' OpenQASM's s'est élargie en conséquence; la dernière version, OpenQASM 3, intègre des extensions telles que le contrôle de flux classique à action directe, les modificateurs de porte et les implémentations d'impulsions.

OpenQASM est le choix d'une grande variété de publics en raison de sa polyvalence. L'introduction du document OpenQASM 31 donne des exemples :

"Bien que OpenQASM ne soit pas un langage de haut niveau, de nombreux utilisateurs aimeraient écrire des circuits quantiques simples à la main en utilisant un langage expressif spécifique à un domaine. Les chercheurs qui étudient la compilation de circuits ont besoin d'informations de haut niveau enregistrées dans les représentations intermédiaires pour informer les algorithmes d'optimisation et de synthèse. Les expérimentateurs préfèrent la commodité de l'écriture des circuits à un niveau relativement élevé, mais ils doivent souvent modifier manuellement les descriptions des portes de synchronisation ou de niveau d'impulsion en divers points du circuit. Les ingénieurs en matériel qui conçoivent les contrôleurs classiques et les générateurs de formes d'onde préfèrent les langages qui sont pratiques à compiler compte tenu des contraintes matérielles et qui rendent explicite la structure du circuit dont les contrôleurs peuvent tirer parti"

OpenQASM est le format d'échange commun aux outils logiciels quantiques indépendants. Pour les développeurs qui préfèrent un outil pour la construction de circuits, un autre pour la transpilation, etc., OpenQASM est la lingua franca qui sert de pont entre eux.

Le SDK Qiskit fournit des moyens de convertir entre OpenQASM et la classe QuantumCircuit (voir OpenQASM 2 et Qiskit et OpenQASM 3 et Qiskit pour les instructions).

Pour plus d'informations, consultez les spécifications en direct de l' OpenQASM.


OpenQASM exemple de code : état du chat


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

Etapes suivantes

Recommandations

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

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.