Compartilhar via


Recuperar a saída do Avaliador de Recursos

Saiba como interpretar e recuperar os parâmetros de saída e diagramas do Avaliador de Recursos. Este artigo explica como acessar programaticamente os resultados do Avaliador de Recursos em um jupyter notebook no Visual Studio Code (VS Code).

Pré-requisitos

Observação

Se você executar o Avaliador de Recursos no VS Code na paleta de comandos, os comandos a seguir não se aplicarão. Para obter mais informações, consulte Diferentes maneiras de executar o Avaliador de Recursos.

Parâmetros de saída

A saída do Avaliador de Recursos é um relatório impresso no console e que você pode acessar programaticamente. Por exemplo, o snippet de código a seguir exibe os valores de todos os parâmetros do Avaliador de Recursos:

result['jobParams']

A tabela a seguir contém o tipo de dados e uma breve descrição para cada parâmetro de saída.

Parâmetro de saída de nível superior Tipo de dados Descrição
status cadeia 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 de pré-layout. Para obter mais informações, consulte Contagens lógicas.
reportData dicionário Geração de dados 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 Descrição
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 Repartição das estimativas. Para obter mais informações, consulte Detalhamento de contagens físicas.

Detalhamento das contagens físicas

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

Parâmetro de saída Tipo de dados Descrição
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 (pressupõe design de fábrica T uniforme).
numTfactoryRuns número O número de quantas vezes todas as fábricas T paralelas devem ser executadas.
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 o layout do algoritmo.
requiredLogicalQubitErrorRate número A taxa de erro lógico 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 physicalCounts dicionário contém as seguintes entradas:

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

Qubit lógico

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

Parâmetro de saída Tipo de dados Descrição
codeDistance número A distância do código calculado 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 physicalCounts dicionário contém as seguintes entradas:

Parâmetro de saída Tipo de dados Descrição
numQubits número Número de pré-layout de qubits.
tCount número Número de pré-layout de portas T.
rotationCount número Número de 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 de portas CCZ.
ccixCount número Número de pré-layout de portas CCiX.
measurementCount número Número de pré-layout de medições de qubit único.

Dica

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 Avaliador de Recursos. Para obter mais informações, consulte Como usar estimativas conhecidas com o Avaliador de Recursos.

Diagrama de espaço

A estimativa geral de recursos físicos consiste no número total de qubits físicos usados para o algoritmo e as 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.

from qdk.widgets import SpaceChart

SpaceChart(result)

Pie diagram showing the distribution of total physical qubits between algorithm qubits and T factory qubits. There's a table with the breakdown of number of T factory copies and number of physical qubits per T factory.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 o 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 target Pareto, você pode plotar o diagrama de 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 de 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 aspectos mais importantes da estimativa de recursos.

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

Observação

Para ver várias combinações ideais no diagrama de espaço-tempo, você precisa definir o tipo de estimativa para estimativa de fronteira de Pareto. Se você executar o Avaliador de Recursos no Visual Studio Code com o comando QDK: Calcular Estimativas de Recursos , a estimativa de fronteira do Pareto será habilitada por padrão.

O diagrama de espaço-tempo permite que você encontre a combinação ideal de pares {número de qubits, tempo de execução} que satisfaçam 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 de espaço-tempo no Jupyter Notebook, use o widget do pacote EstimatesOverviewwidgets.

from qdk.widgets import EstimatesOverview

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

Screenshot showing the qubit-time diagram of the Resource Estimator.Captura de tela mostrando o diagrama de tempo de qubit do Avaliador de Recursos.

Dica

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

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

Screenshot showing the space-time diagram and the table of results when running multiple configurations of parameter in the Resource Estimator.Captura de tela mostrando o diagrama de espaço-tempo e a tabela de resultados ao executar várias configurações de parâmetro no Avaliador de Recursos.

Observação

Se você tiver problemas ao trabalhar com o Avaliador de Recursos, consulte a página solução de problemas ou entre em contato AzureQuantumInfo@microsoft.com.

Próximas etapas