设备发现与选择
先用设备目录找到目标机器,再读取它的能力和可配置选项。本页介绍设备列表与筛选;门集、连接关系、mapping 等设备专属功能分别在三个客户端的能力章节说明。
使用 Qiskit service 筛选
已按认证页设置环境凭据后,创建服务并获取列表。使用隐藏输入的 creds 时,改为 QuantumSourceService(creds=creds, base_url=os.environ["QUANTUM_SOURCE_API_URL"]),或直接沿用已有 service。多个筛选条件可以组合;不填写条件时列出当前可见目录。
from quantum_source_qiskit import QuantumSourceService
service = QuantumSourceService()
backends = service.backends(online=True, min_num_qubits=2)
backends
返回值支持列表式遍历和索引,每行是一个字典。在 Notebook 中显示五列设备摘要;下面提取选择设备时常用的字段。
for row in backends:
print(row["short_code"], row["status"], row.get("platform_active_tasks"))
| 筛选参数 | 作用 |
|---|---|
| name | 按设备名称或 short_code 的子串匹配,不区分大小写。 |
| online | True 选取平台记录为在线且未明确拒收任务的设备。 |
| device_type | 按目录的 type 字段匹配,例如实际目录中的 QPU 或 Simulator。 |
| vendor_id | 厂商目录中的 ID,对应平台的 provider_id 筛选条件。 |
| min_num_qubits | 选择目录中量子比特数达到指定值的设备。 |
| limit | 每页读取条数,范围 1–1000。服务会自动继续读取后续页。 |
怎样理解五列摘要
| 列 | 含义 |
|---|---|
| short_code | 选择设备时使用的短标识。 |
| type | 设备类别。 |
| num_qubits | 目录报告的设备规模;可用物理比特见设备能力详情。 |
| status | 平台当前记录的状态。 |
| platform_active_tasks | 该设备在我们平台的全用户未结束任务数;确认接受后计入,确认终态后减一。缺少统计时显示 —。 |
platform_active_tasks 包括等待发送、发送中、厂商运行中和发送结果待核实的任务,统计范围是该设备在本平台的全部用户任务。
仅使用 Core SDK 获取目录
Core 的 SchedulerClient.management.list_backend_classes 返回包含 BackendClassRead 模型的分页结果。下面读取第一页;使用隐藏输入时可沿用已有 scheduler,PennyLane 用户也可以复用这个客户端。
import os
from quantum_source_sdk import SchedulerClient
scheduler = SchedulerClient(base_url=os.environ["QUANTUM_SOURCE_API_URL"])
page = scheduler.management.list_backend_classes(limit=100)
for item in page.backend_classes:
print(item.short_code, item.name, item.status)
可选:设备超过一页时
遍历全部目录时使用下面的循环。cursor=None 从第一页开始;之后把 pagination.next_cursor 原样传给下一次查询,直到读完全部页面。
cursor = None
while True:
page = scheduler.management.list_backend_classes(limit=100, cursor=cursor)
for item in page.backend_classes:
print(item.short_code, item.name, item.status)
cursor = page.pagination.next_cursor
if not cursor:
break
每页的 backend_classes 是设备模型列表,pagination.next_cursor 为下一页游标。需要设备短标识列表时,可使用包级 list_backends(scheduler=scheduler);按在线状态筛选时使用 service.backends(online=True)。
从列表进入单台设备详情
backend_code = input("Backend short_code: ").strip()
details = scheduler.get_backend_class(backend_code)
print(details.name)
print(details.supported_formats)
print(details.configuration_schema)
details.configuration_schema 描述可设置的设备选项。门、连接及 timing / noise / features 等属性通过统一能力模型读取;执行权限由账号授权决定。
继续使用你选择的客户端
- Qiskit:创建 BackendV2、查询 Options 与 Target
- PennyLane:查询 provider_capabilities 并创建设备
- Core:解析 BackendCapabilities 并设置配置
- 准备报价与提交
下载本页 Jupyter Notebook
收录本页 Python 示例与说明,便于在 Jupyter Notebook 中学习和运行;安装命令保留为说明。