Uso de trabajos en Azure Quantum

Al ejecutar un programa cuántico en Azure Quantum, creará y ejecutará un trabajo. Los pasos para crear y ejecutar un trabajo dependen del tipo de trabajo y del proveedor y target que configure para el área de trabajo.

Propiedades del trabajo

Todos los trabajos tienen las siguientes propiedades en común:

Propiedad Descripción
Id Un identificador único del trabajo. Debe ser único en el área de trabajo.
Proveedor Quién desea que ejecute el trabajo.
Target En qué desea ejecutar el trabajo. Por ejemplo, el hardware cuántico exacto o el simulador cuántico que ofrece el proveedor.
Nombre Un nombre definido por el usuario para ayudar a organizar los trabajos.
Parámetros Parámetros de entrada opcionales para targets. Consulte la documentación de la selección target para obtener una definición de los parámetros disponibles.

Una vez creado un trabajo, hay disponibles distintos metadatos sobre el estado y el historial de ejecución.

Ciclo de vida de trabajo

Una vez que haya escrito el programa cuántico, puede seleccionar y target enviar el trabajo.

En este diagrama se muestra el flujo de trabajo básico después de enviar el trabajo:

flujo de trabajo de Azure Quantum

En primer lugar, Azure Quantum carga el trabajo en la cuenta Azure Storage que configuró en el área de trabajo. A continuación, el trabajo se agrega a la cola de trabajo para el proveedor que especificó en él. Entonces, Azure Quantum descarga el programa y lo traduce para el proveedor. El proveedor procesa el trabajo y devuelve la salida a Azure Storage, donde está disponible para su descarga.

Supervisión de trabajos

Una vez enviado un trabajo, puede supervisar el estado del trabajo. Los trabajos tienen los siguientes estados posibles:

Estado Description
waiting El trabajo está a la espera para ejecutarse. Algunos trabajos realizarán tareas de procesamiento previo mientras están en estado de espera. waiting es siempre el primer estado, sin embargo, un trabajo puede pasar al estado executing antes de poder observarlo en waiting.
executing target está ejecutando actualmente el trabajo.
succeeded El trabajo se ha realizado correctamente y la salida está disponible. Este es un estado final.
failed Se ha producido un error en el trabajo y hay disponible información sobre él. Este es un estado final.
cancelled El usuario solicitó cancelar la ejecución del trabajo. Este es un estado final. Para obtener más información, consulte Cancelación de trabajos en este artículo.

Los estados succeeded, failed y cancelled se consideran estados finales. Una vez que un trabajo se encuentra en uno de estos estados, no se producen más actualizaciones y los datos de salida del trabajo correspondiente no cambian.

En este diagrama se muestran las posibles transiciones de estado del trabajo:

Diagrama que muestra el flujo de trabajo de un envío de trabajo a Azure Qauntum.

Una vez que un trabajo se completa correctamente, muestra un vínculo a los datos de salida en la cuenta de Azure Storage. La forma de acceder a estos datos depende del SDK o de la herramienta que usó para enviar el trabajo.

Supervisión de trabajos

Puede supervisar trabajos a través de Python, Azure Portal y la CLI de Azure.

Todas las propiedades del trabajo son accesibles en job.details. Por ejemplo, puede acceder al nombre, el estado y el identificador del trabajo de la siguiente manera:

print(job.details)
print("\nJob name:", job.details.name)
print("Job status:", job.details.status)
print("Job ID:", job.details.id)
{'additional_properties': {'isCancelling': False}, 'id': '0fc396d2-97dd-11ee-9958-6ca1004ff31f', 'name': 'MyPythonJob', 'provider_id': 'rigetti'...}
Job name: MyPythonJob
Job status: Succeeded
Job ID: fc396d2-97dd-11ee-9958-6ca1004ff31f

Recuentos de trabajos

Para obtener recuentos resultantes de un gran número de trabajos, puede que desee realizar una instalación local de las Quantum Development Kit herramientas. Con una instalación local, puede almacenar los identificadores de trabajo localmente.

Puede copiar el código siguiente para obtener la lista de trabajos y sus resultados:

for job in workspace.list_jobs():
    print(job.id, job.details.name, job.details.output_data_uri)

Cancelación de trabajos

Cuando un trabajo aún no está en un estado final (por ejemplo, succeeded, failed o cancelled), puede solicitar la cancelación del trabajo. Todos los proveedores cancelarán el trabajo si se encuentra en el estado waiting. Sin embargo, no todos los proveedores admiten la cancelación si el trabajo está en el estado executing.

Nota:

Si cancela un trabajo después de que haya empezado a ejecutarse, es posible que se le facture a su cuenta la cantidad total o parcial por ese trabajo. Consulte la documentación de facturación del proveedor seleccionado.