Trabalhar com trabalhos do Azure Quantum
Ao executar um programa quântico no Azure Quantum, você cria e executa um trabalho. As etapas para criar e executar um trabalho dependem do tipo de trabalho e do provedor e target do que você configurar para o espaço de trabalho.
Propriedades do trabalho
Todos os trabalhos têm as seguintes propriedades em comum:
Property | Description |
---|---|
ID | Um identificador exclusivo para o trabalho. Ele deve ser exclusivo dentro do espaço de trabalho. |
Fornecedor | Quem você quer que administre seu trabalho. |
Target | Em que pretende executar o seu trabalho. Por exemplo, o hardware quântico exato ou simulador quântico oferecido pelo provedor. |
Nome | Um nome definido pelo usuário para ajudar a organizar seus trabalhos. |
Parâmetros | Parâmetros de entrada opcionais para targets. Consulte a documentação dos selecionados target para obter uma definição dos parâmetros disponíveis. |
Depois de criar um trabalho, vários metadados estão disponíveis sobre seu estado e histórico de execução.
Ciclo de vida do trabalho
Depois de escrever seu programa quântico, você pode selecionar um target e enviar seu trabalho.
Este diagrama mostra o fluxo de trabalho básico depois de enviar seu trabalho:
Primeiro, o Azure Quantum carrega o trabalho na conta de Armazenamento do Azure que você configurou no espaço de trabalho. Em seguida, o trabalho é adicionado à fila de trabalhos para o provedor especificado no trabalho. Em seguida, o Azure Quantum baixa seu programa e o traduz para o provedor. O provedor processa o trabalho e retorna a saída para o Armazenamento do Azure, onde está disponível para download.
Monitoramento de trabalhos
Depois de enviar um trabalho, você pode monitorar o status do trabalho. Os empregos têm os seguintes estados possíveis:
Status | Description |
---|---|
à espera | A tarefa está a aguardar para ser executada. Alguns trabalhos executarão tarefas de pré-processamento no estado de espera. waiting é sempre o primeiro estado, no entanto, um trabalho pode se mover para o executing estado antes que você possa observá-lo em waiting . |
execução | O target está atualmente executando o trabalho. |
bem sucedido | O trabalho foi bem-sucedido e a saída está disponível. Este é um estado final . |
falhou | O trabalho falhou e as informações de erro estão disponíveis. Este é um estado final . |
cancelado | O usuário solicitou o cancelamento da execução do trabalho. Este é um estado final . Para obter mais informações, consulte Cancelamento de trabalho neste artigo. |
O succeeded
, failed
e cancelled
os estados são considerados estados finais. Quando um trabalho está em um desses estados, não ocorrem mais atualizações e os dados de saída de trabalho correspondentes não são alterados.
Este diagrama mostra as possíveis transições de estado do trabalho:
Depois que um trabalho for concluído com êxito, ele exibirá um link para os dados de saída em sua conta de Armazenamento do Azure. A forma como você acessa esses dados depende do SDK ou da ferramenta usada para enviar o trabalho.
Como monitorar trabalhos
Você pode monitorar trabalhos por meio do Python, do portal do Azure e da CLI do Azure.
Todas as propriedades do trabalho estão acessíveis em job.details
. Por exemplo, você pode acessar o nome, o status e a ID do trabalho da seguinte maneira:
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
Contagem de empregos
Para obter contagens resultantes de um grande número de trabalhos, convém executar uma instalação local das Quantum Development Kit ferramentas. Com uma instalação local, você pode armazenar as IDs de trabalho localmente.
Você pode copiar o código a seguir para obter a lista de trabalhos e seus resultados:
for job in workspace.list_jobs():
print(job.id, job.details.name, job.details.output_data_uri)
Cancelamento de emprego
Quando um trabalho ainda não está em um estado final (por exemplo, succeeded
, failed
, ou cancelled
), você pode solicitar o cancelamento do trabalho. Todos os provedores cancelarão seu trabalho se ele estiver no waiting
estado. No entanto, nem todos os provedores suportam o cancelamento se o executing
seu trabalho estiver no estado.
Nota
Se você cancelar um trabalho depois que ele começar a ser executado, sua conta ainda poderá ser cobrada um valor parcial ou total por esse trabalho. Consulte a documentação de faturação do fornecedor que selecionou