Je suis tombé hier soir (pas de mal, merci) sur cette page, qui fait office de présentation des extensions parallèles pour .NET.
Je ne m'étais jusqu'à maintenant jamais vraiment intéressé à ce pan de la programmation, et cette lecture m'a permis de me rendre compte à quel point la programmation parallèle va revêtir une importance de plus en plus cruciale avec l'avènement des processeurs multi-coeurs, et qui n'est pas prêt de s'arrêter.
Je n'en suis qu'au début de mes lectures sur ce sujet, mais je suis déjà impressionné par la facilité avec laquelle il est déjà possible d'intégrer ça dans nos programmes.
De manière très simplifiée, il suffit par exemple de changer ça:
for (int i = 0; i < MAX; i++)
{
//Traitement
}
en
Parallel.For(0, MAX, (int i)=>
{
//Traitement
});
pour que votre boucle soit parallélisée sur tous vos processeurs!
A cela s'ajoutent également de nouvelles collections génériques prenant en charge le traitement multi-processeurs (list, queue, stack...), la fonction Parallel.Invoke qui permet de réaliser des tâches asynchrones, la synchronisation de tâches via les classes Task et Future, et enfin la possibilité d'utiliser les extensions parallèles avec LINQ. Vous l'aurez compris, beaucoup de choses!
En ce qui concerne les liens, il y a déjà l'introduction dont j'ai parlé plus haut, ensuite il y a le blog de la team qui développe ces extensions, la page de download, et une page MSDN.
N'oubliez pas d'aller jeter un oeil dans le répertoire d'installation des extensions, et surtout dans le dossier Samples, avec des exemples très intéressants (dont un RayTracer en LINQ dont vous me direz des nouvelles ;) )
Have fun !