Les éléments de Qiskit¶

Terra¶
Terra, l’élément ‘earth’, est le fondement sur lequel repose Qiskit. Terra fournit un socle pour composer des programmes quantiques au niveau des circuits et des impulsions, pour les optimiser sous les contraintes d’un dispositif particulier, et pour en gérer l’exécution sur des dispositifs d’accès à distance. Terra définit les interfaces pour une expérience utilisateur finale, ainsi que la gestion efficace des couches d’optimisation, de programmation d’impulsions et de communication avec un système d’exécution cible.
Qiskit Terra est organisé en six modules principaux:
qiskit.circuit
A quantum circuit is a model for quantum computing in which a computation is done by performing a sequence of quantum operations (usually gates) on a register of qubits. A quantum circuit usually starts with the qubits in the \(|0,…,0>\) state and these gates evolve the qubits to states that cannot be efficiently represented on a classical computer. To extract information on the state a quantum circuit must have a measurement which maps the outcomes (possible random due to the fundamental nature of quantum systems) to classical registers which can be efficiently represented.qiskit.pulse
Un programme d’impulsions est un ensemble d’impulsions envoyé à un calcul quantique appliqué à un canal (ligne d’entrée expérimentale). Il s’agit d’un niveau inférieur aux circuits et nécessite que chaque porte du circuit soit représentée comme un ensemble d’impulsions. À ce niveau, les calculs peuvent être conçus pour réduire les erreurs (découplage dynamique, atténuation des erreurs et formes d’impulsions optimales).qiskit.transpiler
A major part of research on quantum computing is working out how to run a quantum circuits on real devices. In these devices, experimental errors and decoherence introduce errors during computation. Thus, to obtain a robust implementation it is essential to reduce the number of gates and the overall running time of the quantum circuit. The transpiler introduces the concept of a pass manager to allow users to explore optimization and find better quantum circuits for their given algorithm. We call it a transpiler as the end result is still a circuit.qiskit.providers
Une fois que l’utilisateur a développé un circuit sur une plateforme cible, il doit disposer d’un moyen pratique pour le faire s’exécuter. Terra, contient quatre parties:Un
Provider
(fournisseur) est une entité qui implémente une classe abstraiteBaseProvider
permettant d’obtenir l’accès à un groupe de plateformes (par exemple, plateformes disponibles via le IBM Quantum). Il interagit avec ces plateformes pour, par exemple, trouver celles qui sont disponibles ou récupérer une instance d’une plateforme particulière.Un ``Backend``est une entité qui implémente une classe abstraite
BaseBackend
pour représenter soit un simulateur soit un véritable ordinateur quantique et qui est responsable de l’exécution d’un circuit quantique et du retour des résultats. Elle a une méthode d’exécution qui accepte un qobj en entrée et retourne un objet` BaseJob`. Cet objet permet l’exécution asynchrone de tâches pour récupérer les résultats d’une plateforme lorsque la tâche est terminée.Les instances de tâches (
Job
) sont des implémentations de classes abstraitesBaseJob
, elles peuvent être considérées comme le “ticket” pour soumettre une tâche. Elles contiennent l’état de l’exécution à un moment donné (par exemple si la tâche est en file d’attente, en cours d’exécution ou si elle a échoué) et permettent également de contrôler la tâche.Result
Une fois la tâche terminée, Terra permet d’obtenir les résultats à partir des plateformes distantes en utilisantresult = job.result()
. Cet objet de résultat contient les données quantiques et la manière la plus courante d’interagir avec lui est d’utiliserresult.get_counts(circuit)
. Cette méthode permet à l’utilisateur d’obtenir les comptes bruts du circuit quantique et de les utiliser pour plus d’analyses avec les outils d’information quantique fournis par Terra.
qiskit.quantum_info
Pour effectuer des algorithmes et analyses plus avancés des circuits exécutés sur l’ordinateur quantique, il est important de disposer d’outils pour mettre en œuvre de simples tâches d’information quantique. Il s’agit notamment de méthodes pour estimer les métriques et générer des états quantiques, des opérations et des canaux.qiskit.visualization
Dans Terra, nous avons de nombreux outils pour visualiser un circuit quantique. Cela permet une inspection rapide du circuit quantique pour s’assurer qu’il correspond bien ce que l’utilisateur voulait mettre en œuvre. Il existe une version texte, python et latex. Une fois le circuit exécuté, il est important de pouvoir visualiser la sortie. Il existe une fonction simple (plot_histogram()
) pour tracer les résultats d’un circuit quantique, y compris une version interactive. Il existe également les fonctionsplot_state()
etplot_bloch_vector()
qui permettent de visualiser un état quantique.
Aer¶
Aer, l’élément « air », est partout dans Qiskit. Pour accélérer le développement des ordinateurs quantiques, nous avons besoin de meilleurs simulateurs, émulateurs et débogueurs. Aer nous aide à comprendre les limites des processeurs classiques en démontrant jusque ou ils peuvent imiter le calcul quantique. De plus, nous pouvons utiliser Aer pour vérifier que les ordinateurs quantiques actuels fonctionnent correctement. Cela peut se faire en pousaant les limites de la simulation en simulant les effets du bruit réèl sur le calcul.
Aer fournit un environnement de simulation haute performance pour les circuits quantiques à l’aide de la suite logiciele Qiskit. Il contient un simulateur C++ optimisé pour l’exécution de circuits compilés dans Terra. Aer fournit également des outils pour construire des modèles de bruit hautement configurables pour effectuer des simulations bruyantes et réalistes des erreurs qui se produisent lors de l’exécution sur des dispositifs réels.
Qiskit Aer inclut trois simulateurs haute performance:
QasmSimulator
Permet l’exécution multi-coups idéale ou bruyante de circuits qiskit et retourne les compteurs ou le contenu de la mémoire. Il y a plusieurs méthodes qui peuvent être utilisées pour simuler différents circuits plus efficacement. Celles-ci incluent:statevector - Uses a dense statevector simulation.
stabilisateur - Utilise un simulateur d’état stabilisateur Clifford qui n’est valide que pour les circuits Clifford et les modèles de bruit.
extended_stabilizer - Utilise un simulateur approximatif qui décompose les circuits en termes d’état stabilisateur, dont le nombre augmente avec le nombre de portes non-Clifford.
matrix_product_state - Utilise un simulateur d’état du produit de la matrice (MPS).
StatevectorSimulator
Permet l’exécution idéale unique (single-shot) de circuits qiskit et retourne le vecteur d’état (statevector) final du simulateur.UnitarySimulator
Permet l’exécution idéale unitaire (single-shot) de circuit qiskit et retourne la dernière matrice unitaire du circuit lui-même. Notez que le circuit ne peut pas contenir des opérations de mesure ou de réinitialisation pour ce système d’exécution.
Ignis¶
Ignis, l’élément « feu », est dédié au combat contre le bruit et les erreurs et à la construction de nouvelles approches. Cela comprend une meilleure caractérisation des erreurs, l’amélioration des portes et le calcul en présence de bruit. Ignis est destiné à ceux qui veulent concevoir des codes de correction d’erreurs quantiques, ou qui souhaitent étudier la façon de caractériser les erreurs par des méthodes telles que la tomographie, ou même pour trouver une meilleure façon d’utiliser des portes en explorant le découplage dynamique et le contrôle optimal.
Ignis fournit le code permettant aux utilisateurs de générer facilement des circuits pour des expériences spécifiques, compte tenu d’un ensemble minimal de paramètres d’entrée utilisateur. Le code d’Ignis contient trois blocs fondamentaux:
- Circuits:
Le module de circuits fournit le code permettant de générer la liste des circuits pour une expérience d’Ignis particulière basée sur un ensemble minimal de paramètres utilisateur. Ils sont ensuite exécutés sur Terra ou Aer.
- Raccords (Fitters)
Les résultats d’une expérience d’Ignis sont transmis au module de raccords (Fitters) où ils sont analysés et adaptés selon le modèle physique décrivant l’expérience. Les raccords (fitters) peuvent déterminer les données et leur ajustement et fournir en sortie une liste de paramètres.
- Filtres
Pour certaines expériences d’Ignis, les raccords (fitters) peuvent générer un objet Filter. Les filtres peuvent être utilisés pour atténuer les erreurs dans d’autres expériences en utilisant les résultats d’étalonnage d’une expérience d’Ignis.
Qiskit Ignis est organisé en trois types d’expériences qui peuvent être réalisées:
qiskit.ignis.characterization
Les calculs de caractérisation sont conçus pour mesurer des paramètres dans le système tels que les paramètres de bruit (T1, T2-star, T2), les paramètres hamiltoniens tels que le taux d’interaction ZZ et les erreurs de contrôle dans les portes.qiskit.ignis.verification
Les calculs de vérification sont conçus pour vérifier les performances des portes et des petits circuits. La vérification comprend la tomographie d’état et de processus, le volume quantique et l’analyse comparative aléatoire (randomized benchmark - RB). Ces calculs fournissent les informations permettant de déterminer des mesures de performances telles que la fidélité de la porte.qiskit.ignis.mitigation
Les calculs d’atténuation exécutent des circuits d’étalonnage qui sont analysés pour générer des routines d’atténuation qui peuvent être appliquées à des ensembles arbitraires de résultats exécutés sur la même plateforme. Le code Ignis générera une liste de circuits qui exécutent des mesures d’étalonnage. Les résultats de ces mesures seront traités par un Fitter et produiront un Filter qui peut être utilisé pour appliquer une atténuation à d’autres résultats.
Aqua¶
Aqua, l’élément « eau », est l’élément de la vie. Pour que l’informatique quantique soit à la hauteur des attentes, nous devons trouver des utilisations concrètes. Aqua est l’endroit où sont construits les algorithmes des ordinateurs quantiques. Ces algorithmes peuvent être utilisés pour construire des applications pour l’informatique quantique. Aqua est accessible aux experts de domaines de la chimie, de l’optimisation, des finances et de l’IA, qui veulent explorer les avantages de l’utilisation d’ordinateurs quantiques comme accélérateurs pour des tâches informatiques spécifiques.
Les problèmes qui peuvent bénéficier de la puissance de l’informatique quantique ont été identifiés dans de nombreux domaines, tels que la chimie, l’intelligence artificielle (IA), l’optimisation et les finances. Toutefois, l’informatique quantique nécessite des compétences très spécialisées. Pour répondre aux besoins des nombreux praticiens qui veulent utiliser et contribuer à l’informatique quantique à différents niveaux de la pile logicielle, nous avons créé Qiskit Aqua.