Boutor : Utiliser OpenMP avec Code::Blocks sous Windows
samedi 7 novembre 2015 à 12:20J’avais déjà fait en 2011 un article sur OpenMP et Code::Blocks (http://wp.me/pJPCq-6H).
Comme celui-ci a toujours du succès et qu’il est franchement daté, je le remets au goût du jour.
Je vous laisse installer Code::Blocks. Quelque soit la version choisie, le MinGW intégré ne supporte pas OpenMP.
Vous allez dans le répertoire C:\\Program Files (x86)\\CodeBlocks et changer le répertoire MinGW en MinGW_old, pour revenir en arrière en cas de besoin.
Vous allez chercher le MinGW de TDM disponible ici : http://tdm-gcc.tdragon.net/download.
Vous lancez l’application et choisissez CREATE.
Choisissez le 32 ou le 64 bits.
On veut que le TDM-gcc vienne remplacer l’ancien wingw, on remplit la destination comme suit : C:\\Program Files (x86)\\CodeBlocks\\MinGW\\
Il faut ne pas oublier de cocher que l’on veut installer OpenMP.
On finit l’installation de TDM-gcc.
On lance code::blocks. Il faut ensuite aller changer les noms des exécutables pour la compilation : Settings -> Compiler.
Et aller dans l’onglet (image ci-dessous) : Global compiler settings, et sous onglet toolchain executables.
Entrez les exécutables correspondant au TDM installé (varie selon 32 ou 64 bits).
Tout est ok pour la partie installation de TDM-gcc.
Je vous propose d’aller tester l’installation réalisée.
Je vous laisse créer un projet OMPTest et de mettre le code suivant dans main.cpp.
#include#include #include using namespace std; void simple(int n, double *a, double *b) { int i; #pragma omp parallel for for(int j = 0; j < 3300; j++) { for (i=1; i Je l’exécute sans OpenMP, il dure 12 secondes.
Pour activer OpenMP, on va dans Project -> build options et on ajoute -fopenmp dans Compiler Settings, onglet Other options.
On va ensuite dans l’onglet Linker Settings, où on ajoute la librairie : C:\\Program Files (x86)\\CodeBlocks\\MinGW\\lib\\gcc\\x86_64-w64-mingw32\\5.1.0\\libgomp.a. Il faut probablement adapter le lien.
On peut lancer la compilation. Si vous faîtes le test avec le gestionnaire de tâches, vous voyez que les 4 processeurs tournent en parallèle. Le code est très mauvais puisque la version parallèle est plus lente que la version scalaire (54 secondes).
Original post of Boutor.Votez pour ce billet sur Planet Libre.Articles similaires
- Boutor : Utiliser C++11 avec Code::Blocks sur windows (14/11/2012)
- Boutor : Compiler un programme OpenCV avec code::blocks sous Windows (06/01/2011)
- Boutor : Utiliser OpenMP avec Code::Blocks (03/05/2011)
- Boutor : Compiler Boost sous Windows et essai avec CodeBlocks (28/06/2012)
- Boutor : Code::blocks problème avec la touche espace (07/10/2011)