Dans mon projet C++, il existe plusieurs instructions #pragma omp parallel for private(i)
. Lorsque j'essaie de repérer les bogues dans mon code à l'aide de valgrind, les ornements OpenMP entraînent des messages de fuite de mémoire «éventuellement perdus». Je voudrais désactiver totalement toutes les déclarations #pragma
susmentionnées afin que je puisse isoler le problème.Désactivation des instructions pragmatiques OpenMP partout dans mon projet C++
Cependant, j'utilise omp_get_wtime()
dans mon code, et je ne souhaite pas désactiver ces appels de fonction. Je ne veux donc pas totalement désactiver toutes les fonctionnalités OpenMP dans mon projet. Comment puis-je simplement désactiver toutes les instructions #pragma omp parallel for private(i)
?
J'utilise Eclipse CDT pour gérer automatiquement les fichiers makefiles, et donc je compile normalement en mode release par: make all -C release
. Idéalement, je voudrais une solution à mon problème qui me permette de compiler en utilisant une instruction telle que make all -C release -TURN_OFF_PARALLEL
qui se traduirait par toutes les instructions #pragma
susmentionnées étant désactivées.
Pouvez-vous préciser ce que vous entendez par "lier les fonctions de la librairie OpenMP stub"? – synaptik
L'idée est de lier une librairie _serial_ avec l'API définie dans 'omp.h'. Certains compilateurs fournissent un drapeau pour faire cela, donc la seule chose dont vous avez besoin est simplement de changer un drapeau au moment de la compilation. Ceci, par exemple, est une [référence pour Intel] (http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/copts/common_options/option_openmp_stubs.htm) – Massimiliano
Quelle est votre opinion sur l'utilisation de 'boost :: timer' [class] (http://www.boost.org/doc/libs/1_53_0/libs/timer/doc/cpu_timers.html) au lieu de OpenMP' omp_get_wtime () 'Fonction? Parce que je n'utilise aucune autre fonction OpenMP. – synaptik