mpihelper.hh File Reference


Detailed Description

This file contains helpers for dealing with MPI.

Basically there are two helpers available:

FakeMPIHelper
A class adhering to the interface of MPIHelper that does not need MPI at all. This can be used to create a sequential program even if MPI is used to compile it.
MPIHelper
A real MPI helper. When the singleton gets instantiated MPI_Init will be called and before the program exits MPI_Finalize will be called.

Example of who to use these classes:

A program that is parallel if compiled with MPI and sequential otherwise:

   int main(int argc, char** argv){
      typedef Dune::MPIHelper MPIHelper;
      MPIHelper::instance(&argc, &argv);
      typename MPIHelper::MPICommunicator world = 
        MPIHelper::getCommunicator();
      ...

If one wants to have sequential program even if the code is compiled with mpi then one simply has to exchange the typedef with

 typedef Dune::MPIHelper FakeMPIHelper; 
.

For checking whether we really use MPI or just fake please use MPIHelper::isFake (this is also possible at compile time!)

#include <cassert>
#include "mpi.h"
#include "stdstreams.hh"

Go to the source code of this file.


Namespaces

namespace  Dune

Classes

class  Dune::FakeMPIHelper
 A fake mpi helper. More...
class  Dune::MPIHelper
 A real mpi helper. More...

Generated on 12 Dec 2007 with Doxygen (ver 1.5.1)