%azure.execute

Warnung

Diese Dokumentation bezieht sich auf das klassische QDK, das durch das moderne QDK ersetzt wurde.

Das moderne QDK unterstützt nur den Magic-Befehl "%%qsharp".

Zusammenfassung

Übermittelt einen Auftrag an einen Azure Quantum-Arbeitsbereich und wartet auf den Abschluss.

BESCHREIBUNG

Mit diesem magic-Befehl können Sie einen Q#-Vorgang oder eine Q#-Funktion übermitteln, die für das angegebene Ziel im aktuellen Azure Quantum-Arbeitsbereich ausgeführt werden soll. Der Befehl wartet eine bestimmte Zeit, bis der Auftrag abgeschlossen ist, bevor er zurückgegeben wird.

Der Azure Quantum-Arbeitsbereich muss zuvor mit dem %azure.connect magic-Befehl initialisiert worden sein, und ein Ausführungsziel für den Auftrag muss mit dem %azure.target magic-Befehl angegeben worden sein.

Erforderliche Parameter

  • Q#-Vorgangs- oder Funktionsname. Dies muss der erste Parameter sein und ein gültiger Q#-Vorgangs- oder Funktionsname sein, der entweder im Notebook oder in einer Q#-Datei im selben Ordner definiert wurde.
  • Argumente für den Q#-Vorgang oder die Q#-Funktion müssen auch als key=value Paare angegeben werden.

Optionale Parameter

  • jobName=<string>: Anzeigename zum Identifizieren dieses Auftrags. Wenn nicht angegeben, wird der Q#-Vorgang oder Funktionsname als Auftragsname verwendet.
  • jobParams=<JSON key:value pairs>: Anbieterspezifische Auftragsparameter, die in JSON als ein oder keymehrere Paare ausgedrückt werden,value die an das Ausführungsziel übergeben werden sollen. Werte müssen Zeichenfolgen sein.
  • shots=<integer> (default=500): Anzahl der Wiederholungen der Ausführung des angegebenen Q#-Vorgangs oder der angegebenen Funktion.
  • timeout=<integer> (default=300): Wartezeit (in Sekunden) auf die Auftragserledigung, bevor der Magic-Befehl zurückgegeben wird.
  • poll=<integer>(default=5): Intervall (in Sekunden), um den Auftrag status abzufragen, während auf den Abschluss der Auftragsausführung gewartet wird.

Mögliche Fehler:

  • NotConnected: Mit keinem Azure Quantum-Arbeitsbereich verbunden.
  • NoTarget: Für die Übermittlung von Azure Quantum-Aufträgen wurde kein Ausführungsziel konfiguriert.
  • NoOperationName: Für die Übermittlung von Azure Quantum-Aufträgen wurde kein Q#-Vorgangsname angegeben.
  • InvalidTarget: Das angegebene Ziel ist in diesem Arbeitsbereich nicht aktiviert. Stellen Sie sicher, dass der Zielname gültig ist und der zugehörige Anbieter Ihrem Arbeitsbereich hinzugefügt wird. Informationen zum Hinzufügen eines Anbieters zu Ihrem Quantenarbeitsbereich im Azure-Portal finden Sie unter https://aka.ms/AQ/Docs/AddProvider
  • UnrecognizedOperationName: Der angegebene Name des Q#-Vorgangs wurde nicht erkannt.
  • InvalidEntryPoint: Der angegebene Q#-Vorgang kann nicht als Einstiegspunkt für die Übermittlung von Azure Quantum-Aufträgen verwendet werden.
  • JobSubmissionFailed: Fehler beim Übermitteln des Auftrags an den Azure Quantum-Arbeitsbereich.
  • JobNotCompleted: Der angegebene Azure Quantum-Auftrag wurde noch nicht abgeschlossen.
  • JobOutputDownloadFailed: Fehler beim Herunterladen der Ergebnisse für den angegebenen Azure Quantum-Auftrag.
  • JobFailedOrCancelled: Der angegebene Azure Quantum-Auftrag ist fehlgeschlagen oder wurde abgebrochen.

Beispiele für %azure.execute

Beispiel 1

Führen Sie einen Q#-Vorgang aus, der für operation MyOperation(a : Int, b : Int) : Result das aktive Ziel im aktuellen Azure Quantum-Arbeitsbereich definiert ist:

In []: %azure.execute MyOperation a=5 b=10
Out[]: Submitting MyOperation to target provider.qpu...
       Job successfully submitted for 500 shots.
          Job name: MyOperation
          Job ID: <Azure Quantum job ID>
       Waiting up to 300 seconds for Azure Quantum job to complete...
       [1:23:45 PM] Current job status: Waiting
       [1:23:50 PM] Current job status: Executing
       [1:23:55 PM] Current job status: Succeeded
       <detailed results of completed job>

Beispiel 2

Führen Sie einen Q#-Vorgang aus, der für operation MyOperation(a : Int, b : Int) : Result das aktive Ziel im aktuellen Azure Quantum-Arbeitsbereich definiert ist, und geben Sie einen benutzerdefinierten Auftragsnamen, die Anzahl der Aufnahmen, ein Timeout, ein Abfrageintervall und anbieterspezifische Auftragsparameter an:

In []: %azure.submit MyOperation a=5 b=10 jobName="My job" shots=100 timeout=60 poll=10 jobParams={"Key1":"Val1","Key2":"Val2"}
Out[]: Submitting MyOperation to target provider.qpu...
       Job successfully submitted for 100 shots.
          Job name: My job
          Job ID: <Azure Quantum job ID>
       Waiting up to 60 seconds for Azure Quantum job to complete...
       [1:23:45 PM] Current job status: Waiting
       [1:23:55 PM] Current job status: Waiting
       [1:24:05 PM] Current job status: Executing
       [1:24:15 PM] Current job status: Succeeded
       <detailed results of completed job>