Zum Hauptinhalt springen

Einführung in Qiskit

Der Begriff „Qiskit" bezeichnet eine Sammlung von Software zur Ausführung von Programmen auf Quantencomputern. Das bekannteste dieser Werkzeuge ist das quelloffene Qiskit SDK sowie die Laufzeitumgebung (zugänglich über Qiskit Runtime), mit der du Workloads auf IBM® Quantum Processing Units (QPUs) ausführen kannst. Mit der Weiterentwicklung der Quantentechnologie wächst auch Qiskit – jedes Jahr werden neue Funktionen veröffentlicht, die diese zentrale Sammlung von Quantensoftware erweitern.

Darüber hinaus sind viele Open-Source-Projekte Teil des breiteren Qiskit-Ökosystems. Diese Werkzeuge sind nicht Bestandteil von Qiskit selbst, sondern arbeiten mit Qiskit zusammen und können wertvolle zusätzliche Funktionalität bieten.

IBM ist dem verantwortungsvollen Einsatz von Quantencomputing verpflichtet. Erfahre mehr und lies unsere Grundsätze für verantwortungsvolles Quantencomputing im Abschnitt Responsible quantum computing.

Das Qiskit SDK

Das Qiskit SDK (Paketname qiskit) ist ein quelloffenes SDK für die Arbeit mit Quantencomputern auf der Ebene erweiterter (statischer, dynamischer und geplanter) Quantum Circuits, Operatoren und Primitives. Diese Bibliothek ist die Kernkomponente von Qiskit – es ist das größte Paket unter dem Namen Qiskit mit der umfangreichsten Suite an Werkzeugen für Quantenberechnungen, und viele andere Komponenten bauen auf ihr auf.

Zu den nützlichsten Funktionen des Qiskit SDK gehören:

  • Circuit-Bauwerkzeuge (qiskit.circuit) – Zum Initialisieren und Bearbeiten von Registern, Circuits, Anweisungen, Gates, Parametern und Kontrollfluss-Objekten.

  • Circuit-Bibliothek (qiskit.circuit.library) – Eine umfangreiche Sammlung von Circuits, Anweisungen und Gates – wesentliche Bausteine für schaltungsbasierte Quantenberechnungen.

  • Quantum-Info-Bibliothek (qiskit.quantum_info) – Ein Werkzeugkasten für die Arbeit mit Quantenzuständen, Operatoren und Kanälen mit exakten Berechnungen (ohne Sampling-Rauschen). Verwende dieses Modul, um Eingangs-Observablen festzulegen und die Genauigkeit der Ausgaben aus Primitives-Abfragen zu analysieren.

  • Transpiler (qiskit.transpiler) – Zum Transformieren und Anpassen von Quantum Circuits an die Topologie bestimmter Geräte sowie zur Optimierung für die Ausführung auf realen Quantum Processing Units (QPUs).

  • Primitives (qiskit.primitives) – Das Modul, das die Basisdefinitionen und Referenzimplementierungen der Sampler- und Estimator-Primitives enthält, aus denen verschiedene Anbieter von Quantenhardware ihre eigenen Implementierungen ableiten können. Weitere Informationen zu den Qiskit Runtime Primitives findest du in der Dokumentation.

Installation

Eine ausführlichere Einführung in die Installation des Qiskit SDK findest du auf der Installationsseite. Wenn du es gleich installieren möchtest, führe einfach folgenden Befehl aus:

pip install qiskit

Benchmarking und das Benchpress-Paket

Benchmarking ist wichtig, um die relative Leistung von Quantensoftware in verschiedenen Phasen eines Entwicklungsworkflows zu vergleichen. Benchmarking-Tests für Quantensoftware könnten beispielsweise die Geschwindigkeit und Qualität beim Erstellen, Bearbeiten und Transpilieren von Circuits untersuchen. IBM Quantum ist bestrebt, das leistungsfähigste SDK bereitzustellen – zu diesem Zweck wird das Qiskit SDK mit über 1.000 Tests bewertet, die von führenden Universitäten, nationalen Labors und Forschenden bei IBM entwickelt wurden. Die für diese Tests verwendete Benchmarking-Suite namens Benchpress ist jetzt als Open-Source-Paket verfügbar. Du kannst das Benchpress-Paket verwenden, um eigene Analysen der Quantensoftware-Leistung durchzuführen.

Qiskit Runtime

Qiskit Runtime ist ein cloudbasierter Dienst zur Ausführung von Quantenberechnungen auf IBM Quantum®-Hardware. Das Paket qiskit-ibm-runtime ist ein Client für diesen Dienst und der Nachfolger des Qiskit IBM Provider. Der Qiskit Runtime-Dienst optimiert Quantenberechnungen und bietet optimale Implementierungen der Qiskit Primitives für IBM Quantum-Hardware. Um mit den Qiskit Runtime Primitives loszulegen, besuche die Dokumentation.

