AutoPas  3.0.0
Loading...
Searching...
No Matches
TuningStrategyOption.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <set>
10
12
13namespace autopas {
14inline namespace options {
18class TuningStrategyOption : public Option<TuningStrategyOption> {
19 public:
23 enum Value {
28
80 };
81
86
91 constexpr TuningStrategyOption(Value option) : _value(option) {}
92
97 constexpr operator Value() const { return _value; }
98
103 static std::set<TuningStrategyOption> getDiscouragedOptions() {
104 return {
105 // Not an actual tuning strategy, just a logger.
107 // Only used to test against randomness, not a truly viable strategy.
109 // Not a valid option anymore. Only exists to tell users not to use it.
111 };
112 }
113
118 static std::map<TuningStrategyOption, std::string> getOptionNames() {
119 return {
120 {TuningStrategyOption::bayesianSearch, "bayesian-Search"},
121 {TuningStrategyOption::bayesianClusterSearch, "bayesian-cluster-Search"},
122 {TuningStrategyOption::fullSearch, "full-Search"},
123 {TuningStrategyOption::randomSearch, "random-Search"},
124 {TuningStrategyOption::activeHarmony, "active-harmony"},
125 {TuningStrategyOption::predictiveTuning, "predictive-tuning"},
126 {TuningStrategyOption::ruleBasedTuning, "rule-based-tuning"},
127 {TuningStrategyOption::fuzzyTuning, "fuzzy-tuning"},
128 {TuningStrategyOption::slowConfigFilter, "slow-config-filter"},
129 {TuningStrategyOption::tuningStrategyLogger, "tuning-strategy-logger"},
130 {TuningStrategyOption::sortByName, "sort-by-name"},
131 {TuningStrategyOption::mpiDivideAndConquer, "mpi-divide-and-conquer"},
132 };
133 }
134
135 private:
136 Value _value{Value(-1)};
137};
138} // namespace options
139} // namespace autopas
Base class for autopas options.
Definition: Option.h:25
Class representing the choices of possible tuning strategies for the auto-tuner.
Definition: TuningStrategyOption.h:18
Value
Possible choices for the auto tuner.
Definition: TuningStrategyOption.h:23
@ ruleBasedTuning
Applies predefined rules to dynamically exclude configurations from tuning that are expected to perfo...
Definition: TuningStrategyOption.h:62
@ bayesianSearch
Predict the configuration which will yield the most information if tested next.
Definition: TuningStrategyOption.h:42
@ bayesianClusterSearch
Predict the configuration which will yield the most information if tested next.
Definition: TuningStrategyOption.h:48
@ sortByName
Sort the queue by Name (=Configuration::operator<()) to minimize container conversion overhead.
Definition: TuningStrategyOption.h:79
@ slowConfigFilter
Dynamic blacklist that throws out configurations that perform poorly.
Definition: TuningStrategyOption.h:70
@ mpiDivideAndConquer
Spread the current configuration queue over all similar mpi ranks, thus parallelizing the search for ...
Definition: TuningStrategyOption.h:75
@ predictiveTuning
Predicts performance of all configurations based on previous tuning phases, tests those which are in ...
Definition: TuningStrategyOption.h:57
@ activeHarmony
ActiveHarmony client / server system.
Definition: TuningStrategyOption.h:52
@ tuningStrategyLogger
Logger for Tuning Strategy activity.
Definition: TuningStrategyOption.h:27
@ fullSearch
Tests all allowed configurations and select the best.
Definition: TuningStrategyOption.h:37
@ randomSearch
Random test configurations and select the best.
Definition: TuningStrategyOption.h:32
@ fuzzyTuning
Uses a fuzzy logic system to predict the best configuration based on a set of fuzzy-rules.
Definition: TuningStrategyOption.h:66
constexpr TuningStrategyOption(Value option)
Constructor from value.
Definition: TuningStrategyOption.h:91
static std::set< TuningStrategyOption > getDiscouragedOptions()
Set of options that are very unlikely to be interesting.
Definition: TuningStrategyOption.h:103
static std::map< TuningStrategyOption, std::string > getOptionNames()
Provides a way to iterate over the possible choices of TuningStrategy.
Definition: TuningStrategyOption.h:118
TuningStrategyOption()=default
Constructor.
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32