Articles

Affichage des articles du septembre, 2010

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

Test de performance de Google AppEngine

Image
Introduction On parle énormément de "cloud computing" depuis ces deux dernières années : Amazon S3, Microsoft Azure, Google AppEngine. C'est pourquoi j'ai voulu me livrer à un petit test de performance avec AppEngine, qui offre l'énorme avantage d'être gratuit et disponible sous toutes les plateformes puisqu'il utilise Java et Python comme principaux langages de programmation. Une fois inscrit sur l'AppEngine et après avoir téléchargé le SDK dans le langage de votre choix, vous aurez accès à ce tableau de bord vous permettant de monitorer l'utilisation de votre crédit de CPU et de bande passante : Ma plateforme de référence est très modeste ; un simple portable équipé d'un processeur Intel Core 2 Duo à 2.1 Ghz, avec une mémoire de 2 Gb. Les systèmes d'exploitation utilisés pour tester la version locale de mon benchmark sont Windows XP Pro SP3 et Ubuntu 10.04. Le programme de test Mon programme de test est un grand classique : l&