你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解如何解释和检索资源估算器的输出参数和关系图。 本文介绍如何以编程方式访问 Visual Studio Code 中 Jupyter Notebook 中的资源估算器结果(VS 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
注意
如果在 VS Code 中从命令面板运行资源估算器,则以下命令不适用。 有关详细信息,请参阅 运行资源估算器的不同方式。
输出参数
资源估算器的输出是打印到控制台的报表,你可以以编程方式访问。 例如,以下代码片段显示所有资源估算器参数的值:
result['jobParams']
下表包含每个输出参数的数据类型和简短说明,你可以以编程方式访问该参数。 [这些参数是否详尽,它们是否仍然是输出参数集的一部分? 我看不到状态]
| 顶级输出参数 | 数据类型 | 说明 | 
|---|---|---|
| status | 字符串 | 作业的状态始终为 Succeeded。 | 
| jobParams | 字典 | 作为输入传递的作业的 target 参数。 | 
| physicalCounts | 字典 | 物理资源估计值。 有关详细信息,请参阅物理计数。 | 
| physicalCountsFormatted | 字典 | 格式化以在报表数据中显示的物理资源估算值。 有关详细信息,请参阅物理计数已格式化。 | 
| logicalQubit | 字典 | 逻辑量子比特属性。 有关详细信息,请参阅逻辑量子比特。 | 
| tfactory | 字典 | T 工厂属性。 | 
| logicalCounts | 字典 | 预布局逻辑资源估计值。 有关详细信息,请参阅逻辑计数。 | 
| reportData | 字典 | 资源估算报表的生成数据。 | 
物理计数
字典 physicalCounts 包含以下条目:
| 输出参数 | 数据类型 | 说明 | 
|---|---|---|
| physicalQubits | number | 物理量子比特总数。 | 
| runtime | number | 以纳秒为单位执行算法的总运行时。 | 
| rqops | number | 每秒可靠的量子操作数(QOPS)。 | 
| breakdown | 字典 | 估计明细。 有关详细信息,请参阅物理计数明细。 | 
物理计数明细
              breakdown 的 physicalCounts 字典包含以下条目:
| 输出参数 | 数据类型 | 说明 | 
|---|---|---|
| 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 中,可以使用 SpaceChart 包中的 qsharp-widgets 小组件访问空间图。
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 前沿估计。 如果使用 QDK: Calculate Resource Estimates 命令在 Visual Studio Code 中运行资源估算器,则默认情况下会启用 Pareto 边界估计。
利用时空图,使您能够找到满足量子硬件约束的「量子比特数, 运行时间」对的最佳组合。 此图显示了每个 {量子比特数,运行时} 对的物理量子比特数和算法的运行时间。
若要在 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。
后续步骤
- 运行首次项目估算
- 根据计算机特征自定义资源估算
- 运行资源估算器的不同方式
- 使用资源估算器处理大型程序
- 教程:估计量子化学问题的资源