Übermitteln von Aufträgen an Azure Quantum mit Q#-Jupyter Notebooks

Dieses Dokument enthält eine grundlegende Anleitung für das Übermitteln und Ausführen von Q#-Anwendungen in Azure Quantum unter Verwendung von Q# Jupyter Notebooks.

Voraussetzungen

Installation

Führen Sie die folgenden Schritte aus, um Jupyter Notebook und die aktuelle Version des IQ#-Kernels zu installieren, der die Grundlage für Q# Jupyter Notebook und Python schafft.

  1. Installieren Sie Miniconda oder Anaconda.

  2. Öffnen Sie eine Anaconda-Eingabeaufforderung.

    • Wenn Sie PowerShell oder pwsh verwenden möchten: Öffnen Sie eine Shell, führen Sie conda init powershellaus, schließen Sie die Shell, und öffnen Sie sie erneut.
  3. Erstellen und aktivieren Sie eine neue Conda-Umgebung namens qsharp-env mit den erforderlichen Paketen (einschließlich Jupyter Notebook und IQ#), indem Sie die folgenden Befehle ausführen:

    conda create -n qsharp-env -c quantum-engineering qsharp notebook
    
    conda activate qsharp-env
    
  4. Führen Sie python -c "import qsharp" über das gleiche Terminal aus, um die Installation zu überprüfen und den lokalen Paketcache mit allen erforderlichen QDK-Komponenten aufzufüllen.

Sie können Q# Jupyter Notebooks und die Q#-Integration jetzt zum Ausführen von Quantenprogrammen in Azure Quantum einrichten.

Quantencomputing mit Q# Jupyter Notebooks

  1. Führen Sie jupyter notebook im Terminal aus, in dem Ihre Conda-Umgebung aktiviert ist. Dadurch wird der Notebook-Server gestartet und Jupyter in einem Browser geöffnet.

  2. Erstellen Sie Ihr Q#-Notebook (über NeuQ# ), und schreiben Sie Ihr Q#-Programm.

  3. Wenn Sie Q# zuvor noch nicht mit Jupyter verwendet haben, führen Sie die Schritte unter Erstellen Ihres ersten Q#-Notebooks aus.

  4. Schreiben Sie Ihre Q#-Operationen direkt in das Notebook. Durch Ausführen der Zellen wird der Q#-Code kompiliert und gemeldet, ob Fehler vorliegen.

    • Beispielsweise könnten Sie eine Q#-Operation schreiben, die wie folgt aussieht:

      operation GenerateRandomBit() : Result {
          use q = Qubit();
          H(q);
          let r = M(q);
          Reset(q);
          return r;
      }
      
  5. Sobald Sie Ihre Q#-Operationen definiert haben, verwenden Sie die Magic-Befehle des Typs %azure.*, um Aufträge mit Azure Quantum zu verbinden und zu übermitteln. Sie nutzen die Ressourcen-ID Ihres Azure Quantum-Arbeitsbereichs, um sich damit zu verbinden. (Die Ressourcen-ID wird auf der Seite Ihres Arbeitsbereichs im Azure-Portal angezeigt.)

    Wenn Ihr Arbeitsbereich in einer anderen Azure-Region als "USA, Westen" erstellt wurde, müssen Sie dies ebenfalls als location-Parameter für %azure.connect angeben.

    • Die folgenden Befehle verbinden sich beispielsweise mit einem Azure Quantum-Arbeitsbereich und wenden eine Operation auf das Ziel ionq.simulator an:

      %azure.connect "/subscriptions/.../Microsoft.Quantum/Workspaces/WORKSPACE_NAME" location="West US"
      
      %azure.target ionq.simulator
      
      %azure.execute GenerateRandomBit
      

      dabei ist GenerateRandomBit die Q#-Operation, die Sie bereits im Notebook definiert haben.

  6. Nach dem Übermitteln eines Auftrags können Sie seinen Status mit dem Befehl %azure.status prüfen oder seine Ergebnisse mit dem Befehl %azure.output einsehen. Mit dem Befehl %azure.jobs können Sie eine Liste aller Ihrer Aufträge anzeigen.

Einige hilfreiche Tipps zum Arbeiten mit Q# Jupyter Notebooks:

Nächste Schritte

Sie wissen nun, wie Sie Aufträge an Azure Quantum übermitteln. Daher können Sie mit unseren Beispielen arbeiten oder versuchen, eigene Projekte zu übermitteln. Insbesondere können Sie ein Beispiel verfolgen, das vollständig in einem Q# Jupyter Notebook geschrieben wurde.