Übermitteln von Aufträgen an Azure Quantum mit der Befehlszeilenschnittstelle

In diesem Leitfaden erfahren Sie, wie Sie Aufträge mithilfe der Befehlszeilenschnittstelle (CLI) an Azure Quantum übermitteln.

Voraussetzungen

Auf Ihrem Computer muss Folgendes installiert sein:

Übermitteln eines Auftrags an Azure Quantum mit der Azure CLI

Diese Schritte veranschaulichen, wie Sie mit der Azure CLI eine Q#-Anwendung ausführen und einen der Anbieter des Azure Quantum-Arbeitsbereichs auswählen.

Hinweis

Ein Anbieter ist ein Quantenpartnerdienst, der aus Quantenhardware, einem Simulator oder einem Optimierungsdienst besteht.

  1. Melden Sie sich mit Ihren Anmeldeinformationen bei Azure an.

    az login
    

Hinweis

Falls Ihrem Azure-Konto mehrere Abonnements zugeordnet sind, müssen Sie das Abonnement angeben, das Sie verwenden möchten. Hierzu können Sie den Befehl az account set -s <Your subscription ID> verwenden.

  1. Mit dem folgenden Befehl können Sie alle Azure Quantum-Arbeitsbereiche in Ihrem Abonnement anzeigen:

    az quantum workspace list
    
  2. Mit dem Befehl quantum workspace set können Sie einen Standardarbeitsbereich auswählen, den Sie zum Auflisten und Übermitteln von Aufträgen verwenden möchten. Beachten Sie, dass Sie auch die Ressourcengruppe angeben müssen, z. B.:

    az quantum workspace set -g MyResourceGroup -w MyWorkspace -o table
    
    Location     Name                               ResourceGroup
    -----------  ---------------------------------  --------------------------------
    westus       ws-yyyyyy                          rg-yyyyyyyyy
    
    

Tipp

Mit dem Befehl az quantum workspace show -o table können Sie den aktuellen Arbeitsbereich überprüfen.

  1. In Ihrem Azure Quantum-Arbeitsbereich sind verschiedene Ziele vorhanden, die von den Anbietern verfügbar sind, die Sie beim Erstellen des Arbeitsbereichs hinzugefügt haben. Sie können eine Liste aller verfügbaren Ziele mit dem Befehl az quantum target list -o table anzeigen:

    az quantum target list -o table
    
       Provider    Target-id                                       Status     Average Queue Time
    ----------  ----------------------------------------------  ---------  --------------------
    Microsoft   microsoft.paralleltempering-parameterfree.cpu   Available  0
    Microsoft   microsoft.paralleltempering.cpu                 Available  0
    Microsoft   microsoft.simulatedannealing-parameterfree.cpu  Available  0
    Microsoft   microsoft.simulatedannealing.cpu                Available  0
    Microsoft   microsoft.paralleltempering.fpga                Available  0
    Microsoft   microsoft.simulatedannealing.fpga               Available  0
    ionq        ionq.qpu                                        Available  0
    ionq        ionq.simulator                                  Available  0
    
  2. Um einen neuen Auftrag zu übermitteln, navigieren Sie über die Befehlszeile zum Verzeichnis mit Ihrem Projekt, und übermitteln Sie den Auftrag. Verwenden Sie den Befehl az quantum job submit. Sie müssen das Ziel angeben, auf dem Sie den Auftrag ausführen möchten, z. B.:

    az quantum job submit --target-id MyProvider.MyTarget
    Id                                    State    Target               Submission time
    ------------------------------------  -------  -------------------  ---------------------------------
    yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  Waiting  MyProvider.MyTarget  2020-06-12T14:20:18.6109317+00:00
    

    Die Konsole gibt die Auftragsinformationen aus, einschließlich der Auftrags-ID.

  3. Sie können anhand der Auftrags-ID den Status des Auftrags nachverfolgen:

    az quantum job show -j yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy -o table
    Id                                    State      Target               Submission time
    ------------------------------------  ---------  -------------------  ---------------------------------
    yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  Succeeded  MyProvider.MyTarget  2020-06-12T14:20:19.819981+00:00
    

Tipp

