[Dune] MPI Handling in dgfparser
Andreas Dedner
dedner at mathematik.uni-freiburg.de
Fri Jul 14 14:16:05 CEST 2006
Die Idee war ein und denselben Code benutzen zu koennen, falls
1) kein mpi gefunden wurde
2) mpi gefunden wurde aber nicht benutzt wird
3) mpi gefunden wurde und parallel gearbeitet wird
Seit der --enable-mpi flag existiert hat sich das ganze entschaerft -
deswegen wurde er ja auch eingefuerht.
Ich wuerd allerdings trotzdem gern schreiben:
MPISTART
...
grid("name.dgf",MPI_COMM_WORLD);
...
MPIEND
statt
#if HAVE_MPI
MPI_Init();
#endif
...
#if HAVE_MPI
grid("name",MPI_COMM_WORLD;
#else
grid("name");
#endif
...
#if HAVE_MPI
MPI_End();
#endif
Wahrscheinlich weil ich finde wir muessen dem Anwedner nicht zu viele
defines zumuten.
Auch gabs frueher Schwierigkeiten, wenn mpi gefunden wurde, dann aber in
den LIBS -lmpi nicht eingetragen war.
Ich will das DGF-Grid so umschreiben, dass MPI_COMM_WORLD ein template
type bekommt, dann ist auch das Problem mit dem int-Annahme geloest.
Wir sind allerdings alle hier in Fr naechste Woche auf einer Konferenz,
daher erwartet bis dahin nix von hier.
Gruss Andreas
Markus Blatt wrote:
> Hi,
>
> as some of you might habe noticed I changed some of the defines in the
> dgfparser to make it work work with lam-mpi. As I already feared this
> broke quite some tests in the grid check. (see:
> <http://www.dune-project.org/checklog?display=log&revision=2006-07-14T00%3A00%2B0200&mode=build&module=test-alu3dgrid&path=%2Fdune-grid%2Fgrid%2Ftest&tag=Head%20Build&host=hal%20%28Linux%20i686%2C%20gcc%203.4%29> )
>
> The error seems now that there is no mpi.h included in the dgfparser's
> header files and therefore MPI_Comm and MPI_COMM_WORLD are not
> defined.
>
> As it is quite easy to include them conditionally if MPI is installed
> ,by:
> #ifdef HAVE_MPI
> #include"mpi.h"
> #endif
>
> I am wondering whether there is a reason for not doing this in the
> dgfparser header files.
>
> It would be really nice if somebody could explain me what the rational
> behind the defines of MPI_Comm, MPI_COMM_WORLD, MPI_Init,
> MPI_Finalize, ... was.
>
> Was it intended to be able to compile a programm in sequential mode even
> if Dune is configured with mpi-support. If so, how was this supposed
> to work?
>
> Looking forward to some enlightenment.
>
> Cheers,
>
> Markus
More information about the Dune
mailing list