Descripción de los datos de resultados del estimador de recursos
Aprenda a interpretar y recuperar los parámetros y diagramas de salida del estimador de recursos. En este artículo se explica cómo acceder mediante programación a los resultados del estimador de recursos en Jupyter Notebooks. Si ejecuta el estimador de recursos en Visual Studio Code desde la paleta de comandos, no se aplican los siguientes comandos.
Requisitos previos
Un entorno de Python con Python y Pip instalados.
La versión más reciente de Visual Studio Code o abrir VS Code en la Web.
VS Code con las extensiones kit de desarrollo de Azure Quantum, Python y Jupyter instaladas.
Los paquetes y
qsharp-widgets
Azure Quantumqsharp
más recientes.python -m pip install --upgrade qsharp qsharp-widgets
Parámetros de salida
Los datos de salida del estimador de recursos son un informe que se imprime en la consola y se puede acceder a ellos mediante programación. Por ejemplo, el siguiente fragmento de código muestra cómo acceder a los parámetros de estimación de recursos.
result['jobParams']
Los siguientes datos de salida constituyen las posibles entradas a las que se puede acceder mediante programación.
Parámetro de salida de nivel superior | Tipo de datos | Descripción |
---|---|---|
status |
string | El estado del trabajo, siempre Succeeded es . |
jobParams |
diccionario | Parámetros target del trabajo que se pasan como entrada. |
physicalCounts |
diccionario | Estimaciones de recursos físicos. Para obtener más información, consulte Recuentos físicos. |
physicalCountsFormatted |
diccionario | Las estimaciones de recursos físicos con formato para mostrarse en los datos del informe. Para obtener más información, consulte Recuentos físicos con formato. |
logicalQubit |
diccionario | Propiedades de cúbit lógico. Para obtener más información, consulte Qubit lógico. |
tfactory |
diccionario | Las propiedades del generador de T. |
logicalCounts |
diccionario | Estimaciones de recursos lógicos de diseño previo. Para obtener más información, consulte Recuentos lógicos. |
reportData |
diccionario | Datos de generación para el informe de estimación de recursos. |
Recuentos físicos
El physicalCounts
diccionario contiene las siguientes entradas:
Parámetro de salida | Tipo de datos | Descripción |
---|---|---|
physicalQubits |
number | Número total de cúbits físicos. |
runtime |
number | Tiempo de ejecución total para ejecutar el algoritmo en nanosegundos. |
rqops |
number | Número de operaciones cuánticas confiables por segundo (QOPS). |
breakdown |
diccionario | Desglose de estimaciones. Para obtener más información, consulte Desglose de recuentos físicos. |
Desglose de recuentos físicos
El breakdown
diccionario de physicalCounts
contiene las siguientes entradas:
Parámetro de salida | Tipo de datos | Descripción |
---|---|---|
algorithmicLogicalQubits |
number | Los cúbits lógicos necesarios para ejecutar el algoritmo y no incluyen recursos para factorías de T. |
algorithmicLogicalDepth |
number | Los ciclos lógicos necesarios para ejecutar el algoritmo y no incluyen recursos para factorías de T. |
logicalDepth |
number | El número posiblemente ajustado de ciclos que se calcula cada vez que el tiempo de ejecución de la factoría de T es más rápido, la ejecución del algoritmo. |
numTstates |
number | Número de estados T consumidos por el algoritmo. |
clockFrequency |
number | Número de ciclos lógicos por segundo. |
numTfactories |
number | Número de fábricas de T (suponiendo diseño uniforme de fábrica de T). |
numTfactoryRuns |
number | Número de frecuencia con la que se deben ejecutar todas las factorías T paralelas. |
physicalQubitsForTfactories |
number | Número de cúbits físicos para todas las factorías de T. |
physicalQubitsForAlgorithm |
number | Número de cúbits físicos para el diseño del algoritmo. |
requiredLogicalQubitErrorRate |
number | Tasa de errores lógica necesaria. |
requiredLogicalTstateErrorRate |
number | Tasa de errores de estado T lógico necesaria. |
numTsPerRotation |
number | Número de puertas T por rotación. |
cliffordErrorRate |
number | Tasa de errores de Clifford basada en los parámetros de cúbit. |
Recuentos físicos con formato
El physicalCountsFormatted
diccionario contiene las siguientes entradas:
Parámetro de salida | Tipo de datos | Descripción |
---|---|---|
runtime |
string | Tiempo de ejecución total como cadena de uso humano. |
rqops |
string | Número de operaciones cuánticas confiables por segundo (QOPS) con formato de sufijo de métrica. |
physicalQubits |
string | Número total de cúbits físicos con sufijo de métrica. |
algorithmicLogicalQubits |
string | Cúbits lógicos algorítmicos con sufijo de métrica. |
algorithmicLogicalDepth |
string | Profundidad lógica algorítmica con sufijo de métrica. |
logicalDepth |
string | Posiblemente se ajuste la profundidad lógica algorítmica con sufijo de métrica. |
numTstates |
string | Número de estados T con sufijo de métrica. |
numTfactories |
string | Número de copias de fábrica de T con sufijo de métrica. |
numTfactoryRuns |
string | Número de ejecuciones de generador de T con sufijo de métrica. |
physicalQubitsForAlgorithm |
string | Número de cúbits físicos para el algoritmo con sufijo de métrica. |
physicalQubitsForTfactories |
string | Número de cúbits físicos para factorías de T con sufijo de métrica. |
physicalQubitsForTfactoriesPercentage |
string | Número de cúbits físicos para todas las factorías de T en porcentaje al total. |
requiredLogicalQubitErrorRate |
string | Velocidad de error de cúbit lógico truncada. |
requiredLogicalTstateErrorRate |
string | Tasa de errores de estado T truncada. |
physicalQubitsPerLogicalQubit |
string | Número de cúbits físicos por cúbit lógico con sufijo de métrica. |
logicalCycleTime |
string | El tiempo del ciclo lógico de un cúbit lógico como una cadena que admite el usuario. |
clockFrequency |
string | Número de ciclos lógicos por segundo como una cadena que admite personas. |
logicalErrorRate |
string | Tasa de errores lógicos truncadas. |
tfactoryPhysicalQubits |
string | Número de cúbits físicos en la fábrica de T con sufijo de métrica (o mensaje que indica que no hay ningún generador de T). |
tfactoryRuntime |
string | El tiempo de ejecución de un único generador de T como cadena de compatibilidad humana (o mensaje que indica que no hay ningún generador de T). |
numInputTstates |
string | Número de estados de entrada T (o mensaje que indica que no hay ningún generador de T). |
numUnitsPerRound |
string | Número de unidades por destilación redonda, separadas por comas en una cadena (o mensaje que indica que no hay ningún generador de T). |
unitNamePerRound |
string | Los nombres de unidad de cada ronda de destilación, separadas por comas en una cadena (o mensaje que indica que no hay ningún generador de T). |
codeDistancePerRound |
string | Distancias de código por ronda de destilación, separadas por comas en una cadena (o mensaje que indica que no hay ningún generador de T). |
physicalQubitsPerRound |
string | Número de cúbits físicos por destilación, separados por comas en una cadena (o mensaje que no hay ningún generador de T). |
tfactoryRuntimePerRound |
string | El tiempo de ejecución de cada ronda de destilación, mostrado como cadenas humanas separadas por comas (o mensaje que indica que no hay ningún generador de T). |
tstateLogicalErrorRate |
string | Tasa de errores de estado T lógico truncado (o mensaje que indica que no hay ningún generador de T). |
logicalCountsNumQubits |
string | Número de cúbits (diseño previo) con sufijo de métrica. |
logicalCountsTCount |
string | Número de puertas T (diseño previo) con sufijo de métrica. |
logicalCountsRotationCount |
string | Número de puertas de rotación (diseño previo) con sufijo de métrica. |
logicalCountsRotationDepth |
string | Profundidad de rotación (diseño previo) con sufijo de métrica. |
logicalCountsCczCount |
string | Número de puertas CCZ (diseño previo) con sufijo de métrica. |
logicalCountsCcixCount |
string | Número de puertas de CCiX (diseño previo) con sufijo de métrica. |
logicalCountsMeasurementCount |
string | Número de medidas de un solo cúbit (diseño previo) con sufijo de métrica. |
errorBudget |
string | Presupuesto total de errores truncado. |
errorBudgetLogical |
string | Presupuesto de errores truncado para el error lógico. |
errorBudgetTstates |
string | Presupuesto de errores truncado para la destilación de estado T defectuoso. |
errorBudgetRotations |
string | Presupuesto de errores truncado para la síntesis de rotación errónea. |
numTsPerRotation |
string | Número con formato de Ts por rotación (puede ser Ninguno). |
Cúbit lógico
El logicalQubit
diccionario contiene las siguientes entradas:
Parámetro de salida | Tipo de datos | Descripción |
---|---|---|
codeDistance |
number | Distancia de código calculada para el cúbit lógico. |
physicalQubits |
number | Número de cúbits físicos para cada cúbit lógico. |
logicalCycleTime |
number | Tiempo para ejecutar una operación lógica. |
logicalErrorRate |
number | Velocidad de error lógica del cúbit lógico. |
Recuentos lógicos
El logicalCounts
diccionario contiene las siguientes entradas:
Parámetro de salida | Tipo de datos | Descripción |
---|---|---|
numQubits |
number | Número de cúbits de diseño previo. |
tCount |
number | Número de puertas T de diseño previo. |
rotationCount |
number | Número previo de diseño de puertas de rotación. |
rotationDepth |
number | Profundidad de rotación de diseño previo. |
cczCount |
number | Número de preproceso de puertas CCZ. |
ccixCount |
number | Número de preproceso de puertas CCiX. |
measurementCount |
number | Número de diseños previos de medidas de un solo cúbit. |
Sugerencia
Si desea usar un conjunto calculado previamente de recuentos lógicos para un trabajo de estimación de recursos, puede usar la LogicalCounts
operación de Python para pasar las estimaciones conocidas al Estimador de recursos. Para obtener más información, consulte Uso de estimaciones conocidas con el estimador de recursos.
Diagrama de espacio
La estimación general de recursos físicos consta del número total de cúbits físicos usados para las copias del algoritmo y del generador de T. Puede inspeccionar la distribución entre estos dos mediante el diagrama de espacio.
El diagrama de espacio muestra la proporción de los cúbits físicos usados para el algoritmo y las factorías de T. Tenga en cuenta que el número de copias de fábrica T contribuye al número de cúbits físicos para las fábricas T.
En Jupyter Notebook, puede acceder al diagrama de espacio mediante el SpaceChart
widget desde el qsharp-widgets
paquete.
import qsharp
from qsharp_widgets import SpaceChart
SpaceChart(result)
Al ejecutar varias configuraciones de parámetros con la estimación de target frontera de Pareto, puede trazar el diagrama de espacio para una solución específica de . Por ejemplo, el código siguiente muestra cómo trazar el diagrama de espacio para la primera configuración de parámetros y el tercer tiempo de ejecución más corto.
SpaceChart(result[0], 2) # First (estimate index=0) run and third (point index=2) shortest runtime
Diagrama de tiempo espaciador
En la computación cuántica, hay un equilibrio entre el número de cúbits físicos y el tiempo de ejecución del algoritmo. Podría considerar la asignación de tantos cúbits físicos como sea posible para reducir el tiempo de ejecución del algoritmo. Sin embargo, el número de cúbits físicos está limitado por el número de cúbits físicos disponibles en el hardware cuántico. Comprender el equilibrio entre el tiempo de ejecución y la escala del sistema es uno de los aspectos más importantes de la estimación de recursos.
Al calcular los recursos de un algoritmo, puede usar el diagrama de tiempo espaciado para visualizar los inconvenientes entre el número de cúbits físicos y el tiempo de ejecución del algoritmo.
Nota:
Para ver varias combinaciones óptimas en el diagrama de tiempo espacial, debe establecer el tipo de estimación en Estimación de frontera de Pareto. Si ejecuta el estimador de recursos en Visual Studio Code mediante la Q#opción : Calcular estimaciones de recursos, la estimación de frontera de Pareto está habilitada de forma predeterminada.
El diagrama de tiempo espaciado permite encontrar la combinación óptima de {número de cúbits, pares runtime} que satisfacen las restricciones del hardware cuántico. El diagrama muestra el número de cúbits físicos y el tiempo de ejecución del algoritmo para cada par {número de cúbits, runtime}.
Para ejecutar el diagrama de tiempo espacial en Jupyter Notebook, puede usar el EstimatesOverview
widget desde el qsharp-widgets
paquete.
import qsharp
from qsharp_widgets import EstimatesOverview
EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])
Sugerencia
Para ver los detalles de la estimación, puede mantener el puntero sobre cada punto del diagrama.
El diagrama de tiempo espaciado es especialmente útil al comparar varias configuraciones de target parámetros para el mismo algoritmo.
Nota:
Si tiene algún problema al trabajar con el estimador de recursos, consulte la página Solución de problemas o póngase en contacto con AzureQuantumInfo@microsoft.com.
Pasos siguientes
- Ejecución de la primera estimación de recursos
- Personalización de estimaciones de recursos en las características de la máquina
- Diferentes formas de ejecutar el estimador de recursos
- Control de programas grandes con el estimador de recursos
- Tutorial: Estimación de los recursos de un problema de química cuántica