.NET : vers une programmation parallèle plus simple
Avec deux nouvelles librairies du framework de Microsoft



De nouvelles librairies du framework .NET sont disponibles, destinées à faciliter la création de programmes modernes qui tirent profit de la puissance de calcul des différents cœurs des processeurs.

Ces librairies sont aussi vouées à adapter davantage la technologie de Microsoft aux nouvelles exigences de la programmation ayant émergé ces dernières années.
Des programmes en plus en plus connectés au monde qui les entoure, impliquant une utilisation accrue des WebServices et du Cloud Computing. Une exigence qui rend de plus en plus obsolètes les programmes classiques, qui stagnent durant les temps de latence générés par cette connectivité permanente.

La nouvelle approche introduite par la librairie Async se base donc sur la « programmation synchrone » qui adapte les programmes aux nouvelles exigences en matière de traitement des données.

Les programmes dominants aujourd'hui s'attendent à ce que les données soient déjà prêtes et leur quantité connue au préalable avant de les traiter, tandis que les programmes du futur doivent pouvoir gérer des variations importantes et traiter les données à la volée.

En pratique, Async introduit de nouveaux mots clés qui peuvent désigner qu'un bloc de code doit être exécuté en parallèle avec le reste du programme. « Await » indique par exemple que les autres parties du code ne doivent pas attendre les résultats d'une méthode ou d'un bloc de code marqué avec ce mot clé.

Async remplace donc à son installation le compilateur du framework avec une variante qui prend en charge ces nouveaux mots clés.

La deuxième nouvelle librairie dite Task Parallel Library Dataflow (TPL Dataflow) permet aux développeurs de répartir leurs programmes en de « Dataflow Blocks » qui agissent comme des « agents » ; un concept fondamental de la programmation parallèle.

Ces agents fonctionnent d'une manière synchrone et s'appellent mutuellement plusieurs fois, suivant des modèles prédéterminés, jusqu'à ce que chacun d’entre eux obtient les données qu'il requière.

Les Dataflow Blocks créent ainsi une sorte de « réseau de calcul » où les données transitent jusqu'à ce qu'elles soient entièrement et correctement traitées.

La programmation parallèle n'est pourtant pas inédite pour le framework DotNET. Sa version 4 intègre déjà pour mémoire notamment les outils APM (Asynchronous Programming Model) et Event-based Asynchronous Pattern (EAP).
Des modèles de programmation qui affichent cependant leur limites et augmentent considérablement la quantité de code à écrire.

Async et TPL Dataflow sont actuellement disponibles en versions CTP (Community Technology Preview) et seront intégrés d'office aux prochaines versions du framework .NET et de l'IDE Visual Studio 2010.

Seuls C# et Visual Basic sont pour l'instant supportés, mais Microsoft promet d'étendre le support de ces deux librairies aux autres langages de la CLR (Common Language Runtime).


Visual Studio Async CTP est disponible en téléchargement sur cette page

TPL DataFlow est disponible en téléchargement sur cette page

Et vous ?

Avez-vous essayé ces deux nouvelles librairies ?
Qu'en pensez-vous ?