Microsoft progresse dans le parallélisme
Les développeurs français étaient invités à venir écouter lundi 23 juin deux responsables américains sur les outils de développement de Microsoft. Ces derniers ont présenté les travaux de l'éditeur dans le domaine de la parallélisation du code, autrement dit, son optimisation pour les architectures multi-coeurs. Les applications telles qu'elles sont conçues actuellement, ne savent pas tirer parti des architectures multi-coeurs. Pour de vrais gains de performance, les applications doivent être programmées avec des mécanismes de parallélisme. Mais comme le souligne Steve Teixeira, l'un des deux responsables, il s'agit d'un travail extrêmement complexe, réservé aux développeurs les plus brillants. Microsoft propose depuis le début du mois de Juin un outillage spécifique pour masquer cette complexité. Certes, reconnaît Keith Yedlin, responsable de ce programme d'extensions pour le parallélisme le reconnaît, le kit Parallel Extensions (disponible en téléchargement en version CTP, donc pas encore finalisée) ne répond pas encore à toutes les problématiques introduites par la parallélisation. Ne serait-ce que parce que les outils ne savent pas encore rendre compte de façon visuelle ... ... de la concomitance d'activités ; or le parallélisme consiste justement à découper un programme de façon à l'exécuter sur tous les coeurs en même temps. Il faut aussi savoir gérer l'intégrité de données manipulées par deux processus en parallèle. Autre limite, certaines applications dépendent d'actions séquentielles. Reste que lorsque les scénarios s'y prêtent, les performances sont impressionnantes. Parmi les démonstrations effectuées, une simple requête sur une base, écrite en Linq, et qui consommait 25% de la CPU sur un quadri-coeur, prenait 10,27 secondes. La même requête en PLinq - donc avec une instruction rendant le code parallèle - consommait 98% de la CPU mais donnait la réponse en seulement 2,11 secondes. Fait notable, les démonstrations étaient réalisées sur Vista : le système lui-même n'est pas spécialement optimisé pour les multi-coeurs, mais une application optimisée parvient tout de même à en tirer parti. Si tout n'est pas résolu, les opportunités sont déjà nombreuses, souligne Steve Teixeira. On peut ainsi imaginer de passer à de nouvelles interfaces homme-machine, impensables avant car bien trop gourmandes. On peut aussi imaginer des applications répondant de façon immédiate, reléguant l'irritant sablier aux oubliettes.