Introduction à Qiskit
Le nom « Qiskit » est un terme général désignant un ensemble de logiciels permettant d'exécuter des programmes sur des ordinateurs quantiques. Parmi ces outils, on trouve notamment le SDK Qiskit open-source, ainsi que l'environnement d'exécution (accessible via Qiskit Runtime) grâce auquel tu peux exécuter des charges de travail sur les unités de traitement quantique (QPU) d'IBM®. Comme la technologie quantique évolue, Qiskit évolue aussi, avec de nouvelles fonctionnalités publiées chaque année qui enrichissent cette collection de base de logiciels quantiques.
Par ailleurs, de nombreux projets open-source font partie du vaste écosystème Qiskit. Ces outils logiciels ne font pas partie de Qiskit lui-même, mais s'interfacent avec lui et peuvent apporter des fonctionnalités supplémentaires précieuses.
IBM s'engage dans le développement responsable de l'informatique quantique. Découvre nos principes en matière de quantique responsable dans la rubrique Informatique quantique responsable.
Le SDK Qiskit
Le SDK Qiskit (nom du paquet qiskit) est un SDK open-source pour travailler avec des ordinateurs quantiques au niveau des circuits quantiques étendus (statiques, dynamiques et planifiés), des opérateurs et des primitives. Cette bibliothèque est le composant central de Qiskit ; c'est le paquet le plus volumineux sous le nom Qiskit, avec la suite d'outils la plus complète pour le calcul quantique, et de nombreux autres composants s'interfacent avec lui.
Voici quelques-unes des fonctionnalités les plus utiles du SDK Qiskit :
-
Outils de construction de circuits (
qiskit.circuit) - Pour initialiser et manipuler des registres, circuits, instructions, portes, paramètres et objets de flux de contrôle. -
Bibliothèque de circuits (
qiskit.circuit.library) - Un vaste ensemble de circuits, d'instructions et de portes — des blocs de construction essentiels pour les calculs quantiques à base de circuits. -
Bibliothèque d'informations quantiques (
qiskit.quantum_info) - Une boîte à outils pour travailler avec des états quantiques, des opérateurs et des canaux, en utilisant des calculs exacts (sans bruit d'échantillonnage). Utilise ce module pour spécifier des observables d'entrée et analyser la fidélité des sorties issues de requêtes de primitives. -
Transpiler (
qiskit.transpiler) - Pour transformer et adapter les circuits quantiques à la topologie d'un appareil spécifique, et les optimiser pour l'exécution sur de véritables unités de traitement quantique (QPU). -
Primitives (
qiskit.primitives) - Le module contenant les définitions de base et les implémentations de référence des primitives Sampler et Estimator, à partir desquelles différents fournisseurs de matériel quantique peuvent dériver leurs propres implémentations. Retrouve plus d'informations sur les primitives Qiskit Runtime dans la documentation.
Installation
Pour une introduction plus détaillée à l'installation du SDK Qiskit, consulte la page d'installation. Si tu es prêt·e à l'installer maintenant, exécute simplement :
pip install qiskit
Benchmarking et le paquet Benchpress
Le benchmarking est essentiel pour comparer les performances relatives des logiciels quantiques à différentes étapes d'un workflow de développement. Les tests de benchmarking pour les logiciels quantiques peuvent, par exemple, examiner la vitesse et la qualité de la construction, de la manipulation et de la transpilation des circuits. IBM Quantum s'engage à fournir le SDK le plus performant possible, et à cette fin, le SDK Qiskit est évalué à l'aide de plus de 1 000 tests développés par des universités de premier plan, des laboratoires nationaux et des chercheurs d'IBM. La suite de benchmarking utilisée pour ces tests, nommée Benchpress, est désormais disponible sous la forme d'un paquet open-source. Tu peux désormais utiliser le paquet Benchpress pour réaliser ta propre analyse des performances des SDK quantiques.
Qiskit Runtime
Qiskit Runtime est un service cloud permettant d'exécuter des calculs quantiques sur le matériel IBM Quantum®. Le paquet qiskit-ibm-runtime est un client pour ce service, et le successeur du Qiskit IBM Provider. Le service Qiskit Runtime simplifie les calculs quantiques et fournit des implémentations optimales des primitives Qiskit pour le matériel IBM Quantum. Pour démarrer avec les primitives Qiskit Runtime, consulte la documentation.
Qiskit Runtime est conçu pour utiliser des ressources de calcul classiques et quantiques supplémentaires, notamment des techniques de suppression et d'atténuation des erreurs, afin de produire un résultat de meilleure qualité lors de l'exécution de circuits quantiques sur des processeurs quantiques. Parmi les exemples, on trouve le découplage dynamique pour la suppression des erreurs, ainsi que l'atténuation de la lecture et l'extrapolation à bruit zéro (ZNE) pour l'atténuation des erreurs. Découvre comment configurer ces options sur la page Configurer l'atténuation des erreurs.
Qiskit Runtime propose également trois types de modes d'exécution pour faire tourner ton programme quantique sur le matériel IBM : Job, Session et Batch, chacun ayant des cas d'utilisation et des implications différents pour la file d'attente des jobs quantiques. Un Job est une seule requête à une primitive pouvant être exécutée sur un nombre de shots déterminé. Les Sessions te permettent d'exécuter efficacement plusieurs jobs dans des charges de travail itératives sur des ordinateurs quantiques. Le mode Batch te permet de soumettre tous tes jobs en même temps pour un traitement en parallèle. À noter que les utilisateurs du plan Open ne peuvent pas soumettre des jobs en session.
Pour installer Qiskit Runtime rapidement, exécute la commande suivante :
pip install qiskit-ibm-runtime
Pour plus de détails sur la mise en place d'un environnement de développement pour la construction de programmes quantiques, consulte la page d'installation.
Qiskit Runtime est-il open-source ?
La réponse courte est : pas entièrement. Le logiciel du service Qiskit Runtime qui gère les aspects techniques de l'exécution de ton programme quantique sur un appareil IBM Quantum (y compris toute atténuation et suppression des erreurs) n'est pas open-source. Cependant, le client Qiskit Runtime (l'interface permettant aux utilisateurs d'accéder au service Qiskit Runtime), le SDK Qiskit s'exécutant côté serveur, ainsi qu'une partie des logiciels utilisés pour l'atténuation des erreurs, sont open-source. Pour t'impliquer dans les efforts open-source de Qiskit, visite notre organisation GitHub sur github.com/Qiskit et github.com/Qiskit-Extensions.
Qiskit Serverless
La création d'applications quantiques à l'échelle utilitaire nécessite généralement des ressources de calcul variées. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) fournit une interface simple pour exécuter des charges de travail sur des ressources quantiques-classiques. Cela inclut le déploiement de programmes sur IBM Quantum Platform et l'exécution de charges de travail à distance, ainsi qu'une gestion facilitée des ressources pour les cas d'utilisation multi-cloud et de supercalcul quantique. Consulte la documentation Qiskit Serverless pour en savoir plus sur l'utilisation de cette collection d'outils pour :
- Paralléliser des tâches classiques, telles que le pré-traitement et le post-traitement
- Maintenir des charges de travail longues dans le cloud, même si ton ordinateur portable est éteint
- Déployer des programmes réutilisables dans le cloud
Pour commencer à utiliser Qiskit Serverless immédiatement, installe-le avec pip :
pip install qiskit_serverless
Qiskit Functions
Les Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) sont des services abstraits conçus pour accélérer la découverte d'algorithmes et le prototypage d'applications. Explore le Catalogue Qiskit Functions, notamment :
- Circuit functions : Services incluant la transpilation, la suppression des erreurs, l'atténuation des erreurs et des techniques de post-traitement qui prennent en entrée des circuits abstraits et les observables de mesure souhaitées. Avec les Circuit functions, les utilisateurs peuvent découvrir de nouveaux algorithmes et applications sans avoir à gérer la transpilation ni les performances du matériel quantique.
- Application functions : Services incluant des workflows quantiques complets, du mappage classique vers quantique, en passant par l'optimisation pour le matériel, l'exécution sur matériel et le post-traitement. Les utilisateurs peuvent prototyper des applications industrielles avec des entrées et sorties familières à leur domaine.
Les membres du plan Premium, du plan Flex et du plan On-Prem (via l'API IBM Quantum Platform) peuvent accéder immédiatement aux fonctions fournies par IBM, ou acheter des licences pour les fonctions fournies par les partenaires directement auprès de ceux-ci.
Le catalogue peut être installé avec pip :
pip install qiskit-ibm-catalog
Service Qiskit Transpiler
Le Service Qiskit Transpiler (nom du paquet qiskit-ibm-transpiler) est un nouveau service expérimental qui offre des capacités de transpilation à distance dans le cloud aux utilisateurs du plan IBM Quantum Premium, du plan Flex et du plan On-Prem (via l'API IBM Quantum Platform). En plus des capacités de transpilation locales du SDK Qiskit, tes tâches de transpilation peuvent bénéficier à la fois des ressources cloud d'IBM Quantum et de passes de transpilation basées sur l'IA grâce à ce service. Pour en savoir plus sur l'intégration de la transpilation cloud dans ton workflow Qiskit, tu peux consulter la documentation.
Le service de transpilation peut être installé avec pip :
pip install qiskit-ibm-transpiler
Extensions Qiskit (addons)
Les extensions Qiskit (addons) sont un ensemble de fonctionnalités de recherche pour la découverte d'algorithmes à l'échelle utilitaire. Ces fonctionnalités s'appuient sur la base performante de Qiskit, composée d'outils pour créer et exécuter des algorithmes quantiques. Les addons sont des composants logiciels modulaires qui s'intègrent dans un workflow pour faire évoluer ou concevoir de nouveaux algorithmes quantiques. Pour en savoir plus sur l'ensemble des addons Qiskit disponibles et sur la façon de les utiliser, consulte la documentation.
Plusieurs addons sont disponibles selon les fonctionnalités de recherche qui t'intéressent. Chacun d'eux peut être installé avec pip.
Diagonalisation quantique par échantillonnage (SQD) :
pip install qiskit-addon-sqd
Compilation quantique approchée (AQC) :
pip install qiskit-addon-aqc-tensor[quimb-jax]
Rétropropagation d'opérateur (OBP) :
pip install qiskit-addon-obp
Formules multi-produits (MPF) :
pip install qiskit-addon-mpf
L'écosystème Qiskit
Au-delà de Qiskit, de nombreux projets open-source utilisent le nom « Qiskit » sans faire partie de Qiskit lui-même ; ils s'interfacent avec Qiskit et peuvent apporter des fonctionnalités supplémentaires précieuses pour compléter le workflow Qiskit de base. Certains de ces projets sont maintenus par des équipes IBM Quantum, tandis que d'autres sont soutenus par la communauté open-source au sens large. Le SDK Qiskit est conçu de manière modulaire et extensible pour faciliter la création, par les développeurs, de projets qui étendent ses capacités.
Parmi les projets populaires de l'écosystème Qiskit, on trouve :
- Qiskit Aer (
qiskit-aer) - un paquet pour les simulateurs d'informatique quantique avec des modèles de bruit réalistes. Il fournit des interfaces pour exécuter des circuits quantiques avec ou sans bruit, en utilisant plusieurs méthodes de simulation différentes. Maintenu par IBM Quantum. - qBraid SDK (
qbraid) - un framework d'exécution quantique indépendant de la plateforme, conçu pour les fournisseurs de logiciels et de matériel quantiques, qui simplifie la gestion complète du cycle de vie des jobs quantiques — de la définition des spécifications du programme à la soumission du job, jusqu'au post-traitement et à la visualisation des résultats. Maintenu par qBraid. - mthree
mthree- un paquet pour implémenter M3 (Matrix-free Measurement Mitigation), une technique d'atténuation des mesures qui résout des probabilités de mesure corrigées à l'aide d'une étape de réduction de dimensionnalité suivie soit d'une factorisation LU directe, soit d'une méthode itérative préconditionné qui converge nominalement en O(1) étapes, et peut être calculée en parallèle. Maintenu par IBM Quantum.
Tu peux trouver un catalogue de projets sur la page de l'écosystème Qiskit, ainsi que des informations sur la façon de proposer ton propre projet.
Prochaines étapes
- Découvre la bibliothèque de circuits et d'instructions disponibles dans la bibliothèque de circuits Qiskit.
- Lis les informations sur le transpiler Qiskit et les nombreuses options de transpilation dans la section Transpiler.
- Découvre comment utiliser les primitives Qiskit pour simplifier la programmation quantique.