Soumettre des tâches à Azure Quantum à l’aide du package QDKPython

Utilisez le Microsoft Quantum Development Kit package (QDK) Python pour envoyer Q#, OpenQASM, Qiskit, Cirq, et PennyLane les programmes à Azure Quantum.

Cet article fournit des exemples de soumission de travaux pour chaque langage ou infrastructure quantique pris en charge. Pour obtenir un flux de travail interactif Q# ou OpenQASM qui ne nécessite Python pas de code, consultez Envoyer des travaux avec l' QDK extension pour VS Code.

Prerequisites

  • Un compte Azure avec un abonnement actif.

  • Un Azure Quantum espace de travail. Pour en créer un, consultez Créer un Azure Quantum espace de travail.

  • Python 3.10 ou version ultérieure.

  • Si vous utilisez un notebook Jupyter, un environnement Jupyter comme l’extension Jupyter pour VS Code et le package ipykernel.

  • Installez Azure CLI avec l’extensionquantum.

    az extension add --upgrade --name quantum
    
  • Installez la dernière version du qdkPython package avec les azure et jupyter extras.

    pip install --upgrade "qdk[azure,jupyter]"
    

    Si vous souhaitez soumettre un programme Qiskit ou Cirq, installez les modules complémentaires cirq et qiskit.

    pip install --upgrade "qdk[qiskit,cirq]"
    

Se connecter à votre Azure Quantum espace de travail

Avant de soumettre un travail, vous devez vous connecter à un Azure Quantum espace de travail. Le qdk.azure module fournit l’objet Workspace pour se connecter aux Azure Quantum espaces de travail. Pour vous connecter à votre espace de travail, procédez comme suit.

Se connecter avec Azure CLI

Si vous ne l'avez pas déjà fait, connectez-vous à Azure à partir d'un terminal avant d'ouvrir un bloc-notes Jupyter.

az login

Si vous ne vous connectez pas à partir du terminal, vous devez vous authentifier chaque fois que vous vous connectez à un espace de travail Quantum via Python. Si votre compte a accès à plusieurs abonnements, définissez l’abonnement qui contient votre Azure Quantum espace de travail.

az account set --subscription <subscription-id>

Réexécutez az login lorsque la session expire ou lorsque vous souhaitez utiliser un autre compte Azure.

Obtenir l’ID de ressource de votre espace de travail

  1. Connectez-vous au portail Azure.
  2. Accédez à l’espace de travail Quantum dans lequel vous souhaitez envoyer votre travail.
  3. Dans la page Vue d’ensemble , recherchez et copiez l’ID de ressource.

Se connecter à l’espace de travail

  1. Pour vous connecter à votre espace de travail Quantum, créez un Workspace objet avec l’ID de ressource que vous avez copié.

    from qdk.azure import Workspace
    
    workspace = Workspace(resource_id="") # Add your resource ID
    

    Note

    Y

  2. Vérifiez la connexion et consultez le targets disponible dans l’espace de travail.

    for target in workspace.get_targets():
        print(target.name)
    

Pour obtenir d’autres options de connexion et d’authentification, consultez Se connecter à votre Azure Quantum espace de travail.

Note

Les exemples suivants envoient des travaux au simulateur targets. Les targets disponibles dans votre espace de travail dépendent des fournisseurs que vous avez configurés.

Préparer et soumettre votre programme

Choisissez l’onglet de votre langage ou infrastructure quantique.

Utilisez le module qdk.qsharp pour définir ou charger du code QIR, compiler un point d’entrée en QIR et soumettre le Azure Quantum à un targetQ#.

Définir et compiler le Q# programme

  1. Initialiser Q# avec un profil QIRtarget pris en charge par Azure Quantumtarget.

    from qdk import qsharp, TargetProfile
    
    qsharp.init(target_profile=TargetProfile.Base)
    

    Pour plus d’informations sur les QIRtarget profils, consultez Azure QuantumQIRtarget les profils dans le QDK.

  2. Définissez une Q# opération. Par exemple, utilisez l’opération suivante RandomBit .

    qsharp.eval("""
        operation RandomBit() : Result {
            use q = Qubit();
            H(q);
            return MResetZ(q);
        }
    """)
    
  3. Testez l’opération sur le simulateur local.

    print(qsharp.run("RandomBit()", shots=10))
    
  4. Compilez l’opération sur QIR.

    from qdk.qsharp import compile
    
    program = compile("RandomBit()")
    

Soumettre la Q# tâche

  1. Sélectionnez un(e) target compatible dans votre espace de travail.

    target = workspace.get_targets("rigetti.sim.qvm")
    
  2. Soumettez le programme compilé.

    job = target.submit(program, "qsharp-job", shots=100)
    print("Job ID:", job.id)
    
  3. Attendez que la tâche soit terminée et récupérez ses résultats.

    job.wait_until_completed()
    print("Status:", job.details.status)
    
    results = job.get_results()
    print(results)