Verwenden von Azure Quantum-Aufträgen
Wenn Sie ein Quantenprogramm in Azure Quantum ausführen, erstellen und führen Sie einen Auftrag aus. Die Schritte zum Erstellen und Ausführen eines Auftrags hängen vom Auftragstyp und vom Anbieter ab, den target Sie für den Arbeitsbereich konfigurieren.
Auftragseigenschaften
Alle Aufträge verfügen über die folgenden gemeinsamen Eigenschaften:
Eigenschaft | BESCHREIBUNG |
---|---|
ID | Ein eindeutiger Bezeichner für den Auftrag. Er muss im Arbeitsbereich eindeutig sein. |
Anbieter | Wer Ihren Auftrag ausführen soll. |
Target | Worauf Ihr Auftrag ausgeführt werden soll. Beispielsweise die genaue Quantenhardware oder der vom Anbieter bereitgestellte Quantensimulator. |
Name | Ein benutzerdefinierter Name zur Organisation Ihrer Aufträge. |
Parameter | Optionale Eingabeparameter für targets. Eine Definition der verfügbaren Parameter finden Sie in der Dokumentation target . |
Sobald Sie einen Auftrag erstellt haben, sind verschiedene Metadaten über seinen Zustand und seines Ausführungsverlauf verfügbar.
Auftragslebenszyklus
Nachdem Sie Ihr Quantenprogramm geschrieben haben, können Sie einen target Auftrag auswählen und übermitteln.
Dieses Diagramm zeigt den grundlegenden Arbeitsablauf, nachdem Sie Ihren Auftrag übermittelt haben:
Zunächst lädt Azure Quantum den Auftrag auf das Azure Storage-Konto hoch, das Sie im Arbeitsbereich konfiguriert haben. Anschließend wird der Auftrag in die Auftragswarteschlange für den Anbieter aufgenommen, den Sie im Auftrag angegeben haben. Azure Quantum lädt dann Ihr Programm herunter und übersetzt es für den Anbieter. Der Anbieter verarbeitet den Auftrag und gibt die Ausgabe an Azure Storage zurück, wo sie zum Download zur Verfügung steht.
Überwachen von Aufträgen
Nachdem Sie einen Auftrag übermittelt haben, können Sie den Status des Auftrags überwachen. Aufträge haben die folgenden möglichen Zustände:
Status | Beschreibung |
---|---|
warten | Der Auftrag wartet darauf, ausgeführt zu werden. Einige Aufträge führen Vorverarbeitungsaufgaben im Wartezustand aus. waiting ist immer der erste Zustand, jedoch kann ein Auftrag in den executing -Zustand wechseln, bevor Sie ihn in waiting . |
wird ausgeführt | Der target Auftrag wird derzeit ausgeführt. |
succeeded | Der Auftrag war erfolgreich, und die Ausgabe ist verfügbar. Dies ist der finale Zustand. |
fehlgeschlagen | Der Auftrag ist fehlgeschlagen, und es sind Fehlerinformationen verfügbar. Dies ist der finale Zustand. |
abgebrochen | Der Benutzer hat angefordert, den Auftragslauf abzubrechen. Dies ist der finale Zustand. Weitere Informationen finden Sie in diesem Artikel unter Auftragsabbruch. |
Diesucceeded
, failed
, und cancelled
Zustände werden alsEndzustände betrachtet. Sobald sich ein Auftrag in einem dieser Zustände befindet, finden keine Aktualisierungen mehr statt, und die entsprechenden Auftragsausgangsdaten ändern sich nicht mehr.
Dieses Diagramm zeigt die möglichen Auftragszustandsübergänge:
Nachdem ein Auftrag erfolgreich abgeschlossen wurde, wird ein Link zu den Ausgabedaten in Ihrem Azure Storage angezeigt. Wie Sie auf diese Daten zugreifen, hängt vom SDK oder Tool ab, mit dem Sie den Auftrag übermittelt haben.
Überwachen von Aufträgen
Sie können Aufträge über Python, die Azure-Portal und Azure CLI überwachen.
Auf alle Eigenschaften des Auftrags kann zugegriffen job.details
werden. Sie können z. B. wie folgt auf den Auftragsnamen, den Status und die ID zugreifen:
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
Auftragsanzahl
Um die Anzahl zu erhalten, die sich aus einer großen Anzahl von Aufträgen ergeben, können Sie eine lokale Installation der Quantum Development Kit Tools durchführen. Bei einer lokalen Installation können Sie die Auftrags-IDs lokal speichern.
Sie können den folgenden Code kopieren, um die Liste der Aufträge und deren Ergebnisse abzurufen:
for job in workspace.list_jobs():
print(job.id, job.details.name, job.details.output_data_uri)
Auftragsabbruch
Wenn sich ein Auftrag noch nicht in einem endgültigen Zustand befindet (z. Bsucceeded
, failed
, oder cancelled
), können Sie anfordern, den Auftrag abzubrechen. Alle Anbieter brechen Ihren Auftrag ab, wenn er sich im Zustand waiting
befindet. Allerdings unterstützen nicht alle Anbieter den Abbruch, wenn sich Ihr Auftrag im Zustand executing
befindet.
Hinweis
Wenn Sie einen Auftrag stornieren, nachdem er begonnen hat zu laufen, kann Ihrem Konto dennoch ein Teil- oder Gesamtbetrag für diesen Auftrag in Rechnung gestellt werden. Weitere Informationen finden Sie in der Abrechnungsdokumentation Ihres ausgewählten Anbieters.