你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解资源估算器的结果数据
了解如何解释和检索资源估算器的输出参数和关系图。 本文介绍如何以编程方式访问 Jupyter Notebook 中资源估算器的结果。 如果在命令面板中的 Visual Studio Code 中运行资源估算器,则以下命令不适用。
先决条件
已安装 Python 和 Pip 的 Python 环境。
最新版本的 Visual Studio Code或打开 VS Code 网页版。
安装了 Azure Quantum 开发工具包、 Python 和 Jupyter 扩展的 VS Code。
最新的 Azure Quantum
qsharp
和qsharp-widgets
包。python -m pip install --upgrade qsharp qsharp-widgets
输出参数
资源估算器的输出数据是在控制台中打印并可通过编程方式访问的报表。 例如,以下代码片段演示如何访问资源估算参数。
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 | 估算明细。 有关详细信息,请参阅 物理计数明细。 |
物理计数细分
的breakdown
physical_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)
使用 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 中运行时空图,可以使用包中的EstimatesOverview
qsharp-widgets
小组件。
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
提示
若要查看估算详细信息,可以将鼠标悬停在关系图中的每个点上。
在比较同一算法的 target 多个参数配置时,时空图特别有用。
注意
如果在使用资源估算器时遇到任何问题,检查故障排除页,或联系 AzureQuantumInfo@microsoft.com。
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