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:
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:
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.