Bahasa pemrograman apa yang tersedia untuk komputer kuantum?


53

Dari pertanyaan ini, saya mengumpulkan bahwa bahasa pemrograman komputasi kuantum utama adalah Q # dan QISKit .

Apa bahasa pemrograman lain yang tersedia untuk pemrograman komputer kuantum? Apakah ada manfaat tertentu untuk memilih yang tertentu?

EDIT: Saya mencari bahasa pemrograman, bukan emulator. Emulator mensimulasikan banyak hal. Bahasa pemrograman adalah metode penulisan instruksi (baik untuk objek nyata atau untuk emulator). Mungkin ada satu bahasa yang berfungsi untuk banyak emulator dan sebaliknya.


Saya ingin menunjukkan bahwa pada dasarnya tidak ada bahasa yang tercantum dalam jawaban yang diterima di sini yang benar-benar dapat berjalan melawan komputer kuantum yang ada. Mungkin lebih masuk akal untuk 1) mengedit pertanyaan untuk menjelaskan bahwa Anda meminta bahasa yang tidak dapat dikompilasi untuk dijalankan terhadap perangkat keras yang ada, atau 2) menerima jawaban yang berbeda.
DanielSank

1
@DanielSank Saya menerima daftar Wikipedia satu karena saya berasumsi bahwa daftar itu akan diperbarui untuk memasukkan bahasa yang benar-benar berjalan pada perangkat keras; itu akan berfungsi sebagai respons terbaik dengan asumsi bahwa Wikipedia terus memiliki halaman itu.
Pro Q

1
@ ProQ - Ada pembaruan kecil untuk jawaban saya. Selain itu, saya telah clairified bahwa jawaban saya bukan cut / paste tetapi telah memverifikasi tautan. Saya telah memperbaiki tautan yang rusak. Saya telah menambahkan situs web kontributor penting. - Saya akan kembali dari waktu ke waktu untuk memastikan bahwa jawaban ini "kira-kira hebat". Rincian tentang menjawab dan memelihara telah ditanggapi. Beberapa bahasa dalam jawaban saya berfungsi pada perangkat keras yang tersedia untuk dibeli dan digunakan secara teratur. Terima kasih untuk ProQ imanmu.
Rob

Ada juga Yao (Desain Algoritma Quantum yang Dapat Diperluas, Efisien untuk Manusia), ditulis dalam Julia, github.com/QuantumBFS/Yao.jl . Dan di sini dan di sini Anda akan menemukan perbandingan.
skan

Jawaban:


35

Daftar Wikipedia bahasa pemrograman Quantum Computer

(Jawaban ini bukan salinan halaman web itu, itu lebih diperbarui dan dengan tautan yang diverifikasi. Dalam beberapa kasus, makalah atau tautan situs web penulis ditambahkan.)

Laporan Komputasi situs web Quantum memiliki daftar laman web Alat pada lebih dari selusin tautan, beberapa baru dan beberapa mengulangi daftar di atas.

Lihat juga halaman web QuanTiki: " Daftar simulator QC ", untuk daftar besar simulator dan bahasa pemrograman berdasarkan: C / C ++, CaML, OCaml, F #, bersama dengan berbasis GUI, Jawa, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Oktaf, .NET, Perl / PHP, Python, Skema / Haskell / LISP / ML dan layanan online lainnya yang menyediakan kalkulator, kompiler, simulator, dan toolkit, dll.

Apakah ada manfaat tertentu untuk memilih yang tertentu?

Jika Anda berencana untuk menggunakan komputer kuantum tertentu maka orang akan berharap bahwa bahasa pemrograman yang dikembangkan oleh pabrikan keduanya paling cocok untuk mesin tertentu dan didukung dengan baik.

Memilih bahasa dengan pengikut yang lebih besar berarti ada lebih banyak Forum yang tersedia dan mudah-mudahan lebih banyak perbaikan dan dukungan bug.

Sayangnya, itu membuat beberapa produk niche hebat berjuang untuk mendapatkan basis pengguna. Mencoba menemukan satu bahasa yang kuat / ekspresif dan didukung di berbagai platform adalah triknya, jawabannya adalah opini ATM.

Evaluasi empat platform perangkat lunak: Hutan (pyQuil), QISKit, ProjectQ, dan Quantum Developer Kit ditawarkan oleh Ryan LaRose dalam " Gambaran Umum dan Perbandingan Platform Perangkat Lunak Kuantum Gerbang Level " (6 Jul 2018).


Pembaruan:

Cirq dan OpenFermion-Cirq Google : " Blog AI Google - Mengumumkan Cirq: Kerangka Sumber Terbuka untuk Algoritma NISQ ".

D-Wave Leap dan Samudera SDK memungkinkan akses ke D-Wave 2000Q ™ Sistem dalam lingkungan awan dengan akses ke 2000 + qubit mesin anil kuantum untuk menguji dan menjalankan beban kerja secara gratis, dengan asumsi algoritma inti yang digunakan go ke dalam kolam open source . Berlaku untuk masuk di halaman web D-Wave's Leap In .

Quantum Cloud Service (QCS) Rigetti Computing menawarkan Quantum Machine Image, pemrograman virtual, dan lingkungan eksekusi yang telah dikonfigurasikan sebelumnya dengan Forest 2.0, untuk mengakses hingga 16 qubit dari komputer 128 qubit.

