dimanche 30 septembre 2007

CELL, évolution ou révolution ?

IBM a mis sur le marché, il y a maintenant environ deux ans et demi, un nouveau type de processeur appelé CELL. Ce nouveau processeur a été conçu conjointement par IBM, Sony et Toshiba. Le CELL est d'ailleurs présent au coeur de la Sony Playstation3.

Les innovations du CELL sont de deux ordres :
  • l'absence d'une unité d'optimisation du code, qui a pour désavantage de laisser au développeur la lourde tâche de gérer les instructions de manière optimisée, sans compter sur le processeur pour optimiser le code, mais qui a également pour avantage de simplifier l'organisation du circuit, en laissant une place libre considérable.
  • du fait de cette nouvelle organisation, la structure du processeur est novatrice. Il comprend un coeur principal, appelé PowerPC Processing Element, et huit processeurs "synergétiques" (SPE), capables de "s'allumer" progressivement à la commande du PPE, afin d'optimiser le traitement des calculs complexes.

Il s'agit donc d'une architecture novatrice, extrêmement efficace (j'ai ainsi eu l'occasion d'assister à une démonstration de mapping d'image en 3D et en temps réel, inaccessible avec des technologies conventionnelles), mais qui pose un problème sérieux. En effet, notamment de par l'absence d'élément d'optimisation du code, la quasi-totalité de la complexité du traitement est laissée à la charge du développeur, qui n'a en général ni les moyens ni la connaissance pour gérer cette complexité.


La rupture technologique espérée est donc fortement ralentie par la difficulté d'accès au processus de développement, ce qui montre bien qu'aujourd'hui, la progression toujours plus impressionnante des processeurs se fait de manière indépendante du logiciel. Il s'agit donc d'une évolution très remarquable dans le domaine des architectures multi-coeurs (même si celle ci n'est pas, à proprement parler, traditionnelle), mais qui nécessite de solides connaissances en développement et en parallélisation pour devenir une réelle révolution.

Pour plus d'informations sur le CELL, je propose notamment la lecture de http://arstechnica.com/articles/paedia/cpu/cell-1.ars (article en deux parties).





vendredi 21 septembre 2007

Vers une nouvelle génération de circuits... et l'informatique alors?

L'American Chemical Society a annoncé que des chercheurs israeliens ont réussi à créer une méthode simple et économique pour constituer des circuits intégrés à base de nanotubes de carbone, une technique connue sous le nom de SWCNT.

Outre l'originalité de la méthode, consistant à créer des réseaux de nanotubes suspendus entre des 'colonnes' de silicium, cette technique témoigne de la possibilité actuelle de créer des circuits très intégrés, et donc très puissants. Elle témoigne également du fait que l'essentiel de la recherche visant à accroître la puissance des machines est réalisée sous l'angle du hardware: création de "super-circuits", empilement de processeurs dans des architectures multi-coeurs sophistiquées, etc. Pourtant, il existe une voie de recherche considérable consistant à modifier non uniquement le matériel, mais également le logiciel. Car si l'on y réfléchit: en quoi une machine actuelle diffère-t'elle d'un ordinateur des années 60? L'organisation du système de fichiers, le traitement de la mémoire, le stockage des informations n'ont pas été foncièrement modifiés. Il s'agit, finalement toujours de manipuler de la mémoire, de plus en plus rapidement.

Cela est également apparent sous l'angle du développement. Les outils et environnements de développement sont aujourd'hui très performants, et extrêmement complexes. Mais le développeur ne sait plus directement (ou rarement) comment fonctionne le processeur ou la mémoire. Et de ce point de vue, les progrès ne sont pas aussi fulgurants que l'on pourrait le croire.


Cela pose donc la question du progrès en informatique. La loi de Moore est une loi physique et économique. Ce n'est pas un témoin intellectuel reflétant le progrès de la discipline. Car pour pouvoir aujourd'hui réellement profiter des capacités de ces nouvelles architectures, il serait nécessaire de repenser l'informatique dans son ensemble, une tâche considérable qui ne saurait dissocier évolution des processeurs et conception de la programmation.

mercredi 19 septembre 2007

Focus sur... Bionatics

