Public Member Functions | Private Member Functions | Private Attributes | Friends
ParallelConfiguration Class Reference

Container class for a set of ParallelLevel list iterators that collectively identify a particular multilevel parallel configuration. More...

List of all members.

Public Member Functions

 ParallelConfiguration ()
 default constructor
 ParallelConfiguration (const ParallelConfiguration &pl)
 copy constructor
 ~ParallelConfiguration ()
 destructor
ParallelConfigurationoperator= (const ParallelConfiguration &pl)
 assignment operator
const ParallelLevelw_parallel_level () const
 return the ParallelLevel corresponding to wPLIter
const ParallelLevelsi_parallel_level () const
 return the ParallelLevel corresponding to siPLIter
const ParallelLevelie_parallel_level () const
 return the ParallelLevel corresponding to iePLIter
const ParallelLevelea_parallel_level () const
 return the ParallelLevel corresponding to eaPLIter

Private Member Functions

void assign (const ParallelConfiguration &pl)
 assign the attributes of the incoming pl to this object

Private Attributes

short numParallelLevels
 number of parallel levels
ParLevLIter wPLIter
 list iterator for MPI_COMM_WORLD (not strictly required, but improves modularity by avoiding explicit usage of MPI_COMM_WORLD)
ParLevLIter siPLIter
 list iterator for concurrent iterator partitions (there may be more than one per parallel configuration instance)
ParLevLIter iePLIter
 list iterator identifying the iterator-evaluation parallelLevel (there can only be one)
ParLevLIter eaPLIter
 list iterator identifying the evaluation-analysis parallelLevel (there can only be one)

Friends

class ParallelLibrary
 the ParallelLibrary class has special access priveleges in order to streamline implementation

Detailed Description

Container class for a set of ParallelLevel list iterators that collectively identify a particular multilevel parallel configuration.

Rather than containing the multilevel parallel configuration directly, ParallelConfiguration instead provides a set of list iterators which point into a combined list of ParallelLevels. This approach allows different configurations to reuse ParallelLevels without copying them. A list of ParallelConfigurations is contained in ParallelLibrary (ParallelLibrary::parallelConfigurations).


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