Celeritas  0.5.0-86+4a8eea4
Public Types | Public Member Functions | Static Public Member Functions | List of all members
celeritas::ScopedMpiInit Class Reference

RAII class for initializing and finalizing MPI. More...

#include <ScopedMpiInit.hh>

Public Types

enum class  Status { disabled = -1 , uninitialized = 0 , initialized = 1 }
 Status of initialization. More...
 

Public Member Functions

 ScopedMpiInit (int *argc, char ***argv)
 Construct with argc/argv references.
 
 ScopedMpiInit ()
 Construct with null argc/argv when those are unavailable.
 
 ~ScopedMpiInit ()
 Call MPI finalize on destruction.
 
bool is_world_multiprocess () const
 Convenience method to determine whether a multiprocess job is running. More...
 
 CELER_DELETE_COPY_MOVE (ScopedMpiInit)
 

Static Public Member Functions

static Status status ()
 Whether MPI has been initialized or disabled. More...
 

Detailed Description

RAII class for initializing and finalizing MPI.

Note
Unlike the MpiCommunicator and MpiOperations class, it is not necessary to link against MPI to use this class.

Member Enumeration Documentation

◆ Status

Status of initialization.

Enumerator
disabled 

Not compiled or disabled via environment.

uninitialized 

MPI_Init has not been called anywhere.

initialized 

MPI_Init has been called somewhere.

Member Function Documentation

◆ CELER_DELETE_COPY_MOVE()

celeritas::ScopedMpiInit::CELER_DELETE_COPY_MOVE ( ScopedMpiInit  )

Prevent copying and moving for RAII class

◆ is_world_multiprocess()

bool celeritas::ScopedMpiInit::is_world_multiprocess ( ) const

Convenience method to determine whether a multiprocess job is running.

This is a shortcut for comm_world().size() > 1 meant primarily for applications. Linking against MPI is not required to use it.

◆ status()

auto celeritas::ScopedMpiInit::status ( )
static

Whether MPI has been initialized or disabled.

NOTE: This function cannot call the CELER_LOG macros because those macros query the status.


The documentation for this class was generated from the following files: