Feladatok elküldése ide: Azure Quantum a QDKPython csomaggal

A Microsoft Quantum Development Kit (QDK) Python csomag használatával küldje be a Q#, OpenQASM, Qiskit, PennyLane és Cirq programokat a Azure Quantum részére.

Ez a cikk példákat tartalmaz a feladatok beküldésével kapcsolatban minden támogatott kvantumnyelvhez vagy -keretrendszerhez. Olyan interaktív Q# vagy OpenQASM munkafolyamat esetén, amely nem igényel Python kódot, olvassa el a Feladatok elküldése a QDK bővítményrel című témakört VS Code.

Prerequisites

  • Egy Azure-fiók, aktív előfizetéssel.

  • Egy Azure Quantum munkaterület. A munkaterület létrehozásához lásd a Munkaterület létrehozása című témakörtAzure Quantum.

  • Python 3.10 vagy újabb.

  • Ha Jupyter-jegyzetfüzetet használ, egy Jupyter-környezetet, például a Jupyter-bővítményt VS Code, illetve a ipykernel csomagot.

  • Telepítse az Azure CLI-t a quantum bővítménnyel.

    az extension add --upgrade --name quantum
    
  • Telepítse a qdkPython csomag legújabb verzióját a azure és jupyter extrákkal.

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

    Ha be szeretne küldeni egy Qiskit programot vagy Cirq programot, telepítse az és qiskit az cirq extrákat.

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

Csatlakozzon a Azure Quantum munkaterülethez

Warning

2027 Azure Quantum . január 11-től a Kvantum-munkaterület felhasználóinak kvantum-munkaterületi adatolvasó vagy Kvantum-munkaterület adatszolgáltatói szerepkörrel kell rendelkezniük a feladatok eredményeinek eléréséhez. A feladatok elküldéséhez a Quantum Workspace adat-közreműködői szerepköre szükséges. A munkafolyamatok megszakításainak Azure Quantum elkerülése érdekében a határidő előtt rendelje hozzá ezeket a szerepköröket a megfelelő felhasználókhoz. További információ: Adathozzáférési szerepkörök hozzárendelése a munkaterület felhasználói számára.

A feladat elküldése előtt csatlakoznia kell egy Azure Quantum munkaterülethez. A qdk.azure modul egy Workspace objektumot biztosít a Azure Quantum munkaterületekhez való csatlakozáshoz. A munkaterülethez való csatlakozáshoz kövesse az alábbi lépéseket.

Bejelentkezés az Azure CLI használatával

Ha még nem tette meg, jelentkezzen be Azure egy terminálból, mielőtt megnyit egy Jupyter-jegyzetfüzetet.

az login

Ha nem jelentkezik be a terminálról, minden alkalommal hitelesítenie kell magát, amikor a Kvantum-munkaterülethez csatlakozik Python. Ha a fiókja több előfizetéshez is hozzáfér, válassza ki azt az előfizetést, amely a Azure Quantum munkaterületét tartalmazza.

az account set --subscription <subscription-id>

Futtassa az login újra a munkamenet lejártakor, vagy ha másik Azure fiókot szeretne használni.

A munkaterület erőforrás-azonosítójának lekérése

  1. Jelentkezzen be a Azure portalra.
  2. Lépjen arra a Quantum-munkaterületre, ahová be szeretné küldeni a feladatát.
  3. Az Áttekintés lapon keresse meg és másolja az erőforrás-azonosítót.

Csatlakozás a munkaterülethez

  1. A Kvantum-munkaterülethez való csatlakozáshoz hozzon létre egy Workspace objektumot a másolt erőforrás-azonosítóval.

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

    Note

    Y

  2. Ellenőrizze a kapcsolatot, és tekintse meg a munkaterületen elérhető targets elemeket.

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

Egyéb kapcsolati és hitelesítési lehetőségekért lásd: Csatlakozás a Azure Quantum munkaterülethez.

Note

Az alábbi példák feladatokat küldenek a szimulátorba targets. A targets munkaterületen elérhető szolgáltatások a konfigurált szolgáltatóktól függenek.

A program előkészítése és elküldése

Válassza ki a kvantumnyelv vagy -keretrendszer lapját.

A qdk.qsharp modul használatával meghatározhatja vagy betöltheti a(z) Q# kódot, lefordíthat egy belépési pontot QIR formátumra, és elküldheti a(z) QIR elemet egy Azure Quantumtarget számára.

A Q# program definiálása és lefordítása

  1. Inicializálja a Q# elemet a Azure Quantumtarget által támogatott targetQIR profillal.

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

    A QIRtarget profilokkal kapcsolatos további információkért lásd a(z) QDKAzure QuantumQIRtarget profilok című részt.

  2. Adjon meg egy Q# műveletet. Használja például a következő RandomBit műveletet.

    qsharp.eval("""
        operation RandomBit() : Result {
            use q = Qubit();
            H(q);
            return MResetZ(q);
        }
    """)
    
  3. Tesztelje a műveletet a helyi szimulátoron.

    print(qsharp.run("RandomBit()", shots=10))
    
  4. Fordítsa le a műveletet ide: QIR.

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

A Q# feladat elküldése

  1. Válasszon ki egy kompatibilist target a munkaterületről.

    target = workspace.get_targets("rigetti.sim.qvm")
    
  2. Küldje el a lefordított programot.

    job = target.submit(program, "qsharp-job", shots=100)
    print("Job ID:", job.id)
    
  3. Várja meg, amíg a feladat befejeződik, majd kérje le az eredményeket.

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