| Dakota Version 6.19 Explore and Predict with Confidence

Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
ParallelConfiguration Class Reference

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 miPLIters.front()
const ParallelLevel & | mi_parallel_level (size_t index=_NPOS) const
| return the ParallelLevel corresponding to miPLIters[index] More...
const ParallelLevel & | ie_parallel_level () const
| return the ParallelLevel corresponding to iePLIter
const ParallelLevel & | ea_parallel_level () const
| return the ParallelLevel corresponding to eaPLIter
bool | w_parallel_level_defined () const
| test for definition of world parallel level
bool | mi_parallel_level_defined (size_t index=_NPOS) const
| test for definition of meta-iterator-iterator parallel level
bool | ie_parallel_level_defined () const
| test for definition of iterator-evaluation parallel level
bool | ea_parallel_level_defined () const
| test for definition of evaluation-analysis parallel level
ParLevLIter | w_parallel_level_iterator () const
| return miPLIters.front()
ParLevLIter | mi_parallel_level_iterator (size_t index=_NPOS) const
| return miPLIters[index] More...
ParLevLIter | ie_parallel_level_iterator () const
| return iePLIter
ParLevLIter | ea_parallel_level_iterator () const
| return eaPLIter
size_t | mi_parallel_level_index (ParLevLIter pl_iter) const
| return the index within miPLIters corresponding to pl_iter
size_t | mi_parallel_level_last_index () const
| return the index of the last entry in miPLIters

## 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
std::vector< ParLevLIter > | miPLIters
| list iterator for world level followed by any concurrent iterator partitions (there may be multiple 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)
ParLevLIter | endPLIter
| snapshot of the end of ParallelLibrary::parallelLevels; used for detecting when a component of the parallel configuration has been initialized

## 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).

## Member Function Documentation

## ◆ mi_parallel_level()

const ParallelLevel & mi_parallel_level | ( | size_t | index = `_NPOS` | ) | const
| inline

return the ParallelLevel corresponding to miPLIters[index]

If a meaningful index is not provided, return the last mi parallel level. This is useful within the Model context, for which we need the lowest level partition after any meta-iterator recursions.

References ParallelConfiguration::miPLIters.

Referenced by ApplicationInterface::set_evaluation_communicators().

## ◆ mi_parallel_level_iterator()

ParLevLIter mi_parallel_level_iterator | ( | size_t | index = `_NPOS` | ) | const
| inline

return miPLIters[index]

If a meaningful index is not provided, return the last mi parallel level. This is useful within the Model context, for which we need the lowest level partition after any meta-iterator recursions.

References ParallelConfiguration::miPLIters.

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

- ParallelLibrary.hpp