Mon précédent message parlait de simulation. Voici donc une entreprise à suivre: la société BIONATICS (www.bionatics.com). Il s'agit d'une société fondée par un ancien "top-gun" de Thales Simulation, Michel Murail, à partir notamment de la technologie d'un laboratoire de recherche, le CIRAD de Montpellier.

A partir d'une technologie de simulation de la croissance des plantes (un sujet étudié depuis longtemps - cf les L-Systems, mais peu exploité industriellement), Bionatics a eu l'idée de développer et d'industrialiser une gamme de logiciels permettant d'incorporer des végétaux au sein de simulations, et de les faire virtuellement croître de manière réaliste.

Les applications de cette technologie (RealNAT) vont de l'animation à l'architecture (maquettes virtuelles) en passant par la Défense : génération d'une couverture végétale pour des simulateurs de pilotage, la préparation d'opérations pour les forces spéciales, etc... Il ne s'agit pas uniquement de représenter les plantes, mais également de gérer la juste suffisance du niveau de détail (ce que l'on appelle LOD); et tout cela en cohérence avec la nature et la localisation du terrain. Il convient donc d'utiliser des bases géospécifiques, permettant de choisir les espèces adaptées au terrain et climat choisis. Il existe à ce jour 7 catégories de telles bases: Tempéré (Europe), Amérique du Nord, Savane Africaine, Tempéré (Asie), Méditerranée, Tropical & subtropical et plantes communes.

De plus, Bionatics a acquis en 2004 la technologie procédurale Blueberry3D, qui permet, pour des simulations temps réel, d'éditer et visualiser des terrains 3D (voir ci-dessus).

La traduction en français de start-up est "jeune pousse". On ne saurait si bien dire...

lundi 17 septembre 2007

La simulation, technologie de cette nouvelle décade?

On connaissait la simulation pour les loisirs (jeux vidéos), pour l'entraînement professionnel (simulateurs instrumentés, apprentissage du maniement d'un véhicule ou d'un système d'armes, jeux de guerre...)... Voici maintenant la simulation ubiquitaire.

Les progrès fulgurants des capacités de calcul modernes ont en effet accéléré l'utilisation de la simulation dans des domaines où elle n'était traditionnellement pas présente. La langue française définit la simulation comme « l’action de feindre, de faire paraître réelle une chose qui ne l'est pas ». En l'occurrence, il s'agit d'une "juste suffisance" : "faire paraitre" lorsque l'on cherche à immerger l'être humain dans un monde de simulacre, ou simuler le monde tel qu'il pourrait être pour s'affranchir des coûts ou de la complexité d'une expérimentation réelle.

Ainsi, les opérations militaires modernes intègrent souvent aujourd'hui une composante de simulation. Celle ci permet de s'entraîner, de répéter des missions, d'aider à la décision. Mais aujourd'hui, la simulation sort de sa "niche" et devient une manière d'appréhender le monde. L'essor d'univers "à la second life" n'est que le reflet de ce mouvement, ainsi que le développement de jeux vidéos qui, loin de reposer uniquement sur des scenarii, incorporent véritablement un "modèle du monde": moteur physique, modélisation du comportement, etc...


Il devient donc maintenant possible d'aller vers une réelle simulation, c'est à dire que l'on généralise partout l'emploi de micro-modèles du monde. Bientôt, les crash-tests automobiles (quelques peu coûteux) seront totalement remplacés par la simulation. Une opération médicale pourra être répétée en simulation (et potentiellement revue en "réalité augmentée" avant intervention.

Cette généralisation de la simulation nécessite des procédures de calcul efficaces, tant du point de vue des algorithmes utilisés, que de l'infrastructure de calcul elle-même. En effet, ce qui différencie la simulation et la scénarisation, c'est bien l'émergence, c'est-à-dire le fait de pouvoir observer un phénomène qui n'est pas directement lié, de manière déterministe, aux paramètres entrés par l'utilisateur. Sinon, quel intérêt? Mais pour ce faire, multiplier les processeurs ne suffit pas, il faut penser de nouveaux algorithmes, de nouvelles architectures, de nouvelles techniques de calcul. C'est à ce prix que la simulation sortira du pré carré des applications actuelles pour se généraliser, comme l'Internet ou la vidéo l'ont fait avant elle.

Pour plus d'informations, je propose égoïstement le site de la société MASA : www.masa-sci.com.