你当前正在访问 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
qsharp
和qsharp-widgets
包。python -m pip install --upgrade qsharp qsharp-widgets
输出参数
资源估算器的输出数据是在控制台中打印并可通过编程方式访问的报表。 例如,以下代码片段演示如何访问资源估算参数。
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 中,可以使用包中的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 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。