设备能力与设备选项
想知道一台机器能运行什么线路,先读设备能力;想设置这次任务怎样执行,再读设备选项。例如,门集与连接关系告诉你可以在哪些比特上编译,configuration_schema 告诉你 mapping 等配置怎么填写。本页解释共同概念,三个客户端专章给出可直接使用的查询代码。
先选择你使用的客户端
使用 Qiskit 或 PennyLane 编写线路时,选择对应插件;已有 OpenQASM 文件时,选择 Core SDK。SDK 和平台负责线路格式转换,下表列出各入口的能力查询和配置方法。
| 入口 | 用户编写的输入 | 当前上传格式 | 设备能力入口 | 设备配置入口 |
|---|---|---|---|---|
| Qiskit 插件 | QuantumCircuit;Sampler / Estimator 的 PUB | 插件自动导出 OpenQASM 2 或 3 | backend.capabilities;backend.target;backend.configuration_schema | backend.set_options;单次 configuration_data;设备声明的动态关键字 |
| PennyLane 插件 | QNode / QuantumScript | 插件预处理测量后导出逻辑 OpenQASM 2 | dev.provider_capabilities;schema 经 SchedulerClient 查询 | 创建设备时的 configuration_data |
| Core SDK | OpenQASM 文件或 UTF-8 bytes | OpenQASM 2 或 3 | get_backend_class 返回设备模型;capabilities_from_backend / get_capabilities 解析能力 | JobSubmissionConfig.configuration_data |
每一种查询结果解决什么问题
| 数据 | 回答的问题 | 怎样使用 |
|---|---|---|
| 设备目录与状态 | 设备的 short_code、类型、规模和当前状态 | 选择账号可用的目标设备 |
| BackendCapabilities | 门、可用比特、连接、时长、误差和功能声明 | 规划线路和物理布局;可选字段为空时显示“未提供” |
| configuration_schema | 设备选项的名称、类型、允许值和默认值 | 将所选参数填写到客户端的设备配置入口 |
| 框架侧对象 | Qiskit Target 或 PennyLane 插件支持的编译与测量表示 | 交给框架编译器,或用于选择合适的线路写法 |
门集和连接关系用于了解硬件;设备选项用于调整实验的执行方式。本源真机提供的 mapping、optimization、amend 等布尔选项,可以在选定设备后通过 configuration_schema 查询和设置。
读懂 configuration_schema
每个专章都给出了读取 properties 的代码。找到要设置的字段后,查看它的类型、允许值、默认值和用途,再将所选值填入配置。下表说明各字段的读法。
| 字段 | 阅读方法 |
|---|---|
| properties | 字典中的键才是当前声明的选项;空字典表示当前响应未公开可调设备选项 |
| type | boolean 使用 Python True / False;其他类型按声明填写 |
| enum / const | enum 给出允许值集合;const 指定固定值 |
| default | 服务端声明的默认值。Qiskit 是否把字段放入 Options,还取决于插件实现;详见 Qiskit 专章 |
| minimum / maximum | 字段允许的数值范围 |
| description / title | 字段的用途说明或显示名称 |
本源逻辑线路可通过云端拓扑映射适配设备连接关系;Qiskit 固定物理布局使用 mapping=False、optimization=False,保持已编译的位置和线路。三个客户端专章分别展示具体写法。
读取时长、误差与功能信息
三个客户端都从平台读取统一的设备能力。平台整理厂商提供的硬件数据,SDK 将其呈现为 timing、noise、features 和 topology 等字段;显示已有对象时复用已读取的数据。
| 字段 | 当前本源 Adapter 的处理 | 用户解读 |
|---|---|---|
| timing.durations | 从可读取的门时长整理,纳秒转换为秒 | 查看已提供门及比特位置的执行时长 |
| timing.dt | 采样周期;当前本源目录返回 None | None 表示当前未提供采样周期 |
| noise.gate_error | 可用保真度按 1 − fidelity 转为误差字段 | 了解平台记录的门误差估计 |
| features | 按测量流程和设备声明整理,如 measurement、barrier、reset | 结合所用插件的操作支持选择线路写法 |
| topology | 整理可用比特与连接关系 | 选择物理布局时同时查看连接关系和门的可用位置 |
可选信息以设备返回的数据为准。空字段显示为“当前未提供”;查询时间记录本次读取时间,校准时间使用设备明确提供的时间。各专章同时展示平台能力和框架视图,方便按需查看。
逻辑编号与物理编号要分别理解
| 写法 | 含义 |
|---|---|
| Qiskit:QuantumCircuit(2) 的 0、1 | 默认是两个逻辑比特;需要物理布局时使用该插件公开的 physical_qubits / initial_layout |
| PennyLane:wires=["a", "b"] | 两条逻辑 wire 的标签;插件生成连续逻辑编号,再交给厂商完成拓扑映射 |
| Core:qreg q[12]、h q[1] | OpenQASM 寄存器索引;物理程序还需按 Core 物理输入约定声明其表示方式 |
需要使用指定的一组物理比特时,使用 Qiskit 的 physical_qubits 或 initial_layout 布局入口。PennyLane 工作流提交逻辑线路,由云端拓扑映射将线路适配到设备连接关系。
查询时机、缓存和权限
Core 调用 get_backend_class / get_capabilities 可重新读取平台目录。Qiskit backend 和 PennyLane dev 会缓存各自的能力对象;需要按新数据准备实验时,创建新的框架对象。平台目录按服务端刷新策略更新。已有实验继续使用原准备对象查询结果。
能力查询用于读取设备信息。prepare 会上传线路、检查本次配置并生成报价;查看报价后,通过 confirm 执行实验。
API 参考
设备能力对象的属性、查询方法和返回类型集中收录在 API 参考中;接口实现与测试依据可在同一文档中查阅。
下载本页 Jupyter Notebook
收录本页 Python 示例与说明,便于在 Jupyter Notebook 中学习和运行;安装命令保留为说明。