Nantikan informasi tentang Digital Annealer Fujitsu , arsitektur yang mampu melakukan komputasi sekitar 10.000 kali lebih cepat daripada komputer konvensional. Jika mereka pada akhirnya menyediakan lingkungan pengembangan yang kompatibel lintas dengan komputer kuantum sejati , kedua paragraf ini akan tetap berada dalam jawaban ini, jika tidak saya akan menghapusnya.

Sementara chip silikon mereka tidak bersifat kuantum, Fujitsu telah bermitra dengan 1Qbit untuk mengembangkan apa yang digambarkan sebagai " Layanan Cloud AI Quantum Terinspirasi ", baik Digital Annealer mereka berdengung seperti bebek (anil seperti D-Wave, dan menggunakan kode yang kompatibel) masih harus dilihat. Kunjungi di sini untuk mengakses Layanan Teknis Fujitsu Digital Annealer .

QWIRE ( paduan suara ) Universitas Pennsylvania adalah bahasa sirkuit kuantum dan alat verifikasi formal, ia memiliki halaman web GitHub .

Ulasan dari: Cirq, Cliffords.jl, dimod, sistem dwave, FermiLib, Hutan (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Terra dan Aqua Qiskit, Aqua dan Tutorial Qiskit, dan Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, referensi-qvm, ScaffCC, Strawberry Fields, XACC, dan akhirnya XACC VQE ditawarkan di koran: " Perangkat lunak sumber terbuka dalam komputasi kuantum " (21 Desember 2018), oleh Mark Fingerhuth, Tomáš Babej, dan Peter Wittek.

Saya akan kembali ke jawaban ini dari waktu ke waktu untuk membuat pembaruan, tanpa benturan yang berlebihan .



Berita terkait "pemrograman": IBM mengumumkan 53 komputer Qubit tersedia bulan depan , untuk digunakan oleh publik.
Rob

28

Vendor perangkat keras model Gate telah membangun bahasa tingkat rendah mereka sendiri:

Ini memiliki tingkat python sdk yang lebih tinggi yang tersedia:

Rigetti juga membungkus bahasa mereka di perpustakaan tingkat yang lebih tinggi untuk memanggil aplikasi pra-dibangun yang disebut Grove .

Microsoft telah mengembangkan Q # untuk menjalankan melawan simulator yang ada, dan akhirnya perangkat keras fisik mereka.

Karena bahasa di atas adalah khusus vendor, manfaat utama adalah Anda dapat menjalankan program kuantum di komputer mereka.

Di luar bahasa khusus vendor adalah Scaffold yang sedang dikembangkan oleh para peneliti Princeton. Bahasa ini menarik karena mencakup rantai alat untuk menganalisis program untuk menentukan biaya, potensi kinerja, dan potensi skalabilitas.

Sunting: Project Q adalah kerangka kerja lain yang memungkinkan Anda untuk mengembangkan program menggunakan Python yang dapat berjalan pada simulator yang disertakan.

Oak Ridge National Labs telah mulai bekerja pada proyek yang disebut XACC yang dimaksudkan untuk abstrak kode khusus vendor untuk memungkinkan pengguna mengakses berbagai platform perangkat keras tanpa menduplikasi kode dalam setiap bahasa spesifik vendor.


3
projectq.ch juga layak disebutkan.
James Wootton

1
Saya suka jawaban ini karena menjelaskan bahasa apa yang sebenarnya dapat dijalankan terhadap perangkat keras yang ada .
DanielSank


3

Saya akan memasukkan Komposer IBM. Rasanya tidak seperti pemrograman karena Anda tidak mendapatkan semua bug, kesalahan, dan fungsionalitas, tetapi itu jelas mengubah instruksi Anda pada gerbang menjadi QASM dan menjalankannya pada simulator IBM nyata, atau komputer kuantum IBM nyata (pilihannya adalah pengguna).


1

Sayangnya, daftar di Quantiki cukup lama dan tidak terawat dengan baik. Bahkan daftar semua bahasa pemrograman kuantum dalam satu jawaban untuk pertanyaan ini tidak berkelanjutan karena lanskap kuantum terus berkembang. Misalnya, Google baru saja merilis Cirq , kerangka kerja pemrograman kuantum baru untuk komputer Noisy Intermediate Scale Quantum (NISQ) yang tidak ditampilkan dalam balasan di atas karena diumumkan hanya beberapa hari yang lalu.

Untuk mengatasi masalah ini dan sebagai tanggapan terhadap pertanyaan lain tentang QC StackExchange, saya memulai daftar proyek perangkat lunak sumber terbuka di GitHub yang juga mencakup tinjauan komprehensif tentang bahasa dan kerangka kerja pemrograman kuantum yang dikembangkan secara aktif. Daftar ini dikelola secara aktif oleh komunitas dan kami terus menambahkan proyek baru.


2
Ini terlihat seperti sumber yang bagus. Terima kasih! Saya ingin tahu apakah ada daftar proyek serupa lainnya yang bukan hanya open-source.
Pro Q

1
@ ProQ jujur ​​saya pikir bahwa daftar sumber terbuka mencakup> 95% dari ruang perangkat lunak kuantum. Hampir tidak ada paket sumber tertutup dengan akses publik dan Anda tidak akan peduli tentang perangkat lunak kuantum yang digunakan secara internal di dalam beberapa perusahaan tanpa akses publik.
Mark Fingerhuth
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.