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 compararlas mediante 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:
- La versión más reciente de Visual Studio Code o abrir VS Code en la Web.
- La última versión de la extensión Kit de desarrollo de Azure Quantum. Para obtener más información sobre la instalación, consulte Instalación del QDK en VS Code.
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:
- Una cuenta de Azure con una suscripción activa. Si no tiene una cuenta de Azure, regístrese gratuitamente y regístrese para obtener una suscripción de pago por uso.
- Un área de trabajo de Azure Quantum. Para más información, consulte Creación de un área de trabajo de Azure Quantum.
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:
- Target parámetros: modelo de cúbits, esquemas de 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 parámetros y argumentos de target operación. Varios elementos se representan como una matriz de parámetros de trabajo.
Algunos escenarios en los que puede que desee enviar varios elementos como un solo 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 distintos argumentos de operación en todos los elementos.
- Compare fácilmente varios resultados en un formato tabular.
- Comparar fácilmente varios resultados en un gráfico.
Procesamiento por lotes de trabajos mediante distintos lenguajes
Seleccione las pestañas deseadas para ver ejemplos de procesamiento por lotes del estimador de recursos.
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 un cuaderno de Jupyter Notebook en VS Code.
Puede realizar una estimación por lotes pasando 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.