Um alle Aufträge im Arbeitsbereich anzuzeigen, verwenden Sie den Befehl az quantum job list -o table.

  1. Zeigen Sie nach Abschluss des Auftrags die Ergebnisse des Auftrags mit dem Befehl az quantum job output an:

     az quantum job output -j yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy -o table
    
     Result    Frequency
     --------  -----------  -------------------------
     [0,0]     0.00000000                           |
     [1,0]     0.50000000   ▐███████████            |
     [0,1]     0.25000000   ▐█████                  |
     [1,1]     0.25000000   ▐█████                  |
    

Tipp

Verwenden Sie den Befehl az quantum execute --target-id MyProvider.MyTarget, wenn Sie einen Auftrag synchron übermitteln möchten, um z. B. zu warten, bis der Auftrag abgeschlossen ist, und die Ergebnisse anzuzeigen.

Beispiel

Schreiben Ihrer Quantenanwendung

Zunächst benötigen Sie die Q#-Quantenanwendung, die in Azure Quantum ausgeführt werden soll.

Tipp

Wenn Sie zum ersten Mal eine Q#-Quantenanwendungen erstellen, ziehen Sie unser Microsoft Learn-Modul zurate.

In diesem Fall verwenden wir einen einfachen Quanten-Zufallsbit-Generator (Quantum Random Bit Generator). Erstellen Sie ein Q#-Projekt, und ersetzen Sie den Inhalt von Program.qs durch den folgenden Code:

namespace RandomBit {

    open Microsoft.Quantum.Canon;
    open Microsoft.Quantum.Intrinsic;
    open Microsoft.Quantum.Measurement;

    @EntryPoint()
    operation GenerateRandomBit() : Result {
        use q = Qubit();
        H(q);
        return MResetZ(q);
    }
}

Beachten Sie, dass das @EntryPoint-Attribut festlegt, welche Operation beim Starten des Programms ausgeführt werden soll.

Übermitteln des Auftrags

In diesem Beispiel verwenden wir IonQ als Anbieter und den ionq.simulator als Ziel. Um den Auftrag an den derzeit ausgewählten Standardarbeitsbereich zu übermitteln, verwenden Sie den Befehl az quantum job submit:

Wichtig

Stellen Sie sicher, dass die *.csproj-Datei die Quantum SDK-Version 0.11.2006.403 oder höher aufweist. Andernfalls kann es zu einem Kompilierungsfehler kommen.

az quantum job submit --target-id ionq.simulator --job-name ExampleJob -o table

Name   Id                                    Status    Target          Submission time
-----  ------------------------------------  --------  --------------  ---------------------------------
ExampleJob   yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  Waiting   ionq.simulator  2020-06-17T17:07:07.3484901+00:00

Sobald der Auftrag abgeschlossen ist (d. h., wenn sein Status Erfolgreich lautet), verwenden Sie den Befehl az quantum job output, um die Ergebnisse anzuzeigen:

az quantum job output -j yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy -o table

Result    Frequency
--------  -----------  -------------------------
[0,0]     0.50000000   ▐███████████            |
[0,1]     0.50000000   ▐███████████            |

Die Ausgabe zeigt ein Histogramm der Häufigkeit eines bestimmten Ergebnisses an. Im obigen Beispiel wurde das Ergebnis [0,1] in 50 % der Fälle festgestellt.

Optional können Sie mit dem Befehl az quantum execute die Ergebnisse einer Ausführung sowohl übermitteln als auch zurückgeben.

az quantum execute --target-id ionq.simulator --job-name ExampleJob2 -o table
.....
Result    Frequency
--------  -----------  -------------------------
[0,0]     0.50000000   ▐███████████            |
[0,1]     0.50000000   ▐███████████            |

Beachten Sie, dass der IonQ-Simulator die Wahrscheinlichkeiten für das Erhalten der jeweiligen Ausgabe angibt, wenn der Algorithmus unendlich oft ausgeführt wird. In diesem Fall wird angegeben, dass die Wahrscheinlichkeit der Messung jedes Zustands 50 % beträgt.

Tipp

Sie können auch im Azure-Portal den Status Ihrer Aufträge überprüfen.

Nächste Schritte

Nachdem Sie nun wissen, wie Sie Aufträge für Azure Quantum übermitteln, können Sie mit unseren Beispielen arbeiten oder versuchen, eigene Projekte zu übermitteln.