Partilhar via


Noções básicas sobre os dados de resultado do Estimador de Recursos

Saiba como interpretar e recuperar os parâmetros de saída e diagramas do Resource Estimator. Este artigo explica como acessar programaticamente os resultados do Resource Estimator no Jupyter Notebooks. Se você executar o Resource Estimator no Visual Studio Code a partir da paleta de comandos, os comandos a seguir não se aplicam.

Pré-requisitos

Parâmetros de saída

Os dados de saída do Resource Estimator são um relatório que é impresso no console e pode ser acessado programaticamente. Por exemplo, o trecho de código a seguir mostra como acessar os parâmetros de estimativa de recursos.

result['jobParams']

Os seguintes dados de saída constituem as possíveis entradas que podem ser acessadas programaticamente.

Parâmetro de saída de nível superior Tipo de dados Description
status string O status do trabalho, é sempre Succeeded.
jobParams dicionário Os target parâmetros do trabalho que são passados como entrada.
physicalCounts dicionário As estimativas de recursos físicos. Para obter mais informações, consulte Contagens físicas.
physicalCountsFormatted dicionário As estimativas de recursos físicos formatadas para exibição nos dados do relatório. Para obter mais informações, consulte Contagens físicas formatadas.
logicalQubit dicionário As propriedades lógicas do qubit. Para obter mais informações, consulte Qubit lógico.
tfactory dicionário As propriedades da fábrica T.
logicalCounts dicionário As estimativas de recursos lógicos pré-layout. Para obter mais informações, consulte Contagens lógicas.
reportData dicionário Dados de geração para relatório de estimativa de recursos.

Contagens físicas

O physicalCounts dicionário contém as seguintes entradas:

Parâmetro de saída Tipo de dados Description
physicalQubits Número O número total de qubits físicos.
runtime Número O tempo de execução total para executar o algoritmo em nanossegundos.
rqops Número O número de operações quânticas confiáveis por segundo (QOPS).
breakdown dicionário Discriminação das estimativas. Para obter mais informações, consulte Detalhamento de contagens físicas.

Desagregação das contagens físicas

O breakdown dicionário de physicalCounts contém as seguintes entradas:

Parâmetro de saída Tipo de dados Description
algorithmicLogicalQubits Número Os qubits lógicos necessários para executar o algoritmo e não incluem recursos para fábricas T.
algorithmicLogicalDepth Número Os ciclos lógicos necessários para executar o algoritmo e não incluem recursos para fábricas T.
logicalDepth Número O número possivelmente ajustado de ciclos que é calculado sempre que o tempo de execução da fábrica T é mais rápido do que a execução do algoritmo.
numTstates Número O número de estados T consumidos pelo algoritmo.
clockFrequency Número O número de ciclos lógicos por segundo.
numTfactories Número O número de fábricas T (assumindo o design uniforme da fábrica T).
numTfactoryRuns Número O número de freqüência com que todas as fábricas T paralelas devem funcionar.
physicalQubitsForTfactories Número O número de qubits físicos para todas as fábricas T.
physicalQubitsForAlgorithm Número O número de qubits físicos para layout de algoritmo.
requiredLogicalQubitErrorRate Número A taxa de erro lógica necessária.
requiredLogicalTstateErrorRate Número A taxa de erro de estado T lógico necessária.
numTsPerRotation Número O número de portas T por rotação.
cliffordErrorRate Número A taxa de erro de Clifford com base nos parâmetros de qubit.

Contagens físicas formatadas

O physicalCountsFormatted dicionário contém as seguintes entradas:

