mercredi 21 décembre 2011

Open MP et Visual Studio 2010

Si vous disposez de multi-processeurs sur votre machine vous pouvez utiliser l'api OPEN MP pour paralléliser vos programmes en  C++


L'api OPENMP est intégrée dans le compilateur C/C++ de Visual Studio dans les versions Professional et +

Créez un nouveau projet C++ ( Win32 Console Application ) que vous appelez : helloopenmp

Copiez le code suivant dans le fichier helloopenmp.cpp ( point d'entrée de votre application )


#include "stdafx.h"
#include < omp.h >

int _tmain(int argc, _TCHAR* argv[])
{

    #pragma omp parallel
    {
       printf("Hello, world.\n");
    }
    getchar();
    return 0;
}

La directive #pragma omp parallel va lancer x threads ( x correspond au nombre de coeurs de votre processeur ). Dans mon cas ( Core 2 Duo ) donc 2 threads vont être lancés.

Pour activer la prise en charge de ces directives par le compilateur vous devez aller dans les options de compilation du projet :

Project -> helloopenmp Properties -> Configuration Properties -> C / C++ -> Command Line et dans Additional Options ajoutez l'aoption : /openmp

Maintenant démarrez votre programme, voici le résultat obtenu :