你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

了解资源估算器的结果数据

了解如何解释和检索资源估算器的输出参数和关系图。 本文介绍如何以编程方式访问 Jupyter Notebook 中资源估算器的结果。 如果在命令面板中的 Visual Studio Code 中运行资源估算器,则以下命令不适用。

先决条件

输出参数

资源估算器的输出数据是在控制台中打印并可通过编程方式访问的报表。 例如,以下代码片段演示如何访问资源估算参数。

result['job_params']

以下输出数据构成可通过编程方式访问的可能条目。

顶级输出参数 数据类型 说明
status 字符串 作业的状态始终 Succeeded为 。
job_params dictionary target作为输入传递的作业的参数。
physical_counts dictionary 物理资源估算值。 有关详细信息,请参阅 物理计数
physical_counts_formatted dictionary 为在报表数据中显示而设置格式的物理资源估算值。 有关详细信息,请参阅 格式化的物理计数
logical_qubit dictionary 逻辑量子位属性。 有关详细信息,请参阅 逻辑量子比特
tfactory dictionary T 工厂属性。
logical_counts dictionary 预布局逻辑资源估算值。 有关详细信息,请参阅 逻辑计数
report_data dictionary 资源估算报表的生成数据。

物理计数

字典 physical_counts 包含以下条目:

输出参数 数据类型 说明
physical_qubits 数字 物理量子比特的总数。
runtime 数字 要执行算法的总运行时(以纳秒为单位)。
rqops 数字 每秒 (QOPS) 的可靠量子操作数。
breakdown dictionary 估算明细。 有关详细信息,请参阅 物理计数明细

物理计数细分

breakdownphysical_counts字典包含以下条目:

