J'ai essayé de construire un wrapper autour de MPI et OpenMP pour avoir un format unifié à coder au lieu de devoir continuer à basculer entre MPI_xxx, omp_xxx et #pragma omp xxx.Comment créer un wrapper pour un pragma et le faire compiler correctement?
J'ai eu des problèmes en créant une enveloppe autour des différentes directives OMP #pragma, jusqu'à présent le meilleur que j'ai obtenu est d'avoir comme:
#define _mmc_(x) _Pragma("omp ## #x")
(mmc est le nom provisoire pour mon bibliothèque)
donc, si je voulais avoir
#pragma omp parallel for
L'enveloppe correspondante doit être
_mmc_(parallel for)
Cependant quand il compile le compilateur semble évaluer différemment, en me donnant l'avertissement de compilation
test.cpp:22:0: warning: ignoring #pragma omp [-Wunknown-pragmas]
_mmc_(parallel for)
Je compile avec mpiC++ pour MPICH 3.0.4 autour gcc 4.8.4 dans Ubuntu 14.04, avec le drapeaux
-fopenmp -lm -std=c++11 -Wall
y at-il quelque chose que je peux faire ou ajouter au code pour faire ce travail, ou est-ce juste quelque chose qui ne peut être fait avec les outils actuels?
Petite note: les noms globaux commençant par des traits de soulignement sont réservés pour l'implémentation. – chris