Container class for a set of ParallelLevel list iterators that collectively identify a particular multilevel parallel configuration. More...
Public Member Functions | |
ParallelConfiguration () | |
default constructor | |
ParallelConfiguration (const ParallelConfiguration &pl) | |
copy constructor | |
~ParallelConfiguration () | |
destructor | |
ParallelConfiguration & | operator= (const ParallelConfiguration &pl) |
assignment operator | |
const ParallelLevel & | w_parallel_level () const |
return the ParallelLevel corresponding to wPLIter | |
const ParallelLevel & | si_parallel_level () const |
return the ParallelLevel corresponding to siPLIter | |
const ParallelLevel & | ie_parallel_level () const |
return the ParallelLevel corresponding to iePLIter | |
const ParallelLevel & | ea_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 |
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).