SIMD.js : la programmation parall�le s�invite dans JavaScript
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.
:fleche: La sp�cification de l'API SIMD.js
:fleche: Les d�mos de SIMD.js � l'IDF14
Source : Mozilla
Et vous ?
:fleche: Que pensez-vous de SIMD.js ? L�avez-vous test� ?
(hors sujet ?) langages de haut niveau et hardware
ishraam:
> ...Ce qui est dommage ce n'est pas tant que les langages de haut niveau
> ne s'int�ressent pas au bas niveau hardware...
Julia (http://julialang.org) est un langage r�cent dont la premi�re communication officielle date de f�vrier 2012 (d�but des travaux en 2009).
Julia est gratuit, multi-plateforme, bas� sur LLVM (comme le compilateur c++ `Clang` : et on peut y ins�rer de l'assembleur), d�velopp� essentiellement par le MIT et orient� scientifique. Julia est inspir� de Matlab, Ruby, Python,... tout en �tant compatible avec la notion de copi�-coll� !
Julia int�gre nativement les tableaux multidimensionnels et l'alg�bre lin�aire et dispose d'une communaut�e tr�s active autour le l'optimisation et des math�matiques appliqu�es en g�n�ral.
Julia est un langage dynamique typ�, compil� � la vol�e, non orient� objet au sens classique mais qui supporte la notion de "multi-dispach" de m�thodes, g�n�ralisant ainsi la notion d'objets et de m�thodes virtuelles. Ses possibilit�s d'introspection et sa caract�ristique homoiconique (comme TCL ;-) lui permette de proposer un syst�me de macro puissant.
Accessoirement, la page d'accueil de Julia (tableau comparatif des performances) montre que les performances de certaines machines Javascript sont loin d'�tre ridicules devant d'autre langages dit "classiques".
-- Maurice