Simulator Sirkuit Quantum QSIM dan QSIMH. Simulator ini digunakan untuk pembandingan entropi silang di [1].
[1], F. Arute et al, "Supremasi kuantum menggunakan prosesor superkonduktor yang dapat diprogram", Nature 574, 505, (2019).
QSIM adalah simulator vektor negara Schrödinger penuh. Ini menghitung semua amplitudo 2 N dari vektor negara, di mana n adalah jumlah qubit. Pada dasarnya, simulator melakukan multiplikasi matriks-vektor berulang kali. Satu multiplikasi matriks-vektor sesuai dengan penerapan satu gerbang. Total runtime sebanding dengan G2 N , di mana G adalah jumlah gerbang 2-qubit. Untuk mempercepat simulator, kami menggunakan Gate Fusion [2] [3], aritmatika presisi tunggal, instruksi AVX/FMA untuk vektorisasi dan openMP untuk multi-threading.
[2] M. Smelyanskiy, NP Sawaya, A. Aspuru-Guzik, "Qhipster: Lingkungan Pengujian Perangkat Lunak Kinerja Tinggi Kuantum", ARXIV: 1601.07195 (2016).
[3] T. Häner, DS Steiger, "0.5 Simulasi Petabyte dari sirkuit kuantum 45-qubit", Arxiv: 1704.01127 (2017).
Qsimh adalah simulator Schrödinger-Feynman hybrid [4]. Kisi-kisi dibagi menjadi dua bagian dan dekomposisi Schmidt digunakan untuk menguraikan gerbang 2-ubit pada potongan. Jika peringkat schmidt dari masing -masing gerbang adalah M dan jumlah gerbang pada potongan adalah k maka ada jalur m k . Untuk mensimulasikan sirkuit dengan kesetiaan satu, seseorang perlu mensimulasikan semua jalur M K dan menjumlahkan hasilnya. Total runtime sebanding dengan (2 N 1 + 2 n 2 ) m k , di mana n 1 dan n 2 adalah angka qubit di bagian pertama dan kedua. Simulasi jalur tidak tergantung satu sama lain dan dapat diparalelkan secara sepele untuk dijalankan pada superkomputer atau di pusat data. Perhatikan bahwa seseorang dapat menjalankan simulasi dengan Fidelity f <1 hanya dengan menjumlahkan sebagian kecil dari semua jalur.
Skema pos pemeriksaan dua level digunakan untuk meningkatkan kinerja. Katakanlah, ada gerbang K pada potongan. Kami membagi itu menjadi tiga bagian: p+r+s = k , di mana p adalah jumlah gerbang "awalan", r adalah jumlah gerbang "root" dan S adalah jumlah gerbang "sufiks". Pos pemeriksaan pertama dieksekusi setelah menerapkan semua gerbang hingga dan termasuk gerbang awalan dan pos pemeriksaan kedua dieksekusi setelah menerapkan semua gerbang hingga dan termasuk gerbang root. Penjumlahan penuh atas semua jalur untuk root dan gerbang akhiran dilakukan.
Jika P> 0 maka satu simulasi tersebut memberikan F ≈ M -P (untuk semua gerbang awalan yang memiliki peringkat schmidt yang sama m ). Seseorang perlu menjalankan simulasi M P dengan jalur awalan yang berbeda dan menjumlahkan hasil untuk mendapatkan f = 1 .
[4] IL Markov, A. Fatima, SV Isakov, S. Boixo, "Supremasi Quantum lebih dekat dan lebih jauh dari yang terlihat", Arxiv: 1807.10749 (2018).
Kode ini pada dasarnya dirancang sebagai perpustakaan. Pengguna dapat memodifikasi aplikasi sampel di aplikasi untuk memenuhi kebutuhan mereka sendiri. Penggunaan aplikasi sampel dijelaskan dalam dokumen.
Format input sirkuit dijelaskan dalam dokumen.
Catatan: Format ini sudah usang, dan tidak lagi dipertahankan secara aktif.
Sejumlah sirkuit sampel disediakan dalam sirkuit.
Uji unit untuk pustaka C ++ menggunakan kerangka kerja tes Google, dan terletak di tes. Tes Python menggunakan pytest, dan terletak di qsimcirq_tests.
Untuk membangun dan menjalankan semua tes, jalankan:
make run-tests
Ini akan menyusun semua binari uji ke file dengan ekstensi .x , dan menjalankan setiap tes secara seri. Pengujian akan berhenti lebih awal jika tes gagal. Ini juga akan menjalankan tes antarmuka qsimcirq Python. Untuk menjalankan tes C ++ atau Python saja, Run make run-cxx-tests atau make run-py-tests , masing-masing.
Untuk membersihkan file uji yang dihasilkan, jalankan make clean dari direktori tes.
CIRQ adalah kerangka kerja untuk pemodelan dan memohon sirkuit quantum skala menengah yang berisik (NISQ).
Untuk mulai mensimulasikan sirkuit Google Cirq dengan QSIM, lihat tutorial.
Informasi lebih rinci tentang API QSIM-CIRQ dapat ditemukan di dokumen.
Ini bukan produk Google yang didukung secara resmi.
QSIM diunggah ke Zenodo secara otomatis. Klik lencana ini untuk melihat semua format kutipan untuk semua versi.
Referensi format Bibtex yang setara di bawah ini untuk semua versi:
@software{quantum_ai_team_and_collaborators_2020_4023103,
author = {Quantum AI team and collaborators},
title = {qsim},
month = Sep,
year = 2020,
publisher = {Zenodo},
doi = {10.5281/zenodo.4023103},
url = {https://doi.org/10.5281/zenodo.4023103}
}