Quali linguaggi di programmazione sono disponibili per i computer quantistici?


53

Da questa domanda, ho raccolto che i principali linguaggi di programmazione di calcolo quantistico sono Q # e QISKit .

Quali altri linguaggi di programmazione sono disponibili per la programmazione di computer quantistici? Ci sono alcuni vantaggi nella scelta di quelli particolari?

EDIT: sto cercando linguaggi di programmazione, non emulatori. Gli emulatori simulano le cose. I linguaggi di programmazione sono un metodo per scrivere istruzioni (sia per oggetti reali che per emulatori). Potrebbe esserci un'unica lingua che funziona per più emulatori e viceversa.


Vorrei sottolineare che essenzialmente nessuna delle lingue elencate nella risposta accettata qui può effettivamente essere eseguita su un computer quantistico esistente. Potrebbe avere più senso 1) modificare la domanda per chiarire che stai chiedendo lingue che non possono essere compilate per essere eseguite su hardware esistente, oppure 2) accettare una risposta diversa.
DanielSank

1
@DanielSank Ho accettato l'elenco di Wikipedia uno perché ho pensato che quell'elenco fosse aggiornato per includere le lingue che effettivamente funzionano su hardware; servirà come la migliore risposta supponendo che Wikipedia continui ad avere quella pagina.
Pro Q

1
@ProQ - C'è un piccolo aggiornamento alla mia risposta. Inoltre, ho dichiarato che la mia risposta non è taglia / incolla ma ha verificato i collegamenti. Ho corretto un link non funzionante. Ho aggiunto un sito Web di un collaboratore importante. - Di tanto in tanto tornerò per assicurarmi che questa risposta sia "approssimativamente ottima". I dettagli sulla risposta e il mantenimento sono stati affrontati. Alcune delle lingue nella mia risposta funzionano su hardware disponibile per l'acquisto e vengono utilizzate regolarmente. Grazie per la tua fiducia ProQ.
Rob,

C'è anche Yao (Extensible, Efficient Quantum Algorithm Design for Humans), scritto in Julia, github.com/QuantumBFS/Yao.jl . E qui e qui troverai un confronto.
skan

Risposte:


35

Elenco Wikipedia dei linguaggi di programmazione quantistica per computer

