Delen via


Werken met Azure Quantum-taken

Wanneer u een kwantumprogramma uitvoert in Azure Quantum, maakt en voert u een taak uit. De stappen voor het maken en uitvoeren van een taak zijn afhankelijk van het taaktype en de provider en target die u configureert voor de werkruimte.

Taakeigenschappen

Alle taken hebben de volgende eigenschappen:

Eigenschappen Description
Id Een unieke id voor de taak. Deze moet uniek zijn binnen de werkruimte.
Provider Wie u uw werk wilt laten uitvoeren.
Target Waar u uw taak op wilt uitvoeren. Bijvoorbeeld de exacte kwantumhardware of kwantumsimulator die door de provider wordt aangeboden.
Naam Een door de gebruiker gedefinieerde naam om uw taken te organiseren.
Parameters Optionele invoerparameters voor targets. Raadpleeg de documentatie voor de geselecteerde target voor een definitie van beschikbare parameters.

Zodra u een taak hebt gemaakt, zijn verschillende metagegevens beschikbaar over de status en uitvoeringsgeschiedenis.

Levenscyclus van taken

Zodra u uw kwantumprogramma hebt geschreven, kunt u een target taak selecteren en verzenden.

In dit diagram ziet u de basiswerkstroom nadat u uw taak hebt verzonden:

Azure Quantum-taakstroom

Eerst uploadt Azure Quantum de taak naar het Azure Storage-account dat u in de werkruimte hebt geconfigureerd. Vervolgens wordt de taak toegevoegd aan de taakwachtrij voor de provider die u in de taak hebt opgegeven. Azure Quantum downloadt vervolgens uw programma en vertaalt het voor de provider. De provider verwerkt de taak en retourneert de uitvoer naar Azure Storage, waar deze beschikbaar is om te downloaden.

Taken bewaken

Zodra u een taak hebt ingediend, kunt u de status van de taak controleren. Taken hebben de volgende mogelijke statussen:

-Status Description
wachten De taak wordt gewacht om uit te voeren. Bij sommige taken worden taken vooraf verwerkt in de wachtstatus. waitingis altijd de eerste status, maar een taak kan worden verplaatst naar de executing status voordat u deze kunt observeren.waiting
Uitvoeren De target taak wordt momenteel uitgevoerd.
Geslaagd De taak is voltooid en de uitvoer is beschikbaar. Dit is een definitieve status.
mislukt De taak is mislukt en foutinformatie is beschikbaar. Dit is een definitieve status.
geannuleerd De gebruiker heeft gevraagd de taakuitvoering te annuleren. Dit is een definitieve status. Zie Taakannulering in dit artikel voor meer informatie.

De succeeded, faileden cancelled statussen worden beschouwd als definitieve statussen. Zodra een taak zich in een van deze statussen bevindt, worden er geen updates meer uitgevoerd en worden de bijbehorende taakuitvoergegevens niet gewijzigd.

In dit diagram ziet u de mogelijke overgangen van de taakstatus:

Diagram van de werkstroom van een taak die wordt verzonden naar Azure Qauntum.

Nadat een taak is voltooid, wordt er een koppeling weergegeven naar de uitvoergegevens in uw Azure Storage-account. Hoe u toegang tot deze gegevens krijgt, is afhankelijk van de SDK of het hulpprogramma dat u hebt gebruikt om de taak in te dienen.

Taken bewaken

U kunt taken bewaken via Python, Azure Portal en Azure CLI.

Alle eigenschappen van de taak zijn toegankelijk in job.details. U hebt bijvoorbeeld als volgt toegang tot de taaknaam, -status en -id:

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

Aantal taken

Als u aantallen wilt ophalen die het gevolg zijn van een groot aantal taken, kunt u een lokale installatie van de Quantum Development Kit hulpprogramma's uitvoeren. Met een lokale installatie kunt u de taak-id's lokaal opslaan.

U kunt de volgende code kopiƫren om de lijst met taken en de bijbehorende resultaten op te halen:

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

Taakannulering

Wanneer een taak nog niet de laatste status heeft (bijvoorbeeld succeeded, failedof cancelled), kunt u aanvragen om de taak te annuleren. Alle providers annuleren uw taak als deze de waiting status heeft. Niet alle providers ondersteunen echter annulering als uw taak de executing status heeft.

Notitie

Als u een taak annuleert nadat deze is gestart, kan uw account nog steeds een gedeeltelijk of volledig bedrag voor die taak in rekening worden gebracht. Raadpleeg de factureringsdocumentatie voor uw geselecteerde provider