211service.com
La promesse des superordinateurs personnels
La semaine dernière, Intel a annoncé un projet de recherche qui a fait bondir les geeks : le premier supercalculateur térascale programmable sur puce. La société a fait la démonstration d'une seule puce avec 80 cœurs, ou processeurs, et a montré que ces cœurs pouvaient être programmés pour traiter des nombres à la vitesse d'un billion d'opérations par seconde, une mesure connue sous le nom de téraflop. La puce a à peu près la taille d'un gros timbre-poste, mais elle a la même vitesse de calcul qu'un superordinateur qui, en 1996, occupait environ 2 000 pieds carrés et consommait environ 1 000 fois plus d'énergie.

Pas si super : Un superordinateur en 1996 (en haut à gauche) capable de calculer mille milliards d'opérations par seconde occupait environ 2 000 pieds carrés et consommait 500 000 watts. Récemment, Intel a dévoilé une puce de recherche à 80 cœurs (en bas à droite) qui atteint le même taux de calcul mais a la taille d'un gros timbre-poste et utilise environ 65 watts.
Cette puce de recherche est l'une des premières étapes d'Intel vers une technologie massivement multicœur, déclare Nitin Borkar, responsable de l'ingénierie et chef de projet de laboratoire chez Intel. L'objectif, dit-il, est d'utiliser cette puce pour tester des techniques qui pourraient rendre la technologie massivement multicœur plus rapide, plus économe en énergie et, surtout, facile à programmer. Ces techniques seront canalisées dans de futurs produits qui pourraient apparaître, si tout se passe bien, d'ici cinq à dix ans.
Mais presque tous les ingénieurs de l'industrie informatique s'accordent à dire que fabriquer des ordinateurs grand public avec des centaines de cœurs ne sera pas facile. En fait, beaucoup ne sont même pas sûrs que cela puisse être fait. Le défi le plus flagrant sera de trouver un moyen de refondre complètement le logiciel afin que les applications puissent profiter de nombreux cœurs. Cela inclut d'enseigner aux développeurs de logiciels comment écrire du code pour des machines multicœurs - une tâche connue sous le nom de programmation parallèle - et de développer de nouveaux outils qui leur permettent de coder avec précision et efficacité.
Les chercheurs et les visionnaires réfléchissent déjà à la meilleure façon d'utiliser ces puces de superordinateur. Intel pense que la reconnaissance, l'extraction et la synthèse ( RMS ) les applications seront la clé. Ensemble, ces technologies pourraient permettre une traduction linguistique en temps réel via les téléphones portables, une recherche vidéo en temps réel par phrase ou image parlée et de meilleurs systèmes de recommandation pour les achats, la planification des repas et même les soins de santé.
Pour faire de ces applications une réalité, l'industrie informatique connaîtra des difficultés de croissance, selon David Patterson , professeur d'informatique à l'Université de Californie à Berkeley. (Lui et ses collègues ont un site Internet qui héberge des discussions et fournit un livre blanc et des vidéos sur le sujet.) Nous sommes aux premiers stades de ce changement gigantesque, dit Patterson. Il décrit la direction dans laquelle l'industrie a décidé d'aller – abandonner les processeurs monocœurs aux performances limitées pour la technologie multicœur – comme une passe de Je vous salue Marie lancée dans un match de football. Les fabricants de puces mettent de plus en plus de cœurs sur une puce, mais les ingénieurs logiciels ne sont pas sûrs de pouvoir suivre le rythme. C'est une période passionnante pour les chercheurs, dit Patterson, si nous pouvons comprendre comment attraper la passe.
Parce que la fréquence d'horloge - la mesure de la vitesse du processeur - des puces monocœur n'a cessé d'augmenter pendant des décennies, les programmeurs pourraient esquiver le défi de la programmation en parallèle, dit John Shalf , informaticien au Lawrence Berkeley Laboratory, à Berkeley, en Californie. Leurs programmes fonctionneraient plus rapidement s'ils attendaient simplement 18 mois l'arrivée de la prochaine génération de puces, dit-il. Mais vers 2002, il est devenu évident que ces puces monocœur consommaient trop d'énergie et n'allaient pas être en mesure de maintenir les augmentations de vitesse. Ainsi, l'industrie a décidé de changer de cap : au lieu d'essayer de tirer plus de vitesse d'un seul processeur, les fabricants de puces ont simplement ajouté un autre processeur. Maintenant que nous ne pouvons pas augmenter la fréquence d'horloge, nous devons faire face au parallélisme de front, dit Shalf, et la meilleure façon de caractériser la réponse de l'industrie est la panique généralisée.
Qu'y a-t-il de si effrayant dans la programmation parallèle ? Pour commencer, il a été relégué aux spécialistes du monde du calcul haute performance (HPC) qui écrivent des logiciels qui résolvent des problèmes spécifiques qui s'exécutent sur des machines avec des milliers et des millions de cœurs. Le logiciel peut créer des modèles de changement climatique ou prédire le repliement des protéines, mais il est écrit pour une seule tâche laborieuse, pas pour les caprices des consommateurs qui veulent parler à un ordinateur, regarder des vidéos haute définition et garder un œil sur leurs parents vieillissants à l'autre bout du pays.
Plus précisément, les programmes parallèles doivent être écrits afin que les tâches puissent être partagées de manière appropriée entre les processeurs. C'est difficile car toutes les applications n'ont naturellement pas de composants pouvant être séparés ; parfois, lorsqu'elles sont séparées, les tâches sont terminées à des moments différents et créent des goulots d'étranglement. De plus, il existe des complications avec les ressources partagées : si une application a besoin d'accéder à des données en mémoire partagées par des dizaines ou des centaines d'autres cœurs, le programme peut ralentir ou se bloquer. De plus, le débogage de programmes parallèles peut être un cauchemar car souvent, une erreur est difficile à dupliquer, ce qui rend la source du problème difficile à trouver.
Mais même avec tous les défis, il y a de l'espoir, dit Shalf. Les chercheurs en HPC ont développé des portefeuilles d'algorithmes parallèles qui pourraient être utiles pour les programmes parallèles grand public. De plus, il existe déjà des produits massivement multicœurs sur le marché, et ils fournissent des indices sur les meilleures approches d'un point de vue architecture comme d'un point de vue programmation. Par exemple, une entreprise graphique NVIDIA vient de sortir une puce commerciale avec 128 cœurs, conçue pour rendre des graphiques pour des applications telles que les jeux vidéo. La plupart des cœurs sont à usage général, ce qui signifie qu'ils peuvent être programmés pour effectuer de nombreuses tâches graphiques différentes. L'alternative est que les cœurs aient des instructions câblées dans la puce.
En outre, Intel, AMD et d'autres collaborent avec des chercheurs universitaires pour essayer de créer un cadre de programmation parallèle qui puisse être convenu. Une approche qui semble prometteuse s'appelle la mémoire transactionnelle, dit Krste Asanović , professeur d'informatique au MIT. (Voir Le problème avec les ordinateurs multicœurs.) En utilisant la mémoire transactionnelle, une combinaison d'architecture de puce et de code, les programmeurs seront autorisés à penser de manière plus séquentielle, comme ils le font lorsqu'ils programment des systèmes monocœur, et laisseront le système fournir le parallélisme. Asanović dit que les programmeurs écrivent des instructions qui commencent et se terminent de manière linéaire, mais dans les coulisses, elles s'exécutent en parallèle. Cette approche nécessite la coopération des fournisseurs de matériel ainsi que des ingénieurs logiciels, car le matériel et les logiciels doivent fonctionner ensemble. Les deux communautés discutent, dit Asanović, mais il n'y a pas de consensus sur ce à quoi cela va ressembler. Il ajoute que la mémoire transactionnelle fera très probablement partie d'une combinaison d'approches qui pourraient faciliter la programmation en parallèle.
Sans consensus sur la manière de procéder avec la technologie multicœur, cependant, l'industrie informatique grand public pourrait se retrouver au point mort dans environ cinq ans, déclare Shalf. Mais il est optimiste car le domaine de l'informatique parallèle a reçu un nouveau sentiment d'urgence avec l'émergence de produits dual-core et quad-core. Dans le monde universitaire, nous pouvons être en désaccord pendant des années, dit-il, mais l'industrie a un moyen, avec son impératif économique, de trouver une solution assez rapidement.