AutoPas  3.0.0
Loading...
Searching...
No Matches
MPIParallelizedStrategy.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <cstddef>
10#include <random>
11#include <type_traits>
12#include <vector>
13
28
29namespace autopas {
30
35 public:
44 MPIParallelizedStrategy(const Configuration &fallbackConfiguration, const AutoPas_MPI_Comm &comm,
45 double mpiTuningMaxDifferenceForBucket, double mpiTuningWeightForMaxDensity);
46
47 TuningStrategyOption getOptionType() const override;
48
49 bool optimizeSuggestions(std::vector<Configuration> &configQueue,
50 const EvidenceCollection &evidenceCollection) override;
51
52 void receiveDomainSimilarityStatistics(double pdBinStdDevDensity, double pdBinMaxDensity) override;
53
54 bool reset(size_t iteration, size_t tuningPhase, std::vector<Configuration> &configQueue,
55 const autopas::EvidenceCollection &evidenceCollection) override;
56
57 [[nodiscard]] inline bool needsDomainSimilarityStatistics() const override;
58
59 void rejectConfiguration(const Configuration &configuration, bool indefinitely) override;
60
65 const AutoPas_MPI_Comm &getBucket() const;
66
76 static Configuration createFallBackConfiguration(const std::set<Configuration> &searchSpace,
77 const InteractionTypeOption &interactionType);
78
79 private:
84 double _smoothedPDBinStdDevDensity{-1.};
85
90 double _smoothedPDBinMaxDensity{-1.};
91
95 std::unique_ptr<TuningStrategyInterface> _tuningStrategy;
96
100 AutoPas_MPI_Comm _comm;
108 Configuration _fallbackConfiguration;
113 bool _usingFallbackConfig{false};
117 std::set<Configuration> _rejectedConfigurations{};
121 double _mpiTuningMaxDifferenceForBucket;
125 double _mpiTuningWeightForMaxDensity;
129 std::mt19937 _rng{std::random_device()()};
130};
131} // namespace autopas
#define AUTOPAS_MPI_COMM_NULL
Wrapper for MPI_COMM_NULL.
Definition: WrapMPI.h:118
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:30
Class to manage all evidence.
Definition: EvidenceCollection.h:24
This strategy spreads the configuration queue in a round robin fashion over all ranks (with similar d...
Definition: MPIParallelizedStrategy.h:34
TuningStrategyOption getOptionType() const override
Get this object's associated TuningStrategyOption type.
Definition: MPIParallelizedStrategy.cpp:156
const AutoPas_MPI_Comm & getBucket() const
Get the MPI communicator for this rank's bucket.
Definition: MPIParallelizedStrategy.cpp:154
void receiveDomainSimilarityStatistics(double pdBinStdDevDensity, double pdBinMaxDensity) override
Method to pass smoothed domain similarity statistics (particle-dependent bin standard deviation in de...
Definition: MPIParallelizedStrategy.cpp:149
bool optimizeSuggestions(std::vector< Configuration > &configQueue, const EvidenceCollection &evidenceCollection) override
Optimizes the queue of configurations to process.
Definition: MPIParallelizedStrategy.cpp:27
void rejectConfiguration(const Configuration &configuration, bool indefinitely) override
Notify the strategy about a configuration that is (currently) invalid and thus can potentially be dro...
Definition: MPIParallelizedStrategy.cpp:104
static Configuration createFallBackConfiguration(const std::set< Configuration > &searchSpace, const InteractionTypeOption &interactionType)
Create a resilient configuration that should always be applicable.
Definition: MPIParallelizedStrategy.cpp:69
bool reset(size_t iteration, size_t tuningPhase, std::vector< Configuration > &configQueue, const autopas::EvidenceCollection &evidenceCollection) override
Reset all internal parameters to the beginning of a new tuning phase.
Definition: MPIParallelizedStrategy.cpp:108
bool needsDomainSimilarityStatistics() const override
Indicate whether the strategy needs domain similarity statistics.
Definition: MPIParallelizedStrategy.cpp:147
Interface for tuning strategies for the auto tuner.
Definition: TuningStrategyInterface.h:23
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34
AutoPas_MPI_Comm
Dummy for MPI_Comm.
Definition: WrapMPI.h:113