Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 em um jupyter notebook no Visual Studio Code (VS Code).
Pré-requisitos
Um ambiente Python com Python e Pip instalados.
A versão mais recente do VS Code ou o VS Code aberto na Web.
VS Code com as extensões do Azure Quantum Development Kit, Python e Jupyter instaladas.
A mais recente biblioteca Python
qdk, com ojupyterextra.python -m pip install --upgrade qdk[jupyter]
Observação
Se você executar o Avaliador de Recursos no VS Code na paleta de comandos, os comandos a seguir não se aplicarão. Para obter mais informações, consulte Diferentes maneiras de executar o Avaliador de Recursos.
Parâmetros de saída
A saída do Avaliador de Recursos é um relatório impresso no console e que você pode acessar programaticamente. Por exemplo, o snippet de código a seguir exibe os valores de todos os parâmetros do Avaliador de Recursos:
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 | O status do trabalho, é sempre Succeeded. |
jobParams |
dicionário | Os target parâmetros do trabalho que são passados como 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 de pré-layout. Para obter mais informações, consulte Contagens lógicas. |
reportData |
dicionário | Geração de dados para relatório de estimativa de recursos. |
Contagens físicas
O physicalCounts dicionário contém 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 | Repartição das estimativas. Para obter mais informações, consulte Detalhamento de contagens físicas. |
Detalhamento 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 e não incluem 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 design de fábrica T uniforme). |
numTfactoryRuns |
número | O número de quantas vezes todas as fábricas T paralelas devem ser executadas. |
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 o layout do algoritmo. |
requiredLogicalQubitErrorRate |
número | A taxa de erro lógico necessária. |
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 physicalCounts dicionário contém as seguintes entradas:
| Parâmetro de saída | Tipo de dados | Descrição |
|---|---|---|
runtime |
cadeia | Tempo de execução total como string amigável para humanos. |
rqops |
cadeia | O número de operações quânticas confiáveis por segundo (QOPS) formatadas com sufixo métrico. |
physicalQubits |
cadeia | Número total de qubits físicos com sufixo métrico. |
algorithmicLogicalQubits |
cadeia | Qubits lógicos algorítmicos com sufixo métrico. |
algorithmicLogicalDepth |
cadeia | Profundidade lógica algorítmica com sufixo métrico. |
logicalDepth |
cadeia | Profundidade lógica algorítmica possivelmente ajustada com sufixo métrico. |
numTstates |
cadeia | Número de estados T com sufixo métrico. |
numTfactories |
cadeia | Número de cópias de fábrica T com sufixo métrico. |
numTfactoryRuns |
cadeia | Número de execuções de fábrica T com sufixo métrico. |
physicalQubitsForAlgorithm |
cadeia | Número de qubits físicos para algoritmo com sufixo métrico. |
physicalQubitsForTfactories |
cadeia | Número de qubits físicos para fábricas T com sufixo métrico. |
physicalQubitsForTfactoriesPercentage |
cadeia | O número de qubits físicos para todas as fábricas T em porcentagem do total. |
requiredLogicalQubitErrorRate |
cadeia | Taxa de erro de qubit lógico necessária truncada. |
requiredLogicalTstateErrorRate |
cadeia | Taxa de erro de estado T necessária truncada. |
physicalQubitsPerLogicalQubit |
cadeia | Número de qubits físicos por qubit lógico com sufixo métrico. |
logicalCycleTime |
cadeia | O tempo de ciclo lógico de um qubit lógico como cadeia de caracteres amigável para humanos. |
clockFrequency |
cadeia | O número de ciclos lógicos por segundo como uma cadeia de caracteres amigável para humanos. |
logicalErrorRate |
cadeia | Taxa de erro lógico truncada. |
tfactoryPhysicalQubits |
cadeia | 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 | O tempo de execução de uma única fábrica T como cadeia de caracteres amigável para humanos (ou mensagem de que não há fábrica T). |
numInputTstates |
cadeia | O número de estados T de entrada (ou mensagem de que não há fábrica T). |
numUnitsPerRound |
cadeia | O número de unidades por rodada de destilação, separadas por vírgula em uma string (ou mensagem de que não há fábrica T). |
unitNamePerRound |
cadeia | Os nomes das unidades de cada rodada de destilação, separados por vírgula em uma string (ou mensagem de que não há fábrica T). |
codeDistancePerRound |
cadeia | O código distancia por rodada de destilação, separada por vírgula em uma string (ou mensagem de que não há fábrica T). |
physicalQubitsPerRound |
cadeia | O número de qubits físicos por rodada de destilação, separados por vírgula em uma cadeia de caracteres (ou mensagem de que não há fábrica T). |
tfactoryRuntimePerRound |
cadeia | O tempo de execução de cada rodada de destilação, exibido como strings amigáveis separadas por vírgulas (ou mensagem de que não há fábrica T). |
tstateLogicalErrorRate |
cadeia | Taxa de erro de estado T lógico truncado (ou mensagem de que não há fábrica T). |
logicalCountsNumQubits |
cadeia | Número de qubits (pré-layout) com sufixo métrico. |
logicalCountsTCount |
cadeia | Número de portas T (pré-layout) com sufixo métrico. |
logicalCountsRotationCount |
cadeia | Número de portas de rotação (pré-layout) com sufixo métrico. |
logicalCountsRotationDepth |
cadeia | Profundidade de rotação (pré-layout) com sufixo métrico. |
logicalCountsCczCount |
cadeia | Número de portas CCZ (pré-layout) com sufixo métrico. |
logicalCountsCcixCount |
cadeia | Número de portas CCiX (pré-layout) com sufixo métrico. |
logicalCountsMeasurementCount |
cadeia | Número de medições de qubit único (pré-layout) com sufixo métrico. |
errorBudget |
cadeia | Orçamento de erro total truncado. |
errorBudgetLogical |
cadeia | Orçamento de erro truncado para erro lógico. |
errorBudgetTstates |
cadeia | Orçamento de erro truncado para destilação defeituosa do estado T. |
errorBudgetRotations |
cadeia | Orçamento de erro truncado para síntese de rotação defeituosa. |
numTsPerRotation |
cadeia | Número formatado de Ts por rotação (pode ser Nenhum). |
Qubit lógico
O physicalCounts dicionário contém as seguintes entradas:
| Parâmetro de saída | Tipo de dados | Descrição |
|---|---|---|
codeDistance |
número | A distância do código calculado 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 physicalCounts dicionário contém as seguintes entradas:
| Parâmetro de saída | Tipo de dados | Descrição |
|---|---|---|
numQubits |
número | Número de pré-layout de qubits. |
tCount |
número | Número de pré-layout de portas T. |
rotationCount |
número | Número de pré-layout de portões de rotação. |
rotationDepth |
número | Profundidade de rotação pré-layout. |
cczCount |
número | Número de pré-layout de portas CCZ. |
ccixCount |
número | Número de pré-layout de portas CCiX. |
measurementCount |
número | Número de pré-layout de medições de qubit único. |
Dica
Se você quiser usar um conjunto pré-calculado de contagens lógicas para um trabalho de estimativa de recursos, poderá usar a LogicalCounts operação Python para passar as estimativas conhecidas para o Avaliador de Recursos. Para obter mais informações, consulte Como usar estimativas conhecidas com o Avaliador de Recursos.
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.
No Jupyter Notebook, você pode acessar o diagrama de espaço usando o SpaceChart widget do qsharp-widgets pacote.
from qdk.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 o 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 target 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 tempo de execução 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 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 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 tempo de execução do algoritmo.
Observação
Para ver várias combinações ideais no diagrama de espaço-tempo, você precisa definir o tipo de estimativa para estimativa de fronteira de Pareto. Se você executar o Avaliador de Recursos no Visual Studio Code com o comando QDK: Calcular Estimativas de Recursos , a estimativa de fronteira do Pareto será habilitada por padrão.
O diagrama de espaço-tempo permite que você encontre a combinação ideal de pares {número de qubits, tempo de execução} que satisfaçam 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 de espaço-tempo no Jupyter Notebook, use o widget do pacote EstimatesOverviewwidgets.
from qdk.widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
Captura de tela mostrando o diagrama de tempo de qubit do Avaliador de Recursos.
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.
Captura de tela mostrando o diagrama de espaço-tempo e a tabela de resultados ao executar várias configurações de parâmetro no Avaliador de Recursos.
Observação
Se você tiver problemas ao trabalhar com o Avaliador de Recursos, consulte a página solução de problemas ou entre em contato AzureQuantumInfo@microsoft.com.
Próximas etapas
- Executar sua primeira estimativa de recursos
- Personalize estimativas de recursos de acordo com as características da máquina
- Diferentes maneiras de executar o Avaliador de Recursos
- Lidar com programas grandes com o Avaliador de Recursos
- Tutorial: Estimar os recursos de um problema de química quântica