PEARL
Parallel Event Access and Replay Library
Friends | List of all members
pearl::MpiGroup Class Reference

Stores information related to an MPI group. More...

#include <pearl/MpiGroup.h>

Inheritance diagram for pearl::MpiGroup:
pearl::ProcessGroup

Public Member Functions

Constructors & destructor
 MpiGroup (IdType id, const String &name, const RankContainer &ranks, bool isSelf, bool isWorld)
 Constructor. More...
 
virtual ~MpiGroup ()
 Destructor. More...
 
Get MPI handles
MPI_Group getGroup ()
 Get MPI group handle. More...
 
- Public Member Functions inherited from pearl::ProcessGroup
 ProcessGroup (IdType id, const String &name, const RankContainer &ranks, bool isSelf, bool isWorld)
 Constructor. More...
 
virtual ~ProcessGroup ()
 Destructor. More...
 
IdType getId () const
 Get global identifier. More...
 
const StringgetName () const
 Get process group name. More...
 
uint32_t numRanks () const
 Get number of processes. More...
 
int getLocalRank (int globalRank) const
 Convert global to local rank. More...
 
int getGlobalRank (int localRank) const
 Convert local to global rank. More...
 
bool isSelf () const
 
bool isWorld () const
 

Friends

class MpiComm
 

Additional Inherited Members

- Public Types inherited from pearl::ProcessGroup
typedef uint32_t IdType
 ProcessGroup definition identifier type. More...
 
typedef std::vector< int > RankContainer
 Container type for process identifiers (i.e., MPI ranks). More...
 
- Static Public Attributes inherited from pearl::ProcessGroup
static const IdType NO_ID = (~static_cast<IdType>(0))
 Numerical identifier used for undefined process group definitions. More...
 
static const ProcessGroup UNDEFINED
 

Detailed Description

Instances of the MpiGroup class provide information about MPI groups. In addition to the functionality of the base class ProcessGroup, they also provide a "real" MPI group handle resembling the one used in the target application.

Constructor & Destructor Documentation

◆ MpiGroup()

pearl::MpiGroup::MpiGroup ( IdType  id,
const String name,
const RankContainer ranks,
bool  isSelf,
bool  isWorld 
)

Creates a MPI group definition instance and initializes it with the given values. The flags isSelf and isWorld are mutually exclusive, except for single-process experiments.

Parameters
idGlobal MPI group identifier
nameMPI group name
ranksOrdered list of global process identifiers (i.e., ranks) defining the group
isSelfIndicates whether this group refers to 'SELF'
isWorldIndicates whether this group refers to 'WORLD'

◆ ~MpiGroup()

virtual pearl::MpiGroup::~MpiGroup ( )
virtual

Releases all allocated resources and destroys the instance.

Member Function Documentation

◆ getGroup()

MPI_Group pearl::MpiGroup::getGroup ( )

Returns the MPI group handle associated with this group object. The MPI group is lazily created on first access and then cached until the instance is destructed.

Returns
MPI group handle

Friends And Related Function Documentation

◆ MpiComm

friend class MpiComm
friend

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

Scalasca    Copyright © 1998–2016 Forschungszentrum Jülich GmbH, Jülich Supercomputing Centre
Copyright © 2009–2015 German Research School for Simulation Sciences GmbH, Laboratory for Parallel Programming