Parâmetro de saída Tipo de dados Description
runtime string Tempo de execução total como cadeia de caracteres humana amigável.
rqops string O número de operações quânticas confiáveis por segundo (QOPS) formatadas com sufixo métrico.
physicalQubits string Número total de qubits físicos com sufixo métrico.
algorithmicLogicalQubits string Qubits lógicos algorítmicos com sufixo métrico.
algorithmicLogicalDepth string Profundidade lógica algorítmica com sufixo métrico.
logicalDepth string Profundidade lógica algorítmica possivelmente ajustada com sufixo métrico.
numTstates string Número de estados T com sufixo métrico.
numTfactories string Número de cópias de fábrica T com sufixo métrico.
numTfactoryRuns string Número de execuções de fábrica T com sufixo métrico.
physicalQubitsForAlgorithm string Número de qubits físicos para algoritmo com sufixo métrico.
physicalQubitsForTfactories string Número de qubits físicos para fábricas T com sufixo métrico.
physicalQubitsForTfactoriesPercentage string O número de qubits físicos para todas as fábricas T em porcentagem para o total.
requiredLogicalQubitErrorRate string Taxa de erro de qubit lógico necessária truncada.
requiredLogicalTstateErrorRate string Taxa de erro de estado T necessária truncada.
physicalQubitsPerLogicalQubit string Número de qubits físicos por qubit lógico com sufixo métrico.
logicalCycleTime string O tempo de ciclo lógico de um qubit lógico como cadeia amigável humana.
clockFrequency string O número de ciclos lógicos por segundo como uma cadeia amigável para humanos.
logicalErrorRate string Taxa de erro lógica truncada.
tfactoryPhysicalQubits string Número de qubits físicos na fábrica T com sufixo métrico (ou mensagem de que não há fábrica T).
tfactoryRuntime string O tempo de execução de uma única fábrica T como cadeia de caracteres humana amigável (ou mensagem de que não há fábrica T).
numInputTstates string O número de estados T de entrada (ou mensagem de que não há fábrica T).
numUnitsPerRound string O número de unidades por rodada de destilação, vírgula separada em uma cadeia (ou mensagem de que não há fábrica T).
unitNamePerRound string Os nomes das unidades de cada rodada de destilação, vírgula separada em uma cadeia de caracteres (ou mensagem de que não há fábrica T).
codeDistancePerRound string As distâncias de código por rodada de destilação, vírgula separada em uma cadeia de caracteres (ou mensagem de que não há fábrica T).
physicalQubitsPerRound string O número de qubits físicos por rodada de destilação, vírgula separada em uma cadeia de caracteres (ou mensagem de que não há fábrica T).
tfactoryRuntimePerRound string O tempo de execução de cada rodada de destilação, exibido como vírgula separada cordas amigas do ser humano (ou mensagem de que não há fábrica T).
tstateLogicalErrorRate string Taxa de erro de estado T lógico truncado (ou mensagem de que não há fábrica T).
logicalCountsNumQubits string Número de qubits (pré-layout) com sufixo métrico.
logicalCountsTCount string Número de portões T (pré-layout) com sufixo métrico.
logicalCountsRotationCount string Número de portas de rotação (pré-layout) com sufixo métrico.
logicalCountsRotationDepth string Profundidade de rotação (pré-layout) com sufixo métrico.
logicalCountsCczCount string Número de portas CCZ (pré-layout) com sufixo métrico.
logicalCountsCcixCount string Número de portas CCiX (pré-layout) com sufixo métrico.
logicalCountsMeasurementCount string Número de medições de qubit único (pré-layout) com sufixo métrico.
errorBudget string Orçamento de erro total truncado.
errorBudgetLogical string Orçamento de erro truncado para erro lógico.
errorBudgetTstates string Orçamento de erro truncado para destilação de estado T defeituosa.
errorBudgetRotations string Orçamento de erro truncado para síntese de rotação defeituosa.
numTsPerRotation string Número formatado de Ts por rotação (pode ser Nenhum).

Qubit lógico

O logicalQubit dicionário contém as seguintes entradas:

Parâmetro de saída Tipo de dados Description
codeDistance Número A distância de código computada para o qubit lógico.
physicalQubits Número O número de qubits físicos para cada qubit lógico.
logicalCycleTime Número O tempo para executar uma operação lógica.
logicalErrorRate Número A taxa de erro lógico do qubit lógico.

Contagens lógicas

O logicalCounts dicionário contém as seguintes entradas:

Parâmetro de saída Tipo de dados Description
numQubits Número Pré-layout número de qubits.
tCount Número Número de pré-layout dos portões T.
rotationCount Número Número pré-layout de portões de rotação.
rotationDepth Número Profundidade de rotação pré-layout.
cczCount Número Número de pré-layout dos portões CCZ.
ccixCount Número Número de pré-layout dos portões CCiX.
measurementCount Número Número pré-layout de medições de qubit único.

Gorjeta

Se você quiser usar um conjunto pré-calculado de contagens lógicas para um trabalho de estimativa de recursos, poderá usar a LogicalCounts operação Python para passar as estimativas conhecidas para o Resource Estimator. Para obter mais informações, consulte Como usar estimativas conhecidas com o Resource Estimator.

Diagrama de espaços

A estimativa geral de recursos físicos consiste no número total de qubits físicos usados para o algoritmo e cópias de fábrica T. Você pode inspecionar a distribuição entre esses dois usando o diagrama de espaço.

O diagrama de espaço mostra a proporção dos qubits físicos usados para o algoritmo e as fábricas T. Observe que o número de cópias de fábrica T contribui para o número de qubits físicos para fábricas T.

No Jupyter Notebook, você pode acessar o diagrama de espaço usando o SpaceChart widget do qsharp-widgets pacote.

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

Diagrama de pizza mostrando a distribuição do total de qubits físicos entre qubits de algoritmo e qubits de fábrica T. Há uma tabela com o detalhamento do número de cópias de fábrica T e número de qubits físicos por fábrica T.

Ao executar várias configurações de parâmetros com a estimativa de fronteira de Pareto, você pode plotar o diagrama de target espaço para uma solução específica do. Por exemplo, o código a seguir mostra como plotar o diagrama de espaço para a primeira configuração de parâmetros e o terceiro tempo de execução mais curto.

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

Diagrama espaço-tempo

Na computação quântica, há uma compensação entre o número de qubits físicos e o tempo de execução do algoritmo. Você pode considerar a alocação do maior número possível de qubits físicos para reduzir o tempo de execução do algoritmo. No entanto, o número de qubits físicos é limitado pelo número de qubits físicos disponíveis no hardware quântico. Compreender a compensação entre tempo de execução e escala do sistema é um dos aspetos mais importantes da estimativa de recursos.

Ao estimar os recursos de um algoritmo, você pode usar o diagrama espaço-tempo para visualizar as compensações entre o número de qubits físicos e o tempo de execução do algoritmo.

Nota

Para ver várias combinações ideais no diagrama espaço-temporal, você precisa definir o tipo de estimativa como estimativa de fronteira de Pareto. Se você executar o Estimador de Recursos no Visual Studio Code usando a Q#opção : Calcular Estimativas de Recursos , a estimativa de fronteira de Pareto será habilitada por padrão.

O diagrama espaço-tempo permite que você encontre a combinação ideal de pares {número de qubits, tempo de execução} que satisfazem as restrições do hardware quântico. O diagrama mostra o número de qubits físicos e o tempo de execução do algoritmo para cada par {número de qubits, tempo de execução}.

Para executar o diagrama espaço-tempo no Jupyter Notebook, você pode usar o EstimatesOverview widget do qsharp-widgets pacote.

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

Captura de tela mostrando o diagrama de qubit-time do Resource Estimator.

Gorjeta

Para ver os detalhes da estimativa, você pode passar o mouse sobre cada ponto do diagrama.

O diagrama espaço-tempo é especialmente útil ao comparar várias configurações de target parâmetros para o mesmo algoritmo.

Captura de tela mostrando o diagrama espaço-tempo e a tabela de resultados ao executar várias configurações de parâmetro no Estimador de Recursos.

Nota

Se tiver algum problema ao trabalhar com o Estimador de Recursos, consulte a página Resolução de problemas ou contacte AzureQuantumInfo@microsoft.com.

Próximos passos