DOKK / manpages / debian 12 / librheolef-dev / environment.2rheolef.en
environment(2rheolef) rheolef environment(2rheolef)

environment - initialization of distributed computations (rheolef-7.2)

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.

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.

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 ; };

Pierre Saramito <Pierre.Saramito@imag.fr>

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.

Mon Sep 19 2022 Version 7.2