Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
- Python ve Pip bulunan bir Python ortamı (sürüm 3.10 veya üzeri)
- Visual Studio Code'ün en son sürümü (VS Code)
- Python içindeki Jupyter ve VS Code en son sürümleri
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:
- içindeVS Code, Dosya menüsünü açın ve Yeni Metin Dosyası'nı seçin.
- Dosyaya uzantıyla
.qsbiten bir ad verin. - Boş dosyaya örnek girin. Eklenen kod örneklerinin listesi açılır.
- Bir kod örneği seçin, örneğin Bell Pair sample.
- 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:
içinde VS CodeGörünüm menüsünü açın ve Komut Paleti'ni seçin.
Oluştur: Yeni Jupyter Notebook'yi girin. Boş bir not defteri dosyası yeni bir sekmede açılır.
İlk hücrede,
qdkpaketindenqsharpmodülünü içe aktarın.from qdk import qsharpYeni 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); }Yeni bir hücre oluşturun. Q# programını seyrek simülatörde çalıştırmak için
runmodülündekiqsharpiş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)