Tirer parti de la pleine puissance des ordinateurs

28/06/2008
La Grande Epoque

La technologie multicoeurs associe deux processeurs ou plus sur une même puce de silicium. Elle permet à un ordinateur de traiter en même temps des tâches séparées, ce qui améliore ses performances. Cependant, pour tirer pleinement parti de cette puissance supérieure de calcul, il faut adapter le logiciel à cette technologie.

Le projet VELOX, une approche intégrée des mémoires transactionnelles pour les ordinateurs à plusieurs coeurs, vise à développer ce genre de logiciels. D'après les partenaires du projet, ce logiciel pourrait aider à transformer des portables ordinaires en superordinateurs.

Les ordinateurs font partie de notre vie quotidienne. Pour satisfaire la demande en puissance, les constructeurs d'ordinateurs cherchent comment rendre leurs appareils toujours plus performants. L'une des possibilités consisterait à utiliser des processeurs multicoeurs, où plusieurs coeurs de processeurs traitent simultanément plusieurs tâches. En termes de mécanique auto, l'opération revient à ajouter des pistons à un moteur, par exemple en transformant un bicylindre en quatre cylindres.

Cependant, doter nos ordinateurs d'un moteur possédant deux fois plus de cylindres ne se traduira pas nécessairement par des calculs deux fois plus rapides. Il faut d'abord que les nouveaux cylindres soient mis en service. L'ajout de nouveaux coeurs augmente bien la puissance brute de l'ordinateur, mais le système peut ignorer la présence des coeurs supplémentaires, et ne pas les utiliser. Pour tirer parti de la puissance supplémentaire, les programmeurs doivent donner des instructions à chaque coeur qui fonctionne en parallèle avec un autre.

Dans un ordinateur à un seul coeur, les logiciels sont principalement exécutés en séquence, chaque tâche étant traitée l'une après l'autre. Au contraire, dans un système à plusieurs coeurs, les tâches sont partagées entre les coeurs. Cependant, lorsque des tâches différentes doivent accéder à des données situées au même emplacement en mémoire, leur synchronisation peut échouer. Les données sont alors endommagées, et le système peut se bloquer.

Pour assurer le bon fonctionnement de la programmation parallèle, il faut donc disposer d'une méthode coordonnée et ordonnée pour accéder aux données partagées. Jusqu'ici, les programmeurs de systèmes multicoeurs ont préféré une méthode de verrous avec un niveau de détail très fin, qui protège de petites quantités de code ou de données. En effet, cette méthode est capable de gérer des tâches concurrentes. Cependant, on considère que ces verrous rendent le code plus complexe et plus difficile à maintenir et à déboguer.

Le projet VELOX propose comme alternative de développer un système de programmation logicielle pour la mémoire transactionnelle. Ce système associe dans des transactions atomiques des séquences d'opérations concurrentes, et promet de simplifier grandement la programmation, de même que la vérification. En effet, les parties du code apparaissent comme étant séquentielles, sans qu'il soit nécessaire de faire appel à des verrous très fins. Cette notion de transactions évite au programmeur de s'inquiéter des interactions entre les opérations concurrentes, qui peuvent entrer en conflit lorsqu'elles accèdent aux mêmes emplacements en mémoire.

«Grâce à la complémentarité de ses partenaires, [le projet] permettra aux chercheurs européens d'apporter des contributions significatives à la révolution en cours, qui vise à mettre la programmation parallèle à la portée du plus grand nombre», déclare Osman Unsal du centre de superinformatique de Barcelone (BSC) et directeur du projet VELOX.

«Le projet VELOX est crucial pour permettre aux applications qui fonctionnent aujourd'hui sur des superordinateurs de tourner sur les ordinateurs portables qui seront bientôt développés», souligne Mateo Valero, directeur du BSC.


Pour de plus amples informations, consulter:
[www.bsc.es]

© Communautés européennes, 1990-2008
[http://cordis.europa.eu]

View Article
Download pdf