[ PROMPT_NODE_27204 ]
Qiskit 后端
[ SKILL_DOCUMENTATION ]
# 硬件后端与执行
Qiskit 与后端无关,支持在来自多个提供商的模拟器和真实量子硬件上执行。
## 后端类型
### 本地模拟器
- 在您的机器上运行
- 无需账户
- 非常适合开发和测试
### 基于云的硬件
- IBM Quantum (100+ 量子比特系统)
- IonQ (离子阱)
- Amazon Braket (Rigetti, IonQ, Oxford Quantum Circuits)
- 通过插件支持的其他提供商
## IBM Quantum 后端
### 连接到 IBM Quantum
python
from qiskit_ibm_runtime import QiskitRuntimeService
# 首次使用:保存凭据
QiskitRuntimeService.save_account(
channel="ibm_quantum",
token="YOUR_IBM_QUANTUM_TOKEN"
)
# 后续会话:加载凭据
service = QiskitRuntimeService()
### 列出可用后端
python
# 列出所有可用后端
backends = service.backends()
for backend in backends:
print(f"{backend.name}: {backend.num_qubits} 量子比特")
# 按最小量子比特数过滤
backends_127q = service.backends(min_num_qubits=127)
# 获取特定后端
backend = service.backend("ibm_brisbane")
backend = service.least_busy() # 获取最空闲的后端
### 后端属性
python
backend = service.backend("ibm_brisbane")
# 基本信息
print(f"名称: {backend.name}")
print(f"量子比特数: {backend.num_qubits}")
print(f"版本: {backend.version}")
print(f"状态: {backend.status()}")
# 耦合图 (量子比特连接性)
print(backend.coupling_map)
# 基础门
print(backend.configuration().basis_gates)
# 量子比特属性
print(backend.qubit_properties(0)) # 量子比特 0 的属性
### 检查后端状态
python
status = backend.status()
print(f"可操作: {status.operational}")
print(f"挂起的作业: {status.pending_jobs}")
print(f"状态消息: {status.status_msg}")
## 在 IBM Quantum 硬件上运行
### 使用运行时原语 (Runtime Primitives)
python
from qiskit import QuantumCircuit, transpile
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
service = QiskitRuntimeService()
backend = service.backend("ibm_brisbane")
# 创建并转译电路
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
# 为后端进行转译
transpiled_qc = transpile(qc, backend=backend, optimization_level=3)
# 使用 Sampler 运行
sampler = Sampler(backend)
job = sampler.run([transpiled_qc], shots=1024)
# 获取结果
result = job.result()
counts = result[0].data.meas.get_counts()
print(counts)
### 作业管理
python
# Su