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:
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. waiting is 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
, failed
en 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:
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
, failed
of 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