Share via


Compreender os dados resultantes do Avaliador de Recursos

Saiba como interpretar e obter os parâmetros de saída e diagramas do Avaliador de Recursos. Este artigo explica como aceder programaticamente aos resultados do Avaliador de Recursos no Jupyter Notebooks. Se executar o Avaliador de Recursos no Visual Studio Code a partir da paleta de comandos, os seguintes comandos não se aplicam.

Pré-requisitos

Parâmetros de saída

Os dados de saída do Avaliador de Recursos são um relatório que é impresso na consola do e que pode ser acedido através de programação. Por exemplo, o fragmento de código seguinte mostra como aceder aos parâmetros de estimativa de recursos.

result['job_params']

Os seguintes dados de saída constituem as entradas possíveis que podem ser acedidos através de programação.

Parâmetro de saída de nível superior Tipo de dados Description
status cadeia (de carateres) O estado da tarefa é sempre Succeeded.
job_params dicionário Os target parâmetros da tarefa que são transmitidos como entrada.
physical_counts dicionário As estimativas dos recursos físicos. Para obter mais informações, veja Contagens físicas.
physical_counts_formatted dicionário As estimativas de recursos físicos formatadas para apresentação nos dados do relatório. Para obter mais informações, veja Contagens físicas formatadas.
logical_qubit dicionário As propriedades do qubit lógico. Para obter mais informações, veja Qubit lógico.
tfactory dicionário As propriedades da fábrica T.
logical_counts dicionário As estimativas de recursos lógicos pré-esquema. Para obter mais informações, veja Contagens lógicas.
report_data dicionário Dados de geração do 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 Descrição
physical_qubits número O número total de qubits físicos.
runtime número O runtime total para executar o algoritmo em nanossegundos.
rqops número O número de operações quânticas fiáveis por segundo (QOPS).
breakdown dicionário Discriminação das estimativas. Para obter mais informações, veja Divisão das contagens físicas.

Discriminaçã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 Descrição
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 um design de fábrica T uniforme).
num_tfactory_runs número O número de vezes que todas as fábricas T paralelas devem ser executadas.
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 o esquema 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ógica 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 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 cadeia (de carateres) Runtime total como cadeia amigável para humanos.
rqops string O número de operações quânticas fiáveis por segundo (QOPS) formatado com sufixo de métrica.
physical_qubits string Número total de qubits físicos com sufixo de métrica.
algorithmic_logical_qubits string Qubits lógicos algorítmicos com sufixo de métrica.
algorithmic_logical_depth string Profundidade lógica algorítmica com sufixo de métrica.
logical_depth string Possivelmente, a profundidade lógica algorítmica ajustada com sufixo de métricas.
num_tstates string Número de estados T com sufixo de métricas.
num_tfactories string Número de cópias de fábrica T com sufixo de métricas.
num_tfactory_runs string Número de execuções de fábrica T com sufixo de métricas.
physical_qubits_for_algorithm string Número de qubits físicos para algoritmo com sufixo de métrica.
physical_qubits_for_tfactories string Número de qubits físicos para fábricas T com sufixo de métricas.
physical_qubits_for_tfactories_percentage string O número de qubits físicos para todas as fábricas T em percentagem para o total.
required_logical_qubit_error_rate string Taxa de erro de qubit lógico truncada necessária.
required_logical_tstate_error_rate string Taxa de erro de estado T truncada necessária.
physical_qubits_per_logical_qubit string Número de qubits físicos por qubit lógico com sufixo de métrica.
logical_cycle_time string O tempo do ciclo lógico de um qubit lógico como cadeia amiga do homem.
clock_frequency string O número de ciclos lógicos por segundo como uma cadeia amiga do homem.
logical_error_rate string Taxa de erros lógicos truncadas.
tfactory_physical_qubits string Número de qubits físicos na fábrica T com sufixo de métricas (ou mensagem de que não existe nenhuma fábrica T).
tfactory_runtime string O runtime de uma única fábrica T como cadeia de carateres amigas do homem (ou mensagem de que não existe nenhuma fábrica T).
num_input_tstates string O número de estados T de entrada (ou mensagem de que não existe nenhuma fábrica T).
num_units_per_round string O número de unidades por ronda de destilação, vírgulas separadas numa cadeia (ou mensagem de que não existe nenhuma fábrica T).
unit_name_per_round string Os nomes de unidades de cada ronda de destilação, vírgulas separadas numa cadeia (ou mensagem de que não existe nenhuma fábrica T).
code_distance_per_round string As distâncias de código por rodada de destilação, vírgulas separadas numa cadeia (ou mensagem de que não existe nenhuma fábrica T).
physical_qubits_per_round string O número de qubits físicos por ronda de destilação, vírgulas separadas numa cadeia (ou mensagem de que não existe nenhuma fábrica T).
tfactory_runtime_per_round string O runtime de cada rodada de destilação, apresentado como cadeias amigáveis humanas separadas por vírgulas (ou mensagem de que não existe nenhuma fábrica T).
tstate_logical_error_rate string Taxa de erro de estado T truncado (ou mensagem de que não existe nenhuma fábrica T).
logical_counts_num_qubits string Número de qubits (pré-esquema) com sufixo de métrica.
logical_counts_t_count string Número de portas T (pré-esquema) com sufixo de métrica.
logical_counts_rotation_count string Número de portas de rotação (pré-esquema) com sufixo de métricas.
logical_counts_rotation_depth string Profundidade da rotação (pré-esquema) com sufixo de métrica.
logical_counts_ccz_count string Número de portas CCZ (pré-esquema) com sufixo de métrica.
logical_counts_ccix_count string Número de portas CCiX (pré-esquema) com sufixo de métrica.
logical_counts_measurement_count string Número de medições de qubit único (pré-esquema) com sufixo de métrica.
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 com falhas.
error_budget_rotations string Orçamento de erro truncado para sintetização de rotação com falhas.
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 Descrição
code_distance número A distância do código calculado 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ógica 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 Descrição
num_qubits número Número de qubits pré-esquema.
t_count número Número de pré-esquema de portas T.
rotation_count número Número de pré-esquema de portas de rotação.
rotation_depth número Profundidade de rotação pré-esquema.
ccz_count número Número de pré-esquema de portas CCZ.
ccix_count número Número de pré-esquema de portas CCiX.
measurement_count número Número de pré-esquema de medições de qubit único.

