La programmation est l’art de schématiser et simplifier un processus pour l’automatiser. Nous aboutissons donc le plus souvent à un code sériel. Avec l’arrivée de puces multi-core, et bientôt massivement multi-core cette approche atteint ses limites : Il vous faut passer à la programmation parallèle. N’ayez crainte, Intel est là pour vous aider avec un ensemble logiciel aussi convivial que complet : Intel Parallel Studio.
Le parallélisme se conçoit à plusieurs niveaux, mais celui qui nous intéresse ici est le " thread ". Intel Parallel Studio est un ensemble de logiciels pour vous aider à introduire du multi-threadisme dans votre logiciel, corriger les éventuels bugs parallèles et enfin améliorer la performance. En pratique, Parallel Studio se présente comme un ajout à Microsoft Visual Studio avec lequel il est fortement intégré.
Introduire du multi-threadisme
La première étape est l’ajout de sections parallèles dans votre code. Choix cornélien tant les technologies proposées sont variées. Intel recommande et fournit une très bonne implémentation d’OpenMP et de la librairie Threading Building Block. Le standard OpenMP est le bon choix pour les programmeurs orientés C qui préfèrent garder un style sériel et minimiser les changements de code. La librairie TBB est, elle, destinée aux adeptes du C++ qui ne sont pas contre une incursion dans la programmation fonctionnelle. Avec ces deux solutions vous devriez pouvoir résoudre une grande partie de vos besoins. Une fois la méthode choisie, paralléliser une partie simple de votre code est étonnamment rapide. Mais il ne s’agit que d’un début.
Chasser les bugs
Avec la programmation parallèle apparaissent des bugs spécifiquement parallèles. Ils sont sournois et complexes à tracer. Il est alors très utile d’avoir un outil comme Parallel Inspector. Cet outil instrumente et analyse de manière extrêmement avancée l’exécution de votre logiciel pour trouver des bugs, et ce même s’ils ne s’exécutent pas dans les conditions particulières du test. Le résultat est un simple tableau très complet pointant vers les bugs dans votre code. Il faut cependant comprendre quelles sont les classes de bugs parallèles pour pouvoir comprendre les indications et corriger. Les bugs parallèles sont certes sournois mais ils ont souvent le même mécanisme et des causes similaires. Les corriger est donc souvent simple une fois que l’outil les a pointés.
La touche finale
Vous avez un logiciel parallèle, bravo, mais en pratique encore faut-il qu’il utilise correctement tous ces merveilleux coeurs. Dans une équipe, ajouter des développeurs ne sert que si la méthode de travail permet un partage efficace du travail. Pour vous aider à comprendre comment fonctionne votre logiciel en parallèle, Intel propose Parallel Amplifier. Cet outil mesure comment chaque instruction de votre logiciel interagit avec le processeur à une échelle infime lors de l’exécution, puis agglomère les données pour en faire un résumé simple. Vous pouvez alors trouver les régions chronophages en allant jusqu'à l’échelle de la ligne de code, et les régions qui n’utilisent qu’une partie des coeurs. Vous pourrez aussi savoir quel temps est pris dans la synchronisation d’une variable partagée.
Compilateur et IPP
Intel Parallel Studio a beau mettre en avant ses logiciels de parallélisation, il fournit aussi tout ce qui est nécessaire pour obtenir la meilleure performance en sériel avant même de paralléliser. L’outil clé est le compilateur Intel. Bien intégré dans Visual Studio il est le fruit d’une intense collaboration avec les architectes processeurs. Nul autre compilateur ne sait mieux tirer parti des derniers jeux d’instructions. Apprenez la signification des principaux flags et vous gagnerez à coup sûr, sur le temps d’exécution. Le compilateur Intel ne respecte pas seulement le standard, il le devance. Ainsi vous trouverez le support pour les fonctions lambda et autres innovations syntaxiques dans la dernière version. Il serait triste de consacrer du temps à l’optimisation de votre code et d’utiliser par ailleurs des librairies peu performantes. Aussi Parallel Studio est fourni avec la librairie Intel Performance Primitives. Derrière ce nom se cachent en fait des codecs audio ou vidéo ultra optimisés, des fonctions d’imagerie par pipeline, de cryptographie, mathématiques … et bien d’autres.
Conclusion
Les concepteurs de Parallel Studio avaient pour ambition de démystifier et simplifier la programmation parallèle. Je pense qu’ils ont réussi. Jugez en par vous-même avec la version d’essai.
Paul Guermonprez
Ingénieur logiciel - Intel
Actualités
Intel Parallel Studio 2011 Getting Started
Pratique
Supplément C++
Livre blanc
Intel Parallel Studio 2011
Intel propose une nouvelle gamme d'outils de développement d'applications pour profiter du multicore via une programmation parallèle. Il s'agit de l'Intel® Parallel Studio qui d'adresse aux développeurs Windows qui possèdent Visual Studio* C/C++2008. Ce nouvel outil est en fait un ensemble qui réunit , Parallel Advisor pour diagnostiquer le code quant aux possibilités de parallélisation, Parallel Composer pour incorporer du parallélisme à l'aide d'un compilateur C++ Intel et des bibliothèques thread safe, Parallel Inspector pour découvrir des conflits de threading éventuels et Parallel Amplifier pour diagnostiquer le comportement des threads.
Liens
Actu
Pratique
Actu
Distributeurs INTEL