Entender 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 no Jupyter Notebooks. Se você executar o Avaliador de Recursos em Visual Studio Code na paleta de comandos, os comandos a seguir não se aplicarão.
Pré-requisitos
Um ambiente python com Python e Pip instalados.
A versão mais recente do Visual Studio Code ou abrir o VS Code na Web.
VS Code com as extensões do Kit de Desenvolvimento do Azure Quantum, Python e Jupyter instaladas.
O Azure Quantum
qsharp
eqsharp-widgets
os pacotes mais recentes.python -m pip install --upgrade qsharp qsharp-widgets
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 recurso.
result['job_params']
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 . |
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 de pré-layout. Para obter mais informações, consulte Contagens lógicas. |
report_data |
dicionário | Dados de geração para o 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 QOPS (operações quânticas confiáveis por segundo). |
breakdown |
dicionário | Detalhamento das estimativas. Para obter mais informações, consulte Divisão de contagens físicas. |
Divisão de 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 e, em seguida, 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 (supondo design de fábrica T uniforme). |
num_tfactory_runs |
número | O número de frequência com 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 layout do 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 portões T por rotação. |
clifford_error_rate |
número | A taxa de erro clifford com base nos parâmetros qubit. |
Contagens físicas formatadas
O physical_counts_formatted
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 cadeia de caracteres amigável para humanos. |
rqops |
string | O número de QOPS (operações quânticas confiáveis por segundo) formatadas 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 | Profundidade lógica algorítmica possivelmente ajustada com sufixo de métrica. |
num_tstates |
string | Número de estados T com sufixo de métrica. |
num_tfactories |
string | Número de cópias de fábrica T com sufixo de métrica. |
num_tfactory_runs |
string | Número de execuções de fábrica T com sufixo de métrica. |
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étrica. |
physical_qubits_for_tfactories_percentage |
string | O número de qubits físicos para todas as fábricas T em percentual para o total. |
required_logical_qubit_error_rate |
string | Taxa de erro de qubit lógico obrigatória truncada. |
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 | A hora do ciclo lógico de um qubit lógico como cadeia de caracteres amigável para humanos. |
clock_frequency |
string | O número de ciclos lógicos por segundo como uma cadeia de caracteres amigável para humanos. |
logical_error_rate |
string | Taxa de erros lógicos truncados. |
tfactory_physical_qubits |
string | Número de qubits físicos na fábrica T com sufixo de métrica (ou mensagem informando que não há fábrica T). |
tfactory_runtime |
string | O runtime de uma única fábrica T como cadeia de caracteres amigável para humanos (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 de caracteres (ou mensagem de que não há fábrica T). |
unit_name_per_round |
string | Os nomes de unidade 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 separadas 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 runtime de cada rodada de destilação, exibido como cadeias de caracteres amigáveis humanas separadas por vírgulas (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 informando que não há fábrica T). |
logical_counts_num_qubits |
string | Número de qubits (pré-layout) com sufixo de métrica. |
logical_counts_t_count |
string | Número de portões T (pré-layout) com sufixo de métrica. |
logical_counts_rotation_count |
string | Número de portas de rotação (pré-layout) com sufixo de métrica. |
logical_counts_rotation_depth |
string | Profundidade de rotação (pré-layout) com sufixo de métrica. |
logical_counts_ccz_count |
string | Número de portões CCZ (pré-layout) com sufixo de métrica. |
logical_counts_ccix_count |
string | Número de portões CCiX (pré-layout) com sufixo de métrica. |
logical_counts_measurement_count |
string | Número de medidas de qubit único (pré-layout) com sufixo de métrica. |
error_budget |
string | Orçamento total de erros 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 falha. |
error_budget_rotations |
string | Orçamento de erro truncado para síntese de rotação com falha. |
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 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ó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 pré-layout de qubits. |
t_count |
número | Número de pré-layout de portões T. |
rotation_count |
número | Número de pré-layout de portões de rotação. |
rotation_depth |
número | Profundidade de rotação de pré-layout. |
ccz_count |
número | Número de pré-layout de portões CCZ. |
ccix_count |
número | Número de pré-layout de portões CCiX. |
measurement_count |
número | Número de pré-layout de medidas de qubit único. |
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.
Em 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)
Ao executar várias configurações de target parâmetros com a estimativa de fronteira 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 runtime 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 runtime do algoritmo. Você 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. Entender a compensação entre o runtime e a 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 runtime do algoritmo.
Observação
Para ver várias combinações ideais no diagrama espaço-tempo, você precisa definir o tipo de estimativa como estimativa de fronteira pareto. Se você executar o Avaliador de Recursos no Visual Studio Code usando a opção Q#: Calcular Estimativas de Recursos, a estimativa de fronteira pareto será habilitada por padrão.
O diagrama de tempo de espaço permite que você encontre a combinação ideal de {número de qubits, runtime} pares que satisfaçam 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 {número de qubits, runtime}.
Para executar o diagrama de tempo de espaço em 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"])
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.
Observação
Se você tiver algum problema ao trabalhar com o Avaliador de Recursos, marcar a página Solução de problemas ou entre em contato com AzureQuantumInfo@microsoft.com.
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de