9H00 - 9H30 Introduction

clip_image002

Christian Staudinger présentant le programme de la journée

La journée débute par une brève introduction animée par Christian Staudinger (Worldwide Channel, Software Development Products, Intel Corporation). J'apprends à cette occasion que la conférence à lieu depuis 2006 et est organisée dans différentes grandes villes Européennes (souvent aussi sympathiques que Salzbourg). L'agenda de la journée est ventilé sur sept sessions portant essentiellement sur l'offre logicielle d'Intel Parallel Studio. Christian a conclu sur des remerciements à toutes les personnes ayant contribuées au succès de cette édition 2009.

9H30 - 10H30 Power of Multicore: Easing Parallelism for Mainstream for Mainstream

clip_image002[4]

James Reinders expliquant Intel Parallel Studio

Cette session est animée par le fameux James Reinders (Chief Software Evangelist and Director of Software Development Products, Intel Corporation). Il est important de rappeler que James est le père de la librairie de programmation Threading Building Blocs (TBB), qui est aujourd'hui disponible en Open Source, mais que James est aussi l'auteur de l'ouvrage sur le même sujet, qui parait-il aurait inspiré les ingénieurs Microsoft dans leur implémentation de la librairie Parallel Pattern Library (PPL) qui est actuellement disponible à travers une CTP de Visual Studio 2010. Pour information, James était présent à la conférence Microsoft PDC08 et est intervenu dans plusieurs sessions, notamment celle sur le Concurrency Runtime. Pour les néophytes, comme moi, de l'offre Intel cette session a permis de mieux comprendre l'offre globale et ses évolutions. En d'autres mots, pour répondre aux besoins de tous les développeurs parallèles, l'offre se décompose aujourd'hui en deux lignes produits: Intel High Performance Computing Tools et Intel Parallel Studio.

La ligne produit intel High Performance Computing (HPC) est généralement dédiés aux spécialistes du calcul scientifique. Cette offre contient une suite outils permettant de développer des applications HPC de hautes qualités avec des compilateurs Intel C++ et Fortran qui s'exécutent à la fois sur Windows, Linux et Mac OS X. On y trouve aussi des librairies spécialisées dans l'univers parallèle comme les librairies Threading Building Blocks (TBB), Integrated Performance Primitives (IPP), et Math Kernel Library (MKL). Sur le plan de l'outillage pour diagnostiquer son code parallèle on utilisera Intel Thread Checker et pour améliorer les performance de ses applications parallèles, on utilisera Intel VTune. Cette ligne produit va continuer de s'améliorer parfois même grâce aux synergies avec la nouvelle ligne produit Intel Parallel Studio. Par exemple la prochaine version de VTune exploitera des éléments développer dans nouveau produit Intel Parallel Amplifier, bien que VTune reste l'outil de référence HPC.

La toute nouvelle ligne produits Parallel Studio vient apporter aux développeurs C++ moins spécialisés que ceux du monde HPC, une solution simple et pragmatique pour développer des applications parallèles évolutives et déterministes avec Visual Studio (2005 et 2008). C'est naturellement cette dernière offre qui va occuper l'essentiel de la session. Les promesses de cette nouvelle offre sont extrêmement importantes pour la communauté Visual C++ qui en général, ne connait pas toujours l'offre Intel HPC Tools. James rappelle les grands messages sur le passage du "Multicore" aux "Manycore" et des conséquences pour les développeurs souhaitant tirer partie de tous ces cœurs. La nouvelle offre Intel Parallel Studio vient accompagner le processus de développement d'applications parallèles afin d'apporter de l'aide aux développeurs parallèles. Notons le caractère innovant de l'offre car peu de produits sur le marché peuvent prétendre garantir la mise à l'échelle effective des applications en assurant à la fois un comportement déterministe, un code robuste et une capacité de mise à l'échelle en fonction du nombre de cœurs disponibles. Le produit se décompose en quatre modules qui pourront être aussi achetés séparément. Chacun des modules s'inscrit dans une des phases du développement d'applications parallèles

· Intel Parallel Advisor: Modélisation d'une application parallèle

· Intel Parallel Composer: Implémentation et mise au point d'une application parallèle

· Intel Parallel Inspector: Vérification de la robustesse d'une application parallèle à la fois sur le plan mémoire et sur le multithreading

· Intel Parallel Amplifer: Mise au point sur le plan des performances d'exécution d'une application parallèle

Ainsi le développeur peut itérer son développement parallèle en passant confortablement d'un outil à l'autre dans Visual Studio (actuellement la première version cible Visual Studio 2005 et Visual Studio 2008) sans aucune contrainte. Mis à par Intel Parallel Composer qui comprend le compilateur C++ Intel, les autres modules sont parfaitement utilisables avec le compilateur C++ Microsoft. Actuellement la version Beta de Intel Parallel Studio est disponible en téléchargement, mais vous noterez que le module Intel Parallel Advisor n'est pas, par contre, disponible actuellement. Ce module s'inscrit dans un domaine encore jamais proposé par un outil du marché: aider le développeur au design d'une application parallèle avant d'introduire une seule ligne de code parallèle. Actuellement Intel ne prévoit pas de fournir ce module à la sortie de la première version de Intel Parallel Studio c'est à dire dans un mois ou deux, car la première version du module Intel Parallel Advisor sortira en 2010. En revanche les utilisateurs de Intel Parallel Studio version 1.0 pourront télécharger la version "Parallel Advisor Lite" au moment de sa sortie officielle, ainsi Intel espère améliorer la version finale d'Intel Advisor sur la base des retours des premiers utilisateurs. On le sait, développer en parallèle est une affaire difficile et disposer d'un outil qui permet de nous guider dans notre démarche est sans aucun doute une aide non négligeable. Naturellement l'outil ne sera pas magique, il réclamera la collaboration du développeur pour déterminer les zones de code pouvant être parallélisées ou pas. Nous n'avons pas vu réellement le produit car il semble encore en phase de développement, mais le principe sera le suivant: l'outil analyse votre code séquentielle et vous fait des suggestions de parallélisassions que vous évaluerez en décorant votre code C++ avec quelques Macros. L'outil vous proposera protéger certaines sections de code pour éviter des problèmes de multithreading. Bref un outil très prometteur qui va sans doute permettre à de nombreuses applications C++ de devenir à la fois massivement parallèles, très performantes et très robustes. La prochaine version de Intel Parallel Studio (version 2.0) viendra s'intégrer au Microsoft Concurrency Runtime de Visual Studio 2010. On pourra ainsi travailler avec tous les outils Intel comme Intel Parallel Inspector et Intel Parallel Amplifer sur du code parallèle des librairies Microsoft Parallel Pattern Library ou Asynchronous Agents. En conclusion James a brossé avec talent les motivations et l'offre globale logicielle d'Intel en détaillant à la fois les améliorations de la gamme HPC Tools et la nouvelle gamme Intel Parallel Studio.

A bientôt,

Bruno

boucard.bruno@free.fr