PEARL
Parallel Event Access and Replay Library
Public Types | Friends | List of all members
pearl::GroupingSet Class Referenceabstract

Abstract base class of grouping set definition representations. More...

#include <pearl/GroupingSet.h>

Inheritance diagram for pearl::GroupingSet:
pearl::uncopyable::Uncopyable pearl::CommSet pearl::LocationSet pearl::MpiGroup pearl::CommLocationSet

Public Types

enum  SetType {
  LOCATION_SET,
  REGION_SET,
  METRIC_SET,
  COMM_LOCATION_SET,
  COMM_SET
}
 Grouping set types. More...
 
enum  Property {
  PROPERTY_NONE = 0,
  PROPERTY_SELF = (1 << 0),
  PROPERTY_WORLD = (1 << 1),
  PROPERTY_GLOBAL_RANKS = (1 << 2)
}
 Grouping set properties. More...
 
typedef uint32_t IdType
 Grouping set definition identifier type. More...
 
typedef Flags< Property, uint8_t > Properties
 Grouping set property flags type. More...
 

Public Member Functions

Query functions
IdType getId () const
 Get global identifier. More...
 
const StringgetName () const
 Get grouping set name. More...
 
virtual SetType getType () const =0
 Get grouping set type. More...
 

Friends

std::ostream & operator<< (std::ostream &stream, const GroupingSet &item)
 

Related Functions

(Note that these are not member functions.)

Stream I/O functions
std::ostream & operator<< (std::ostream &stream, const GroupingSet &item)
 Stream output operator. More...
 
Conversion functions
std::string toStdString (GroupingSet::SetType type)
 Convert GroupingSet::SetType to std::string. More...
 
std::string toStdString (const GroupingSet::Properties &properties)
 Convert GroupingSet::Properties to std::string More...
 
Binary logic operations


GroupingSet::Properties operator& (const GroupingSet::Properties &lhs, const GroupingSet::Properties::EnumType rhs)
 Binary AND.
More...
 
GroupingSet::Properties operator& (const GroupingSet::Properties::EnumType lhs, const GroupingSet::Properties &rhs)
 Binary AND.
More...
 
GroupingSet::Properties operator& (const GroupingSet::Properties &lhs, const GroupingSet::Properties &rhs)
 Binary AND.
More...
 
GroupingSet::Properties operator| (const GroupingSet::Properties::EnumType lhs, const GroupingSet::Properties::EnumType rhs)
 Binary OR.
More...
 
GroupingSet::Properties operator| (const GroupingSet::Properties &lhs, const GroupingSet::Properties::EnumType rhs)
 Binary OR.
More...
 
GroupingSet::Properties operator| (const GroupingSet::Properties::EnumType lhs, const GroupingSet::Properties &rhs)
 Binary OR.
More...
 
GroupingSet::Properties operator| (const GroupingSet::Properties &lhs, const GroupingSet::Properties &rhs)
 Binary OR.
More...
 

Constructors & destructor

virtual ~GroupingSet ()
 Destructor. More...
 
 GroupingSet (IdType id, const String &name)
 Constructor. More...
 

Detailed Description

GroupingSet is an abstract base class that defines the common interface of grouping set definition representations. Grouping sets are ordered sets and can be defined over different types of items, for example, Location, Region, or Metric definition objects, as well as numeric identifiers (ranks) defining subgroups of communication location set items. Each of these grouping set types is implemented by a concrete derived class, due to slightly different characteristics.

Member Typedef Documentation

◆ IdType

typedef uint32_t pearl::GroupingSet::IdType

◆ Properties

Member Enumeration Documentation

◆ Property

Symbolic names for flags indicating certain properties of specific grouping sets. Property flags are only relevant for communication sets (

See also
CommSet).
Enumerator
PROPERTY_NONE 

Communication set without special properties.

PROPERTY_SELF 

The communication set refers to 'SELF' (i.e., always the current process)

PROPERTY_WORLD 

The communication set refers to 'WORLD' (i.e., all processes of a multi-process execution)

PROPERTY_GLOBAL_RANKS 

Rank identifiers in events referencing a communication set with this flag (usually indirectly via a communicator or RMA window) were converted to local ranks during reading, although the communication paradigm natively only supports global ranks.

◆ SetType

Symbolic names for different types of grouping sets (i.e., sets defined over different types of items).

See also
getType()
Enumerator
LOCATION_SET 

Set of Location definition objects.

REGION_SET 

Set of Region definition objects.

METRIC_SET 

Set of Metric definition objects.

COMM_LOCATION_SET 

Set of Location definition objects which participate in a particular Paradigm.

COMM_SET 

Set of identifiers (ranks) defining a subgroup of the COMM_LOCATION_SET of the corresponding Paradigm.

