Ejecución de varias configuraciones de target parámetros con el estimador de recursos

En este artículo, aprenderá a ejecutar varias configuraciones de target parámetros y a compararlas con el estimador de recursos de Azure Quantum.

Para obtener información sobre cómo ejecutar el estimador de recursos, consulte Diferentes formas de usar el estimador de recursos.

Requisitos previos

Se requieren los siguientes requisitos previos para ejecutar el estimador de recursos:

Para ejecutar Q# programas en el Estimador de recursos, necesita lo siguiente:

Si desea usar Python en VS Code, también necesita lo siguiente:

  • Instale la versión más reciente de las extensiones de Python y Jupyter para VS Code.

  • El paquete de Azure Quantum qsharp más reciente.

    python -m pip install --upgrade qsharp 
    

Para enviar trabajos al estimador de recursos, necesita lo siguiente:


Procesamiento por lotes con el estimador de recursos

El estimador de recursos de Azure Quantum permite enviar trabajos con varias configuraciones de parámetros de trabajo, también denominados elementos, como un único trabajo para evitar volver a ejecutar varios trabajos en el mismo programa cuántico.

Un trabajo de estimación de recursos consta de dos tipos de parámetros de trabajo:

  • Parámetros de destino: modelo de cúbits, esquemas QEC, presupuesto de errores, restricciones en el nivel de componente y unidades de destilación.
  • Argumentos de operación: argumentos que se pueden pasar al programa (si el punto de entrada QIR contiene argumentos).

Un elemento consta de una configuración de parámetros de trabajo, que es una configuración de target parámetros y argumentos de operación. Varios elementos se representan como una matriz de parámetros de trabajo.

Algunos escenarios en los que es posible que desee enviar varios elementos como un único trabajo:

  • Envíe varios target parámetros con los mismos argumentos de operación en todos los elementos.
  • Envíe varios target parámetros con argumentos de operación diferentes en todos los elementos.
  • Compare fácilmente varios resultados en un formato tabular.
  • Comparar fácilmente varios resultados en un gráfico.

Si calcula los recursos de un Q# programa, puede ejecutar varias configuraciones de target parámetros, también conocidas como procesamiento por lotes. El procesamiento por lotes con Q# se puede realizar en una Jupyter Notebook en VS Code.

Para realizar una estimación por lotes, pase una lista de target parámetros al params parámetro de la qsharp.estimate función. En el ejemplo siguiente se muestra cómo enviar dos configuraciones de target parámetros como un único trabajo. La primera configuración usa los parámetros predeterminados target y la segunda configuración usa el qubit_maj_ns_e6 parámetro qubit y el floquet_code esquema QEC.

En el mismo Jupyter Notebook del Q# programa, agregue una nueva celda y ejecute el código siguiente:

result_batch = qsharp.estimate("RunProgram()", params=
                [{}, # Default parameters
                {
                    "qubitParams": {
                        "name": "qubit_maj_ns_e6"
                    },
                    "qecScheme": {
                        "name": "floquet_code"
                    }
                }])
result_batch.summary_data_frame(labels=["Gate-based ns, 10⁻³", "Majorana ns, 10⁻⁶"])

También puede construir una lista de parámetros de estimación target mediante la EstimatorParams clase . En el código siguiente se muestra cómo enviar seis configuraciones de target parámetros como un único trabajo.

from qsharp.estimator import EstimatorParams, QubitParams, QECScheme

labels = ["Gate-based µs, 10⁻³", "Gate-based µs, 10⁻⁴", "Gate-based ns, 10⁻³", "Gate-based ns, 10⁻⁴", "Majorana ns, 10⁻⁴", "Majorana ns, 10⁻⁶"]

params = EstimatorParams(num_items=6)
params.error_budget = 0.333
params.items[0].qubit_params.name = QubitParams.GATE_US_E3
params.items[1].qubit_params.name = QubitParams.GATE_US_E4
params.items[2].qubit_params.name = QubitParams.GATE_NS_E3
params.items[3].qubit_params.name = QubitParams.GATE_NS_E4
params.items[4].qubit_params.name = QubitParams.MAJ_NS_E4
params.items[4].qec_scheme.name = QECScheme.FLOQUET_CODE
params.items[5].qubit_params.name = QubitParams.MAJ_NS_E6
params.items[5].qec_scheme.name = QECScheme.FLOQUET_CODE

qsharp.estimate("RunProgram()", params=params).summary_data_frame(labels=labels)

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.