Kuantum simülatörlerini yükleme ve çalıştırma QDK

Microsoft Quantum Development Kit (QDK) uzantısından vePythonQDKpaketinden Visual Studio CodeVS Codeerişebileceğiniz bir dizi kuantum simülatörü içerir. Bu simülatörler, kuantum programlarınızın gerçek kuantum donanımında nasıl çalıştığını test etmenizi sağlar. Bu makalede simülatörlerin nasıl yükleneceği ve Jupyter Notebook ve VS Code'da temel benzetimi çalıştırma işlemi açıklanmaktadır.

dört QDK kuantum simülatörü içerir:

  • Seyrek simülatör
  • Clifford simülatörü
  • GPU simülatörü
  • CPU simülatörü

Kuantum simülatörleri hakkında QDK daha fazla bilgi için bkz. içindeki QDKkuantum simülatörlerine genel bakış.

Prerequisites

Bu makaledeki adımları izlemek için aşağıdaki araçları yüklemeniz gerekir:

Simülatörleri yükleme

Dört simülatör de pakette QDKPython mevcuttur, ancak uzantıda QDKVS Code yalnızca seyrek simülatör mevcuttur.

VS Code uzantısındaki seyrek simülatörü kullanmak için, QDK için VS Code uzantısını yükleyin.

Python ve qdk içinde kuantum simülatörlerini kullanmak için, Jupyter Notebook ekstrasıyla Pythonjupyter paketinin en son sürümünü yükleyin:

pip install --upgrade "qdk[jupyter]"

jupyter Ek, simülatörleri kullanmak için gerekli değildir, ancak modülü yüklerqdk.widgets. widgets modülü, Jupyter Notebook simülasyon sonuçlarınızdan görselleştirmeler oluşturmanıza olanak tanır.

QDK için VS Code uzantısını kullanarak simülasyonlar çalıştırın

QDK için VS Code uzantısı yalnızca seyrek simülatör sağlar. Programınızı VS Code içindeki seyrek simülatörde çalıştırmak için, .qs içinde bir Q# (.qasm) veya OpenQASM (VS Code) programı açın ve dosyayı çalıştırın.

Örneğin, uzantıyla birlikte QDK gelen Q# örnek programlarından birini çalıştırmak için şu adımları izleyin:

  1. içindeVS Code, Dosya menüsünü açın ve Yeni Metin Dosyası'nı seçin.
  2. Dosyaya uzantıyla .qs biten bir ad verin.
  3. Boş dosyaya örnek girin. Eklenen kod örneklerinin listesi açılır.
  4. Bir kod örneği seçin, örneğin Bell Pair sample.
  5. Programı seyrek simülatörde çalıştırmak için Main işleminin üzerindeki kod merceğinden Çalıştır komutunu seçin.

VS Code terminali, simülasyonun çıktısını gösterir.

Note

Uzantıdaki QDK Q# programlarının seyrek simülasyonlarına sınırlı kirlilik modelleri ekleyebilirsiniz. Daha fazla bilgi için VS Code içindeki seyrek simülatöre Pauli gürültüsü ekleme bölümüne bakın.

Paketi kullanarak QDKPython simülasyonları çalıştırma

Paket dört QDKPython simülatör de sunar. Simülatörlerin nasıl çağrılacakları simülatöre ve kuantum programlama çerçevesine bağlıdır.

Seyrek simülatörü çağır

Q#, OpenQASM ve Qiskit programları için seyrek simülatörü çağırabilirsiniz. Aşağıdaki tablo, desteklenen her bir kuantum programlama çerçevesinde 10 çekim için qdk paketinden seyrek simülatörün nasıl çağrılacağını gösterir.

Programlama çerçevesi Python API Örnek çağrı
Q# qsharp.run qsharp.run("MyQsharpProgram()", shots=10)
OpenQASM openqasm.run openqasm.run(my_qasm_program, shots=10)
Qiskit qiskit.QSharpBackend QSharpBackend().run(my_qiskit_program, shots=10)

Note

Seyrek simülatöre Q# ve OpenQASM programları parametresiyle noise kirlilik modelleri ekleyebilirsiniz, ancak Qiskit programları için kirlilik modelleri ekleyemezsiniz.

