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

检索资源估算器的输出

了解如何解释和检索资源估算器的输出参数和关系图。 本文介绍如何以编程方式访问 Visual Studio Code 中 Jupyter Notebook 中的资源估算器的结果。

先决条件

注意

如果在 Visual Studio Code 中从命令面板运行资源估算器,则以下命令不适用。 有关详细信息,请参阅 运行资源估算器的不同方式

输出参数

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

result['jobParams']

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

顶级输出参数 数据类型 说明
status 字符串 作业的状态始终为 Succeeded
jobParams 字典 作为输入传递的作业的 target 参数。
physicalCounts 字典 物理资源估计值。 有关详细信息,请参阅物理计数
physicalCountsFormatted 字典 格式化以在报表数据中显示的物理资源估算值。 有关详细信息,请参阅物理计数已格式化
logicalQubit 字典 逻辑量子比特属性。 有关详细信息,请参阅逻辑量子比特
tfactory 词典 T 工厂属性。
logicalCounts 字典 预布局逻辑资源估计值。 有关详细信息,请参阅逻辑计数
reportData 词典 资源估算报表的生成数据。

物理计数

physicalCounts 字典包含以下条目:

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

物理计数明细

physicalCountsbreakdown 字典包含以下条目:

输出参数 数据类型 说明
algorithmicLogicalQubits number 运行算法所需的逻辑量子比特,不包括 T 工厂的资源。
algorithmicLogicalDepth number 运行算法所需的逻辑周期,不包括 T 工厂的资源。
logicalDepth number 每当 T 工厂执行时间快于算法执行时计算的可能调整的循环数。
numTstates number 算法使用的 T 状态数。
clockFrequency number 每秒逻辑周期数。
numTfactories number T 工厂的数量(假设统一的 T 工厂设计)。
numTfactoryRuns number 所有并行 T 工厂应运行频率的数量。
physicalQubitsForTfactories number 所有 T 工厂的物理量子比特数。
physicalQubitsForAlgorithm number 算法布局的物理量子比特数。
requiredLogicalQubitErrorRate number 所需的逻辑错误率。
requiredLogicalTstateErrorRate number 所需的逻辑 T 状态错误率。
numTsPerRotation number 每次轮换的 T 门数量。
cliffordErrorRate number 基于量子比特参数的 Clifford 错误率。

物理计数已格式化

字典physicalCountsFormatted包含以下条目:

