Noções básicas sobre 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
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 Azure Quantum Development Kit, 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 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['jobParams']
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 . |
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 pré-layout. Para obter mais informações, consulte Contagens lógicas. |
reportData |
dicionário | Dados de geração 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 | Description |
---|---|---|
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 | 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 physicalCounts
contém as seguintes entradas:
Parâmetro de saída | Tipo de dados | Description |
---|---|---|
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 (assumindo o design uniforme da fábrica T). |
numTfactoryRuns |
Número | O número de freqüência com que todas as fábricas T paralelas devem funcionar. |
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 layout de algoritmo. |
requiredLogicalQubitErrorRate |
Número | A taxa de erro lógica 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 physicalCountsFormatted
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. |
physicalQubits |
string | Número total de qubits físicos com sufixo métrico. |
algorithmicLogicalQubits |
string | Qubits lógicos algorítmicos com sufixo métrico. |
algorithmicLogicalDepth |
string | Profundidade lógica algorítmica com sufixo métrico. |
logicalDepth |
string | Profundidade lógica algorítmica possivelmente ajustada com sufixo métrico. |
numTstates |
string | Número de estados T com sufixo métrico. |
numTfactories |
string | Número de cópias de fábrica T com sufixo métrico. |
numTfactoryRuns |
string | Número de execuções de fábrica T com sufixo métrico. |
physicalQubitsForAlgorithm |
string | Número de qubits físicos para algoritmo com sufixo métrico. |
physicalQubitsForTfactories |
string | Número de qubits físicos para fábricas T com sufixo métrico. |
physicalQubitsForTfactoriesPercentage |
string | O número de qubits físicos para todas as fábricas T em porcentagem para o total. |
requiredLogicalQubitErrorRate |
string | Taxa de erro de qubit lógico necessária truncada. |
requiredLogicalTstateErrorRate |
string | Taxa de erro de estado T necessária truncada. |
physicalQubitsPerLogicalQubit |
string | Número de qubits físicos por qubit lógico com sufixo métrico. |
logicalCycleTime |
string | O tempo de ciclo lógico de um qubit lógico como cadeia amigável humana. |
clockFrequency |
string | O número de ciclos lógicos por segundo como uma cadeia amigável para humanos. |
logicalErrorRate |
string | Taxa de erro lógica truncada. |
tfactoryPhysicalQubits |
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). |
tfactoryRuntime |
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). |
numInputTstates |
string | O número de estados T de entrada (ou mensagem de que não há fábrica T). |
numUnitsPerRound |
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). |
unitNamePerRound |
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). |
codeDistancePerRound |
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). |
physicalQubitsPerRound |
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). |
tfactoryRuntimePerRound |
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). |
tstateLogicalErrorRate |
string | Taxa de erro de estado T lógico truncado (ou mensagem de que não há fábrica T). |
logicalCountsNumQubits |
string | Número de qubits (pré-layout) com sufixo métrico. |
logicalCountsTCount |
string | Número de portões T (pré-layout) com sufixo métrico. |
logicalCountsRotationCount |
string | Número de portas de rotação (pré-layout) com sufixo métrico. |
logicalCountsRotationDepth |
string | Profundidade de rotação (pré-layout) com sufixo métrico. |
logicalCountsCczCount |
string | Número de portas CCZ (pré-layout) com sufixo métrico. |
logicalCountsCcixCount |
string | Número de portas CCiX (pré-layout) com sufixo métrico. |
logicalCountsMeasurementCount |
string | Número de medições de qubit único (pré-layout) com sufixo métrico. |
errorBudget |
string | Orçamento de erro total truncado. |
errorBudgetLogical |
string | Orçamento de erro truncado para erro lógico. |
errorBudgetTstates |
string | Orçamento de erro truncado para destilação de estado T defeituosa. |
errorBudgetRotations |
string | Orçamento de erro truncado para síntese de rotação defeituosa. |
numTsPerRotation |
string | Número formatado de Ts por rotação (pode ser Nenhum). |
Qubit lógico
O logicalQubit
dicionário contém as seguintes entradas:
Parâmetro de saída | Tipo de dados | Description |
---|---|---|
codeDistance |
Número | A distância de código computada 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 logicalCounts
dicionário contém as seguintes entradas:
Parâmetro de saída | Tipo de dados | Description |
---|---|---|
numQubits |
Número | Pré-layout número de qubits. |
tCount |
Número | Número de pré-layout dos portões T. |
rotationCount |
Número | Número 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 dos portões CCZ. |
ccixCount |
Número | Número de pré-layout dos portões CCiX. |
measurementCount |
Número | Número pré-layout de medições de qubit único. |
Gorjeta
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 Resource Estimator. Para obter mais informações, consulte Como usar estimativas conhecidas com o Resource Estimator.
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)
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"])
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.
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
- Execute sua primeira estimativa de recursos
- Personalizar estimativas de recursos de acordo com as características da máquina
- Diferentes maneiras de executar o Estimador de Recursos
- Lidar com programas grandes com o Estimador de Recursos
- Tutorial: Estimar os recursos de um problema de química quântica