Welcome to NetFxFactory Sign in | Join | Help

Actualites

PDC 2008 : Concurrent, Multi-core Programming on Windows and .NET

Video

Transcript

J’ai été conquis par la parallelisation. J’y ai d’ailleurs dédié mon dimanche. Et oui, messieurs à la PDC, on n’arrive pas le jour dit. Non, on arrive avant. Car à la PDC, il y a la pré conférence.

Attention, ce n'est pas l'occasion de parfaire son profil de spectateurs : Point de cours d'applaudissement ou d'aide a la qualification du niveau de stupidité d'une question.

La pré conférence, ce n'est pas non plus une garderie pour les nombreux spectateurs qui seraient arrivés le samedi précédant la PDC en vue d’économiser quelques dollars dans l'achat de leur billet d'avion afin de les dépenser plus tard dans l’achat d’une quelconque nourriture bien grasse de ce coté de l’atlantique.

C'est en tout cas ce que penseront ceux qui auront assistés à la session Concurrent, Multi-core Programming on Windows and .NET. On devrait d'ailleurs dire la journée et non la session. Un temps nécessaire pour dresser l'état de l'art de la programmation parallèle sur la plateforme .NET.

Qu’y ai-je appris ? Principalement deux choses, la première le pourquoi de cette mise en lumière de ce type de programmation, la seconde la solution proposée par Microsoft et offerte à travers la version 4.0 du .NET Framework.

Pour résumer le pourquoi, vous me permettrez certainement d’employer une image, je ne la puiserai pas dans le domaine de l’automobile mais celui des animaux des champs. En effet, vous m’accorderez que par le passé, un lièvre et un processeur partageait un gout immodéré pour la vitesse, aujourd’*** ce n’est plus le cas, c’est leur faculté de reproduction qui est comparable. Fini le temps, où l’arrivée d’un nouveau processeur se traduisait par un gain de performance au niveau de notre applicatif. Il va falloir désormais pour tirer profit des nouvelles générations de processeurs paralléliser nos lignes de code.

J’entends déjà gémir les plus fainéants redoutant de devoir remettre en question les bonnes pratiques associées à la gestion de threads ou bien de devoir apprendre un nouveau langage F#.

Ils semblent que la fainéantise s’accompagne de la médisance. Car Microsoft a déjà montré par le passé qu’elle avait à cœur de vulgariser les fonctionnalités les moins populaires de sa plateforme. Pour preuve, les classes ThreadPool et BackgroundWorker (supportant aussi bien Windows Forms que WPF) dans le cas de la gestion de threads. Pourquoi en serait-il autrement aujourd’*** ? Et je dirais même qu’ils ont été encore plus loin au niveau de la simplification car ils ont fait le choix de l’utlisation de méthodes d’extension. S’il faut que vous en notiez qu’une seule, retenez AsParallel().

La démonstration la plus parlante est la marche à suivre pour paralleliser une requete LINQ. Il suffit de suffixer celle-ci par cette méthode. Et vous pourrez dès lors crier haut et fort votre maitrise du langage PLINQ.

Ces méthodes d’extension ne sont pas les seuls outils que proposera Microsoft. Les plus rompus à l’exercice pourront paramétrer finement comme à l’accoutumée la parallèlisation de leur code.

Je les invite d’ailleurs pour se faire les dents à jeter un œil sur la librairie Ccr, partie intégrante du produit Microsoft Robotics Studio. Si celle-ci répond avant tout au besoin de ce dernier et n’est donc pas soumis à l’obligation de généricité imposé au .NET Framework, l’équipe de développement du .NET Framework en charge de la programmation parallèle juge cette librairie de bonne facture et devrait reprendre à terme certaines de ses fonctionnalités.

Vous pouvez également vous plonger dans l’excellent livre de Joe Duffy, figure emblématique de l’équipe de développement. Je vois que les plus attentifs notent une faible épaisseur pour ce livre. Ce que je tiens en main n’est qu’un seul chapitre du livre, ne croyez pas que mes compétences me permettent de ne lire que celui-ci. C’est juste que je n’ai pas encore pris le temps d’acheter l’édition complète. Les plus sceptiques quant à la qualité du travail fourni par Joe et ses compères devraient voir envoler leurs doutes après la lecture de ce livre.

Références :

Concurrency and Coordination Runtime

Microsoft Robotics

Parallel LINQ : Running Queries On Multi-Core Processors

Concurrent Programming on Windows (Joe Duffy Book)

Published Tuesday, October 28, 2008 11:57 AM by Pascal
Filed under: , ,

Comments

No Comments
Anonymous comments are disabled

This Blog

Syndication

Powered by Community Server (Personal Edition), by Telligent Systems