Programmation parallèle : calcul de Pi
Introduction Dans mon précédent post, j'ai présenté un algorithme simple permettant d'estimer la valeur de Pi, afin d'évaluer les performances de l'AppEngine, le cloud de Google. Dans ce nouvel article, je vais adapter cet algorithme afin de l'exécuter en parallèle sur un processeur multi-coeurs. L'environnement de développement utilisé pour cet exemple est le Framework .NET 4.0 et Visual C# Express 2010. Pour rappel, voici l'algorithme original réécrit en C# : static double SerialPi() { double sum = 0.0; double step = 1.0 / (double)num_steps; for (int i = 0; i < num_steps; i++) { double x = (i + 0.5) * step; sum = sum + 4.0 / (1.0 + x * x); } return step * sum; } Parallel.For() Le Framework .NET 4.0 nous offre de nouvelles instructions dédiées aux traitements parallèles dans le namespace System.Threading.Tasks. La plus simple à utiliser est le Parallel.For, qui offre l'immense avantage de préserver pratiquement la structure de n