Dependence on MPI when enabling StarPU?
- Summary
I have set up a scalfmm package within the new spack-repo distrib: https://gitlab.inria.fr/solverstack/spack-repo/blob/master/packages/scalfmm/package.py
As suggested by @coulaud, it supports both maintenance/scalfmm-1.5 (default) and devel.
The basic install without mpi of scalfmm (maintenance/scalfmm-1.5) succeeds with gcc:
spack install scalfmm~mpi
- Problem
However, when doing the same (no mpi) but furthermore enabling StarPU, with:
spack install scalfmm~mpi+starpu
it fails ... looking for mpi.h while it shall not depend on mpi, the "~mpi" spack
variant setting "-DSCALFMM_USE_MPI=OFF" for cmake.
- Log
Here is the (short) log (see line 522) :
517 cd /home/eagullo/soft/custom-spack-build/spack-stage/spack-stage-GkaeYa/ScalFMM/spack-build/Tests && /home/eagullo/soft/spack/lib/spack/env/gcc/g++ -DtestRotationAlgorithm_EXPORTS -I/home/eagullo/soft/spack/opt/spack/linux-debianunstable-x86_64/gcc-7.2.0/hwloc-1.11.8-5k2fzcf677mdx7rgt7v6q6evjecoveot/include -I/home/eagullo/soft/spack/opt/spack/linux-debianunstable-x86_64/gcc-7.2.0/starpu-1.2.3-pg52cbrjidsmrglh7sttajz2z3xgdf7r/include/starpu/1.2 -I/home/eagullo/soft/spack/opt/spack/linux-debianunstable-x86_64/gcc-7.2.0/libpciaccess-0.13.5-dlu7yandhwgejlec56h334gqb3zrso5l/include -I/home/eagullo/soft/spack/opt/spack/linux-debianunstable-x86_64/gcc-7.2.0/libxml2-2.9.4-vcj4rqldxxko4ftpuqs5ddc5xogjoy3i/include/libxml2 -I/home/eagullo/soft/custom-spack-build/spack-stage/spack-stage-GkaeYa/ScalFMM/spack-build/Src -I/home/eagullo/soft/spack/var/spack/stage/scalfmm-1.5-fgqviyknshvrddf3pv4mimsjisp6om6e/ScalFMM/Src -I/home/eagullo/soft/spack/opt/spack/linux-debianunstable-x86_64/gcc-7.2.0/fftw-3.3.6-pl2-llpleglrz34vqqtdbyar4qablcm2nkyf/include -std=c++14 -fpic -Wall -m64 -ffast-math -funroll-loops -ftree-vectorize -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wconversion -Wcast-qual -Wcast-align -Woverloaded-virtual -mtune=native -march=native -rdynamic -fopenmp -O3 -DNDEBUG -o CMakeFiles/testRotationAlgorithm.dir/Kernels/testRotationAlgorithm.cpp.o -c /home/eagullo/soft/spack/var/spack/stage/scalfmm-1.5-fgqviyknshvrddf3pv4mimsjisp6om6e/ScalFMM/Tests/Kernels/testRotationAlgorithm.cpp
518 Scanning dependencies of target testBlockedAlgorithm
519 make[2] : on quitte le répertoire « /home/eagullo/soft/custom-spack-build/spack-stage/spack-stage-GkaeYa/ScalFMM/spack-build »
520 make -f Tests/CMakeFiles/testBlockedAlgorithm.dir/build.make Tests/CMakeFiles/testBlockedAlgorithm.dir/build
521 make[2] : on entre dans le répertoire « /home/eagullo/soft/custom-spack-build/spack-stage/spack-stage-GkaeYa/ScalFMM/spack-build »
522 /home/eagullo/soft/spack/var/spack/stage/scalfmm-1.5-fgqviyknshvrddf3pv4mimsjisp6om6e/ScalFMM/Tests/GroupTree/testBlockedImplicitChebyshev.cpp:8:10: fatal error: mpi.h: Aucun fichier ou dossier de ce type
523 #include <mpi.h>
524 ^~~~~~~
525 compilation terminated.
526 Tests/CMakeFiles/testBlockedImplicitChebyshev.dir/build.make:65 : la recette pour la cible « Tests/CMakeFiles/testBlockedImplicitChebyshev.dir/GroupTree/testBlockedImplicitChebyshev.cpp.o » a échouée
527 make[2]: *** [Tests/CMakeFiles/testBlockedImplicitChebyshev.dir/GroupTree/testBlockedImplicitChebyshev.cpp.o] Erreur 1
528 make[2] : on quitte le répertoire « /home/eagullo/soft/custom-spack-build/spack-stage/spack-stage-GkaeYa/ScalFMM/spack-build »
- Suggestion
Add // @FUSE_MPI
:
https://gitlab.inria.fr/solverstack/ScalFMM/blob/maintenance/scalfmm-1.5/Tests/GroupTree/testBlockedImplicitChebyshev.cpp#L2