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 ?

Voici à quoi ressemble le « composer ». 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é 1024 fois et le résultat est représenté sous forme statistique.

Effectivement, sur 1024 essais (le nombre d’essai est proposé au démarrage), la proportion de 00001 est de 49,6% et celle de 00011 est 50,4%. 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).
Regardons maintenant un programme très simple composé d’une seule porte CNOT.

Le résultat théorique est |10> à 100%
Le résultat sur un simulateur donne bien ce résultat :

Mais le même programme exécuté « pour de vrai » 1024 fois, donne un résultat très instructif :

Contrairement au simulateur, ou à la théorie, nous obtenons 4 valeurs. 00010, la  « bonne » réponse, ressort avec 90,5% de probabilités. Mais l’on remarque aussi 3 valeurs « parasites » (ou impossibles théoriquement) : 0000 (6,8%), 0001 (1,8%) et 0011 (0,8%), soit un taux d’erreurs de 9,5%.
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 en cliquant sur le nom de l’ordinateur utilisé (ici, ibmq_16_melbourne). On nous montre la topologie de l’ordinateur (quels qubits sont reliés aux autres et peuvent être intriqués ainsi que le résumé de la performance. Ici, taux d’erreur CNT : entre 10% et 1,3% soit ce que nous avons mesuré.

En cliquant sur « download calibrations », nous obtenus un CSV que nous représentons ainsi :

  • Les temps « relaxive » (T2) et « coherence » (T1) : valeurs cohérentes avec les spécifications données par IBM en début de page. Ce sont les durées de cohérence des qubits. Voir plus de détail sur la page « Les limites actuelles »). Il faut donc faire le calcul en quelques micro secondes.
  • Les taux d’erreurs mesurés qubits par qubits (en lecture et en traitement).  Nous sommes bien à des erreurs de quelques %, bien loin des performances des microprocesseurs classiques (10^-14)

Limites du composer
L’éditeur permet un nombre limité de portes « simples » mais qui augmentent régulièrement. La version de début 2019 était limitée, l’actuelle (début 2020) est bien plus complète.  Voir la liste ci-dessous. Nombreuses sont celles qui permettent des rotations dans la sphère de Bloch suivant tous les axes.
La section « Gate glossary » donne, pour chacune, une explication dynamique intéressante. Exemple avec la porte U3 qui permet une rotation pi/2 sur les 3 axes.

Liste des principales 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 le11 janvier 2020

 

 

 

 

Répondre

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