Qiskit Runtime ist darauf ausgelegt, zusätzliche klassische und Quantenrechenressourcen zu nutzen – einschließlich Techniken wie Fehlersuppression und Fehlerminderung –, um ein qualitativ hochwertigeres Ergebnis bei der Ausführung von Quantum Circuits auf Quantenprozessoren zu liefern. Beispiele hierfür sind Dynamical Decoupling zur Fehlersuppression sowie Readout Mitigation und Zero-Noise Extrapolation (ZNE) zur Fehlerminderung. Erfahre auf der Seite Fehlerminderung konfigurieren, wie du diese Optionen einstellst.

Qiskit Runtime umfasst außerdem drei Ausführungsmodi für das Ausführen deines Quantenprogramms auf IBM-Hardware: Job, Session und Batch, die jeweils unterschiedliche Anwendungsfälle und Auswirkungen auf die Warteschlange für Quantenjobs haben. Ein Job ist eine einzelne Abfrage an ein Primitive, die über eine festgelegte Anzahl von Shots ausgeführt werden kann. Sessions ermöglichen es dir, mehrere Jobs in iterativen Workloads auf Quantencomputern effizient auszuführen. Der Batch-Modus ermöglicht es dir, alle deine Jobs auf einmal zur parallelen Verarbeitung einzureichen. Beachte, dass Nutzer des Open-Plans keine Session-Jobs einreichen können.

Um Qiskit Runtime schnell zu installieren, führe folgenden Befehl aus:

pip install qiskit-ibm-runtime

Weitere Details zum Einrichten einer Entwicklungsumgebung für das Erstellen von Quantenprogrammen findest du auf der Installationsseite.

Ist Qiskit Runtime Open Source?

Die kurze Antwort lautet: nicht vollständig. Die Qiskit Runtime-Dienstsoftware, die die technischen Details der Ausführung deines Quantenprogramms auf einem IBM Quantum-Gerät verwaltet (einschließlich etwaiger Fehlerminderung und -suppression), ist nicht Open Source. Jedoch sind der Qiskit Runtime-Client (die Schnittstelle für Nutzer zum Zugriff auf den Qiskit Runtime-Dienst), das serverseitig ausgeführte Qiskit SDK sowie ein Teil der für Fehlerminderung verwendeten Software quelloffen. Um dich an den Qiskit-Open-Source-Aktivitäten zu beteiligen, besuche unsere GitHub-Organisation unter github.com/Qiskit und github.com/Qiskit-Extensions.

Qiskit Serverless

Die Entwicklung quantitativer Quantenanwendungen erfordert in der Regel eine Vielzahl von Rechenressourcen. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) bietet eine einfache Schnittstelle, um Workloads über quanten-klassische Ressourcen hinweg auszuführen. Dazu gehören das Bereitstellen von Programmen auf IBM Quantum Platform und das Remote-Ausführen von Workloads sowie ein einfaches Ressourcenmanagement für Multi-Cloud- und quantenzentrierte Supercomputing-Anwendungsfälle. Weitere Informationen findest du in der Qiskit Serverless-Dokumentation darüber, wie du diese Werkzeugsammlung nutzen kannst, um:

  • Klassische Aufgaben zu parallelisieren, z. B. Vor- und Nachverarbeitung
  • Langlebige Workloads in der Cloud zu speichern, auch wenn dein Laptop ausgeschaltet ist
  • Wiederverwendbare Programme in der Cloud bereitzustellen

Um Qiskit Serverless sofort zu nutzen, installiere es mit pip:

pip install qiskit_serverless

Qiskit Functions

Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) sind abstrahierte Dienste, die die Entdeckung von Algorithmen und die Entwicklung von Anwendungsprototypen beschleunigen sollen. Erkunde den Qiskit Functions Catalog, einschließlich:

  • Circuit-Funktionen: Dienste, die Transpilation, Fehlersuppression, Fehlerminderung und Nachverarbeitungstechniken umfassen und abstrakte Circuits sowie gewünschte Messobservablen als Eingabe entgegennehmen. Mit Circuit-Funktionen können Nutzer neue Algorithmen und Anwendungen entdecken, ohne Transpilation oder die Leistung von Quantenhardware selbst verwalten zu müssen.
  • Anwendungsfunktionen: Dienste, die vollständige Quantenworkflows umfassen – von der Abbildung klassischer auf quantale Darstellungen über die Hardwareoptimierung und -ausführung bis hin zur Nachverarbeitung. Nutzer können Branchenanwendungen mit domänenvertrauten Ein- und Ausgaben prototypisieren.

