[Dune] Strange problem with MPI_Comm ?

Christian Engwer christian.engwer at uni-muenster.de
Fri Mar 27 12:01:23 CET 2015


Hi Benedikt,

a) this seems to be a bit of an error in the code, at least I'd expect
   it to work with and without MPI

> /scratch/daint/boswald/gitwork/hades/communicationinterface/globaluniqueindex.hh:101:58:
> error: 'MPI_Comm' was not declared in this scope
>   typedef typename Dune::template CollectiveCommunication<MPI_Comm>
> Collective;

   you should guard this by an '#if HAVE_MPI'

b) why doesn't it find MPI?...
   - what does your cmake tell you? does it say MPI found?
   - your MPI_DUNE_* flags are empty!?
   - your compile command does nto include -DENABLE_MPI=1
> > /opt/cray/craype/2.2.1/bin/CC   -DENABLE_BOOST -DHAVE_CONFIG_H -Wall
> > -O2
> > -I/users/boswald/extlib/superludist/3.3/cray-mpich/7.1.1/gcc/4.9.2/SRC
> > -std=c++11  -I/scratch/daint/boswald/gitwork/hades/build-cmake
> > -I/scratch/daint/boswald/gitwork/hades
> > -I/scratch/daint/boswald/gitwork/dune-common
> > -I/scratch/daint/boswald/gitwork/dune-geometry
> > -I/scratch/daint/boswald/gitwork/dune-grid
> > -I/scratch/daint/boswald/gitwork/dune-alugrid
> > -I/scratch/daint/boswald/gitwork/dune-localfunctions
> > -I/scratch/daint/boswald/gitwork/dune-istl
> > -I/users/boswald/extlib/boost/1.57.0/gcc/4.9.2/include   
> > -DHAVE_SUPERLU_DIST -DCMAKE_SYSTEM_NAME=Linux -o

I guess the problem is that your are circumventing the dune MPI
infrastructure and directly using the MPI compiler. Somehow the DUNE
system doesn't know that you yre using MPI... Did you add the MPI
flags in your CMakeLists.txt using "add_DUNE_MPI_flags(targetname)"?

Christian






More information about the Dune mailing list