39 const std::set<ContainerOption> &containerOptions,
const std::set<double> &cellSizeFactors,
40 const std::set<TraversalOption> &traversalOptions,
const std::set<LoadEstimatorOption> &loadEstimatorOptions,
41 const std::set<DataLayoutOption> &dataLayoutOptions,
const std::set<Newton3Option> &newton3Options,
42 const InteractionTypeOption &interactionType,
const int numConfigs,
const int commSize)
43 : _containers(containerOptions),
44 _cellSizeFactors(cellSizeFactors),
45 _allowedTraversalOptions(traversalOptions),
46 _allowedLoadEstimatorOptions(loadEstimatorOptions),
47 _dataLayoutOptions(dataLayoutOptions),
48 _newton3Options(newton3Options),
49 _interactionType(interactionType) {
50 reset(numConfigs, commSize);
66 void reset(
const int numConfigs,
const int commSize);
78 std::set<double>::iterator &cellSizeFactorIt,
79 std::set<TraversalOption>::iterator &traversalIt,
80 std::set<LoadEstimatorOption>::iterator &loadEstimatorIt,
81 std::set<DataLayoutOption>::iterator &dataLayoutIt,
82 std::set<Newton3Option>::iterator &newton3It) {
83 containerIt = _containerIt;
84 cellSizeFactorIt = _cellSizeFactorIt;
85 traversalIt = _traversalIt;
86 loadEstimatorIt = _loadEstimatorIt;
87 dataLayoutIt = _dataLayoutIt;
88 newton3It = _newton3It;
136 return _loadEstimatorIt;
149 [[nodiscard]]
inline std::set<Newton3Option>::iterator
getNewton3Iterator()
const {
return _newton3It; }
155 void selectTraversalsForCurrentContainer();
160 void selectLoadEstimatorsForCurrentContainerAndTraversal();
166 inline void advanceConfigIterators();
168 const std::set<ContainerOption> &_containers;
169 const std::set<double> &_cellSizeFactors;
170 const std::set<TraversalOption> &_allowedTraversalOptions;
171 const std::set<LoadEstimatorOption> &_allowedLoadEstimatorOptions;
172 const std::set<DataLayoutOption> &_dataLayoutOptions;
173 const std::set<Newton3Option> &_newton3Options;
174 const InteractionTypeOption &_interactionType;
175 std::set<TraversalOption> _allowedAndApplicableTraversalOptions;
176 std::set<LoadEstimatorOption> _allowedAndApplicableLoadEstimatorOptions;
177 std::set<ContainerOption>::iterator _containerIt;
178 std::set<double>::iterator _cellSizeFactorIt;
179 std::set<TraversalOption>::iterator _traversalIt;
180 std::set<LoadEstimatorOption>::iterator _loadEstimatorIt;
181 std::set<DataLayoutOption>::iterator _dataLayoutIt;
182 std::set<Newton3Option>::iterator _newton3It;
184 int _remainingBlockSize;
186 int _infiniteCellSizeFactorsOffset;
187 int _infiniteCellSizeFactorsBlockSize;
Functionality needed to iterate through ranks and configurations simultaneously in an evenly distribu...
Definition: ConfigurationAndRankIteratorHandler.h:24
std::set< ContainerOption >::iterator getContainerIterator() const
Getter for containerIterator.
Definition: ConfigurationAndRankIteratorHandler.h:117
std::set< DataLayoutOption >::iterator getDataLayoutIterator() const
Getter for the DataLayoutIterator.
Definition: ConfigurationAndRankIteratorHandler.h:143
int getRankIterator() const
Getter for the rankIterator.
Definition: ConfigurationAndRankIteratorHandler.h:97
std::set< Newton3Option >::iterator getNewton3Iterator() const
Getter for the Newton3Iterator.
Definition: ConfigurationAndRankIteratorHandler.h:149
int getInfiniteCellSizeFactorsOffset() const
Getter for the number of ranks smaller than getRankIterator that have the exact same configs assigned...
Definition: ConfigurationAndRankIteratorHandler.h:104
std::set< double >::iterator getCellSizeFactorIterator() const
Getter for the CellSizeFactorIterator.
Definition: ConfigurationAndRankIteratorHandler.h:123
void reset(const int numConfigs, const int commSize)
Resets all iterators to the beginning, while keeping the containers.
Definition: ConfigurationAndRankIteratorHandler.cpp:77
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.
Definition: ConfigurationAndRankIteratorHandler.h:77
std::set< TraversalOption >::iterator getTraversalIterator() const
Getter for the TraversalIterator.
Definition: ConfigurationAndRankIteratorHandler.h:129
int getInfiniteCellSizeFactorsBlockSize() const
Getter for the number of ranks in total that have the exact same configs assigned to them.
Definition: ConfigurationAndRankIteratorHandler.h:111
void advanceIterators(int numConfigs, int commSize)
Advances the rankIterator (getRankIterator()) and/or the Option iterators for a single step such that...
Definition: ConfigurationAndRankIteratorHandler.cpp:43
std::set< LoadEstimatorOption >::iterator getLoadEstimatorIterator() const
Getter for the LoadEstimatorIterator.
Definition: ConfigurationAndRankIteratorHandler.h:135
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.
Definition: ConfigurationAndRankIteratorHandler.h:38
In this namespace some helper classes and functions can be found used inside of AutoPas.
Definition: namespaces.h:44