Partilhar via


Recuperar a saída 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 em um bloco de anotações Jupyter no Visual Studio Code (VS Code).

Pré-requisitos

  • Um ambiente Python com Python e Pip instalados.

  • A última versão do VS Code ou abra o VS Code na Web.

  • VS Code com as extensões Azure Quantum Development Kit, Python e Jupyter instaladas.

  • A mais recente qdk biblioteca Python com o jupyter extra.

    python -m pip install --upgrade "qdk[jupyter]"
    

Nota

Se você executar o Resource Estimator no VS Code a partir da paleta de comandos, os comandos a seguir não se aplicam. Para obter mais informações, consulte Diferentes maneiras de executar o Estimador de Recursos.

Parâmetros de saída

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

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 (de caracteres) O status do trabalho, é sempre Succeeded.
jobParams dicionário Os parâmetros do posto que são passados como dados de 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 antes do layout. Para 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émS 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 Discriminação das estimativas. Para obter mais informações, consulte Detalhes 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 Descrição
algorithmicLogicalQubits Número Os qubits lógicos necessários para executar o algoritmo não incluem os 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 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 a disposição do algoritmo.
requiredLogicalQubitErrorRate Número A taxa de erro lógica exigida.
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 cadeia (de caracteres) Tempo de execução total como cadeia de caracteres humana amigável.
rqops cadeia (de caracteres) O número de operações quânticas confiáveis por segundo (QOPS) formatadas com sufixo métrico.
physicalQubits cadeia (de caracteres) Número total de qubits físicos com sufixo métrico.
algorithmicLogicalQubits cadeia (de caracteres) Qubits lógicos algorítmicos com sufixo métrico.
algorithmicLogicalDepth cadeia (de caracteres) Profundidade lógica algorítmica com sufixo métrico.
logicalDepth cadeia (de caracteres) Profundidade lógica algorítmica possivelmente ajustada com sufixo métrico.
numTstates cadeia (de caracteres) Número de estados T com sufixo métrico.
numTfactories cadeia (de caracteres) Número de cópias de fábrica T com sufixo métrico.
numTfactoryRuns cadeia (de caracteres) Número de execuções da fábrica T com sufixo métrico.
physicalQubitsForAlgorithm cadeia (de caracteres) Número de qubits físicos para algoritmo com sufixo métrico.
physicalQubitsForTfactories cadeia (de caracteres) Número de qubits físicos para fábricas T com sufixo métrico.
physicalQubitsForTfactoriesPercentage cadeia (de caracteres) O número de qubits físicos para todas as fábricas T em porcentagem para o total.
requiredLogicalQubitErrorRate cadeia (de caracteres) Taxa de erro requerida de qubit lógico truncada.
requiredLogicalTstateErrorRate cadeia (de caracteres) Taxa de erro necessária para o estado T truncada.
physicalQubitsPerLogicalQubit cadeia (de caracteres) Número de qubits físicos por qubit lógico com sufixo métrico.
logicalCycleTime cadeia (de caracteres) O tempo de ciclo lógico de um qubit lógico como cadeia amigável humana.
clockFrequency cadeia (de caracteres) O número de ciclos lógicos por segundo como uma cadeia amigável para humanos.
logicalErrorRate cadeia (de caracteres) Taxa de erro lógico truncada.
tfactoryPhysicalQubits cadeia (de caracteres) 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 (de caracteres) 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 cadeia (de caracteres) O número de estados T de entrada (ou a mensagem indicando que não há uma fábrica T).
numUnitsPerRound cadeia (de caracteres) O número de unidades por ciclo de destilação, separado por vírgulas em uma cadeia de caracteres (ou mensagem indicando que não existe uma fábrica T).
unitNamePerRound cadeia (de caracteres) Os nomes das unidades de cada rodada de destilação, separados por vírgula em uma string (ou uma mensagem indicando que não há fábrica T).
codeDistancePerRound cadeia (de caracteres) As distâncias de código por rodada de destilação, separadas por vírgulas numa string (ou mensagem de que não há fábrica T).
physicalQubitsPerRound cadeia (de caracteres) O número de qubits físicos por ciclo de destilação, separados por vírgula numa sequência de caracteres (ou mensagem indicando que não há fábrica de T).
tfactoryRuntimePerRound cadeia (de caracteres) O tempo de execução de cada rodada de destilação, exibido como cadeias de caracteres amigáveis para o ser humano separadas por vírgulas (ou mensagem de que não há fábrica T).
tstateLogicalErrorRate cadeia (de caracteres) Taxa de erro do estado lógico T truncado (ou mensagem a indicar que não existe uma fábrica T).
logicalCountsNumQubits cadeia (de caracteres) Número de qubits (pré-layout) com sufixo métrico.
logicalCountsTCount cadeia (de caracteres) Número de portões T (pré-layout) com sufixo métrico.
logicalCountsRotationCount cadeia (de caracteres) Número de portas de rotação (pré-layout) com sufixo métrico.
logicalCountsRotationDepth cadeia (de caracteres) Profundidade de rotação (antes do layout) com sufixo métrico.
logicalCountsCczCount cadeia (de caracteres) Número de portas CCZ (antes do layout) com sufixo métrico.
logicalCountsCcixCount cadeia (de caracteres) Número de portas CCiX (pré-layout) com sufixo métrico.
logicalCountsMeasurementCount cadeia (de caracteres) Número de medições de qubit único (pré-layout) com sufixo métrico.
errorBudget cadeia (de caracteres) Orçamento de erro total truncado.
errorBudgetLogical cadeia (de caracteres) Orçamento de erro reduzido para erro lógico.
errorBudgetTstates cadeia (de caracteres) Orçamento de erro truncado para destilação defeituosa de estado T.
errorBudgetRotations cadeia (de caracteres) Orçamento de erro truncado para síntese de rotação defeituosa.
numTsPerRotation cadeia (de caracteres) 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 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 Descrição
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 portões CCZ antes do layout.
ccixCount Número Número de portas CCiX antes do layout.
measurementCount Número Número de medições de qubit único antes do layout.

Gorjeta

Se pretender utilizar um conjunto pré-calculado de contagens lógicas para um trabalho de estimativa de recursos, pode usar a operação Python LogicalCounts para passar as estimativas conhecidas para o Resource Estimator. Para mais informações, veja Como usar estimativas conhecidas com o Estimador de Recursos.

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 das fábricas T contribui para o número de qubits físicos das fábricas T.

No Jupyter Notebook, pode aceder ao diagrama de espaço usando o widget SpaceChart do pacote widgets.

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 setores mostrando a distribuição do total de qubits físicos entre qubits de algoritmo e qubits de T factory. Há uma tabela com a distribuição do número de cópias de T factory e o número de qubits físicos por T factory.

Ao executar várias configurações de parâmetros com a estimativa de fronteira de Pareto, pode-se plotar o diagrama de espaço para uma solução específica. 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 com o comando QDK: 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, utilize o widget EstimatesOverview do pacote widgets.

from qdk.widgets import EstimatesOverview

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

Captura de ecrã mostrando o diagrama de tempo dos qubits do Estimador de Recursos.

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 vários parâmetros para o mesmo algoritmo.

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

Nota

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

Próximos passos