Langkau ke kandungan utama

Migrasi daripada simulator awan kepada simulator tempatan

Dalam pengkomputeran kuantum, pilihan antara menggunakan simulator dan perkakasan kuantum adalah penting untuk terus maju dalam bidang ini. Walaupun simulator berguna untuk ujian dan nyahpepijat, dalam era kegunaan kuantum ini, pembangunan kuantum dan kemajuan industri memerlukan perkakasan sebenar. Sebagai sebahagian daripada peralihan kepada kegunaan kuantum, simulator awan IBM Quantum® telah ditamatkan pada 15 Mei 2024. Panduan ini menerangkan penamatan tersebut dengan lebih terperinci, dan cara untuk migrasi daripada simulator berasaskan awan, seperti ibmq_qasm_simulator, kepada simulator tempatan.

Mengapa simulator awan ditamatkan?​

Simulator awan ditamatkan atas beberapa sebab:

Simulator mempunyai batasan

Simulator boleh berguna, tetapi terlalu terhad untuk digunakan dalam penyelidikan atau eksperimen:

  • Simulator berharga untuk memahami QPU (unit pemprosesan kuantum) berskala kecil, tetapi kegunaannya mencapai had sekitar 50 qubit, walaupun dengan akses kepada superkomputer berprestasi tinggi. Had ini berpunca daripada pertumbuhan eksponen dalam sumber pengiraan yang diperlukan untuk mensimulasikan komputer kuantum yang lebih besar (semak Massively parallel quantum computer simulator, eleven years later untuk penjelasan penuh). Meneroka komputer kuantum bersaiz 100 qubit dan lebih memerlukan perkakasan sebenar.

  • Walaupun ada simulator yang menawarkan model hingar, ia adalah masalah yang sangat sukar untuk menangkap keseluruhan dinamik QPU sebenar. Perkakasan kuantum menawarkan potensi kepada penyelidik untuk menghadapi cabaran yang wujud dalam komputer kuantum, seperti hingar, ralat, dan dekoherensi dalam persekitaran ujian yang realistik.

Penggunaan perkakasan kuantum membina kemahiran unik

Berinteraksi dengan perkakasan kuantum membina kemahiran dan pengalaman yang tidak boleh diperoleh hanya dengan menggunakan simulator:

  • Interaksi langsung dengan perkakasan kuantum membina kemahiran kerana anda perlu melaksanakan atau menggunakan teknik pengurang atau penekan ralat untuk pengiraan yang boleh dipercayai.

  • Pengalaman langsung dengan perkakasan kuantum membangunkan pemahaman yang lebih mendalam tentang fenomena kuantum dan cara untuk menyesuaikan algoritma kepada ciri-ciri pemproses kuantum.

  • Berinteraksi dengan perkakasan kuantum menghasilkan pandangan praktikal tentang cabaran dan peluang pengkomputeran kuantum, meningkatkan kemampuan pembangun untuk mendorong inovasi dalam bidang ini.

Algoritma perlu disesuaikan untuk perkakasan kuantum

Algoritma kuantum yang berjaya perlu disesuaikan untuk memanfaatkan keupayaan perkakasan kuantum, mengoptimumkan prestasi dan kecekapan.

  • Perkakasan kuantum memberikan gambaran yang lebih tepat tentang QPU dunia sebenar berbanding simulator.

  • Menala-halus algoritma untuk perkakasan kuantum melibatkan pelarasan ansatz, pelaksanaan Circuit, parameter, dan konfigurasi untuk memaksimumkan prestasi. Proses ini paling baik dicapai melalui eksperimen langsung dengan perkakasan kuantum.

Bilakah simulator patut digunakan?​

Simulator kuantum patut digunakan untuk membantu membangun dan menguji program sebelum menala-halusnya dan menghantar ke perkakasan kuantum. Simulator tempatan boleh melakukan ini dengan prestasi dan kecekapan yang baik. Circuit Clifford boleh disimulasikan dengan sangat cekap, dan hasilnya boleh disahkan, yang merupakan cara yang berguna untuk mendapat keyakinan terhadap eksperimen.

nota

Mod ujian tempatan tidak mempunyai pengurang atau penekan ralat terbina dalam. Sebaliknya, anda perlu menentukan pilihan tersebut secara eksplisit. Lihat Konfigurasi pengurang ralat untuk Qiskit Runtime untuk butiran lanjut.

Migrasi ke simulator tempatan​

Dengan qiskit-ibm-runtime 0.22.0 atau lebih baru, anda boleh menggunakan mod ujian tempatan untuk menggantikan simulator awan. Bergantung pada keperluan anda, terdapat beberapa cara untuk menggunakan mod ujian tempatan. Untuk bermula, tentukan salah satu backend palsu dalam qiskit_ibm_runtime.fake_provider atau tentukan Backend Qiskit Aer semasa menginisialisasi primitif atau sesi.

Panduan memilih simulator​

Gunakan jadual berikut untuk membantu memilih simulator.

