IDF 2008 : Intel veut démocratiser le développement parallèle
L'arrivée d'un ensemble d'outils pour le développement parallèle sur Windows donne des ailes aux développeurs de l'IDF, qui y voient un moyen d'exploiter plus facilement les puces multi-coeur. Notamment celles d'Intel. Pour le marché, il s'agit d'un premier pas vers la simplification du parallélisme. Et son exploitation à plein.
Quoi de plus naturel pour un constructeur de processeurs multi-coeurs que de fournir un ensemble d'outils pour paralléliser une application. Un sentiment partagé par les développeurs au sortir de la conférence d'Intel au cours de laquelle le groupe a inauguré une version de test (bêta) de Parallel Studio, une suite intégrée dont l'objectif est d'aider les développeurs à exploiter la puissance du multi-coeur (et du multi-thread) dans leurs applications. Un kit très attendu par ces mêmes développeurs qui estiment l'approche d'Intel absolument nécessaire, et surtout inévitable, au fur et à mesure que le multi-coeur s'installe sur la majorité des ordinateurs.
Parallel Studio s'adresse avant tout aux développeurs C++ et s'intègre ainsi étroitement à Visual Studio. Quatre modules composent la suite intégrée: Parallel Advisor, qui permet de scanner le code pour détecter celui pouvant être "threadé" ; Parallel Composer, qui offre une collection de compileurs et de librairies ; Parallel Inspector, un débogueur ; et enfin Parallel Amplifier, pour tuner le code et en améliorer éventuellement les performances.
Disponible en novembre, une série d'outils pour Larabee - la prochaine génération de puces graphiques multi-coeurs du fndeur - devrait également voir le jour, confirme Renee James, vice-président de la division logiciel d'Intel.
Apprendre le Cuda de Nvidia ? "Pas sûr"
Des annonces dont se félicite Guy De Nally, développeurs chez Avid Technology qui vient d'apprendre qu'il pourra utiliser Studio Parallel pour Larabee. « Un segment où le parallèlisme est très complexe à déployer. Et même si d'autres outils existent sur le marché, Intel propose une formule tout intégrée de bout en bout ». Un argument qui fait mouche, selon lui. Et il ajoute : « après cela, je me demande si je dois ou non apprendre Cuda (compileur C développé par Nvidia qui embarque des instructions natives liée au parallélisme, ndlr) ? Je n'en suis vraiment pas sûr », conclut-il.
Car justement, si les outils alors sortis par Intel étaient attendus, c'est qu'ils visent avant tout le développeur lambda. Mainstream, dans le discours d'Intel. Une formule très intégrée pour démocratiser. « Nous avons créé cette offre pour le mainstream et poursuivons la commercialisation de nos précédents produits à la communauté des scientifiques, très consommatrice de calcul haute performance (et de multi-thread) », souligne Charles Piper, chef de produit Intel Software. Pour ces marchés, le fondeur commercialise Vtune Performance Analyser, Thead Checker et Theading Building Block.
Une différenciation qui opérera également dans les librairies disponibles. « La base éprouvée est la même mais il y aura des différences entre celle destinée à la communauté scientifique et celle pour le mainstream », confie Charles Piper.
Et James Reinders, directeur marketing et commercial chez Intel Software, va même plus loin en faisant du lien unique avec Microsoft et Visual Studio, un argument de facilité. « Avec Studio n'implique pas de modifier systématiquement son environnement de développement. » Ce qu'un autre développeur interrogé pour l'occasion, mais qui souhaite garder l'anonymat, confirme. Peu importe l'environnement, le fait que ce soit Intel et intégré suffit à convaincre.
Moins de ré-écriture de code
Si Parallel Studio offre un premier niveau d'aide à la parallélisation du code, - le débogueur faisant figure de plus grosse avancée dans ce domaine -, le projet de recherche “CT” (pour C/C++ for Throughput Computing) va plus loin. Depuis deux ans en gestation dans les laboratoires d'Intel, il ambitionne de paralléliser les applications sans avoir à réécrire de code (ou très peu). « Comment rendre le plus facile la parallélisation de code existant », résume Mohan Rajagopalan, chercheur en langage et système chez Intel. Il s'agit de « traiter du code séquentiel comme s'il était parallèle. Le code devient implicitement parallèle. Et c'est là tout l'intérêt de CT », explique-t-il.
Autrement dit, il s'agit de poser des lignes de codes qui integreront le parallèlisme. CT offre la possibilité de le faire le plus efficacement possible et d'automatiser les procédures autant que possible, grâce à un runtime dynamique. « Il est très proche du langage C, vous n'avez pas besoin d'apprendre un nouveau langage et une nouvelle synthaxe », conclut le chercheur.