Partilhar via


Compreender 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['job_params']

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.
job_params dicionário Os target parâmetros do trabalho que são passados como entrada.
physical_counts dicionário As estimativas de recursos físicos. Para obter mais informações, consulte Contagens físicas.
physical_counts_formatted 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.
logical_qubit 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.
logical_counts dicionário As estimativas de recursos lógicos pré-layout. Para obter mais informações, consulte Contagens lógicas.
report_data dicionário Dados de geração para relatório de estimativa de recursos.

Contagens físicas

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

Parâmetro de saída Tipo de dados Description
physical_qubits 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 physical_counts contém as seguintes entradas:

Parâmetro de saída Tipo de dados Description
algorithmic_logical_qubits Número Os qubits lógicos necessários para executar o algoritmo e não incluem recursos para fábricas T.
algorithmic_logical_depth Número Os ciclos lógicos necessários para executar o algoritmo e não incluem recursos para fábricas T.
logical_depth 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.
num_tstates Número O número de estados T consumidos pelo algoritmo.
clock_frequency Número O número de ciclos lógicos por segundo.
num_tfactories Número O número de fábricas T (assumindo o design uniforme da fábrica T).
num_tfactory_runs Número O número de freqüência com que todas as fábricas T paralelas devem funcionar.
physical_qubits_for_tfactories Número O número de qubits físicos para todas as fábricas T.
physical_qubits_for_algorithm Número O número de qubits físicos para layout de algoritmo.
required_logical_qubit_error_rate Número A taxa de erro lógica necessária.
required_logical_tstate_error_rate Número A taxa de erro de estado T lógico necessária.
num_ts_per_rotation Número O número de portas T por rotação.
clifford_error_rate Número A taxa de erro de Clifford com base nos parâmetros de qubit.

Contagens físicas formatadas

O physical_counts_formatted 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.
physical_qubits string Número total de qubits físicos com sufixo métrico.
algorithmic_logical_qubits string Qubits lógicos algorítmicos com sufixo métrico.
algorithmic_logical_depth string Profundidade lógica algorítmica com sufixo métrico.
logical_depth string Profundidade lógica algorítmica possivelmente ajustada com sufixo métrico.
num_tstates string Número de estados T com sufixo métrico.
num_tfactories string Número de cópias de fábrica T com sufixo métrico.
num_tfactory_runs string Número de execuções de fábrica T com sufixo métrico.
physical_qubits_for_algorithm string Número de qubits físicos para algoritmo com sufixo métrico.
physical_qubits_for_tfactories string Número de qubits físicos para fábricas T com sufixo métrico.
physical_qubits_for_tfactories_percentage string O número de qubits físicos para todas as fábricas T em porcentagem para o total.
required_logical_qubit_error_rate string Taxa de erro de qubit lógico necessária truncada.
required_logical_tstate_error_rate string Taxa de erro de estado T necessária truncada.
physical_qubits_per_logical_qubit string Número de qubits físicos por qubit lógico com sufixo métrico.
logical_cycle_time string O tempo de ciclo lógico de um qubit lógico como cadeia amigável humana.
clock_frequency string O número de ciclos lógicos por segundo como uma cadeia amigável para humanos.
logical_error_rate string Taxa de erro lógica truncada.
tfactory_physical_qubits 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).
tfactory_runtime 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).
num_input_tstates string O número de estados T de entrada (ou mensagem de que não há fábrica T).
num_units_per_round 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).
unit_name_per_round 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).
code_distance_per_round 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).
physical_qubits_per_round 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).
tfactory_runtime_per_round 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).
tstate_logical_error_rate string Taxa de erro de estado T lógico truncado (ou mensagem de que não há fábrica T).
logical_counts_num_qubits string Número de qubits (pré-layout) com sufixo métrico.
logical_counts_t_count string Número de portões T (pré-layout) com sufixo métrico.
logical_counts_rotation_count string Número de portas de rotação (pré-layout) com sufixo métrico.
logical_counts_rotation_depth string Profundidade de rotação (pré-layout) com sufixo métrico.
logical_counts_ccz_count string Número de portas CCZ (pré-layout) com sufixo métrico.
logical_counts_ccix_count string Número de portas CCiX (pré-layout) com sufixo métrico.
logical_counts_measurement_count string Número de medições de qubit único (pré-layout) com sufixo métrico.
error_budget string Orçamento de erro total truncado.
error_budget_logical string Orçamento de erro truncado para erro lógico.
error_budget_tstates string Orçamento de erro truncado para destilação de estado T defeituosa.
error_budget_rotations string Orçamento de erro truncado para síntese de rotação defeituosa.
num_ts_per_rotation string Número formatado de Ts por rotação (pode ser Nenhum).

Qubit lógico

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

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

Contagens lógicas

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

Parâmetro de saída Tipo de dados Description
num_qubits Número Pré-layout número de qubits.
t_count Número Número de pré-layout dos portões T.
rotation_count Número Número pré-layout de portões de rotação.
rotation_depth Número Profundidade de rotação pré-layout.
ccz_count Número Número de pré-layout dos portões CCZ.
ccix_count Número Número de pré-layout dos portões CCiX.
measurement_count Número Número pré-layout de medições de qubit único.

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