Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die MicrosoftQuantum Development Kit (QDK) enthält Quantensimulatoren, die Quantenprogramme auf Ihrem Computer ausführen. Verwenden Sie diese lokalen Simulatoren, um Ihre Programme zu testen und zu entwickeln, bevor Sie sie an Azure Quantum Ziele übermitteln.
QDK bietet vier primäre Simulatoren zum Ausführen von Quantenprogrammen:
- Der sparse Simulator
- Der Stabilisator-Simulator
- Der GPU Simulator
- Der CPU Simulator
Der sparse Simulator
Der Sparse-Simulator stellt qubit-Zustände als Sparse-Vektoren dar und verwendet Sparse-Matrix-Algebra, um Programme schnell zu simulieren, die nur wenige Nicht-Null-Amplituden erzeugen. Es ist der Standardsimulator für Q# und OpenQASM Programme in der QDK Erweiterung und für die qsharp.run und openqasm.runPython APIs. Verwenden Sie den sparsamen Simulator, wenn Sie schnelle Simulationen von Q#, OpenQASModer Qiskit Programmen oder wenn Sie den Quantenzustand Ihres Programms während der Simulation anzeigen möchten.
Der sparse Simulator ist sowohl in der QDK Erweiterung für Visual Studio Code (VS Code) als auch im QDKPython Paket verfügbar. Dieser Simulator ist der einzige Simulator, der in der QDK Erweiterung verfügbar ist, sodass die Erweiterung ihn automatisch verwendet, wenn Sie Q#- und OpenQASM-Programme in VS Code ausführen. Verwenden Sie in VS Code die Funktion Q#DumpMachine oder den Debugger, um Qubit-Zustandsvektoren an verschiedenen Punkten in der Simulation anzuzeigen.
Sowohl die VS Code Erweiterung als auch das Python Paket unterstützen Rauschmodelle für sparsame Simulationen von Q#- und OpenQASM-Programmen. Nur das Python Paket unterstützt die Sparse-Simulation von Qiskit Programmen, unterstützt aber keine Rauschmodelle für Qiskit Simulationen.
Weitere Informationen zum Ausführen von Simulationen in der QDK Erweiterung finden Sie unter Ausführen von Quantensimulationen in der QDK Erweiterung für Visual Studio Code.
Der Stabilisatorsimulator
Der Stabilisator-Simulator simuliert schnell und effizient Clifford-dominierte Programme mit Tausenden von Qubits. Clifford Gatter sind häufige Komponenten von Quantenfehlerkorrekturschaltungen. Clifford Operationen erhöhen nicht die Anzahl der Stabilisatorzweige, sodass der Simulator sie auch in breiten Quantenschaltungen effizient anwenden kann. Zu den allgemeinen Clifford Vorgängen gehören:
- $X$, $Y$ und $Z$
- $S$ und $S^\dagger$
- $H$ oder Hadamard
- $CX$, $CY$ und $CZ$
- $SWAP$
Der Stabilisierungssimulator verwendet auch Stabilisierungsverzweigungen, um Schaltungen mit einer begrenzten Anzahl von nicht-Clifford Operationen zu simulieren. Der Simulator unterstützt die folgenden Nicht-CliffordVorgänge:
- $T$ und $T^\dagger$
- Drehungen $R_X$, $R_Y$, $R_Z$, $R_{XX}$, $R_{YY}$ und $R_{ZZ}$ mit beliebigem Winkel
Jede Nicht-Clifford-Operation kann die Anzahl der Stabilisierungsverzweigungen erhöhen. Durch das Hinzufügen von Operationen, die nicht Clifford sind, kann die Arbeitsspeicherauslastung und die Ausführungszeit exponentiell erhöht werden. Verwenden Sie den Stabilisierungssimulator für breite Schaltkreise mit überwiegenden Clifford Vorgängen und einer geringen Anzahl von Nicht-Clifford-Vorgängen. Verwenden Sie einen Spar- oder Vollzustandssimulator für Schaltkreise, die viele nicht-CliffordOperationen aufweisen.
Der Stabilisator-Simulator unterstützt adaptive Ausführung, Pauli Rauschen und Qubit-Verlust. Es ist im QDKPython Paket für Q#, OpenQASM, Qiskitund QIR Programme verfügbar, ist aber in der QDK Erweiterung nicht verfügbar für VS Code.
Verwenden Sie in Python APIs mit einer Simulatorauswahl entweder "stabilizer" oder "clifford", um den Stabilisierungssimulator auszuwählen.
Der GPU Simulator
Der GPU-Simulator ist ein Simulator für den vollständigen Zustand, der die GPU ihres Computers verwendet, um zahlreiche Durchläufe Ihres Quantenprogramms parallel auszuführen. Der Simulator unterstützt alle Gate-Typen, erfordert jedoch erhebliche Rechenressourcen. Der Simulator kann bis zu 27 Qubits modellieren. Die Leistung der GPU ihres Computers bestimmt die Leistung, aber die Leistung ist optimal für Programme mit rund 20 Qubits und vielen Ausführungen.
Der GPU Simulator akzeptiert QIR oder Qiskit als Eingabe über bestimmte QDKPython Paket-APIs. Die VS Code Erweiterung unterstützt den GPU Simulator nicht. Umfangreiche Unterstützung von Rauschmodellen für jede Art von Quantengatter oder Vorgang ist ebenfalls verfügbar.
Der CPU Simulator
Wie der GPU-Simulator ist der CPU-Simulator ein Vollzustandssimulator, der Programme mit jeder Art von Quantengatter ausführt. Aber es ist langsamer, da es nicht mehrere Durchläufe parallel ausführen kann. Dieser Simulator skaliert auf bis zu 25 Qubits, verlangsamt sich jedoch exponentiell bei mehr Qubits aufgrund von Speicherproblemen. Verwenden Sie den CPU Simulator, wenn Ihr Computer nicht über ein GPU verfügt, oder wenn Ihr Programm nur wenige Qubits hat und nicht viele Shots erfordert.
Der CPU Simulator akzeptiert QIR oder Qiskit eingabe. Sie können sie über bestimmte QDKPython Paket-APIs, aber nicht über die VS Code Erweiterung verwenden. Umfangreiche Unterstützung von Rauschmodellen für jede Art von Quantengatter oder Vorgang ist ebenfalls verfügbar.
Welchen Simulator sollte ich verwenden?
Berücksichtigen Sie diese Faktoren, wenn Sie einen Simulator auswählen:
- Ihre Entwicklungsumgebung (VS Code oder Python)
- Das Quantenprogrammierungsframework, das Sie verwenden
- Die Komplexität Ihres Programms und die Anzahl der Aufnahmen
- Die Hardwarefunktionen Ihres lokalen Computers
- Die Azure Quantum-Ziele oder andere Quantenhardware, auf der Sie Ihre Programme ausführen möchten
- Die Rauschmodelle, die Sie erstellen möchten
In der folgenden Tabelle sind die Verfügbarkeit und die unterstützten Quantenprogrammierungsframeworks jedes QDK Simulators zusammengefasst:
| Simulator | Verfügbarkeit | Unterstützte Frameworks |
|---|---|---|
| Spärlich | VS Code Erweiterung und Python Paket | Q#, OpenQASMQiskit |
| Stabilizer | Python Paket | Q#, OpenQASM, Qiskit, QIR |
| GPU | Python Paket | Qiskit, QIR |
| CPU | Python Paket | Qiskit, QIR |
Simulationen in der QDK Erweiterung für VS Code
Die QDK Erweiterung für VS Code unterstützt nur den sparse Simulator. Um den Sparsesimulator zu verwenden, führen Sie Ihre Q#- oder OpenQASM-Datei in VS Code aus. Sie können Q# Rauschmodelle zu sparsamen Simulationen von VS Code Programmen in OpenQASM hinzufügen, aber nicht zu Pauli Programmen.
Simulationen im QDKPython Paket
Das QDKPython Paket unterstützt mehrere Quantenprogrammierframeworks und alle vier QDK Simulatoren. Die Kompatibilität variiert je nach Framework und API.
In der folgenden Tabelle sind die Simulatoren und Programmierframeworks aufgeführt, die von jeder einzelnen Python API unterstützt werden:
| Python-API | Spärlich | Stabilizer | GPU | CPU | Programmier-Framework |
|---|---|---|---|---|---|
qsharp.run |
Supported | Supported | Nicht unterstützt | Nicht unterstützt | Q# |
openqasm.run |
Supported | Supported | Nicht unterstützt | Nicht unterstützt | OpenQASM |
qiskit.QSharpBackend |
Supported | Nicht unterstützt | Nicht unterstützt | Nicht unterstützt | Qiskit |
simulation.NeutralAtomDevice |
Nicht unterstützt | Supported | Supported | Supported | QIR |
qiskit.NeutralAtomBackend |
Nicht unterstützt | Supported | Supported | Supported | Qiskit |
simulation.run_qir |
Nicht unterstützt | Supported | Supported | Supported | QIR |