Jouer avec IBM Q

S’amuser avec un vrai ordinateur quantique dans le cloud !
IBM propose de s’entrainer sur de vrais ordinateurs quantiques ou sur des simulateurs. Une aubaine pour celui qui veut toucher du doigt les concepts théoriques appris.
En pratique, voici les machines proposées à ce jour (janvier 2019).
IBM liste 2.png
Les paramètres T1 (Coherence Time) et T2 (Relaxive Time) ainsi que les taux d’erreurs sont expliqués dans la page Les limites actuelles.

Se créer un compte
En pratique, il suffit de se créer un compte sur le site leur site web. Là, vous trouverez :

  • De la documentation (rubrique Learn)
  • Des informations techniques sur les ordinateurs en ligne (rubrique Technology/Devices and simulators)
  • Un éditeur graphique (le composer) pour créer son premier programme et l’exécuter sur simulateur ou sur un vrai ordinateur quantique (rubrique Learn / Composer).

L’inscription se fera au moment de la première exécution de votre programme.
La FAQ sur le mode de fonctionnement est ici.

Simulateur ou ordinateur ?
composer-1.png
Voici à quoi ressemble le « composer » (sur l’ordinateur Tenerife, mais le nom n’a pas d’importance). Ici, sur les 5 qubits disponibles, seuls les 2 premiers sont utilisés.
Dans cet exemple, KetKet implémente une simple porte CNOT (le rond avec +). La porte X (NOT) passe le deuxième qubit à |1> (car il est le qubit de contrôle). Voir la page Les bases pour comprendre ce circuit très simple.

  • Par défaut, les qubits sont toujours intialisés à |0>.
  • Les lignes horizontales symbolisent l’axe temporel. Le programme se lit et s’exécute de gauche à droite comme sur une partition de musique !
  • Les icones roses indiquent les points de mesure qui transforment les qubits en bits (décohérence forcée).
  • Une fois qu’un qubit est mesuré, vous ne pouvez plus vous en servir.
  • Les nombres en dessous des flèches de mesure (0, 1, 2…) indiquent l’ordre des bits mesurés. « L’octet » s’écrit et se lit dans cet ordre B3B2B1B0

L’originalité de cet exemple est de mettre le 1er qubit (target qubit) dans un état superposé, grâce à la porte H (Hadamard).
Ainsi, les résultats mesurés seront aléatoirement 0 ou 1 sur le 1er qubit et 1 sur le second (control qubit). Au final, on s’attend à une proportion 50/50 entre 00010 et 00011 :
CNOT.png
Exécution avec le simulateur
L’exécution avec le simulateur (bouton simulate) est gratuite et illimitée. Pour ce genre d’exercice, il est tout à fait suffisant. Cela permet de jouer, de s’entrainer, de mettre des portes dans tous les sens pour tester ses connaissances et (peut-être) découvrir par hasard un algorithme révolutionnaire (peu d’espoir, hein ? 😉 ).
Dans ce cas, le programme est exécuté 100 fois et le résultat est représenté sous forme statistique.
cnot-simul

Effectivement, sur 100 essais (Number of shots, affiché en bas), la proportion de 00010 est de 51% et celle de 00011 est 49%. Ce qui correspond bien à la théorie.
En prime, le code OpenQASM est affiché : c’est un langage intermédiaire représentant les instructions de base, un peu à la sauce assembleur. Il permet d’importer / exporter les programmes du Composer.

Exécution avec l’ordinateur quantique
IBM met en place un système d’unités. Un utilisateur débutant a 15 unités. Chaque programme vous consomme un nombre d’unité (minimum 3). Vous êtes recrédités des unités soit après l’exécution de votre programme (mis en queue), soit au bout de 24 heures (le plus long des deux).
Une autre option est de chercher si le même programme n’a pas déjà été exécuté (par quelqu’un d’autre). Dans ce cas, les résultats du cache sont affichés. Cela ne consomme aucune unité puisque que le programme a déjà été exécuté auparavant.
exec-cache.png
Le même programme exécuté « pour de vrai » 1024 fois, donne un résultat très instructif :
exec-real
Contrairement au simulateur, ou à la théorie, nous obtenons 4 valeurs. 00010 et 00011, qui sont les 2 « bonnes » réponses, avec des probabilités de 47% et 45%. Mais l’on remarque aussi 2 valeurs « parasites » (ou impossibles théoriquement) : 0000 et 0001 (4% chacune).
Ces erreurs (malheureusement inévitables à ce jour), illustrent les limites de l’informatique quantique. Cela est détaillé dans la page Les limites actuelles.

Après l’exécution, nous récupérons aussi des informations techniques :

  •  Les températures des qubits (je ne sais pas à quoi correspond les valeurs. Normalement la température est proche de 15 mK)
  • Les temps « relaxive » (T2) et « coherence » (T1) : valeurs cohérentes avec les spécifications données par IBM en début de page. Il faut comprendre, le qubit est resté 44 ms dans l’état superposé (voir plus de détail sur la page « Les limites actuelles »).
  • Les taux d’erreurs mesurés (ici de 5%, en accord avec l’observation et les valeurs moyennes du tableau ci-dessus).
    exec-real-data.png

Limites du composer
L’éditeur permet un nombre limité de portes « simples ». Voir la liste ci-dessous. Après quelques lectures, on aimerait tester des portes plus complexes comme CCNOT (Toffoli). Malheureusement, on comprend que celles-ci se composent de façon très laborieuse avec d’autres portes « simples ». Les programmes deviennent rapidement illisibles. J’aurais aimé une « surcouche » pour implémenter ces portes.
Pour illustrer, voici comment implémenter une porte CCNOT (Toffoli) avec cet outil.
toffoli
Liste des portes supportées par le Composer
list-of-gate-IBM.png

Conclusion
Il est vraiment très impressionnant de pouvoir faire joujou avec un vrai ordinateur quantique (ou même avec un simulateur 32 qubits). C’est un formidable outil pédagogique. Bravo et merci à IBM pour cette opportunité et pour toute la communauté qu’ils animent. #respect.
Le Q# (voir page Le Q# (Microsoft)) permettra d’aller un cran plus loin pour implémenter des algorithmes de façon plus synthétique.

Page mise à jour le 27 janvier 2019.

 

 

 

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s