Mitglieder des Premium Plans, Flex Plans und On-Prem (über die IBM Quantum Platform API) Plans können sofort auf von IBM bereitgestellte Funktionen zugreifen oder Lizenzen für partnerspezifische Funktionen direkt bei den entsprechenden Partnern erwerben.

Der Katalog kann mit pip installiert werden:

pip install qiskit-ibm-catalog

Qiskit Transpiler Service

Der Qiskit Transpiler Service (Paketname qiskit-ibm-transpiler) ist ein neuer experimenteller Dienst, der Nutzern des IBM Quantum Premium Plans, Flex Plans und On-Prem (über die IBM Quantum Platform API) Plans Remote-Transpilierungsfunktionen in der Cloud bereitstellt. Zusätzlich zu den lokalen Transpilierungsfunktionen des Qiskit SDK können deine Transpilierungsaufgaben von IBM Quantum Cloud-Ressourcen und KI-gestützten Transpiler-Passes profitieren. Weitere Informationen zur Integration cloudbasierter Transpilierung in deinen Qiskit-Workflow findest du in der Dokumentation.

Der Transpiler Service kann mit pip installiert werden:

pip install qiskit-ibm-transpiler

Qiskit Addons

Qiskit Addons sind eine Sammlung von Forschungsfunktionen für die Entdeckung von Algorithmen im Utility-Maßstab. Diese Funktionen bauen auf Qiskits leistungsstarker Grundlage von Werkzeugen zum Erstellen und Ausführen von Quantenalgorithmen auf. Addons sind modulare Softwarekomponenten, die in einen Workflow eingebunden werden, um neue Quantenalgorithmen zu skalieren oder zu entwerfen. Weitere Informationen zu den verfügbaren Qiskit Addons und dem Einstieg in ihre Nutzung findest du in der Dokumentation.

Je nach deinem Forschungsinteresse stehen verschiedene Addons zur Verfügung. Jedes kann mit pip installiert werden.

Sample-based quantum diagonalization (SQD):

pip install qiskit-addon-sqd

Approximate quantum compilation (AQC):

pip install qiskit-addon-aqc-tensor[quimb-jax]

Operator backpropagation (OBP):

pip install qiskit-addon-obp

Multi-product formulas (MPF):

pip install qiskit-addon-mpf

Das Qiskit-Ökosystem

Jenseits von Qiskit gibt es viele Open-Source-Projekte, die den Namen „Qiskit" tragen, aber nicht zu Qiskit selbst gehören. Sie arbeiten mit Qiskit zusammen und können wertvolle zusätzliche Funktionalität als Ergänzung zum zentralen Qiskit-Workflow bieten. Einige dieser Projekte werden von IBM Quantum-Teams gepflegt, andere werden von der breiteren Open-Source-Gemeinschaft unterstützt. Das Qiskit SDK ist modular und erweiterbar gestaltet, sodass Entwickler leicht Projekte erstellen können, die seine Funktionen ausbauen.

Einige beliebte Projekte im Qiskit-Ökosystem sind:

  • Qiskit Aer (qiskit-aer) – Ein Paket für Quantencomputer-Simulatoren mit realistischen Rauschmodellen. Es bietet Schnittstellen zur Ausführung von Quantum Circuits mit oder ohne Rauschen mithilfe verschiedener Simulationsmethoden. Gepflegt von IBM Quantum.
  • qBraid SDK (qbraid) – Ein plattformunabhängiges Quantenlaufzeit-Framework für Anbieter von Quantensoftware und -hardware, das den vollständigen Lebenszyklus von Quantenjobs optimiert – von der Definition von Programmspezifikationen über die Job-Einreichung bis hin zur Nachverarbeitung und Visualisierung von Ergebnissen. Gepflegt von qBraid.
  • mthree mthree – Ein Paket zur Implementierung von M3 (Matrix-free Measurement Mitigation), einer Messminderungstechnik, die korrigierte Messprobabilitäten mithilfe eines Dimensionsreduktionsschritts berechnet, gefolgt von direkter LU-Faktorisierung oder einer vorkonditionierten iterativen Methode, die nominell in O(1)-Schritten konvergiert und parallel berechnet werden kann. Gepflegt von IBM Quantum.

Einen Katalog der Projekte findest du auf der Qiskit-Ökosystem-Seite sowie Informationen darüber, wie du dein eigenes Projekt nominieren kannst.

Nächste Schritte

Empfehlungen
  • Lerne mehr über die Bibliothek der verfügbaren Circuits und Anweisungen in der Qiskit Circuit-Bibliothek.
  • Lies über den Qiskit Transpiler und die vielen Transpilierungsoptionen im Abschnitt Transpiler.
  • Erfahre, wie du Qiskit Primitives zur Vereinfachung der Quantenprogrammierung nutzen kannst.