Descripción de los datos de resultado del estimador de recursos

Obtenga información sobre cómo interpretar y recuperar los parámetros de salida y los diagramas 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

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['job_params']

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 Succeededes .
job_params diccionario Parámetros target del trabajo que se pasan como entrada.
physical_counts diccionario Los recursos físicos calculan. Para obtener más información, consulte Recuentos físicos.
physical_counts_formatted diccionario Los recursos físicos calculan el formato para mostrarlos en los datos del informe. Para obtener más información, consulte Recuentos físicos con formato.
logical_qubit diccionario Propiedades de cúbit lógico. Para más información, consulte Qubit lógico.
tfactory diccionario Las propiedades de fábrica de T.
logical_counts diccionario Las estimaciones de recursos lógicos de diseño previo. Para más información, consulte Recuentos lógicos.
report_data diccionario Datos de generación para el informe de estimación de recursos.

Recuentos físicos

El physical_counts diccionario contiene las siguientes entradas:

Parámetro de salida Tipo de datos Descripción
physical_qubits 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 physical_counts contiene las siguientes entradas:

Parámetro de salida Tipo de datos Descripción
algorithmic_logical_qubits number Los cúbits lógicos necesarios para ejecutar el algoritmo y no incluyen recursos para factorías de T.
algorithmic_logical_depth number Los ciclos lógicos necesarios para ejecutar el algoritmo y no incluyen recursos para factorías de T.
logical_depth number El número posiblemente ajustado de ciclos que se calcula cada vez que el tiempo de ejecución del generador de T es más rápido y, a continuación, la ejecución del algoritmo.
num_tstates number Número de estados T consumidos por el algoritmo.
clock_frequency number Número de ciclos lógicos por segundo.
num_tfactories number Número de fábricas de T (suponiendo un diseño uniforme de fábrica de T).
num_tfactory_runs number Número de frecuencia con la que se deben ejecutar todas las factorías T paralelas.
physical_qubits_for_tfactories number Número de cúbits físicos para todas las fábricas de T.
physical_qubits_for_algorithm number Número de cúbits físicos para el diseño del algoritmo.
required_logical_qubit_error_rate number Tasa de errores lógica necesaria.
required_logical_tstate_error_rate number Tasa de errores de estado T lógico requerida.
num_ts_per_rotation number Número de puertas T por rotación.
clifford_error_rate number La tasa de errores de Clifford en función de los parámetros de cúbit.

Recuentos físicos con formato

El physical_counts_formatted diccionario contiene las siguientes entradas:

Parámetro de salida Tipo de datos Descripción
runtime string Tiempo de ejecución total como cadena fácil de usar.
rqops string Número de operaciones cuánticas confiables por segundo (QOPS) con formato de sufijo de métrica.
physical_qubits string Número total de cúbits físicos con sufijo de métrica.
algorithmic_logical_qubits string Cúbits lógicos algorítmicos con sufijo de métrica.
algorithmic_logical_depth string Profundidad lógica algorítmica con sufijo de métrica.
logical_depth string Profundidad lógica algorítmica posiblemente ajustada con sufijo de métrica.
num_tstates string Número de estados T con sufijo de métrica.
num_tfactories string Número de copias de fábrica de T con sufijo de métrica.
num_tfactory_runs string Número de ejecuciones de fábrica de T con sufijo de métrica.
physical_qubits_for_algorithm string Número de cúbits físicos para el algoritmo con sufijo de métrica.
physical_qubits_for_tfactories string Número de cúbits físicos para fábricas de T con sufijo de métrica.
physical_qubits_for_tfactories_percentage string Número de cúbits físicos de todas las fábricas de T en porcentaje al total.
required_logical_qubit_error_rate string Tasa de errores de cúbit lógico truncado.
required_logical_tstate_error_rate string Tasa de errores de estado T truncado.
physical_qubits_per_logical_qubit string Número de cúbits físicos por cúbit lógico con sufijo de métrica.
logical_cycle_time string El tiempo del ciclo lógico de un cúbit lógico como cadena de compatibilidad humana.
clock_frequency string El número de ciclos lógicos por segundo como una cadena descriptivos humanas.
logical_error_rate string Tasa de errores lógicos truncados.
tfactory_physical_qubits string Número de cúbits físicos en el generador de T con sufijo de métrica (o mensaje que indica que no hay ningún generador de T).
tfactory_runtime 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).
num_input_tstates string Número de estados de entrada T (o mensaje que indica que no hay ningún generador de T).
num_units_per_round string Número de unidades por ronda de destilación, separadas por comas en una cadena (o mensaje que indica que no hay fábrica T).
unit_name_per_round 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).
code_distance_per_round 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 T).
physical_qubits_per_round string Número de cúbits físicos por ronda de destilación, separadas por comas en una cadena (o mensaje que indica que no hay ningún generador de T).
tfactory_runtime_per_round string El tiempo de ejecución de cada ronda de destilación, que se muestra como cadenas humanas separadas por comas (o mensaje que indica que no hay ninguna fábrica T).
tstate_logical_error_rate string Tasa de errores de estado T lógico truncado (o mensaje que indica que no hay ningún generador de T).
logical_counts_num_qubits string Número de cúbits (diseño previo) con sufijo de métrica.
logical_counts_t_count string Número de puertas T (diseño previo) con sufijo de métrica.
logical_counts_rotation_count string Número de puertas de rotación (diseño previo) con sufijo de métrica.
logical_counts_rotation_depth string Profundidad de rotación (diseño previo) con sufijo de métrica.
logical_counts_ccz_count string Número de puertas CCZ (diseño previo) con sufijo de métrica.
logical_counts_ccix_count string Número de puertas CCiX (diseño previo) con sufijo de métrica.
logical_counts_measurement_count string Número de medidas de un solo cúbit (diseño previo) con sufijo de métrica.
error_budget string Presupuesto total de errores truncado.
error_budget_logical string Presupuesto de errores truncado para el error lógico.
error_budget_tstates string Presupuesto de errores truncado para la destilación de estado T defectuoso.
error_budget_rotations string Presupuesto de errores truncado para la síntesis de rotación errónea.
num_ts_per_rotation string Número con formato de Ts por rotación (podría ser Ninguno).

Cúbit lógico

El logical_qubit diccionario contiene las siguientes entradas:

Parámetro de salida Tipo de datos Descripción
code_distance number Distancia de código calculada para el cúbit lógico.
physical_qubits number Número de cúbits físicos para cada cúbit lógico.
logical_cycle_time number Tiempo para ejecutar una operación lógica.
logical_error_rate number Tasa de errores lógicos del cúbit lógico.

Recuentos lógicos

El logical_counts diccionario contiene las siguientes entradas:

Parámetro de salida Tipo de datos Descripción
num_qubits number Número previo al diseño de cúbits.
t_count number Número de puertas T de diseño previo.
rotation_count number Número previo al diseño de puertas de rotación.
rotation_depth number Profundidad de rotación de diseño previo.
ccz_count number Número de pre-diseño de puertas CCZ.
ccix_count number Número previo al diseño de puertas de CCiX.
measurement_count number Número previo al diseño de medidas de un solo cúbit.

Diagrama de espacio

La estimación general de recursos físicos consta del número total de cúbits físicos usados para el algoritmo y las copias de fábrica 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 de T contribuye al número de cúbits físicos para las fábricas de 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)

Diagrama circular que muestra la distribución de cúbits físicos totales entre cúbits de algoritmo y cúbits de fábrica de T. Hay una tabla con el desglose del número de copias de fábrica de T y el número de cúbits físicos por factoría de T.

Al ejecutar varias configuraciones de target parámetros con la estimación de 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, existe 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 espaciado, 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 en tiempo de ejecución} que satisfacen las restricciones del hardware cuántico. En el diagrama se 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, tiempo de ejecución}.

Para ejecutar el diagrama de tiempo espaciador en Jupyter Notebook, puede usar el EstimatesOverview widget del qsharp-widgets paquete.

import qsharp

from qsharp_widgets import EstimatesOverview

EstimatesOverview(result, colors=["#1f77b4", "#ff7f0e"], runNames=["e4 Surface Code", "e6 Floquet Code"])

Captura de pantalla que muestra el diagrama de tiempo cuántico del estimador de recursos.

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.

Captura de pantalla que muestra el diagrama de tiempo espaciador y la tabla de resultados al ejecutar varias configuraciones de parámetro en el estimador de recursos.

Nota

Si tiene algún problema mientras trabaja con el Estimador de recursos, consulte la página Solución de problemas o póngase en contacto con AzureQuantumInfo@microsoft.com.

Pasos siguientes