Functionality needed to iterate through ranks and configurations simultaneously in an evenly distributed manner.
More...
|
| ConfigurationAndRankIteratorHandler (const std::set< ContainerOption > &containerOptions, const std::set< double > &cellSizeFactors, const std::set< TraversalOption > &traversalOptions, const std::set< LoadEstimatorOption > &loadEstimatorOptions, const std::set< DataLayoutOption > &dataLayoutOptions, const std::set< Newton3Option > &newton3Options, const InteractionTypeOption &interactionType, const int numConfigs, const int commSize) |
| Constructor for ConfigurationAndRankIteratorHandler.
|
|
void | advanceIterators (int numConfigs, int commSize) |
| Advances the rankIterator (getRankIterator()) and/or the Option iterators for a single step such that repeated.
|
|
void | reset (const int numConfigs, const int commSize) |
| Resets all iterators to the beginning, while keeping the containers.
|
|
void | getConfigIterators (std::set< ContainerOption >::iterator &containerIt, std::set< double >::iterator &cellSizeFactorIt, std::set< TraversalOption >::iterator &traversalIt, std::set< LoadEstimatorOption >::iterator &loadEstimatorIt, std::set< DataLayoutOption >::iterator &dataLayoutIt, std::set< Newton3Option >::iterator &newton3It) |
| Alternative getter for all Configuration iterators.
|
|
int | getRankIterator () const |
| Getter for the rankIterator.
|
|
int | getInfiniteCellSizeFactorsOffset () const |
| Getter for the number of ranks smaller than getRankIterator that have the exact same configs assigned to them.
|
|
int | getInfiniteCellSizeFactorsBlockSize () const |
| Getter for the number of ranks in total that have the exact same configs assigned to them.
|
|
std::set< ContainerOption >::iterator | getContainerIterator () const |
| Getter for containerIterator.
|
|
std::set< double >::iterator | getCellSizeFactorIterator () const |
| Getter for the CellSizeFactorIterator.
|
|
std::set< TraversalOption >::iterator | getTraversalIterator () const |
| Getter for the TraversalIterator.
|
|
std::set< LoadEstimatorOption >::iterator | getLoadEstimatorIterator () const |
| Getter for the LoadEstimatorIterator.
|
|
std::set< DataLayoutOption >::iterator | getDataLayoutIterator () const |
| Getter for the DataLayoutIterator.
|
|
std::set< Newton3Option >::iterator | getNewton3Iterator () const |
| Getter for the Newton3Iterator.
|
|
Functionality needed to iterate through ranks and configurations simultaneously in an evenly distributed manner.
If more configurations than ranks exist, each configuration is paired with a single rank. If more ranks exist, it's the other way around. Since it cannot traverse infinite sets of CellSizeFactors, it provides information for splitting those among configurations if more ranks than configurations exist.