SIMD.js : la programmation parallèle s’invite dans JavaScript
Mozilla présente les évolutions de l’API
Le gain de performances qu’apportent les architectures multiprocesseurs n’est pas encore exploité par le langage JavaSctipt qui ne permet pas de pratiquer la programmation parallèle.
Plusieurs géants de l’écosystème de l’IT, dont Intel, Google et Mozilla ont travaillé de concert pour faire du parallélisme une réalité pour les applications JavaScript.
C’est ainsi qu’est né le projet SIMD.js, une API qui introduit de nouveaux types et fonctions pour permettre aux développeurs JavaScript de booster les performances de leurs applications, grâce à l’exploitation du parallélisme.
SIMD.js permet aux développeurs de créer de nouvelles classes d’applications de calcul intensif telles que les jeux, des animations, etc. en JavaScript, sans avoir besoin de s’appuyer sur des extensions ou du code natif « non portable ».
L’API repose sur le projet open source d’Intel baptisé SIMD (Single Instruction Multiple Data), qui permet d’accélérer les performances des applications grâce à l’utilisation du parallélisme pour traiter simultanément la même opération sur plusieurs éléments de données. SIMD est une technique très populaire pour accélérer le calcul dans les graphiques, l’audio, les codecs, la cryptographie, les simulations en physique et bien plus.
SIMD.js permet donc d’exposer des interfaces de haut niveau SIMD aux applications JavaScript. Actuellement, le projet supporte les plateformes x86 et les plateformes ARM NEON et ESS. Des travaux sont cours pour l’étendre à plusieurs autres plateformes.
À l’origine, le projet est dérivé de la spécification Dart SIMD. Il a évolué rapidement pour devenir une API plus générale, avec de nouveaux cas d’utilisation. L’API a été approuvée par le comité ECMA International TC39, responsable de la standardisation de la norme ECMAscript. Elle pourrait donc être prise en compte dans la prochaine spécification du langage JavaScript.
Une version de SIMD.js peut être testée dans Firefox Nightly. Le projet est en cours d’examen par l’équipe Internet Explorer de Microsoft et un prototype est en cours de développement sur une branche de Chrome. Des démonstrations effectuées lors de la conférence IDF14 sont également disponibles en ligne.
La spécification de l'API SIMD.js
Les démos de SIMD.js à l'IDF14
Source : Mozilla
Et vous ?
Que pensez-vous de SIMD.js ? L’avez-vous testé ?
Partager