Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Microsoft Quantum Development Kit (QDK) mencakup simulator kuantum yang menjalankan program kuantum di komputer lokal Anda. Gunakan simulator lokal ini untuk menguji dan mengembangkan program Anda sebelum Anda mengirimkannya ke Azure Quantum target.
QDK menyediakan empat simulator utama untuk menjalankan program kuantum:
- Simulator bersifat jarang
- simulator stabilizer
- Simulator GPU
- Simulator CPU
Simulator bersifat jarang
Simulator sparse merepresentasikan status qubit sebagai vektor jarang dan menggunakan aljabar matriks jarang untuk dengan cepat mensimulasikan program yang menghasilkan beberapa amplitudo nonzero. Ini adalah simulator default untuk program dalam Q# dan OpenQASM di ekstensi QDK dan untuk API qsharp.run dan openqasm.runPython. Gunakan simulator sparse ketika Anda menginginkan simulasi cepat dari program Q#, OpenQASM, atau Qiskit, atau ketika Anda ingin menampilkan status kuantum program Anda selama simulasi.
Simulator sparse tersedia dalam ekstensi QDK untuk Visual Studio Code (VS Code) dan paket QDKPython. Simulator ini adalah satu-satunya simulator yang tersedia dalam ekstensi QDK, sehingga ekstensi secara otomatis menggunakannya ketika Anda menjalankan program Q# dan OpenQASM di VS Code. Di VS Code, gunakan Q#DumpMachine fungsi atau debugger untuk menampilkan vektor status qubit di titik yang berbeda dalam simulasi.
Baik ekstensi VS Code maupun paket Python mendukung model kebisingan untuk simulasi sparse program Q# dan OpenQASM. Hanya paket Python yang mendukung simulasi sparse untuk program Qiskit, tetapi tidak mendukung model kebisingan untuk simulasi Qiskit.
Untuk informasi selengkapnya tentang cara menjalankan simulasi dalam QDK ekstensi, lihat Menjalankan simulasi kuantum di QDK ekstensi untuk Visual Studio Code.
simulator stabilizer
Simulator stabilizer dengan cepat dan efisien mensimulasikan program yang didominasi Clifford dengan ribuan qubit. Clifford gates adalah komponen umum dari sirkuit koreksi kesalahan kuantum. Clifford operasi tidak meningkatkan jumlah cabang stabilizer, sehingga simulator dapat menerapkannya secara efisien bahkan di sirkuit yang luas. Operasi umum Clifford meliputi:
- $X$, $Y$, dan $Z$
- $S$ dan $S^\dagger$
- $H$, atau Hadamard
- $CX$, $CY$, dan $CZ$
- $SWAP$
Simulator stabilizer juga menggunakan percabangan stabilizer untuk mensimulasikan sirkuit dengan sejumlah terbatas operasi non-Clifford. Simulator mendukung operasi non-Clifford berikut:
- $T$ dan $T^\dagger$
- Rotasi sudut arbitrer $R_X$, $R_Y$, $R_Z$, $R_{XX}$, $R_{YY}$, dan $R_{ZZ}$
Setiap operasi non-Clifford dapat meningkatkan jumlah cabang stabilizer. Menambahkan operasi non-Clifford dapat meningkatkan penggunaan memori dan shot time secara eksponensial. Gunakan simulator stabilizer untuk sirkuit lebar dengan sebagian besar operasi Clifford dan sejumlah kecil operasi non-Clifford. Gunakan simulator sparse atau full-state untuk sirkuit yang memiliki banyak operasi non-Clifford .
Simulator stabilizer mendukung eksekusi adaptif, kebisingan Pauli, dan kehilangan qubit. Ini tersedia dalam paket QDKPython untuk Q#, OpenQASM, Qiskit, dan QIR program, tetapi tidak tersedia dalam ekstensi QDK untuk VS Code.
Di Python API dengan pemilih simulator, gunakan "stabilizer" atau "clifford" untuk memilih simulator stabilizer.
Simulator GPU
Simulator GPU adalah simulator status penuh yang menggunakan komputer GPU Anda untuk menjalankan banyak bidikan program kuantum Anda secara paralel. Simulator mendukung semua jenis gerbang tetapi membutuhkan sumber daya komputasi yang signifikan. Simulator dapat memodelkan hingga 27 qubit. Kekuatan komputer GPU Anda menentukan performa, tetapi performa optimal untuk program yang memiliki sekitar 20 qubit dan banyak bidikan.
Simulator QDK menerima Python atau Qiskit sebagai input melalui API paket QIRGPU tertentu. VS Code Ekstensi tidak mendukung GPU simulator. Ada juga dukungan yang kaya untuk model kebisingan pada semua jenis gerbang atau operasi kuantum.
Simulator CPU
Seperti simulator GPU, simulator CPU adalah simulator status penuh yang menjalankan program dengan semua jenis gerbang kuantum. Tetapi lebih lambat karena tidak dapat menjalankan beberapa pengambilan secara paralel. Simulator ini membesar hingga sekitar 25 qubit, tetapi melambat dengan laju eksponensial ketika menambah lebih banyak qubit karena keterbatasan memori. CPU Gunakan simulator ketika komputer Anda tidak memiliki GPU, atau ketika program Anda memiliki beberapa qubit dan tidak memerlukan banyak shots.
Simulator CPU menerima input QIR atau Qiskit. Anda dapat menggunakannya melalui API paket tertentu QDKPython , tetapi tidak melalui VS Code ekstensi. Ada juga dukungan yang kaya untuk model kebisingan pada semua jenis gerbang atau operasi kuantum.
Simulator apa yang harus saya gunakan?
Pertimbangkan faktor-faktor ini ketika Anda memilih simulator:
- Lingkungan pengembangan Anda (VS Code atau Python)
- Kerangka kerja pemrograman kuantum yang Anda gunakan
- Kompleksitas program Anda dan jumlah pengambilan gambar
- Kemampuan perangkat keras komputer lokal Anda
- Target Azure Quantum atau perangkat keras kuantum lain yang ingin Anda jalankan program Anda
- Model kebisingan yang ingin Anda buat
Tabel berikut merangkum ketersediaan setiap QDK simulator dan kerangka kerja pemrograman kuantum yang didukung:
| Simulator | Availability | Kerangka kerja yang didukung |
|---|---|---|
| Jarang | VS Code ekstensi dan Python paket | Q#, OpenQASM, Qiskit |
| Stabilizer | Python Paket | Q#,OpenQASM,Qiskit,QIR |
| GPU | Python Paket | Qiskit, QIR |
| CPU | Python Paket | Qiskit, QIR |
Simulasi dalam QDK ekstensi untuk VS Code
QDK Ekstensi untuk VS Code hanya mendukung simulator sparse. Untuk menggunakan simulator sparse, jalankan file OpenQASM atau Q# Anda di VS Code. Anda dapat menambahkan Pauli model kebisingan ke simulasi sparse untuk program Q# di VS Code, tetapi tidak ke program OpenQASM.
Simulasi dalam QDKPython paket
Paket ini QDKPython mendukung beberapa kerangka kerja pemrograman kuantum dan keempat QDK simulator. Kompatibilitas bervariasi menurut kerangka kerja dan API.
Tabel berikut mencantumkan simulator dan kerangka kerja pemrograman yang didukung oleh setiap Python API:
| Python Antarmuka Pemrograman Aplikasi (API) | Jarang | Stabilizer | GPU | CPU | Kerangka kerja pemrograman |
|---|---|---|---|---|---|
qsharp.run |
Supported | Supported | Tidak didukung | Tidak didukung | Q# |
openqasm.run |
Supported | Supported | Tidak didukung | Tidak didukung | OpenQASM |
qiskit.QSharpBackend |
Supported | Tidak didukung | Tidak didukung | Tidak didukung | Qiskit |
simulation.NeutralAtomDevice |
Tidak didukung | Supported | Supported | Supported | QIR |
qiskit.NeutralAtomBackend |
Tidak didukung | Supported | Supported | Supported | Qiskit |
simulation.run_qir |
Tidak didukung | Supported | Supported | Supported | QIR |