Compartilhar via


Lidar com trabalhos no 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 que você configura para o workspace.

Propriedades de trabalho

Todos os trabalhos têm as seguintes propriedades em comum:

Propriedade Descrição
ID Um identificador exclusivo para o trabalho. Ele deve ser único dentro do workspace.
Provedor Quem você deseja que execute seu trabalho.
Target Onde você deseja executar seu trabalho. Por exemplo, no hardware quântico exato ou no 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 do selecionado 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 o histórico de execuções.

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 que você envia seu trabalho:

fluxo de trabalho do Azure Quantum

Primeiro, o Azure Quantum carrega o trabalho para a Conta de Armazenamento do Azure que você configurou no workspace. Em seguida, o trabalho é adicionado à fila de trabalhos para o provedor que você especificou no trabalho. Então o Azure Quantum baixa o programa e o converte para o provedor. O provedor processa o trabalho e retorna a saída para o Armazenamento do Azure, em que ele fica disponível para download.

Trabalhos de monitoramento

Depois de enviar um trabalho, você pode monitorar o status do trabalho. Os trabalhos têm os seguintes estados possíveis:

Status Descrição
em espera O trabalho está aguardando a execução. Alguns trabalhos executarão tarefas de pré-processamento no estado de espera. waiting é sempre o primeiro estado. No entanto, um trabalho pode ser movido para o estado executing para você observá-lo em waiting.
em execução O target está atualmente executando o trabalho.
succeeded O trabalho foi bem-sucedido e a saída está disponível. Esse é um estado final.
failed O trabalho falhou e as informações de erro estão disponíveis. Esse é um estado final.
cancelado O usuário solicitou o cancelamento da execução do trabalho. Esse é um estado final. Para obter mais informações, confira Cancelamento de trabalho neste artigo.

Os estados succeeded, failed e cancelled são considerados estados finais. Quando um trabalho está em um desses estados, não ocorre mais nenhuma atualização e os dados de saída do trabalho correspondentes não são alterados.

Este diagrama mostra as possíveis transições de estado de trabalho:

Diagrama que mostra o fluxo de trabalho de um envio de trabalho para o Azure Qauntum.

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 podem ser acessadas no 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

Contagens de trabalho

Para obter contagens resultantes de um grande número de trabalhos, talvez você queira 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 seguinte código 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 trabalho

Quando um trabalho ainda não está em um estado final (por exemplo, succeeded, failed ou cancelled), você pode solicitar que ele seja cancelado. Todos os provedores cancelarão o trabalho se ele estiver no estado waiting. No entanto, nem todos os provedores dão suporte ao cancelamento se o seu trabalho estiver no estado executing.

Observação

Se você cancelar um trabalho depois que ele começar a ser executado, sua conta ainda poderá ser cobrada por um valor parcial ou total para esse trabalho. Confira a documentação de cobrança para o provedor selecionado