Python Azure Quantum paketi ile işleri QDK adresine gönderme

Qiskit, PennyLane, Azure Quantum, Q# ve QDK programlarını Python’e göndermek için Microsoft Quantum Development Kit (OpenQASM) Cirq paketini kullanın.

Bu makalede, desteklenen her kuantum dili veya çerçevesi için iş gönderme örnekleri sağlanır. OpenQASM kodu gerektirmeyen etkileşimli bir Python veya Q# iş akışı için, QDK için VS Code uzantısıyla iş gönderme bölümüne bakın.

Prerequisites

  • Aktif bir aboneliğe sahip bir Azure hesabı.

  • Çalışma Azure Quantum alanı. Bir çalışma alanı oluşturmak için bkz. Çalışma alanı oluşturmaAzure Quantum.

  • Python 3.10 veya daha yeni sürüm.

  • Jupyter not defteri kullanıyorsanız, VS Code gibi bir Jupyter ortamı ve paketi kullanın.

  • quantum'yi uzantısıyla yükleyin.

    az extension add --upgrade --name quantum
    
  • qdk ve Python ekleriyle jupyterazure paketinin en son sürümünü yükleyin.

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

    Bir Qiskit veya qiskit programı göndermek istiyorsanız, cirq ve Cirq eklentilerini yükleyin.

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

Çalışma alanınıza Azure Quantum bağlanma

Warning

11 Ocak 2027'den itibaren, Azure Quantum bir Quantum çalışma alanında kullanıcıların iş sonuçlarına erişmek için Quantum Çalışma Alanı Veri Okuyucusu veya Kuantum Çalışma Alanı Veri Katkıda Bulunanı rolüne sahip olması gerekir. İş göndermek için Quantum Çalışma Alanı Veri Katkıda Bulunanı rolüne sahip olmanız gerekir. İş akışlarınızda Azure Quantum kesinti yaşanmasını önlemek için bu rolleri son tarihten önce uygun kullanıcılara atayın. Daha fazla bilgi için bkz. Çalışma alanında kullanıcılar için veri erişim rolleri atama.

bir iş göndermeden önce bir Azure Quantum çalışma alanına bağlanmanız gerekir. qdk.azure modülü, Workspace çalışma alanlarına bağlanmak için Azure Quantum nesnesini sağlar. Çalışma alanınıza bağlanmak için aşağıdaki adımları izleyin.

Azure CLI ile oturum açma

Henüz açmadıysanız, Jupyter not defterini açmadan önce terminalden Azure oturum açın.

az login

Terminal üzerinden oturum açmazsanız, Python aracılığıyla bir Quantum çalışma alanına her bağlandığınızda kimlik doğrulaması yapmanız gerekir. Hesabınızın birden çok aboneliğe erişimi varsa, çalışma alanınızı Azure Quantum içeren aboneliği ayarlayın.

az account set --subscription <subscription-id>

Oturumun süresi dolduğunda veya farklı bir Azure hesabı kullanmak istediğinizde yeniden çalıştırınaz login.

Çalışma alanınızın kaynak kimliğini alma

  1. Azure portalınaoturum açın.
  2. İşinizi göndermek istediğiniz Quantum çalışma alanına gidin.
  3. Genel Bakış sayfasında Kaynak Kimliğini bulun ve kopyalayın.

Çalışma alanına bağlanma

  1. Quantum çalışma alanınıza bağlanmak için kopyaladığınız kaynak kimliğine sahip bir Workspace nesne oluşturun.

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

    Note

    Y

  2. Bağlantıyı doğrulayın ve çalışma alanında kullanılabilen targets öğesini görüntüleyin.

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

Diğer bağlantı ve kimlik doğrulama seçenekleri için bkz. Çalışma alanınıza Azure Quantum bağlanma.

Note

Aşağıdaki örnekler işleri simülatöre targets gönderir. Çalışma alanınızda kullanılabilen targets, yapılandırdığınız sağlayıcılara bağlıdır.

Programınızı hazırlama ve gönderme

Kuantum diliniz veya çerçeveniz için sekmeyi seçin.

qdk.qsharp modülünü, Q# kodunu tanımlamak veya yüklemek, bir giriş noktasını QIR olarak derlemek ve Azure Quantum öğesini bir targetQIR öğesine göndermek için kullanın.

Q# programını tanımlayın ve derleyin

  1. target Q# öğesinin desteklediği bir targetQIR profili ile Azure Quantum öğesini başlatın.

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

    QIR target profilleri hakkında daha fazla bilgi için, QDKAzure QuantumQIR profilleri için target bölümüne bakın.

  2. bir Q# işlem tanımlayın. Örneğin, aşağıdaki RandomBit işlemi kullanın.

    qsharp.eval("""
        operation RandomBit() : Result {
            use q = Qubit();
            H(q);
            return MResetZ(q);
        }
    """)
    
  3. İşlemi yerel simülatörde test edin.

    print(qsharp.run("RandomBit()", shots=10))
    
  4. İşlemi QIR olarak derleyin.

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

Q# İşi gönder

  1. Çalışma alanınızdan uyumlu target seçin.

    target = workspace.get_targets("rigetti.sim.qvm")
    
  2. Derlenmiş programı gönderin.

    job = target.submit(program, "qsharp-job", shots=100)
    print("Job ID:", job.id)
    
  3. İşin tamamlanmasını bekleyin ve sonuçlarını alın.

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