Le processeur Cell du trio IBM – Sony – Toshiba promet beaucoup, mais sa programmation tient aussi du casse-tête, surtout lorsqu'il s'agit de donner à chacun de ses huit coeurs périphériques des instructions différentes. IBM Research s'est penché sur la question.

Etant donné que le processeur multicore Cell Broadband Engine—c'est le véritable nom du Cell—est basé sur la technologie PowerPC d'IBM, il était logique qu'il revienne au constructeur américain de développer un outil susceptible d'accélérer la montée en puissance de cette puce si particulière. Rappelons avant d'aller plus loin que le Cell se compose de neuf unités de calcul : une centrale, qui distribue les instructions à huit autres unités périphériques (même si elles sont en fait placées en deux rangées de quatre dans le prolongement de l'unité principale), lesquelles se voient affectées des tâches simples et répétitives.

La première manifestation physique du Cell devrait faire son apparition sur le marché mondial sous le capot de la future console de jeu de Sony, la Playstation 3, (très) attendue pour la fin de l'année, si tout va bien. Le fait que ce processeur ait été expressément conçu pour exécuter des tâches graphiques particulièrement complexes le rend susceptible d'équiper un jour d'autres appareils, notamment dans le domaine de l'imagerie médicale.

Sachant que chaque Cell reçoit une évolution du processeur PowerPC 970 en guise d'unité de calcul principale, entourée de huit éléments de calcul synergique, on comprend que la manière dont les instructions sont transmises à chaque composant va en grande partie déterminer l'efficacité de l'ensemble. Si l'on y ajoute le fait que le Cell a été développé dans l'optique d'une cohabitation avec différents systèmes d'exploitation, dont Linux, il devient évident que la mise au point du Cell est probablement plus laborieuse, et plus coûteuse que ne l'estimaient IBM, Sony et Toshiba au début de l'aventure.

IBM, conscient du problème, dévoile aujourd'hui sa baguette magique : la version aboutie d'un logiciel de programmation pour son processeur Cell, logiciel qui présente la particularité d'être entièrement autonome, et ne requiert donc aucune—ou preque—intervention humaine lorsqu'il s'agit d'apprendre au Cell à lire et à écrire. Cet outil de compilation est baptisé Octopiler, en référence au fait qu'il s'adresse à une classe de huit élèves.

Octopiler fonctionne comme un interprète capable de traduire simultanément une même phrase en huit langues différentes : lorsqu'un programmeur entre une portion de code dans Octopiler, ce dernier la traduit aussitôt en autant de séries d'instructions qu'il y a de coeurs périphériques dans le Cell, soit huit au total. Il évite ainsi au programmeur de devoir adapter chaque portion de code à chacun des coeurs du processeur, et fait donc gagner un temps considérable. Evidemment, il a fallu au préalable enseigner à Octopiler la tâche dévolue à chacune des unités de calcul du Cell, mais ce travail est réalisé en amont, et prend finalement peu de temps.

La grande force d'Octopiler est de savoir traduire les instructions dans différents langages informatiques, car chaque coeur périphérique du Cell se voit confier une gamme de tâches, qui lui sont enseignées dans un langage précis, selon le principe du "single instruction, multiple data" (instruction simple, données multiples), qui fait gagner en temps et en ressources ; Octopiler doit aussi veiller à ce que les neufs coeurs sachent selon quelles modalités ils devront se partager la mémoire de la machine sur laquelle ils seront installés.

En novembre dernier, IBM avait déjà dévoilé une version Alpha de son Octopiler, basé sur son compilateur XL, et modifié pour accepter les instructions en 64-bit sur les processeurs x86. La mouture définitive est donc présentée aujourd'hui, et les développeurs qui sont intéressés peuvent s'adresser à IBM AlphaWorks.


Source : CNET News