SimulatorBackend PalsuAerSimulatorSimulasi Clifford
TujuanMeniru QPU IBM® tertentu menggunakan syot kilatSimulasi tujuan umum berprestasi tinggiSimulasi cekap untuk Circuit Clifford
Model hingarMenggunakan model hingar daripada syot kilat QPU secara automatikKustom atau berdasarkan data penentukuran QPU sebenarSesuai untuk simulasi tanpa hingar
Saiz CircuitTerhad kepada keupayaan QPU yang ditiruBoleh mengendalikan Circuit yang lebih besarSesuai untuk Circuit yang sangat besar (ratusan qubit)
HasilMasa jalan sederhana untuk ujian khusus QPUMasa jalan lebih singkat untuk pelbagai jenis simulasiSangat pantas, sesuai untuk Circuit penstabil
Kes penggunaanUjian Transpiler dan tingkah laku khusus QPUPembangunan umum, model hingar kustomCircuit penstabil besar, pembetulan ralat
nota

Bagi kebanyakan pengguna, AerSimulator adalah pilihan yang baik kerana fleksibiliti dan prestasinya. Walau bagaimanapun, jika kerja anda menyasarkan QPU tertentu, backend palsu mungkin pilihan yang lebih baik.

Backend palsu​

Backend palsu meniru tingkah laku QPU IBM menggunakan syot kilat. Syot kilat mengandungi maklumat penting tentang QPU, seperti peta gandingan, get asas, dan sifat qubit, yang berguna untuk menguji Transpiler dan melakukan simulasi berhalangan QPU. Model hingar daripada syot kilat digunakan secara automatik semasa simulasi.

Contoh:

from qiskit.circuit.library import RealAmplitudes
from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
from qiskit_ibm_runtime import SamplerV2 as Sampler, QiskitRuntimeService

service = QiskitRuntimeService()

# Bell Circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

# Run the sampler job locally using FakeManilaV2
fake_manila = FakeManilaV2()
pm = generate_preset_pass_manager(backend=fake_manila, optimization_level=1)
isa_qc = pm.run(qc)

# You can use a fixed seed to get fixed results.
options = {"simulator": {"seed_simulator": 42}}
sampler = Sampler(mode=fake_manila, options=options)

result = sampler.run([isa_qc]).result()

AerSimulator​

Anda boleh menggunakan mod ujian tempatan dengan simulator daripada Qiskit Aer, yang menyediakan simulasi berprestasi lebih tinggi yang boleh mengendalikan Circuit yang lebih besar dan model hingar kustom. Ia juga menyokong mod simulasi Clifford, yang boleh mensimulasikan Circuit Clifford dengan bilangan qubit yang besar secara cekap.

Contoh dengan sesi, tanpa hingar:

awas

Blok kod berikut akan mengembalikan ralat untuk pengguna dalam Pelan Terbuka kerana ia menggunakan sesi. Beban kerja dalam Pelan Terbuka hanya boleh dijalankan dalam mod kerja atau mod kelompok.

from qiskit_aer import AerSimulator
from qiskit.circuit.library import RealAmplitudes
from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import Session, SamplerV2 as Sampler, QiskitRuntimeService

service = QiskitRuntimeService()

# Bell Circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

# Run the sampler job locally using AerSimulator.
# Session syntax is supported but ignored because local mode doesn't support sessions.
aer_sim = AerSimulator()
pm = generate_preset_pass_manager(backend=aer_sim, optimization_level=1)
isa_qc = pm.run(qc)
with Session(backend=aer_sim) as session:
sampler = Sampler()
result = sampler.run([isa_qc]).result()

Untuk mensimulasikan dengan hingar, tentukan QPU (perkakasan kuantum) dan hantar ke Aer. Aer akan membina model hingar berdasarkan data penentukuran daripada QPU tersebut dan menginisialisasi Backend Aer dengan model itu. Jika anda lebih suka, anda boleh membina model hingar.

Contoh dengan hingar:

from qiskit_aer import AerSimulator
from qiskit.circuit.library import RealAmplitudes
from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler

service = QiskitRuntimeService()

# Bell Circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

# Specify a QPU to use for the noise model
real_backend = service.backend("ibm_brisbane")
aer = AerSimulator.from_backend(real_backend)

# Run the sampler job locally using AerSimulator.
pm = generate_preset_pass_manager(backend=aer, optimization_level=1)
isa_qc = pm.run(qc)
sampler = Sampler(mode=aer)
result = sampler.run([isa_qc]).result()

Simulasi Clifford​

Oleh kerana Circuit Clifford boleh disimulasikan secara cekap dengan hasil yang boleh disahkan, simulasi Clifford adalah alat yang sangat berguna. Untuk contoh yang mendalam, lihat Simulasi cekap Circuit penstabil dengan primitif Qiskit Aer.

Contoh:

import numpy as np
from qiskit.circuit.library import EfficientSU2
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler

service = QiskitRuntimeService()

n_qubits = 500 # <---- note this uses 500 qubits!
circuit = EfficientSU2(n_qubits)
circuit.measure_all()

rng = np.random.default_rng(1234)
params = rng.choice(
[0, np.pi / 2, np.pi, 3 * np.pi / 2],
size=circuit.num_parameters,
)

# Tell Aer to use the stabilizer (clifford) simulation method
aer_sim = AerSimulator(method="stabilizer")

pm = generate_preset_pass_manager(backend=aer_sim, optimization_level=1)
isa_circuit = pm.run(circuit)
sampler = Sampler(mode=aer_sim)
result = sampler.run([(isa_circuit, params)]).result()
Source: IBM Quantum docs — updated 27 Apr 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mac 2026