Constructor & Destructor Documentation

◆ ~GroupingSet()

virtual pearl::GroupingSet::~GroupingSet ( )
virtual

Destroys the grouping set instance.

            \n@par Exception safety\n        <b class="paramname">No-throw guarantee:</b>         never throws exceptions.        <br>\n

◆ GroupingSet()

pearl::GroupingSet::GroupingSet ( IdType  id,
const String name 
)
protected

Constructs a new instance with the given global identifier id and grouping set name.

Parameters
idGlobal grouping set identifier
nameGrouping set name
        \n@par Exception safety\n        <b class="paramname">No-throw guarantee:</b>         never throws exceptions.        <br>\n

Member Function Documentation

◆ getId()

IdType pearl::GroupingSet::getId ( ) const

Returns the global identifier of the grouping set definition.

Returns
Global identifier
        \n@par Exception safety\n        <b class="paramname">No-throw guarantee:</b>         never throws exceptions.        <br>\n

◆ getName()

const String& pearl::GroupingSet::getName ( ) const

Returns the string definition storing the grouping set's name. If this information is not available, String::UNDEFINED is returned.

Returns
Grouping set name
        \n@par Exception safety\n        <b class="paramname">No-throw guarantee:</b>         never throws exceptions.        <br>\n

◆ getType()

virtual SetType pearl::GroupingSet::getType ( ) const
pure virtual

Pure virtual member function that has to be overwritten in derived classes to return the corresponding type of the grouping set.

Returns
Set type
        \n@par Exception safety\n        <b class="paramname">No-throw guarantee:</b>         never throws exceptions.        <br>\n

Implemented in pearl::CommSet, pearl::CommLocationSet, and pearl::LocationSet.

Friends And Related Function Documentation

◆ operator&() [1/3]

GroupingSet::Properties operator& ( const GroupingSet ::Properties lhs,
const GroupingSet ::Properties rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary AND on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Intersection of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ operator&() [2/3]

GroupingSet::Properties operator& ( const GroupingSet ::Properties lhs,
const GroupingSet ::Properties ::EnumType  rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary AND on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Intersection of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ operator&() [3/3]

GroupingSet::Properties operator& ( const GroupingSet ::Properties ::EnumType  lhs,
const GroupingSet ::Properties rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary AND on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Intersection of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ operator<< [1/2]

std::ostream& operator<< ( std::ostream &  stream,
const GroupingSet item 
)
friend

◆ operator<<() [2/2]

std::ostream & operator<< ( std::ostream &  stream,
const GroupingSet item 
)
related

Prints the contents of the given grouping set definition object item to an output stream in a human-readable form.

Parameters
streamOutput stream
itemGrouping set definition object
Returns
Output stream

◆ operator|() [1/4]

GroupingSet::Properties operator| ( const GroupingSet ::Properties lhs,
const GroupingSet ::Properties rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary OR on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Union of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ operator|() [2/4]

GroupingSet::Properties operator| ( const GroupingSet ::Properties lhs,
const GroupingSet ::Properties ::EnumType  rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary OR on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Union of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ operator|() [3/4]

GroupingSet::Properties operator| ( const GroupingSet ::Properties ::EnumType  lhs,
const GroupingSet ::Properties rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary OR on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Union of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ operator|() [4/4]

GroupingSet::Properties operator| ( const GroupingSet ::Properties ::EnumType  lhs,
const GroupingSet ::Properties ::EnumType  rhs 
)
related


Returns a GroupingSet::Properties object containing the result of a binary OR on corresponding pairs of flags of rhs and
rhs.

Parameters
lhs
Left-hand side operand
rhs
Right-hand side operand
Returns

Union of flags

Exception safety\n No-throw guarantee: never throws exceptions. \n

◆ toStdString() [1/2]

std::string toStdString ( const GroupingSet::Properties properties)
related

Returns an std::string with a human-readable representation of the given grouping set properties.

Parameters
propertiesGrouping set property flags
Returns
Human-readable representation of properties as a sequence of characters
        \n@par Exception safety\n        <b class="paramname">Strong guarantee:</b>         no effects in case an exception is thrown.        <br>\n
Exceptions
std::bad_allocon failure to allocate storage

◆ toStdString() [2/2]

std::string toStdString ( GroupingSet::SetType  type)
related

Returns an std::string with a human-readable representation of the given grouping set type.

Parameters
typeGrouping set type
Returns
Human-readable representation of type as a sequence of characters
        \n@par Exception safety\n        <b class="paramname">Strong guarantee:</b>         no effects in case an exception is thrown.        <br>\n
Exceptions
std::bad_allocon failure to allocate storage

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

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