输出参数 数据类型 说明
runtime 字符串 以人性化字符串表示的总运行时间。
rqops 字符串 用指标后缀格式化的每秒可靠量子运算数 (QOPS)。
physicalQubits 字符串 具有指标后缀的物理量子比特总数。
algorithmicLogicalQubits 字符串 带有指标后缀的算法逻辑量子比特。
algorithmicLogicalDepth 字符串 具有指标后缀的算法逻辑深度。
logicalDepth 字符串 可能调整了带有指标后缀的算法逻辑深度。
numTstates 字符串 带指标后缀的 T 状态数。
numTfactories 字符串 带有指标后缀的 T 工厂副本数量。
numTfactoryRuns 字符串 带有指标后缀的 T 工厂运行次数。
physicalQubitsForAlgorithm 字符串 算法中带有指标后缀的物理量子比特数。
physicalQubitsForTfactories 字符串 带指标后缀的 T 工厂的物理量子比特数。
physicalQubitsForTfactoriesPercentage 字符串 所有 T 工厂的物理量子比特数占总数的百分比。
requiredLogicalQubitErrorRate 字符串 截断了所需的逻辑量子比特错误率。
requiredLogicalTstateErrorRate 字符串 截断了所需的 T 状态错误率。
physicalQubitsPerLogicalQubit 字符串 每个带有指标后缀的逻辑量子比特的物理量子比特数。
logicalCycleTime 字符串 以易于人类理解的字符串形式表示的逻辑量子比特的逻辑周期时间。
clockFrequency 字符串 以人性化字符串表示的每秒逻辑周期数。
logicalErrorRate 字符串 截断的逻辑错误率。
tfactoryPhysicalQubits 字符串 T 工厂中带有指标后缀的物理量子比特数(或表示没有 T 工厂的消息)。
tfactoryRuntime 字符串 单个 T 工厂的运行时作为人性化字符串(或表示没有 T 工厂的消息)。
numInputTstates 字符串 输入 T 状态数(或表示没有 T 工厂的消息)。
numUnitsPerRound 字符串 每轮蒸馏的单位数,以逗号分隔成字符串(或说明没有 T 工厂)。
unitNamePerRound 字符串 每个蒸馏回合的单位名称,以逗号分隔为字符串(或表示没有 T 工厂的消息)。
codeDistancePerRound 字符串 每个蒸馏回合的代码距离,以逗号分隔为字符串(或表示没有 T 工厂的消息)。
physicalQubitsPerRound 字符串 每个蒸馏回合的物理量子比特数,以逗号分隔为字符串(或表示没有 T 工厂的消息)。
tfactoryRuntimePerRound 字符串 每个蒸馏轮次的运行时间,显示为逗号分隔的人类友好字符串(或提示信息,没有 T 工厂)。
tstateLogicalErrorRate 字符串 截断的逻辑 T 状态错误率(或表示没有 T 工厂的消息)。
logicalCountsNumQubits 字符串 带指标后缀的量子比特数(预布局)。
logicalCountsTCount 字符串 带指标后缀的 T 门数量(预布局)。
logicalCountsRotationCount 字符串 带指标后缀的轮换门数量(预布局)。
logicalCountsRotationDepth 字符串 带指标后缀的轮换深度(预布局)。
logicalCountsCczCount 字符串 带指标后缀的 CCZ 门数量(预布局)。
logicalCountsCcixCount 字符串 带指标后缀的 CCiX 门数量(预布局)。
logicalCountsMeasurementCount 字符串 带指标后缀的单量子比特度量数(预布局)。
errorBudget 字符串 截短了总错误预算。
errorBudgetLogical 字符串 截断了逻辑错误的错误预算。
errorBudgetTstates 字符串 截断了 T 状态蒸馏错误的错误预算。
errorBudgetRotations 字符串 截断了错误轮换合成的错误预算。
numTsPerRotation 字符串 每次轮换的格式化 T 数(可能是“无”)。

逻辑量子比特

logicalQubit 字典包含以下条目:

输出参数 数据类型 说明
codeDistance number 逻辑量子比特的计算代码距离。
physicalQubits number 每个逻辑量子比特的物理量子比特数。
logicalCycleTime number 执行一个逻辑操作的时间。
logicalErrorRate number 逻辑量子比特的逻辑错误率。

逻辑计数

字典 logicalCounts 包含以下条目:

输出参数 数据类型 说明
numQubits number 量子比特的预布局数。
tCount number T 门的预布局数。
rotationCount number 轮换门的预布局数。
rotationDepth number 预布局轮换深度。
cczCount number CCZ 门的预布局数。
ccixCount number CCiX 门的预布局数。
measurementCount number 单量子比特度量的预布局数。

提示

如果您希望对资源估算作业使用预先计算的逻辑计数集,可以使用LogicalCounts Python 操作将已知的估计值传递给资源估算器。 有关详细信息,请参阅如何在资源估算器中使用已知估计值

空间图

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

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

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

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

显示算法量子比特与 T 工厂量子比特之间总物理量子比特分布的饼图。表格中详细列出每个 T 工厂的 T 工厂副本数量和每个 T 工厂的物理量子比特数量。

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

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

时空关系图

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

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

注意

若要在时空图中查看多个最佳组合,需要将估计类型设置为 Pareto 前沿估计。 如果在 Visual Studio Code 中使用“计算资源估算”选项运行资源估算器,则默认情况下会启用帕累托前沿估计。

利用时空图,使您能够找到满足量子硬件约束的「量子比特数, 运行时间」对的最佳组合。 此图显示了每个 {量子比特数,运行时} 对的物理量子比特数和算法的运行时间。

若要在 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多个参数配置时,时空图特别有用。

Screenshot showing the space-time diagram and the table of results when running multiple configurations of parameter in the Resource Estimator.在资源估算器中运行多个参数配置时空间-时间图和结果表格的屏幕截图。

注意

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

后续步骤