Compartilhar via


Noções básicas sobre os dados de resultado 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 Jupyter Notebooks. Se você executar o Avaliador de Recursos no Visual Studio Code na paleta de comandos, os comandos a seguir não se aplicarão.

Pré-requisitos

Parâmetros de saída

Os dados de saída do Avaliador de Recursos são um relatório impresso no console e podem ser acessados programaticamente. Por exemplo, o snippet de código a seguir mostra como acessar os parâmetros de estimativa de recursos.

result['jobParams']

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

Parâmetro de saída de nível superior Tipo de dados Descrição
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 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 (assumindo um projeto uniforme de fábrica T).
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 physicalCountsFormatted dicionário contém as seguintes entradas:

Parâmetro de saída Tipo de dados Descrição
runtime string Tempo de execução total como string amigável para humanos.
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 do 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 de caracteres amigável para humanos.
clockFrequency string O número de ciclos lógicos por segundo como uma cadeia de caracteres amigável para humanos.
logicalErrorRate string Taxa de erro lógico 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 amigável para humanos (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, separadas por vírgula em uma string (ou mensagem de que não há fábrica T).
unitNamePerRound string 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 string 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 string 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 string 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 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 portas 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 defeituosa do estado T.
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 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 logicalCounts 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.

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 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 usando a Q#opção : Calcular Estimativas de Recursos , a estimativa de fronteira de 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, 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 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.

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 algum problema ao trabalhar com o Avaliador de recursos, verifique a página Solução de problemas ou entre em contato com AzureQuantumInfo@microsoft.com.

Próximas etapas