39template <
typename TOption>
41 return static_cast<std::byte
>(
static_cast<typename TOption::Value
>(option));
57 const std::set<TraversalOption> &traversalOptions,
58 const std::set<LoadEstimatorOption> &loadEstimatorOptions,
59 const std::set<DataLayoutOption> &dataLayoutOptions,
60 const std::set<Newton3Option> &newton3Options,
61 const InteractionTypeOption &interactionTypeOption);
78 std::set<TraversalOption> &traversalOptions,
79 std::set<LoadEstimatorOption> &loadEstimatorOptions,
80 std::set<DataLayoutOption> &dataLayoutOptions, std::set<Newton3Option> &newton3Options,
81 InteractionTypeOption interactionTypeOption,
int rank,
int commSize);
98 double maxDensity,
double MPITuningMaxDifferenceForBucket,
99 double MPITuningWeightForMaxDensity);
137 long localOptimalTime);
147 const std::vector<Configuration> &localConfigurations,
int root);
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:24
Virtual class describing a finite or infinite set of numbers.
Definition: NumberSet.h:22
Provides several functions for handling configurations among mpi ranks.
Definition: AutoPasConfigurationCommunicator.cpp:15
Configuration findGloballyBestConfiguration(AutoPas_MPI_Comm comm, Configuration localOptimalConfig, long localOptimalTime)
Handles communication to select the globally best configuration.
Definition: AutoPasConfigurationCommunicator.cpp:159
SerializedConfiguration serializeConfiguration(Configuration configuration)
Serializes a configuration object for communication via MPI.
Definition: AutoPasConfigurationCommunicator.cpp:183
std::vector< Configuration > gatherConfigurations(AutoPas_MPI_Comm comm, const std::vector< Configuration > &localConfigurations, int root)
Gather the configuration vectors of all ranks in the communicator into one vector at the root process...
Definition: AutoPasConfigurationCommunicator.cpp:290
size_t getSearchSpaceSize(const std::set< ContainerOption > &containerOptions, const NumberSet< double > &cellSizeFactors, const std::set< TraversalOption > &traversalOptions, const std::set< LoadEstimatorOption > &loadEstimatorOptions, const std::set< DataLayoutOption > &dataLayoutOptions, const std::set< Newton3Option > &newton3Options, const InteractionTypeOption &interactionTypeOption)
Calculates the maximum number of valid configs from several sets of options.
Definition: AutoPasConfigurationCommunicator.cpp:17
std::byte castToByte(TOption option)
Simply a shorter way of static_casting from Option to std::byte.
Definition: AutoPasConfigurationCommunicator.h:40
std::array< std::byte, 14 > SerializedConfiguration
type definition for the serialization of configurations.
Definition: AutoPasConfigurationCommunicator.h:31
std::vector< Configuration > deserializeConfigurations(const std::vector< std::byte > &configurationsSerialized)
Deserialize a vector of bytes into a vector of configurations.
Definition: AutoPasConfigurationCommunicator.cpp:221
Configuration deserializeConfiguration(SerializedConfiguration config)
Recreates a Configuration object from the object obtained by _serializeConfiguration.
Definition: AutoPasConfigurationCommunicator.cpp:210
void distributeRanksInBuckets(AutoPas_MPI_Comm comm, AutoPas_MPI_Comm *bucket, double smoothedHomogeneity, double maxDensity, double MPITuningMaxDifferenceForBucket, double MPITuningWeightForMaxDensity)
Distribute ranks in buckets, which contain only ranks with similar scenarios.
Definition: AutoPasConfigurationCommunicator.cpp:238
void distributeConfigurations(std::set< ContainerOption > &containerOptions, NumberSet< double > &cellSizeFactors, std::set< TraversalOption > &traversalOptions, std::set< LoadEstimatorOption > &loadEstimatorOptions, std::set< DataLayoutOption > &dataLayoutOptions, std::set< Newton3Option > &newton3Options, InteractionTypeOption interactionType, const int rank, const int commSize)
Distributes the provided configurations globally for equal work loads.
Definition: AutoPasConfigurationCommunicator.cpp:131
std::vector< std::byte > serializeConfigurations(const std::vector< Configuration > &configurations)
Serialize a vector of configuration objects into a vector of bytes via serializeConfiguration().
Definition: AutoPasConfigurationCommunicator.cpp:197
AutoPas_MPI_Comm
Dummy for MPI_Comm.
Definition: WrapMPI.h:113