Örneğin, Jupyter içinde bir VS Code not defterinde Bell çifti Q# programını çalıştırmak için şu adımları izleyin:

  1. içinde VS CodeGörünüm menüsünü açın ve Komut Paleti'ni seçin.

  2. Oluştur: Yeni Jupyter Notebook'yi girin. Boş bir not defteri dosyası yeni bir sekmede açılır.

  3. İlk hücrede, qdk paketinden qsharp modülünü içe aktarın.

    from qdk import qsharp
    
  4. Yeni bir hücrede %%qsharp , Q# kodunu yazmak için magic komutunu kullanın.

    %%qsharp
    
    operation Main() : (Result, Result) {
        use (q1, q2) = (Qubit(), Qubit());
        PrepareBellPair(q1, q2);
        (MResetZ(q1), MResetZ(q2))
    }
    
    operation PrepareBellPair(q1 : Qubit, q2 : Qubit) : Unit {
        H(q1);
        CNOT(q1, q2);
    }
    
  5. Yeni bir hücre oluşturun. Q# programını seyrek simülatörde çalıştırmak için run modülündeki qsharp işlevini çağırın ve çalıştırma sayısını belirtin.

    qsharp.run("Main()", shots=10)
    

Clifford simülatörünü çağırma

Q#, OpenQASM, Qiskit ve QIR programları için Clifford simülatörünü çağırabilirsiniz. Aşağıdaki tablo, desteklenen her kuantum programlama çerçevesinde qdk paketinden Clifford simülatörünün 10 atış için nasıl çağrılacağını gösterir.

Programlama çerçevesi Python API Örnek çağrı
Q# qsharp.run qsharp.run("MyQsharpProgram()", type='clifford', shots=10)
OpenQASM openqasm.run openqasm.run(my_qasm_program, type='clifford', shots=10)
Qiskit simulation.NeutralAtomBackend simulation.NeutralAtomBackend().run(my_qiskit_program, simulator_type='clifford', shots=10)
QIR simulation.NeutralAtomDevice simulation.NeutralAtomDevice().simulate(my_qir, type='clifford', shots=10)
QIR simulation.run_qir simulation.run_qir(my_qir, type='clifford', shots=10)

Note

ve NeutralAtomDevice API'leri NeutralAtomBackend özellikle nötr atom kuantum bilgisayarlarında simülasyonlar içindir. Daha fazla bilgi için bkz . Nötr atom cihazı simülatörüne genel bakış.

Örneğin, aşağıdaki Python kodu basit bir OpenQASM programı oluşturur ve programı Clifford simülatöründe çalıştırır:

from qdk.openqasm import run

qasm_code = """
    include "stdgates.inc";
    qubit[2] q;
    reset q;
    h q[0];
    cx q[0], q[1];
    bit c = measure q[1];
    """

run(qasm_code, type='clifford', shots=10)

GPU ve CPU simülatörlerini çağırma

Qiskit ve QIR programları için GPU ve CPU simülatörlerini çağırabilirsiniz. Aşağıdaki tabloda desteklenen kuantum programlama çerçevelerinin her birinde 10 çekim için paketten qdk GPU simülatörünü çağırma işlemi gösterilmektedir. CPU simülatörünü çağırmak için, simülatör türü parametreleri için 'gpu' öğesini 'cpu' ile değiştirin.

Programlama çerçevesi Python API Örnek çağrı
Qiskit simulation.NeutralAtomBackend simulation.NeutralAtomBackend().run(my_qiskit_program, simulator_type='gpu', shots=10)
QIR simulation.NeutralAtomDevice simulation.NeutralAtomDevice().simulate(my_qir, type='gpu', shots=10)
QIR simulation.run_qir simulation.run_qir(my_qir, type='gpu', shots=10)

Örneğin, aşağıdaki Python kodu basit bir OpenQASM programını QIR'ye dönüştürür ve GPU simülatöründe QIR'yi çalıştırır:

from qdk.openqasm import compile#, ProgramType
from qdk.simulation import run_qir

qasm_code = """
    include "stdgates.inc";
    qubit[2] q;
    reset q;
    h q[0];
    cx q[0], q[1];
    bit c = measure q[1];
    """

qir = compile(qasm_code)
run_qir(qir, type='gpu', shots=10)