Quoi de neuf dans Visual Studio 10 pour le développement parallèle ?

Bonjour,

Ca y est la PDC 2008 (Profesional Developer Conference) de Los Angeles est partie.

J’ai pu donc assister à quelques sessions sur les nouveautés que nous prépare Microsoft autour du parallélisme.

Microsoft Visual Studio : Bringing out the best in Multicore Systems, assurée par Hazim Shafi Principal Architect dans le team PCP (Parallel Computing Platform) et accessoirement Docteur en parallélisme, excusez du peu.

Hazim, a commencé sa session, en nous expliquant les motivations de Microsoft sur le parallélisme. Comme vous avez pu le constater, les multi-cores sont déjà la, et à part quelque experts, nous ne sommes pas forcement prêt à affronter ce chalenge. Ceci pour plusieurs raisons.

Les concepts autour du parallélisme sont difficiles et manipuler du thread n’est pas toujours aisé, d’autant plus que nos outils ne nous aident pas forcement dans cette tâche.

C’est la raison pour laquelle, Microsoft travail actuellement, à la fois sur une nouvelle Version de Visual Studio 10 et la version 4.0 du Framework .NET, qui incorporerons des outils ainsi que des librairies d’aide au parallélisme.

En substance on trouve :

Le Concurrency Runtime, un gestionnaire qui arbitra les demandes de ressources.

Qui facilitera le load balancing sur le scheduler de tâches, et qui supportera plusieurs instances de schedulers.

Ce concurrency Runtime est également extensible, c'est-à-dire que des tiers pourront s’appuyer dessus, pour leurs propres librairies. Le premier acteur à adhérer à ce modèle est Intel avec TBB et OpenMP.

On retrouvera dans le Framework .NET 4.0, en standard, les extensions parallèles au Framework .NET. je ne reviens pas dessus, reportez vous à l’article que j’ai écrit sur le sujet.

Microsoft travail également sur une librairie pour les développeurs C++ (avec une syntaxe propre à la STL, et facilité par l'introduction dans le C++ Microsoft, des lambdas expression et de l'inférence de type, du standard C++0X)

Parallel Pattern Library, et Agent Library, qui fournissent un ensemble de Primitives (des tâches), d’algorithmes (Parallel_For, Parallel_For_Each, etc..) d’objets de synchronisations (enter_critical, reader_critical, event, etc..) et de structure de données concurrent (concurrent_queue, concurrent_Stack, etc..) qui ont pour but de réduire les concepts du parallélisme, et ainsi favoriser une meilleur adoption.

A coté de cela, nous retrouvons, des outils d’aides au debug parallèle, ainsi qu’un profiler qui permet d’analyser plus finement les taches et threads.

Je ne rentre pas trop dans le détail aujourd’hui, car je vous prépare pour les Techdays 2009 une série de démos sur le sujet.

Pour ceux qui ne connaissent pas Techdays 2009. Microsoft France organise sur trois jours des conférences gratuites au palais des congrès. Alors, restez à l’écoute je vous préviendrais dés l’ouverture de l’enregistrement.

 

Eric Vernié