Support Software for Vector Reduction/Transformation Operators Version of the Day
RTOpPack::Teuchos::GlobalMPISession Class Reference

This class provides methods for initializing, finalizing, and querying the global MPI session. More...

#include <RTOpPack_SPMD_apply_op_def.hpp>

List of all members.

Public constructor and destructor

 GlobalMPISession (int *argc, char ***argv, std::ostream *out=&std::cout)
 Calls MPI_Init() if MPI is enabled.
 ~GlobalMPISession ()
 Calls MPI_Finalize() if MPI is enabled.

Static functions

static bool mpiIsInitialized ()
 Return if MPI is initialized or not.
static bool mpiIsFinalized ()
 Return if MPI has already been finalized.
static int getRank ()
 Returns the process rank relative to MPI_COMM_WORLD
static int getNProc ()
 Returns the number of processors relative to MPI_COMM_WORLD

Detailed Description

This class provides methods for initializing, finalizing, and querying the global MPI session.

This class is primarilly designed to insulate basic main() program type of code from having to know if MPI is enabled or not.

ToDo: Give examples!

Definition at line 65 of file RTOpPack_SPMD_apply_op_def.hpp.


Constructor & Destructor Documentation

RTOpPack::Teuchos::GlobalMPISession::GlobalMPISession ( int *  argc,
char ***  argv,
std::ostream *  out = &std::cout 
)

Calls MPI_Init() if MPI is enabled.

Parameters:
argc[in] Argment passed into main(argc,argv)
argv[in] Argment passed into main(argc,argv)
out[in] If out!=NULL, then a small message on each processor will be printed to this stream. The default is &std::cout.

If the option --teuchos-suppress-startup-banner is found, the this option will be removed from argv[] before being passed to MPI_Init(...) and the startup output message to *out will be suppressed.

Warning! This constructor can only be called once per executable or an error is printed to *out and an std::exception will be thrown!

RTOpPack::Teuchos::GlobalMPISession::~GlobalMPISession ( )

Calls MPI_Finalize() if MPI is enabled.


Member Function Documentation

static bool RTOpPack::Teuchos::GlobalMPISession::mpiIsInitialized ( ) [static]

Return if MPI is initialized or not.

static bool RTOpPack::Teuchos::GlobalMPISession::mpiIsFinalized ( ) [static]

Return if MPI has already been finalized.

static int RTOpPack::Teuchos::GlobalMPISession::getRank ( ) [static]

Returns the process rank relative to MPI_COMM_WORLD

Returns 0 if MPI is not enabled.

Note, this function can be called even if the above constructor was never called so it is safe to use no matter how MPI_Init() got called (but it must have been called somewhere).

static int RTOpPack::Teuchos::GlobalMPISession::getNProc ( ) [static]

Returns the number of processors relative to MPI_COMM_WORLD

Returns 1 if MPI is not enabled.

Note, this function can be called even if the above constructor was never called so it is safe to use no matter how MPI_Init() got called (but it must have been called somewhere).


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends