Comment WASM (et Rust) débloque les mystères de l’informatique quantique
WebAssembly a parcouru un long chemin depuis le navigateur ; il peut être utilisé pour créer des applications Web hautes performances, pour des applications sans serveur et pour de nombreuses autres utilisations.
Récemment, nous l’avons également repéré comme une technologie clé utilisée pour créer et contrôler un état de la matière auparavant théorique qui pourrait débloquer une informatique quantique fiable – pour les mêmes raisons qui en font un choix attrayant pour le cloud computing.
Quantum a besoin de l’informatique traditionnelle
L’informatique quantique utilise du matériel exotique (gros, cher et très, très froid) pour modéliser des systèmes complexes et des problèmes qui nécessitent plus de mémoire que le plus grand supercalculateur : il stocke des informations dans des états quantiques tout aussi exotiques de la matière et exécute des calculs dessus en contrôlant les interactions de particules subatomiques.
Mais à côté de cet ordinateur quantique futuriste, vous avez besoin de ressources informatiques traditionnelles pour alimenter en données le système quantique, pour en récupérer les résultats – et pour gérer l’état des qubits afin de gérer les erreurs dans ces états quantiques fragiles.
Comme le Dr Krysta Svore, le chercheur à la tête de l’équipe de construction de la pile logicielle pour le projet d’informatique quantique de Microsoft, l’a dit dans une discussion récente sur l’informatique quantique hybride, « Nous avons besoin de 10 à 100 téraoctets par seconde de bande passante pour maintenir la machine quantique en vie en conjonction avec un supercalculateur pétaflopique classique fonctionnant aux côtés de l’ordinateur quantique : il doit avoir cette boucle de rétroaction très régulière de 10 microsecondes pour que l’ordinateur quantique fournisse une solution fiable. »
Les qubits peuvent être affectés par ce qui les entoure et perdre leur état en quelques microsecondes, de sorte que le système de contrôle doit être suffisamment rapide pour mesurer le circuit quantique pendant qu’il fonctionne (c’est ce qu’on appelle une mesure à mi-circuit), trouver les erreurs et décider comment corriger eux – et renvoyer ces informations pour contrôler le système quantique.
« Ces qubits devront peut-être rester vivants et cohérents pendant que vous faites du calcul classique », a expliqué Svore. « Plus ce délai est long, plus ils décohèrent, plus le bruit qui leur est appliqué et donc plus de travail que vous pourriez avoir à faire pour les maintenir stables et vivants. »
Correction des erreurs quantiques avec WASM
Il existe différents types de matériel exotique dans les ordinateurs quantiques et vous avez un peu plus de temps pour travailler avec un ordinateur quantique à ions piégés comme le Quantinuum System Model H2, qui sera disponible via le service Azure Quantum en juin.
Ce temps supplémentaire signifie que les algorithmes qui gèrent la correction d’erreur quantique peuvent être plus sophistiqués, et WebAssembly est le choix idéal pour les construire Pete Campora, ingénieur compilateur quantique chez Quantinuum, a déclaré à New Stack.
Au cours des dernières années, Quantinuum a utilisé WebAssembly (WASM) dans le cadre du système de contrôle pour des ordinateurs quantiques de plus en plus puissants, allant de la simple démonstration que la correction d’erreurs quantiques en temps réel est possible à l’expérimentation de différentes approches de correction d’erreurs et, plus récemment, créant et manipulant pour la première fois les états quantiques intriqués exotiques (appelés anyons non abéliens) qui pourraient être à la base de l’informatique quantique tolérante aux pannes.
Déplacez l’une de ces quasi-particules autour d’une autre – comme des cordes tressées – et elles stockent cette séquence de mouvements dans leur état interne, formant ce qu’on appelle un qubit topologique qui est beaucoup plus résistant aux erreurs que les autres types de qubit.
Du moins, c’est la théorie : et WebAssembly s’avère être un élément clé pour prouver que cela fonctionnera – ce qui nécessite encore une correction d’erreur sur les ordinateurs quantiques d’aujourd’hui.
« Nous utilisons WebAssembly au milieu de l’exécution de circuits quantiques », a expliqué Campora. Le logiciel du système de contrôle « prépare des états quantiques, effectue des mesures à mi-circuit, prend ces mesures à mi-circuit, peut-être fait un peu de calcul classique dans le logiciel du système de contrôle, puis transmet ces valeurs à l’environnement WebAssembly ».
Contrôler les circuits quantiques
Dans le cloud, les développeurs ont l’habitude de choisir la machine virtuelle avec les bonnes spécifications ou de choisir le bon accélérateur pour une charge de travail.
Plutôt que de choisir parmi des spécifications fixes, la programmation quantique peut vous obliger à définir la configuration de votre matériel quantique, en décrivant le circuit quantique qui sera formé par les qubits et ainsi que l’algorithme qui s’y exécutera – et en corrigeant les erreurs les qubits pendant l’exécution du travail — avec un langage comme OpenQASM (Open Quantum Assembly Language) ; c’est un peu comme contrôler un FPGA avec un langage de description de matériel comme Verilog.
Vous ne pouvez pas mesurer un qubit pour vérifier les erreurs directement pendant qu’il fonctionne ou vous termineriez le calcul trop tôt, mais vous pouvez mesurer un qubit supplémentaire (appelé « ancilla » car il est utilisé pour stocker des résultats partiels) et extrapoler l’état du qubit de travail à partir de cela.
Ce que vous obtenez est un modèle de mesures appelé syndrome. En médecine, un syndrome est un schéma de symptômes utilisé pour diagnostiquer une condition médicale compliquée comme la fibromyalgie. En informatique quantique, vous devez « diagnostiquer » ou décoder les erreurs de qubit à partir du modèle de mesures, en utilisant un algorithme qui peut également décider de ce qui doit être fait pour inverser les erreurs et empêcher les informations quantiques dans les qubits de se décohérer avant l’ordinateur quantique. termine l’exécution du programme.
OpenQASM est bon pour le calcul d’entiers de base, mais il nécessite beaucoup d’expertise pour écrire ce code : « Il y a beaucoup plus de passe-partout que si vous appelez simplement une belle fonction dans WASM. »
L’écriture du décodeur algorithmique qui utilise ces mesures de qubit pour déterminer quelle est l’erreur la plus probable et comment la corriger en C, C++ ou Rust et la compiler en WebAssembly le rend plus accessible et permet aux ingénieurs quantiques d’utiliser des structures de données plus complexes comme des vecteurs , des tableaux, des tuples et d’autres moyens de transmettre des données entre différentes fonctions pour écrire des algorithmes plus sophistiqués qui offrent une correction d’erreur quantique plus efficace.
« Un décodeur algorithmique va nécessiter des structures de données au-delà de ce que vous essaieriez raisonnablement de représenter avec seulement des nombres entiers dans le système de contrôle : cela n’a tout simplement pas de sens », a déclaré Campora. « L’environnement WASM fait une grande partie du gros du travail de mutation des structures de données et de ces algorithmes plus complexes. Il fait même des choses comme l’allocation dynamique que vous voudriez normalement éviter dans le logiciel du système de contrôle en raison des exigences de synchronisation et du temps réel. Ainsi, le programmeur Rust peut tirer parti des caisses Rust pour représenter des graphes et faire des algorithmes de graphes et ajouter dynamiquement ces nœuds dans un graphe.
Le premier décodeur algorithmique que l’équipe Quantinuum a créé dans Rust et compilé dans WASM était assez simple : « Vous aviez des tableaux ou des dictionnaires globaux qui mappaient votre séquence de syndromes à un résultat. » Les structures de données utilisées dans l’article le plus récent sont plus complexes et les ingénieurs quantiques utilisent des algorithmes beaucoup plus sophistiqués comme la traversée de graphes et la méthode de Dijkstra. [shortest path] algorithme. « C’est vraiment intéressant de voir nos chercheurs en correction d’erreurs quantiques pousser le genre de choses qu’ils peuvent écrire en utilisant cet environnement. »
L’activation d’un logiciel suffisamment puissant pour gérer différentes approches de la correction d’erreurs quantiques permet aux chercheurs d’expérimenter beaucoup plus rapidement et plus facilement que s’ils devaient créer du matériel personnalisé à chaque fois, ou même reprogrammer un FPGA, en particulier pour ceux qui ont une formation en physique théorique. (avec le support de l’équipe du compilateur quantique si nécessaire). « Il est portable et vous pouvez le générer à partir de différentes langues, ce qui permet aux utilisateurs de choisir n’importe quel langage et logiciel pouvant être compilé vers WASM et adapté à leur application. »
« C’est certainement une période beaucoup plus facile pour eux de penser à compiler Rust en WebAssembly plutôt que d’essayer de programmer un FPGA ou de travailler avec quelqu’un d’autre et de décrire leurs algorithmes. Cela leur permet vraiment d’aller réfléchir à la façon dont ils vont le faire eux-mêmes », a déclaré Campora.
Bacs à sable et interfaces système
Les chercheurs écrivant leur propre code pour contrôler un système quantique complexe et coûteux, il est important de protéger ce système contre un code potentiellement problématique et c’est l’un des points forts de WebAssembly, a noté Campora. « Nous n’avons pas à nous soucier des problèmes de sécurité des personnes soumettant du code relativement arbitraire, car le bac à sable applique des garanties de sécurité de la mémoire et vous isole également de certains processus du système d’exploitation. »
Le développement de l’informatique quantique nécessite l’expertise de plusieurs disciplines et de chercheurs commerciaux et universitaires, il y a donc les questions de sécurité habituelles autour du code provenant de différentes sources. « L’un des objectifs de cet environnement est que, parce qu’il s’agit d’un logiciel, les chercheurs externes avec lesquels nous collaborons peuvent écrire leurs algorithmes pour faire des choses comme des décodeurs pour la correction d’erreurs quantiques et peuvent facilement les modifier dans leur langage de programmation et les soumettre à nouveau et les conserver. – évaluer les données.
Un langage comme Portable C pourrait faire le calcul, « mais alors vous perdez toutes ces garanties de sécurité », a souligné Campora. « Beaucoup d’outils de compilation sont vraiment bons pour vous faire savoir que vous faites quelque chose qui vous obligerait à sortir du bac à sable. »
WebAssembly limite ce qu’un utilisateur potentiellement malveillant ou inexpert pourrait faire qui pourrait endommager le système, mais permet également aux propriétaires de système d’offrir plus de fonctionnalités aux utilisateurs qui en ont besoin, en utilisant WASI – l’interface système WebAssembly qui normalise l’accès aux fonctionnalités et services qui ne sont pas dans le bac à sable WASM.
«J’aime la façon dont WASI peut vous permettre, de manière plus fine, d’opter pour quelques autres choses qui seraient normalement considérées comme cassant le bac à sable. Cela vous donne le contrôle. Si quelqu’un vient à vous avec une demande raisonnable que cela serait utile pour, par exemple, la génération de nombres aléatoires, nous pouvons envisager d’ajouter le support WASI afin que nous puissions les débloquer, mais par défaut, ils sont séparés des éléments du système d’exploitation.
En fin de compte, aussi ésotérique que soit le travail, l’attrait de WebAssembly pour la correction d’erreurs de calcul quantique est en grande partie ce qui le rend si utile dans tant de domaines.
« La partie Web du nom est presque malheureuse à certains égards », a noté Camora, « parce qu’il s’agit vraiment de ce bac à sable machine-pile de machine virtuelle générique, il peut donc être utilisé pour une variété de domaines. Si vous avez ces besoins de sandboxing, c’est vraiment un excellent objectif pour vous d’obtenir des garanties de sécurité tout en permettant aux gens de lui soumettre du code.
Créé avec Sketch.