Freigeben über


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:

Azure Quantum-Auftragsfluss

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:

Diagramm, das den Workflow einer Auftragsübermittlung an Azure Qauntum zeigt.

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.detailswerden. 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.