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
65 };
66
71
76 constexpr TuningStrategyOption(Value option) : _value(option) {}
77
82 constexpr operator Value() const { return _value; }
83
88 static std::set<TuningStrategyOption> getDiscouragedOptions() {
89 return {
90 // Not an actual tuning strategy, just a logger.
92 // Only used to test against randomness, not a truly viable strategy.
94 // Not a valid option anymore. Only exists to tell users not to use it.
96 };
97 }
98
103 static std::map<TuningStrategyOption, std::string> getOptionNames() {
104 return {
105 {TuningStrategyOption::fullSearch, "full-Search"},
106 {TuningStrategyOption::randomSearch, "random-Search"},
107 {TuningStrategyOption::predictiveTuning, "predictive-tuning"},
108 {TuningStrategyOption::ruleBasedTuning, "rule-based-tuning"},
109 {TuningStrategyOption::fuzzyTuning, "fuzzy-tuning"},
110 {TuningStrategyOption::slowConfigFilter, "slow-config-filter"},
111 {TuningStrategyOption::tuningStrategyLogger, "tuning-strategy-logger"},
112 {TuningStrategyOption::sortByName, "sort-by-name"},
113 {TuningStrategyOption::mpiDivideAndConquer, "mpi-divide-and-conquer"},
114 };
115 }
116
117 private:
118 Value _value{Value(-1)};
119};
120} // namespace options
121} // namespace autopas
Base class for autopas options.
Definition: Option.h:26
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:47
@ sortByName
Sort the queue by Name (=Configuration::operator<()) to minimize container conversion overhead.
Definition: TuningStrategyOption.h:64
@ slowConfigFilter
Dynamic blacklist that throws out configurations that perform poorly.
Definition: TuningStrategyOption.h:55
@ mpiDivideAndConquer
Spread the current configuration queue over all similar mpi ranks, thus parallelizing the search for ...
Definition: TuningStrategyOption.h:60
@ predictiveTuning
Predicts performance of all configurations based on previous tuning phases, tests those which are in ...
Definition: TuningStrategyOption.h:42
@ 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:51
constexpr TuningStrategyOption(Value option)
Constructor from value.
Definition: TuningStrategyOption.h:76
static std::set< TuningStrategyOption > getDiscouragedOptions()
Set of options that are very unlikely to be interesting.
Definition: TuningStrategyOption.h:88
static std::map< TuningStrategyOption, std::string > getOptionNames()
Provides a way to iterate over the possible choices of TuningStrategy.
Definition: TuningStrategyOption.h:103
TuningStrategyOption()=default
Constructor.
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34