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

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

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

先决条件

输出参数

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

result['jobParams']

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

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

物理计数

字典 physicalCounts 包含以下条目:

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

物理计数细目

包含 breakdown 以下条目的 physicalCounts 字典:

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

已设置格式的物理计数

字典 physicalCountsFormatted 包含以下条目:

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

逻辑量子比特

字典 logicalQubit 包含以下条目:

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

逻辑计数

字典 logicalCounts 包含以下条目:

输出参数 数据类型 描述
numQubits 数字 量子比特的预布局数。
tCount 数字 T 门的预布局编号。
rotationCount 数字 旋转门的预布局数。
rotationDepth 数字 预布局旋转深度。
cczCount 数字 CCZ 门的预布局编号。
ccixCount 数字 CCiX 门的预布局编号。
measurementCount 数字 单量子比特度量的预布局编号。

提示

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

空间图

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

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

在 Jupyter Notebook 中,可以使用包中的SpaceChartqsharp-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 Code Q#中运行资源估算器,则默认情况下会启用 Pareto 边界估计。

利用空间图,可以找到满足量子硬件约束的 {number of qubits, runtime} 对的最佳组合。 此图显示了每个 {量子比特数, 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

后续步骤