Quels langages de programmation sont disponibles pour les ordinateurs quantiques?

53

A partir de cette question, j'ai compris que les principaux langages de programmation de l'informatique quantique sont Q # et QISKit .

Quels autres langages de programmation sont disponibles pour programmer des ordinateurs quantiques? Y a-t-il certains avantages à en choisir?

EDIT: Je cherche des langages de programmation, pas des émulateurs. Les émulateurs simulent des choses. Les langages de programmation sont une méthode d’écriture d’instructions (pour des objets réels ou pour des émulateurs). Il peut y avoir une seule langue qui fonctionne pour plusieurs émulateurs et vice versa.

Pro Q
la source
Je voudrais souligner qu’aucune des langues énumérées dans la réponse acceptée ne peut en réalité fonctionner avec un ordinateur quantique existant. Il serait peut-être plus judicieux soit de 1) éditer la question pour préciser que vous demandez des langues qui ne peuvent pas être compilées pour fonctionner avec du matériel existant, ou 2) d'accepter une réponse différente.
DanielSank
1
@DanielSank, j’ai accepté la première liste de Wikipédia parce que j’ai supposé que cette liste serait mise à jour pour inclure les langues qui fonctionnent réellement sur du matériel; ce sera la meilleure réponse en supposant que Wikipedia continue d’avoir cette page.
Pro Q
1
@ProQ - Il y a une mise à jour mineure à ma réponse. De plus, j’ai bien précisé que ma réponse n’est pas couper / coller mais comporte des liens vérifiés. J'ai corrigé un lien brisé. J'ai ajouté le site Web d'un contributeur important. - Je reviendrai de temps en temps pour m'assurer que cette réponse est "à peu près bonne". Les détails sur la réponse et la maintenance ont été abordés. Certaines des langues dans ma réponse fonctionnent sur du matériel disponible à l'achat et sont utilisées régulièrement. Merci pour votre foi ProQ.
Rob
Il existe également Yao (Conception d'algorithme quantique efficace et extensible pour les humains), écrite en Julia, github.com/QuantumBFS/Yao.jl . Et ici et ici, vous trouverez une comparaison.
Skan

Réponses:

35

Liste Wikipedia des langages de programmation de l'ordinateur Quantum

(Cette réponse n'est pas une copie de cette page Web, elle est plus à jour et contient des liens vérifiés. Dans certains cas, le lien de l'auteur ou du site Web est ajouté.)

Le site Web Quantum Computing Report comporte une page Web Outils répertoriant une douzaine de liens, dont certains nouveaux et certains répétant la liste ci-dessus.

Voir également la page Web de QuanTiki: " Liste de simulateurs de contrôle de la qualité ", pour une liste considérable de simulateurs et de langages de programmation basés sur: C / C ++, CaML, OCaml, F #, ainsi que sur une interface graphique, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML et d’autres services en ligne proposant des calculatrices, des compilateurs, des simulateurs et des kits d’outils, etc.

Y a-t-il certains avantages à en choisir?

Si vous envisagez d'utiliser un ordinateur quantique particulier, vous pouvez espérer que le langage de programmation développé par le fabricant est à la fois le mieux adapté à cette machine et bien pris en charge.

Choisir une langue avec un nombre de lecteurs plus important signifie qu'il y a plus de forums disponibles et, espérons-le, plus de corrections de bugs et de support.

Malheureusement, certains produits de grande niche ont du mal à se faire une base d'utilisateurs. Essayer de trouver un langage à la fois puissant / expressif et pris en charge sur différentes plates-formes est l’astuce, la réponse est un guichet d’opinion.

Une évaluation de quatre plates-formes logicielles: Forest (pyQuil), QISKit, ProjectQ et le kit de développement Quantum est proposée par Ryan LaRose dans " Aperçu et comparaison des plates-formes logicielles Quantum Gate Level " (6 juil. 2018).


Mises à jour:

Cirq de Google et OpenFermion-Cirq: " Blog sur l'IA de Google - Annonce de Cirq: un cadre Open Source pour les algorithmes NISQ ".

Le SDK Leap and Ocean de D-Wave permet l’accès à un système D-Wave 2000Q ™ dans un environnement cloud ainsi qu’à une machine de recuit quantique de plus de 2000 qubits pour tester et exécuter des charges de travail gratuitement, en supposant que les principaux algorithmes utilisés entrent dans le pool open source. . Postulez pour vous connecter sur la page Web Leap In de D-Wave .

Le service Quantum Cloud Service (QCS) de Rigetti Computing offre une Quantum Machine Image, un environnement de programmation et de virtualisation préconfiguré avec Forest 2.0, permettant d’accéder à 16 qubits maximum d’un ordinateur de 128 bits.

Restez à l' affût des informations sur le Digital Annealer de Fujitsu , une architecture capable d'effectuer des calculs environ 10 000 fois plus rapidement qu'un ordinateur traditionnel. S'ils fournissent finalement un environnement de développement compatible avec les véritables ordinateurs quantiques, ces deux paragraphes resteront dans cette réponse, sinon je les supprimerai.

Bien que leur puce de silicium ne soit pas quantique par nature, Fujitsu s’est associé à 1Qbit pour développer ce qu’on appelle un " service cloud inspiré de Quantum Inspired ", qu’il s’agisse de leurs annales numériques comme d’un canard (anneaux comme un D-Wave et utilise un code compatible) ça reste à voir. Visitez ici pour accéder au service technique Fujitsu Digital Annealer .

Le QWIRE ( choeur ) de l'Université de Pennsylvanie est un langage de circuit quantique et un outil de vérification formelle. Il possède une page Web GitHub .

Une revue de: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsit, Qiskit Terra et Aqua, Tutoriels Qiskit et Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, référence-qvm, ScaffCC, Strawberry Fields, XACC et enfin XACC VQE sont proposés dans l'article: " Logiciel open source en informatique quantique " (21 décembre 2018), de Mark Fingerhuth, Tomáš Babej et Peter Wittek.

Je reviendrai de temps en temps sur cette réponse pour faire des mises à jour, sans heurts excessifs .

Rob
la source
Sort-of "Programmation" nouvelles nouvelles: IBM annonce 53 ordinateurs Qubit disponibles le mois prochain , pour une utilisation par le public.
Rob le
28

Les fournisseurs de matériel de modèle Gate ont développé leurs propres langages de bas niveau:

Ceux-ci ont des sdk python de niveau supérieur disponibles:

Rigetti encapsule également son langage dans une bibliothèque de niveau supérieur permettant d’appeler des applications prédéfinies appelées Grove .

Microsoft a développé Q # pour fonctionner avec son simulateur existant et, éventuellement, son matériel physique.

Comme les langues ci-dessus sont spécifiques à chaque fournisseur, le principal avantage est que vous pouvez exécuter des programmes quantiques sur leurs ordinateurs.

En dehors des langages spécifiques au fournisseur, Scaffold est en cours de développement par les chercheurs de Princeton. Ce langage est intéressant car il inclut une chaîne d’ outils pour analyser les programmes afin de déterminer les coûts, le potentiel de performance et le potentiel d’extensibilité.

Edit: Project Q est un autre framework qui vous permet de développer des programmes utilisant Python pouvant s’exécuter sur un simulateur inclus.

Oak Ridge National Labs a commencé à travailler sur un projet appelé XACC, destiné à résumer le code spécifique du fournisseur afin de permettre aux utilisateurs d'accéder aux différentes plates-formes matérielles sans dupliquer le code dans la langue de chaque fournisseur.

J4ustin
la source
3
projectq.ch mérite également une mention.
James Wootton
1
J'aime cette réponse car elle explique quelles langues peuvent réellement fonctionner avec du matériel existant .
DanielSank
3

J'inclurais Composer d'IBM. Cela ne ressemble pas à de la programmation parce que vous n’obtenez pas tous les bugs, erreurs et fonctionnalités, mais il convertit clairement vos instructions sur les portes en QASM et les exécute sur un véritable simulateur IBM ou un véritable ordinateur quantique IBM (le choix est: les utilisateurs).

Avery Leider
la source
1

Malheureusement, la liste de Quantiki est assez ancienne et mal entretenue. Même énumérer tous les langages de programmation quantiques en une seule réponse à cette question n’est pas viable, car le paysage quantique est en constante évolution. Par exemple, Google vient de publier Cirq , un nouveau cadre de programmation quantique pour ordinateurs Noisy Intermediate Scale Quantum (NISQ) qui ne figure dans aucune des réponses ci-dessus depuis son annonce il y a quelques jours à peine.

Pour résoudre ce problème et en réponse à une autre question sur QC StackExchange, j'ai créé une liste organisée de projets de logiciels à code source ouvert sur GitHub, qui comprend également un aperçu complet des langages et des cadres de programmation quantique activement développés. La liste est activement maintenue par la communauté et nous ajoutons constamment de nouveaux projets.

Mark Fingerhuth
la source
2
Cela ressemble à une ressource merveilleuse. Je vous remercie! Je me demande s'il existe une autre liste similaire de projets non seulement open-source.
Pro Q
1
@ ProQ pour être honnête, je pense que la liste open-source couvre plus de 95% de l'espace logiciel quantique. Il n’existe quasiment aucun paquetage à source fermée avec un accès public et vous ne vous soucieriez pas des logiciels quantiques utilisés en interne au sein d’une entreprise sans accès public de toute façon.
Mark Fingerhuth