Microsoft crée un nouveau langage de programmation dédié aux ordinateurs quantiques
Qui devrait être officialisé d'ici la fin d'année

Le , par Christian Olivier

285PARTAGES

8  0 
Microsoft a profité de la conférence Ignite qui s’est déroulée à Orlando hier pour faire part de ses nouvelles prétentions dans le marché en pleine effervescence des ordinateurs quantiques. À cette occasion, la firme de Redmond a annoncé être en train de travailler sur un nouveau langage de programmation dédié aux ordinateurs quantiques. Satya Nadella, le PDG de Microsoft, estime que ces machines de l’avenir pourraient permettre de réaliser des avancées technologiques majeures dans des secteurs d’activité liés à l’énergie ou la santé, par exemple.


Même s’ils ne sont pas tout à fait au point actuellement, les ordinateurs quantiques prennent peu à peu forme, au fur et à mesure que la technologie qui les sous-tend gagne en maturité. La physique quantique appliquée au domaine de l’informatique est actuellement considérée comme une solution innovante capable de révolutionner le monde dans un futur pas si lointain. C’est l’une des raisons principales pour lesquelles autant d’entreprises technologiques leaders dans leur secteur d’activité respectif se livrent un combat acharné pour réussir à créer rapidement un ordinateur quantique puissant et surtout fonctionnel qui sera à même de servir leur objectif de développement.

Dans cette course pour la maitrise de la technologie liée aux ordinateurs quantiques, l’entreprise américaine Microsoft semble accuser un certain retard, à l’heure où ses concurrents, des géants technologiques comme Google ou IBM, sont activement engagés dans la course pour le développement du matériel quantique et affichent déjà des résultats probants.

Lors de cet évènement, la société Microsoft a mentionné les trois technologies clés qui, selon elle, devraient avoir un impact important pour ne pas dire entrainer une révolution dans l’ensemble de l’industrie technologique. Pour l’éditeur de Windows, ces éléments stratégiques sont : l’intelligence artificielle, l’informatique quantique et la réalité mixte.

Il est connu que Microsoft n’a pas réussi à marquer de son empreinte la précédente révolution technologique suscitée par l’avènement du marché des smartphones. Mais, la firme de Redmond ne compte pas refaire les mêmes erreurs. Les opportunités qu’elle n’a pas pu saisir à temps pendant l’ère du mobile, elle compte bien les oublier avec les nouvelles perspectives de développement que les nouvelles technologies comme le calcul quantique, la réalité augmentée et l’IA permettent d’envisager. Il faut rappeler à ce sujet que la société est déjà fortement engagée dans le marché de la réalité mixte avec son casque Hololens.

Le nouveau langage de programmation de Microsoft dédié aux ordinateurs quantiques devrait être officialisé plus tard avant la fin de cette année. Pour l’instant, il ne porte encore aucune dénomination officielle, mais tout porte à croire qu’il sera proposé via l’outil de développement Visual Studio de la société américaine. Pour utiliser ce langage, les développeurs devront acquérir des connaissances sur des notions se rapportant aux portes logiques quantiques ainsi qu’aux opérations qui en découlent.

L'éditeur de Windows a tenu à préciser que son nouveau langage de programmation dédié aux ordinateurs quantiques possède des similitudes avec les langages de programmation qui existent déjà. Les développeurs devraient être en mesure d’emprunter des éléments de Python, C# et F# pour écrire une fonction, etc. Dans l’image ci-dessous, vous pouvez voir comment un programme est écrit pour effectuer une téléportation quantique.


Pour écrire du code à l’aide de ce nouveau langage et permettre son exécution, Microsoft devrait proposer deux versions d’un simulateur quantique. Le premier fonctionnera localement, alors que le second devrait être disponible en cloud via la plateforme Azure de Microsoft. La version locale du simulateur devrait offrir jusqu’à 32 qubits de puissance de calcul et jusqu’à 32 Go de mémoire vive. Microsoft a invité les développeurs intéressés par ce programme à s’inscrire sur une page de son site Web afin qu’ils puissent tester les préversions du nouveau langage de programmation et des deux simulateurs.

Source : Microsoft, Wired

Et vous ?

Qu’en pensez-vous ?
Partagez-vous l’avis de Microsoft en ce qui concerne les trois éléments clés pour l’avenir de l’industrie technologique ou avez-vous une vision différente ?

Voir aussi

