Share via


%azure.execute

Avviso

Questa documentazione fa riferimento alla QDK classica, sostituita dalla QDK moderna.

Il QDK moderno supporta solo il comando magic '%%qsharp'.

Riepilogo

Invia un processo a un'area di lavoro di Azure Quantum e ne attende il completamento.

Descrizione

Questo comando magic consente di inviare un'operazione o una funzione Q# da eseguire nella destinazione specificata nell'area di lavoro Azure Quantum corrente. Il comando attende un intervallo di tempo specificato per il completamento del processo prima della restituzione.

L'area di lavoro Azure Quantum deve essere stata inizializzata in precedenza usando il %azure.connect comando magic e deve essere stata specificata una destinazione di esecuzione per il processo usando il %azure.target comando magic.

Parametri obbligatori

  • Operazione Q# o nome della funzione. Questo deve essere il primo parametro e deve essere un'operazione Q# valida o un nome di funzione che è stato definito nel notebook o in un file Q# nella stessa cartella.
  • Gli argomenti per l'operazione o la funzione Q# devono essere specificati anche come key=value coppie.

Parametri facoltativi

  • jobName=<string>: nome descrittivo per identificare questo processo. Se non specificato, l'operazione Q# o il nome della funzione verranno usati come nome del processo.
  • jobParams=<JSON key:value pairs>: parametri di processo specifici del provider espressi in JSON come una o più keycoppie :value da passare alla destinazione di esecuzione. I valori devono essere stringhe.
  • shots=<integer> (default=500): numero di volte in cui ripetere l'esecuzione dell'operazione o della funzione Q# specificata.
  • timeout=<integer> (default=300): tempo di attesa (in secondi) per il completamento del processo prima che il comando magic restituisca.
  • poll=<integer> (default=5): intervallo (in secondi) per eseguire il polling dello stato del processo durante l'attesa del completamento dell'esecuzione del processo.

Possibili errori

  • NotConnected: non connesso a un'area di lavoro di Azure Quantum.
  • NoTarget: non è stata configurata alcuna destinazione di esecuzione per l'invio di processi di Azure Quantum.
  • NoOperationName: nessun nome dell'operazione Q# è stato specificato per l'invio di processi di Azure Quantum.
  • InvalidTarget: la destinazione specificata non è abilitata in questa area di lavoro. Assicurarsi che il nome di destinazione sia valido e che il provider associato venga aggiunto all'area di lavoro. Per aggiungere un provider all'area di lavoro quantistica nel portale di Azure, vedere https://aka.ms/AQ/Docs/AddProvider
  • UnrecognizedOperationName: il nome dell'operazione Q# specificato non è stato riconosciuto.
  • InvalidEntryPoint: l'operazione Q# specificata non può essere usata come punto di ingresso per l'invio di processi di Azure Quantum.
  • JobSubmissionFailed: impossibile inviare il processo all'area di lavoro Azure Quantum.
  • JobNotCompleted: il processo Azure Quantum specificato non è ancora stato completato.
  • JobOutputDownloadFailed: impossibile scaricare i risultati per il processo Azure Quantum specificato.
  • JobFailedOrCancelled: il processo Azure Quantum specificato non è riuscito o è stato annullato.

Esempi per %azure.execute

Esempio 1

Eseguire un'operazione Q# definita come operation MyOperation(a : Int, b : Int) : Result nella destinazione attiva nell'area di lavoro Azure Quantum corrente:

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>

Esempio 2

Eseguire un'operazione Q# definita come operation MyOperation(a : Int, b : Int) : Result nella destinazione attiva nell'area di lavoro Azure Quantum corrente, specificando un nome di processo personalizzato, il numero di colpi, il timeout, l'intervallo di polling e i parametri del processo specifici del provider:

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>