Partilhar via


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

Azure Quantum Job Flow

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, failede 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:

Diagrama mostrando 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 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