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
Um ambiente Python com Python e Pip instalados.
A versão mais recente do Visual Studio Code ou abra o VS Code na Web.
VS Code com as extensões do Azure Quantum Development Kit, Python e Jupyter instaladas.
Os pacotes e
qsharp-widgets
o Azure Quantumqsharp
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 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)
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"])
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.
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
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários