J'imagine qu'il le trouve, car si je commente le bloc
Code:
find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
Après avoir appelé cmake . et lancé la compilation, j'ai un warning
Code:
/home/benjamin/Documents/UIUC/uiuc-cpp/pic4.0/mycode/source/Pop.cc:42:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
#pragma omp parallel for reduction (+:DQ)
^
Si le bloc est actif, plus de warning lors de la compilation, et la trace de cmake . est
Code:
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp
-- Configuring done
-- Generating done
-- Build files have been written to: /home/benjamin/Documents/UIUC/uiuc-cpp/pic4.0
Donc OpenMP est bien trouvé j'ai l'impression.
edit: je pensais qu'il me suffisait de jeter un oeil au Makefile pour avoir la réponse à ma question, mais cmake . génère pléthore de fichier donc il est un peu dur de s'y retrouver.
J'ai trouvé un fichier link.txt contenant ceci:
Code:
/usr/bin/c++ -pedantic -fpic -Wall -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Wswitch -Wno-unused-local-typedefs -Wno-long-long -std=c++11 -Wno-parentheses -Wno-long-long -fopenmp -Og -ggdb -Wa,--compress-debug-sections -Wl,--as-needed -rdynamic -pthread -ggdb CMakeFiles/pic4.0.dir/source/Pop.cc.o CMakeFiles/pic4.0.dir/source/Particle.cc.o CMakeFiles/pic4.0.dir/source/Ion.cc.o CMakeFiles/pic4.0.dir/source/Pic.cc.o CMakeFiles/pic4.0.dir/source/Electron.cc.o CMakeFiles/pic4.0.dir/source/Circle.cc.o CMakeFiles/pic4.0.dir/source/Initializer.cc.o CMakeFiles/pic4.0.dir/source/main.cc.o -o pic4.0 -rdynamic "/~/bin/deal.II/lib/libdeal_II.g.so.8.1.0" /usr/lib/liblapack.so.3gf /usr/lib/libblas.so.3gf -lm -lquadmath -lc -ldl -Wl,-rpath,"/~/bin/deal.II/lib"
ça ressemble fortement à une liste d'options passée à un compilateur. Et je ne vois aucune mention à OpenMP. Comment se fait-il que j'ai réussi à compiler le code
Je vais rajouter à main nue l'option "-fopenmp" dans la liste et voir si ça change quelque chose... Il y a bien le flag -fopenmp dans le tas...