Une équipe de scientifiques russo-américaine présente le premier ordinateur quantique à 51 qubits, il dépasse largement les prototypes précédents
Un nouveau procédé découvert par des chercheurs australiens permettrait de construire des ordinateurs quantiques plus facilement et à faible coût
Google veut livrer ses ordinateurs quantiques sous forme de services de cloud computing et encourage le développement d'applications dédiées

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de JackJnr
Membre confirmé https://www.developpez.com
Le 26/09/2017 à 11:05
En lisant le code je me dis que coder une fonction de téléportation présente tout de même moins de charme que ce que j'imaginais
#My2Cents

EDIT : lu en diagonale, je parlais de la fonction TeleportTest
6  0 
Avatar de hotcryx
Membre extrêmement actif https://www.developpez.com
Le 26/09/2017 à 12:41
Body dans chaque méthode... => bien casse boule!
3  0 
Avatar de ppoulard
Membre à l'essai https://www.developpez.com
Le 16/10/2017 à 17:19
Bonjour,

DISCLAIMER : je ne suis pas physicien, il y a peut-être des imprécisions qui feront hurler les puristes, voire des inexactitudes... à bon entendeur...

Pour aider à la lecture du code quantique, voici ce qu'on peut dire :
  • les mots clés operation, Body, let, if, mutable, et set devraient parler d'eux-même, la syntaxe également.
  • pour les autres mots-clés Qubit, H, CNOT, X, Z et M, c'est une autre paire de manche, et non, ce n'est pas comme si on utilisait une librairie quelconque dans un langage quelconque (bien que ce puisse être réduit à cela) ; je vais y revenir après.
  • on reconnait aisément l'utilisation d'une structure de type tableau, avec référence par index T[i], et la définition de fonctions nommées, à savoir EPR, Teleport et TeleportTest.


Notez que la fonction EPR a très certainement été nommée en relation avec le principe d'intrication quantique par Einstein, Podolsky, Rosen en 1935, qui avait défrayé la chronique à cette époque par le fameux "paradoxe EPR" (et dont l'épilogue fut expérimentalement vérifié par Alain Aspect en 1982, épilogue qui donnait tort à Eistein, Podolsky et Rosen, pour qui l'existence de variables supplémentaires -dites "cachées- devaient expliquer le principe d'intrication).

Bref, le principe d'intrication permet à 2 particules séparées d'une distance arbitraire (plusieurs milliards de km si ça vous fait plaisir) de réagir comme un unique système : si on agit sur l'une, on a instantanément une réaction de l'autre totalement prédictive. Ici, on parle de téléportation, à savoir de la transmission instantanée d'une information d'un point here à un point there.

En résumé d'après ce que j'ai compris, le code prend 2 Qubits, procède à leur intrication, puis associe l'un à un 3e Qubit ; lorsqu'on le mesure, on peut vérifier que le second a été affecté comme attendu.

Qu'est-ce qu'un Qubit ? La littérature prétend qu'il s'agit d'un équivalent quantique du bit. Rien de mieux pour perdre le lecteur, aussi je n'adhère pas particulièrement à cette définition. Je dirais plutôt qu'il s'agit de la représentation d'un état quantique. On est pas mieux avancé si on ne décrit pas un peu plus ce qu'est un état quantique, et c'est là que le bât blesse, car il faut introduire la notion de superposition décrite par les équations d'onde de Schrödinger. Personnellement, j'ai cherché comment résoudre une équation de Schrödinger, ce qui implique une connaissance de la mécanique quantique et de la mécanique analytique approfondies, ce qui implique une maîtrise de quelques notions de mathématiques (complexes, calcul matriciel, equa diff, etc). Ne connaissant suffisamment ni la première discipline ni la seconde, j'ai dû me mettre à niveau et je n'ai pas été peu fier quand j'ai enfin réussi à résoudre quelques équations de Schrödinger simples . Bref, je me suis aussi rendu compte que comprendre le calcul quantique ce n'est pas nécessairement comprendre les équations de Schrödinger, tout comme comprendre le calcul binaire ce n'est pas nécessairement comprendre les équations de Maxwell. Je pense qu'on peut s'en passer...

Je pense que le bon niveau d'abstraction pour comprendre le Qubit est la Bloch sphère :
  • prenez une sphère de centre O de rayon 1, avec 3 axes Ox Oy Oz orthogonaux. Une sphère quoi !
  • Placez-y un point sur la surface.
  • Si le point est au pôle nord, l'état est 1
  • Si le point est au pôle sud, l'état est 0
  • Si le point est ailleurs, l'état est à la fois 0 et 1 dans des proportions relatives à sa proximité du pôle
  • Si le point est sur l'équateur, il est 50% 0 et 50% 1


