environment - initialization of distributed computations (rheolef-7.2)
Contents
Copyright
Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL version 3 or
later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the extent permitted by law.
rheolef Version 7.2 environment(2rheolef)
Description
This class is mainly used to initialize the MPI library: it should be called juste after the
main(argc,argv) declaration:
#include 'rheolef.h'
using namespace rheolef;
int main (int argc, char**argv) {
environment rheolef (argc, argv);
...
}
An optional third argument of the environment constructor allows one to set the MPI thread feature. By
default, its value is MPI_THREAD_MULTIPLE, as defined in mpi.h. Other possible values are related to MPI
multi-threaded: see the MPI documentation for more details.
When compiling in a non-distributed configuration of the Rheolef library, this is a do-nothing class.
Implementation
This documentation has been generated from file linalg/lib/environment.h
class environment {
public:
environment (int& argc, char**& argv, const environment_option_type& opt = environment_option_type());
~environment();
};
struct environment_option_type {
static const int no_thread = 100;
static const int default_thread = MPI_THREAD_MULTIPLE;
environment_option_type() : thread_level (default_thread) {}
int thread_level ;
};
Name
environment - initialization of distributed computations (rheolef-7.2)
Note
The interface of this class is inspirated from the boost::mpi::environment class. Instead of the boost
implementation that calls MPI_Init(), here this class calls MPI_Init_thread() instead. This extension
allows one to support the scotch library when it has been compiled with the threads feature.