(Questa risposta non è una copia di quella pagina Web, è più aggiornata e con collegamenti verificati. In alcuni casi viene aggiunto il documento dell'autore o il collegamento al sito Web.)

Il Rapporto di calcolo quantistico del sito Web ha un elenco di pagine Web Strumenti su una dozzina di collegamenti, alcuni nuovi e alcuni che ripetono l'elenco sopra.

Vedi anche la pagina web di QuanTiki: " Elenco di simulatori di controllo qualità ", per un vasto elenco di simulatori e linguaggi di programmazione basati su: C / C ++, CaML, OCaml, F #, insieme a GUI, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML e altri servizi online che forniscono calcolatori, compilatori, simulatori e toolkit, ecc.

Ci sono alcuni vantaggi nella scelta di quelli particolari?

Se si prevede di utilizzare un determinato computer quantistico, si spera che il linguaggio di programmazione sviluppato dal produttore sia più adatto a quella particolare macchina e ben supportato.

Scegliere una lingua con un seguito più ampio significa che ci sono più forum disponibili e si spera più correzioni di bug e supporto.

Sfortunatamente, ciò lascia alcuni grandi prodotti di nicchia a lottare per ottenere una base di utenti. Cercare di trovare una lingua che sia potente / espressiva e supportata su varie piattaforme è il trucco, la risposta è un parere ATM.

Una valutazione di quattro piattaforme software: Forest (pyQuil), QISKit, ProjectQ e Quantum Developer Kit è offerta da Ryan LaRose in " Panoramica e confronto delle piattaforme software Quantum a livello di gate " (6 luglio 2018).


aggiornamenti:

Cirq di Google e OpenFermion-Cirq: " Blog AI di Google - Annuncio di Cirq: un framework open source per algoritmi NISQ ".

L' SDK Leap and Ocean di D-Wave consente l'accesso a un sistema D-Wave 2000Q ™ in un ambiente cloud con accesso a una macchina di ricottura quantistica 2000+ qubit per testare ed eseguire gratuitamente i carichi di lavoro, supponendo che gli algoritmi core utilizzati vadano nel pool open source . Richiedi l'accesso alla pagina web di D-Wave's Leap In .

Il Quantum Cloud Service (QCS) di Rigetti Computing offre una Quantum Machine Image, un ambiente di programmazione ed esecuzione virtualizzato preconfigurato con Forest 2.0, per accedere a un massimo di 16 qubit di un computer a 128 qubit.

Restate sintonizzati per informazioni su Digital Annealer di Fujitsu , un'architettura in grado di eseguire calcoli circa 10.000 volte più veloce di un computer convenzionale. Se alla fine forniscono un ambiente di sviluppo che è cross-compatibile con veri computer quantistici, questi due paragrafi rimarranno in questa risposta, altrimenti li rimuoverò.

Sebbene il loro chip di silicio non sia di natura quantistica, Fujitsu ha stretto una partnership con 1Qbit per sviluppare quello che è descritto come un " servizio di cloud AI di Quantum Inspired ", indipendentemente dal fatto che il suo Digital Annealer ceda come un'anatra (ricotta come una D-Wave e utilizza un codice compatibile) resta da vedere. Visita qui per accedere al servizio tecnico di ricottura digitale Fujitsu .

Il QWIRE ( coro ) dell'Università della Pennsylvania è un linguaggio circuitale quantistico e uno strumento di verifica formale, ha una pagina web GitHub .

Una recensione di: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra and Aqua, Qiskit Tutorials e Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC e infine XACC VQE sono offerti nel documento: " Software open source nell'informatica quantistica " (21 dicembre 2018), di Mark Fingerhuth, Tomáš Babej e Peter Wittek.

Di tanto in tanto tornerò a questa risposta per effettuare aggiornamenti, senza eccessivo urto .



Sorta di notizie relative alla "programmazione": IBM annuncia 53 computer Qubit disponibili il mese prossimo , per l'uso da parte del pubblico.
Rob,

28

I fornitori di hardware del modello Gate hanno sviluppato le proprie lingue di basso livello:

Sono disponibili sdk di Python di livello superiore:

Rigetti sta anche racchiudendo il proprio linguaggio in una libreria di livello superiore per chiamare applicazioni pre-costruite chiamate Grove .

Microsoft ha sviluppato Q # per funzionare con il loro simulatore esistente e, infine, con il loro hardware fisico.

Poiché le lingue sopra sono specifiche del fornitore, il vantaggio principale è che puoi eseguire programmi quantistici sui loro computer.

Al di fuori delle lingue specifiche del fornitore è Scaffold che viene sviluppato dai ricercatori di Princeton. Questo linguaggio è interessante in quanto include una toolchain per l'analisi dei programmi per determinare costi, potenziale di prestazioni e potenziale di scalabilità.

Modifica: Project Q è un altro framework che consente di sviluppare programmi utilizzando Python che può essere eseguito su un simulatore incluso.

Oak Ridge National Labs ha iniziato a lavorare su un progetto chiamato XACC che ha lo scopo di astrarre il codice specifico del fornitore per consentire agli utenti l'accesso alle varie piattaforme hardware senza duplicare il codice in ogni lingua specifica del fornitore.


3
Anche projectq.ch merita una menzione.
James Wootton,

1
Mi piace questa risposta perché spiega quali lingue possono effettivamente essere eseguite su hardware esistente .
DanielSank


3

Includerei Composer di IBM. Non ha voglia di programmare perché non ottieni tutti i bug, gli errori e la funzionalità, ma converte chiaramente le tue istruzioni sui gate in QASM e le esegue su un vero simulatore IBM o un vero computer quantistico IBM (la scelta è l'utente).


1

Sfortunatamente, l'elenco su Quantiki è piuttosto vecchio e non ben mantenuto. Anche elencare tutti i linguaggi di programmazione quantistica in un'unica risposta a questa domanda non è sostenibile poiché il panorama quantistico è in continua evoluzione. Ad esempio, Google ha appena rilasciato Cirq , un nuovo framework di programmazione quantistica per i computer Noisy Intermediate Scale Quantum (NISQ) che non è presente in nessuna delle risposte di cui sopra poiché è stato annunciato solo un paio di giorni fa.

Per risolvere questo problema e come risposta a un'altra domanda su QC StackExchange ho avviato un elenco curato di progetti software open source su GitHub che include anche una panoramica completa di linguaggi e framework di programmazione quantistica sviluppati attivamente. L'elenco è gestito attivamente dalla community e aggiungiamo costantemente nuovi progetti.


2
Sembra una risorsa meravigliosa. Grazie! Mi chiedo se c'è un altro elenco simile di progetti che non sono solo open-source.
Pro Q

1
@ProQ a dire il vero, penso che l'elenco open source copra> 95% dello spazio del software quantistico. Esistono a malapena pacchetti chiusi con accesso pubblico e non ti interesserebbe il software quantistico che viene utilizzato internamente all'interno di alcune aziende senza accesso pubblico comunque.
Mark Fingerhuth,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.