En physique quantique, on ne connaît l'état d'un système que lorsqu'on le mesure. A cet instant, le système "choisi" aléatoirement de basculer vers 0 ou 1 selon une probabilité dépendant de la position du point sur la Bloch sphère. Si le point est au pôle nord, 100% des mesures donneront 1, s'il est sur l'équateur, dans la moitié des cas la mesure donnera 1 et dans l'autre moitié 0. Le phénomène est appelé "effondrement du paquet d'onde" (fonction d'onde de Schrödinger).

La notion de mesure est différente en physique classique, où la mesure est une propriété intrinsèque de l'objet mesuré. Par exemple, si on mesure la hauteur d'un mur, on obtiendra 1,5 m et si on ne mesure pas ce mur, sa hauteur est quand même 1,5 m. A contrario, un "mur quantique" en état de superposition a peut-être plusieurs hauteurs possibles, et ce n'est que lorsqu'on procède à la mesure que le système en "choisi" une parmi celles éligibles. Il est donc important de ne pas mesurer un Qubit pendant qu'on déroule un algorithme, sinon on provoque l'écroulement du paquet d'onde et on se retrouve dans un système classique.

La mesure est un acte perturbateur de l'état quantique, tout comme toute autre interaction avec un Qubit : c'est pourquoi il faut un environnement physique particulier (température proche du 0°K) et des contraintes drastiques pour minimiser les interactions avec l'environnement. C'est un des plus gros défis pour les physiciens qui explique pourquoi il est si difficile de créer une machine quantique. Un autre moyen utilisé pour minimiser les interactions avec l'environnement est de conserver la quantité d'information (entropie). Quand on fait une opération de type OR avec des bits, on a 2 entrées et une sortie : on a perdu de l'info. Dans les années 70, on a créé une logique dite réversible qui consiste à conserver le même nombre d'entrée et de sortie. Le composant de base est la porte Toffoli ou CC NOT. La porte CNOT inverse le second bit si le premier est à 1. En l'appliquant 2 fois (ce que fait CC NOT), on obtient une porte universelle permettant de construire tout une logique entièrement réversible : si on part de l'état final d'un circuit réversible, on peut obtenir l'état de départ.

Ces portes s'appliquent sur les Qubits, et évitent un effondrement prématuré du paquet d'onde. Si on reprend l'algorithme, voici leurs effets sur le point situé sur la Bloch sphère :
  • X procède à une rotation de 180° sur l'axe Ox : un point au pôle nord se retrouve au pôle sud
  • Y procède à une rotation de 180° sur l'axe Oy
  • Z procède à une rotation de 180° sur l'axe Oz
  • H (porte Hadamard) crée une superposition par une rotation autour de l'axe X+Z : un point au pôle nord se retrouve sur l'équateur sur l'axe Ox, et passe de l'état 1 à l'état mi-1, mi-0
  • CNOT permet d'intriquer 2 Qubits
  • M c'est sûrement pour mesurer l'état du Qubit
  • Les valeurs One et Zero se passent de commentaire


Il y a pleins d'autres portes de base, et j'ai passé la notation de Dirac, mais ça devrait aider à la lecture du code. Prenez autant de Bloc sphère qu'indiqué dans l'algorithme et placez-y un point à l'endroit indiqué, puis déroulez l'algorithme qui fait bouger ces points comme-ci et comme-ça et pratiquez une mesure pour forcer le paquet d'onde à adopter une valeur. C'est plus simple, non ?

a+
Philippe
3  0 
Avatar de Mrsky
Membre éprouvé https://www.developpez.com
Le 26/09/2017 à 22:26
Citation Envoyé par JackJnr Voir le message
En lisant le code je me dis que coder une fonction de téléportation présente tout de même moins de charme que ce que j'imaginais
#My2Cents

EDIT : lu en diagonale, je parlais de la fonction TeleportTest
C'est parce que tout le fun réside dans les tests Qui passe en premier ?

Sinon pour le langage, un ordinateur quantique ne fonctionne pas uniquement en binaire mais dispose de l'état de superposition du au fonctionnement de la mécanique quantique. Du coup si je dis pas de connerie, tout ce qui est aujourd'hui compilé pour tourner sur un ordinateur classique n'est au mieux pas optimisé pour un ordinateur quantique, au pire ça ne marche même pas (ça dépasse mes compétences, qqun pourra sûrement être plus spécifique). Je ne sais pas dans quelle mesure il est possible d'adapter les compilateurs actuels qui tiendraient compte d'un nouveau type Qubit et compilerait pour les ordinateurs quantiques sur demande, à priori créer un nouveau langage dédié ne me semble pas déconnant.
2  0 
Avatar de fsmrel
Expert éminent sénior https://www.developpez.com
Le 07/10/2017 à 2:09
Citation Envoyé par A2ll_ Voir le message
Merci , mais j'ai pas trop compris la définition :/
Il parle "d'état quantique", j'ai beau regardé sur Wikipédia, je comprends pas ce que c'est.
Alain Aspect traite de la chose, par exemple ici :



Et là :



Alain Aspect (médaille d'or du CNRS et qui aurait dû avoir le Nobel de physique) présente le sujet de façon remarquable, et même si on ne suit pas forcément la partition, au moins on écoute la musique avec bonheur...
2  0 
Avatar de Voïvode
Membre émérite https://www.developpez.com
Le 26/09/2017 à 13:45
@hotcryx
On a eu chaud, on aurait pu avoir BEGIN…END !
1  0 
Avatar de ParseCoder
Membre averti https://www.developpez.com
Le 26/09/2017 à 14:59
Quelqu'un a un cours de programmation quantique sous la main?
1  0 
Avatar de Dhafer1
Membre habitué https://www.developpez.com
Le 27/09/2017 à 13:42
Citation Envoyé par Mrsky Voir le message
C'est parce que tout le fun réside dans les tests Qui passe en premier ?

Sinon pour le langage, un ordinateur quantique ne fonctionne pas uniquement en binaire mais dispose de l'état de superposition du au fonctionnement de la mécanique quantique. Du coup si je dis pas de connerie, tout ce qui est aujourd'hui compilé pour tourner sur un ordinateur classique n'est au mieux pas optimisé pour un ordinateur quantique, au pire ça ne marche même pas (ça dépasse mes compétences, qqun pourra sûrement être plus spécifique). Je ne sais pas dans quelle mesure il est possible d'adapter les compilateurs actuels qui tiendraient compte d'un nouveau type Qubit et compilerait pour les ordinateurs quantiques sur demande, à priori créer un nouveau langage dédié ne me semble pas déconnant.
Le Quantum Computing ne répond qu'à quelques cas d'utilisations pour le moments et pour tout le reste la puissance quasi "infini" (elle n'est pas infini) de l'odinateur quantique ne sert à rien. au mieux il aura le même le temps de résolution qu'un super calculateur.
Le problème le plus courant (et le plus utilisé lors des cours d'informatique quantique) est la factorisation en nombre premiers, et dans ce cas la puissance de l'odinateur quantique est stratosphérique.

Mais je pense que le plus dur à l'ère de l'informatique quantique sera de former les nouveaux informaticiens qui devront à la fois être mathématiciens, physiciens et "algorithmiciens" des sortes de sur-hommes qui n'existent que chez le Pentagone, le FSB quelques grandes universités et GAFA pour le moment. Et surtout le grand challenge sera de tout redesigner, tout reconceptualiser, parceque là nous sommes au stade d'un poisson qui vient de découvrir qu'il n'y a pas que l'eau qui l'environne et qu'il faut qu'il repense tout presqu'à partir de zero pour et par la logique Quantique, ce qui est immensément plus difficile que fabriquer l'ordinateur à 52 qbits.

Et je pense réellement que ceci n'arrivera que dans une bonne 50 aine d'années et que pour le moment notre grande limitation c'est notre expérience et notre formation qui nous à sculpté l'esprit d'une certaine manière qui n'est pas appropriée à l'ère quantique voire même un très grand handicap.

Et la preuve: Il n'y a qu'à voire la réponse de Microsoft, ils ont inventé un langage informatique pour l'ère quantique en utlisant exactement la même logique qu'aurait un... expert .net F# comme si le réel problème était de communiquer avec un ordinateur quantique.
1  0 
Avatar de Shepard
Membre éprouvé https://www.developpez.com
Le 26/09/2017 à 11:54
Qu'est-ce qui en fait un nouveau langage ?

L'exemple de code donné me fait plus penser à une librairie qu'à un nouveau langage, ça a l'air tout à fait "classique" comme syntaxe ...

Vivement un dialecte de Jelly adapté au quantique, on va rire
1  1 
Avatar de A2ll_
Nouveau membre du Club https://www.developpez.com
Le 29/09/2017 à 10:06
Salut,

Quelqu'un pourrait m'expliquer a quoi correspond "Qubit" dans le code ? ( quantique bit ? )
De plus CNOT veut dire quoi ?

Merci pour les éventuelles réponses
0  0 
Sondage : quels sont les langages de programmation qui vont probablement disparaître
Siri enregistre les bagarres, les échanges avec les médecins, les ébats sexuels
Est-ce une grosse erreur de considérer la POO comme standard de l'industrie pour l'organisation des bases de code ?
Découvrez les dangers de MySQL et MariaDB, par Frédéric BROUARD (SQLpro)
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web