输出参数 数据类型 说明
algorithmic_logical_qubits 数字 运行算法所需的逻辑量子比特,不包括 T 工厂的资源。
algorithmic_logical_depth 数字 运行算法所需的逻辑周期,不包括 T 工厂的资源。
logical_depth 数字 每当 T 工厂执行时间比算法执行更快时计算的可能调整的周期数。
num_tstates 数字 算法使用的 T 状态数。
clock_frequency 数字 每秒的逻辑周期数。
num_tfactories 数字 假设统一的 T 工厂设计) (T 工厂的数量。
num_tfactory_runs 数字 所有并行 T 工厂应运行的频率。
physical_qubits_for_tfactories 数字 所有 T 工厂的物理量子比特数。
physical_qubits_for_algorithm 数字 算法布局的物理量子比特数。
required_logical_qubit_error_rate 数字 所需的逻辑错误率。
required_logical_tstate_error_rate 数字 所需的逻辑 T 状态错误率。
num_ts_per_rotation 数字 每次旋转的 T 门数。
clifford_error_rate 数字 基于量子比特参数的 Clifford 错误率。

格式化的物理计数

字典 physical_counts_formatted 包含以下条目:

输出参数 数据类型 说明
runtime 字符串 以人类友好字符串的形式提供的总运行时。
rqops 字符串 每秒 (QOPS 的可靠量子操作数) 用指标后缀设置格式。
physical_qubits 字符串 带指标后缀的物理量子比特总数。
algorithmic_logical_qubits 字符串 带指标后缀的算法逻辑量子比特。
algorithmic_logical_depth 字符串 带指标后缀的算法逻辑深度。
logical_depth 字符串 可能调整了带有指标后缀的算法逻辑深度。
num_tstates 字符串 具有指标后缀的 T 状态数。
num_tfactories 字符串 具有指标后缀的 T 工厂副本数。
num_tfactory_runs 字符串 带指标后缀的 T 工厂运行数。
physical_qubits_for_algorithm 字符串 具有指标后缀的算法的物理量子比特数。
physical_qubits_for_tfactories 字符串 具有指标后缀的 T 工厂的物理量子比特数。
physical_qubits_for_tfactories_percentage 字符串 所有 T 工厂的物理量子比特数(以百分比表示)。
required_logical_qubit_error_rate 字符串 截断所需的逻辑量子比特错误率。
required_logical_tstate_error_rate 字符串 截断所需的 T 状态错误率。
physical_qubits_per_logical_qubit 字符串 每个带有指标后缀的逻辑量子比特的物理量子比特数。
logical_cycle_time 字符串 作为人类友好字符串的逻辑量子比特的逻辑周期时间。
clock_frequency 字符串 作为人类友好字符串的每秒逻辑周期数。
logical_error_rate 字符串 截断的逻辑错误率。
tfactory_physical_qubits 字符串 T 工厂中具有指标后缀的物理量子比特数 (或消息表明没有 T 工厂) 。
tfactory_runtime 字符串 单个 T 工厂的运行时作为人类友好字符串 (或消息,指示没有 T 工厂) 。
num_input_tstates 字符串 输入 T 表示 (或消息没有 T 工厂) 。
num_units_per_round 字符串 每个蒸馏轮的单位数,逗号分隔在字符串 (或消息中没有 T 工厂) 。
unit_name_per_round 字符串 每个蒸馏轮的单位名称,逗号分隔在字符串 (或消息中没有 T 工厂) 。
code_distance_per_round 字符串 每个提取轮的代码距离,逗号分隔在字符串 (或消息中没有 T 工厂) 。
physical_qubits_per_round 字符串 每个提炼圆的物理量子比特数,逗号分隔在字符串 (或消息中没有 T 工厂) 。
tfactory_runtime_per_round 字符串 每个蒸馏轮的运行时,显示为逗号分隔的人类友好字符串 (或消息,指示没有 T 工厂) 。
tstate_logical_error_rate 字符串 截断的逻辑 T 状态错误率 (或消息没有 T 工厂) 。
logical_counts_num_qubits 字符串 带指标后缀的预布局) (量子比特数。
logical_counts_t_count 字符串 带有指标后缀的预布局) (T 门数。
logical_counts_rotation_count 字符串 带有指标后缀的预布局) (旋转门数。
logical_counts_rotation_depth 字符串 旋转深度 (带有指标后缀的预布局) 。
logical_counts_ccz_count 字符串 带有指标后缀的预布局) (CCZ 门数。
logical_counts_ccix_count 字符串 带有指标后缀的预布局) (CCiX 门数。
logical_counts_measurement_count 字符串 带有指标后缀的预布局) (单量子比特度量的数目。
error_budget 字符串 已截断的总错误预算。
error_budget_logical 字符串 逻辑错误的截断错误预算。
error_budget_tstates 字符串 错误 T 状态蒸馏的截断错误预算。
error_budget_rotations 字符串 错误旋转合成的截断错误预算。
num_ts_per_rotation 字符串 每个旋转 (的格式化 T 数可能为 None) 。

逻辑量子比特

字典 logical_qubit 包含以下条目:

输出参数 数据类型 说明
code_distance 数字 逻辑量子比特的计算代码距离。
physical_qubits 数字 每个逻辑量子比特的物理量子比特数。
logical_cycle_time 数字 执行一个逻辑操作的时间。
logical_error_rate 数字 逻辑量子比特的逻辑错误率。

逻辑计数

字典 logical_counts 包含以下条目:

输出参数 数据类型 说明
num_qubits 数字 预布局量子比特数。
t_count 数字 预布局 T 门数。
rotation_count 数字 预布局旋转门数。
rotation_depth 数字 预布局旋转深度。
ccz_count 数字 CCZ 门的预布局数量。
ccix_count 数字 CCiX 门的预布局数量。
measurement_count 数字 单量子比特度量的预布局数量。

空间图

总体物理资源估计包括用于算法和 T 工厂副本的物理量子比特总数。 可以使用空间图检查这两者之间的分布。

空间图显示了用于算法和 T 工厂的物理量子比特的比例。 请注意,T 工厂副本数占 T 工厂物理量子比特数的一部分。

在 Jupyter Notebook 中,可以使用包中的SpaceChart小组件qsharp-widgets访问空间图。

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

显示算法量子比特与 T 工厂量子比特之间总物理量子比特分布的饼图。有一个表,其中包含每个 T 工厂的 T 工厂副本数和物理量子比特数的细分。

使用 Pareto 边界估计运行多个参数配置target时,可以为 的特定解决方案绘制空间图。 例如,以下代码演示如何绘制参数的第一个配置和第三个最短运行时的空间图。

SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime

时空图

在量子计算中,物理量子比特数与算法运行时之间存在权衡。 可以考虑分配尽可能多的物理量子比特,以减少算法的运行时。 但是,物理量子比特的数量受量子硬件中可用的物理量子比特数的限制。 了解运行时和系统规模之间的权衡是资源估算中更重要的方面之一。

估算算法的资源时,可以使用时空图可视化物理量子比特数与算法运行时之间的权衡。

注意

若要查看时空图中的多个最佳组合,需要将估计类型设置为 Pareto 边界估计。 如果使用“计算资源估算”选项在 Visual Studio CodeQ#中运行资源估算器,则默认启用 Pareto 边界估计。

利用时空关系图,可以查找满足量子硬件约束的 {number of qubits, runtime} 对的最佳组合。 此图显示了每个 {number of qubits, runtime} 对的物理量子比特数和算法的运行时。

若要在 Jupyter Notebook 中运行时空图,可以使用包中的EstimatesOverviewqsharp-widgets小组件。

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

显示资源估算器的量子比特时间关系图的屏幕截图。

提示

若要查看估算详细信息,可以将鼠标悬停在关系图中的每个点上。

在比较同一算法的 target 多个参数配置时,时空图特别有用。

显示空间-时间关系图和在资源估算器中运行参数的多个配置时的结果表的屏幕截图。

注意

如果在使用资源估算器时遇到任何问题,检查故障排除页,或联系 AzureQuantumInfo@microsoft.com

后续步骤