Diagrama de espaço

A estimativa geral dos recursos físicos consiste no número total de qubits físicos utilizados tanto para o algoritmo como para as cópias de fábrica T. Pode inspecionar a distribuição entre estes dois através do diagrama de espaço.

O diagrama de espaço mostra a proporção dos qubits físicos utilizados para o algoritmo e as fábricas T. Tenha em atenção 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, pode aceder ao diagrama de espaço com o SpaceChart widget do qsharp-widgets pacote.

import qsharp

from qsharp_widgets import SpaceChart
SpaceChart(result)

Diagrama circular a mostrar a distribuição do total de qubits físicos entre qubits de algoritmos e qubits de fábrica de T. Existe uma tabela com a discriminação do número de cópias de fábrica de T e o número de qubits físicos por fábrica de T.

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

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

Diagrama de espaço/hora

Na computação quântica, existe uma desvantagem entre o número de qubits físicos e o runtime do algoritmo. Pode considerar a alocação do maior número possível de qubits físicos para reduzir o runtime 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 desvantagem entre o runtime e o dimensionamento do sistema é um dos aspetos mais importantes da estimativa de recursos.

Ao estimar os recursos de um algoritmo, pode utilizar o diagrama de espaço-tempo para visualizar as desvantagens entre o número de qubits físicos e o runtime do algoritmo.

Nota

Para ver múltiplas combinações ideais no diagrama de espaço-tempo, tem de definir o tipo de estimativa para a estimativa de fronteira do Pareto. Se executar o Avaliador de Recursos no Visual Studio Code com a opção Q#: Calcular Estimativas de Recursos , a estimativa de fronteira do Pareto está ativada por predefinição.

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

Para executar o diagrama de espaço-tempo no Jupyter Notebook, pode utilizar 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 ecrã a mostrar o diagrama qubit-time do Avaliador de Recursos.

Dica

Para ver os detalhes da estimativa, pode pairar o cursor 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 ecrã a mostrar o diagrama de espaço-tempo e a tabela de resultados ao executar várias configurações do parâmetro no Avaliador de Recursos.

Nota

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

Passos seguintes