Existe-t-il des émulateurs pour les ordinateurs quantiques?

64

Existe-t-il un moyen d'émuler un ordinateur quantique dans mon ordinateur normal afin de pouvoir tester et essayer des langages de programmation quantique (tels que Q # )? Je veux dire quelque chose que je peux vraiment tester mon hypothèse et obtenir les résultats les plus précis.

Mise à jour: je ne cherche pas vraiment à simuler un ordinateur quantique, mais je ne suis pas sûr qu'il soit possible d'en émuler efficacement un sur un PC normal non quantique.

Michel Gokan
la source

Réponses:

39

Oui, c'est possible (mais lent). Il y a quelques émulateurs existants (ceci n'est qu'une liste partielle):

  • QDD: une bibliothèque d'émulation d'ordinateur quantique

    QDD est une bibliothèque C ++ qui fournit un ensemble relativement intuitif de constructions informatiques quantiques dans le contexte de l'environnement de programmation C ++. QDD est unique en ce que son émulation de l'informatique quantique est basée sur une représentation par diagramme de décision binaire (BDD) de l'état quantique.

  • jQuantum

    jQuantum est un programme qui simule un ordinateur quantique. Vous pouvez concevoir des circuits quantiques avec elle et les laisser fonctionner. L'état actuel du registre quantique est illustré.

  • QCE

    QCE est un outil logiciel qui émule diverses conceptions matérielles des ordinateurs Quantum. QCE simule les processus physiques qui régissent le fonctionnement d'un processeur quantique matériel, strictement selon les lois de la mécanique quantique. QCE fournit également un environnement pour déboguer et exécuter des algorithmes quantiques dans des conditions expérimentales réalistes.

(De plus, Q # ne fonctionne qu'avec le QDK de MS , merci @Pavel)

L'inconvénient de tout cela est simple: ils fonctionnent toujours sur des circuits binaires (non quantiques). À ma connaissance, il n’existe aucun ordinateur quantique facilement accessible pour exécuter ces tâches. Et comme il faut plusieurs bits binaires pour exprimer un seul qubit, la quantité de puissance de calcul nécessaire pour simuler un programme quantique devient très importante.

Je citerai un article sur le sujet ( J. Allcock, 2010 ):

Notre évaluation montre que nos implémentations sont très précises, mais nous utilisons en même temps une quantité de mémoire supplémentaire importante pour y parvenir. Réduire nos objectifs en termes de précision nous permettrait de réduire la taille de la représentation et donc d’émuler davantage de qubits avec la même quantité de mémoire.

p 89, section 5.1

Au fur et à mesure que nos implémentations deviennent plus précises, elles deviennent également plus lentes.

TL; DR: c'est possible et il existe des émulateurs, mais aucun n'est très efficace pour les grandes quantités de qubits.

Riker
la source
Notez qu'aucun de ces émulateurs ne peut (actuellement) être utilisé par Q #, qui ne fonctionne qu'avec le QDK de Microsoft.
Pavel
3
En plus de ce que vous avez dit: Il existe des méthodes de programmation pour exécuter du code sur IBM Quantum Experience qui fournit de véritables ordinateurs quantiques - pas un code Q #, mais QASM à la place. QISKit est le moyen d'aller ici. github.com/QISKit
blalasaadri
Ce que vous avez dit est logique car la simulation est exécutée sur un ordinateur. Mais est-il possible d'atteindre la même vitesse si plusieurs ordinateurs étaient utilisés?
Calendrier iOS patchthecode.com
26

Oui, il est possible de simuler un ordinateur quantique sur un ordinateur normal - mais vous devrez probablement sacrifier l'efficacité.

2nn


Ressources

Vous pouvez être intéressé par Q # comme d'autres réponses notées. Quelques émulateurs supplémentaires:

  • Terrain de jeu pour l'informatique quantique

    Quantum Computing Playground est une expérience WebGL Chrome basée sur un navigateur. Il dispose d'un ordinateur quantique accéléré par GPU avec une interface IDE simple et de son propre langage de script avec fonctions de débogage et de visualisation d'état quantique 3D. Quantum Computing Playground peut simuler efficacement des registres quantiques jusqu’à 22 qubits, exécuter les algorithmes de Grover et de Shor, et intègre un grand nombre de portes quantiques intégrées au langage de script.

  • QX Simulator

    Le simulateur QX est un simulateur informatique quantique universel développé par Nader Khammassi à QuTech. Le QX permet aux concepteurs d’algorithmes quantiques de simuler l’exécution de leurs circuits quantiques sur un ordinateur quantique. Le simulateur définit un langage d'assemblage quantique de bas niveau, à savoir Quantum Code, qui permet aux utilisateurs de décrire leurs circuits dans un simple fichier de code source textuel. Le fichier de code source est ensuite utilisé comme entrée du simulateur qui exécute son contenu.

  • Quantum ++

    Quantum ++ est une bibliothèque moderne d’informatique quantique polyvalente C ++ 11, composée uniquement de fichiers d’en-tête de modèle. Quantum ++ est écrit en C ++ 11 standard et a de très faibles dépendances externes, en utilisant uniquement la bibliothèque de modèles Eigen 3, algèbre linéaire, et uniquement, le cas échéant, la bibliothèque de traitement multiple OpenMP.

  • Langage informatique quantique

    Malgré de nombreux concepts communs à l’informatique classique, l’informatique quantique est encore largement considérée comme une discipline spéciale dans le vaste domaine de la physique théorique. [...] QCL (Quantum Computation Language) tente de combler cette lacune: QCL est un langage de programmation de haut niveau, indépendant de l'architecture, pour les ordinateurs quantiques, avec une syntaxe dérivée des langages procéduraux classiques tels que C ou Pascal. Cela permet la mise en œuvre complète et la simulation des algorithmes quantiques (y compris les composants classiques) dans un formalisme cohérent.

  • Des émulateurs plus pertinents peuvent être trouvés sur Quantiki

M. Xcoder
la source
21

Oui, il est possible de simuler des calculs quantiques sur un ordinateur classique. Mais le coût des simulations croît de manière exponentielle avec le nombre de bits et / ou la profondeur de circuits et / ou le nombre d'opérations particulières.

Pour avoir rapidement essayé des idées, mon simulateur Quirk est génial. C'est un simulateur de circuit quantique open-source qui s'exécute dans votre navigateur Web. Vous pouvez accéder à une version en direct sur algassert.com/quirk .

Voici une capture d'écran de l'exemple de circuit Grover de Quirk, doté d'instruments d'affichage d'état intermédiaires pour suivre l'état "caché" de plus en plus probable:

Capture d'écran de Quirk

Craig Gidney
la source
16

Si vous recherchez spécifiquement Q #, il est très facile à utiliser avec un émulateur - en fait, il n'est pas possible d'avoir Q # sans avoir l'émulateur, ils sont regroupés.

Pour commencer, vous devez d’abord télécharger .NET Core à partir du site Web de Microsoft .

Lorsque vous téléchargez le kit de développement Quantum de Microsoft via dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"le site Web de Microsoft, il télécharge simultanément le langage et l'émulateur de Microsoft.

La création d'un nouveau projet Q # ( dotnet new console -lang Q#) le configurera automatiquement pour utiliser l'émulateur. Ainsi, lorsque vous saisissez un fichier Q # et que vous l'exécutez, il "fonctionne".

Pavel
la source
3

Oui. Si vous le construisez vous-même, trouvez un ordinateur tiers répondant aux mêmes spécifications que la série BullSequana M9600, ou proposez plus de 100 000 € et achetez un système chez Atos.

Notez la similitude entre les séries BullSequana M9600 et Atos QLM . Atis QLM contre M9600

Même boîte (et probablement des composants internes) avec un logiciel différent (mais vous vouliez utiliser votre propre Q #). Atos affirme: "Le simulateur quantique le plus performant au monde". Je ne suis pas sûr à ce sujet, mais les spécifications de la version 30 bits sont accessibles, à savoir deux processeurs Intel et 1 To de mémoire.

Brochure Atos QLM .PDF .

Existe-t-il un moyen d'émuler un ordinateur quantique dans mon ordinateur normal afin de pouvoir tester et essayer des langages de programmation quantique (tels que Q #)?

Si vous utilisez uniquement 256 Go de mémoire et 1-24TB Drive Swap il sera lent , mais il va travailler.

Je veux dire quelque chose sur lequel je peux vraiment tester mon hypothèse et obtenir les résultats les plus précis .

Citation de la brochure:

"La machine d'apprentissage d'Atos Quantum calcule l'exécution exacte d'un programme quantique, avec une précision à deux chiffres. Elle simule les lois de la physique , qui sont au cœur même de l'informatique quantique. Ceci est très différent des processeurs quantiques existants, qui souffrent de Bruit, décohérence quantique, biais de fabrication, goulots d'étranglement: la simulation sur la machine d'apprentissage d'Atos Quantum permet aux développeurs de se concentrer sur leurs applications et leurs algorithmes, sans avoir à attendre que des machines quantiques soient disponibles ".

Ils réclament une grande précision, car il s’agit d’un simulateur qui n’est pas soumis au bruit - il ne sera pas aussi rapide ni aussi coûteux. En théorie, vous pourriez ajouter de la mémoire, des lecteurs et des logiciels à votre ordinateur ...

Rob
la source
3

Je pense qu'un bon "aperçu" sur le sujet peut être trouvé à: Quantiki

Ils ont une liste de simulateurs informatiques quantiques en plusieurs langues, certains des simulateurs ont déjà été cités ici. Cependant, ils gardent une liste qu'ils mettent à jour pour informer (ou essayer d'informer) du statut du projet. Il existe des "bibliothèques" telles que:

Haskell

qchas (qchas: une bibliothèque pour implémenter des algorithmes Quantum) - Une bibliothèque utile pour implémenter des algorithmes Quantum. Il contient les définitions des portes quantiques, Qubits.

Python

Qubiter : Le projet Qubiter vise à fournir à terme une suite complète d’outils, principalement écrits en Python, permettant de concevoir et de simuler des circuits quantiques sur des ordinateurs classiques.

Javascript

jsqis : jsqis, à la base, est un simulateur informatique quantique écrit en Javascript. Il permet l'initialisation des registres quantiques et leur manipulation au moyen de portes quantiques.

Gustavo Banegas
la source