AutoPas  3.0.0
Loading...
Searching...
No Matches
AutoPasConfigurationCommunicator.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <array>
10#include <cstddef>
11#include <vector>
12
13#include "WrapMPI.h"
18
26
30using SerializedConfiguration = std::array<std::byte, serializedConfigurationSize>;
31
48void distributeRanksInBuckets(AutoPas_MPI_Comm comm, AutoPas_MPI_Comm *bucket, double smoothedPDBinStdDevDensity,
49 double smoothedPDBinMaxDensity, double MPITuningMaxDifferenceForBucket,
50 double MPITuningWeightForMaxDensity);
51
58
64std::vector<std::byte> serializeConfigurations(const std::vector<Configuration> &configurations);
65
72
78std::vector<Configuration> deserializeConfigurations(const std::vector<std::byte> &configurationsSerialized);
79
88 long localOptimalTime);
89
97std::vector<Configuration> gatherConfigurations(AutoPas_MPI_Comm comm,
98 const std::vector<Configuration> &localConfigurations, int root);
99
100} // namespace autopas::utils::AutoPasConfigurationCommunicator
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:30
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:17
void distributeRanksInBuckets(AutoPas_MPI_Comm comm, AutoPas_MPI_Comm *bucket, double smoothedPDBinStdDevDensity, double smoothedPDBinMaxDensity, double MPITuningMaxDifferenceForBucket, double MPITuningWeightForMaxDensity)
Distribute ranks in buckets, which contain only ranks with similar scenarios.
Definition: AutoPasConfigurationCommunicator.cpp:101
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:153
SerializedConfiguration serializeConfiguration(const Configuration &configuration)
Serializes a configuration object for communication via MPI.
Definition: AutoPasConfigurationCommunicator.cpp:41
std::vector< Configuration > deserializeConfigurations(const std::vector< std::byte > &configurationsSerialized)
Deserialize a vector of bytes into a vector of configurations.
Definition: AutoPasConfigurationCommunicator.cpp:84
Configuration deserializeConfiguration(const SerializedConfiguration &config)
Recreates a Configuration object from the object obtained by _serializeConfiguration.
Definition: AutoPasConfigurationCommunicator.cpp:72
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:59
std::array< std::byte, serializedConfigurationSize > SerializedConfiguration
Type definition for the serialization of configurations.
Definition: AutoPasConfigurationCommunicator.h:30
AutoPas_MPI_Comm
Dummy for MPI_Comm.
Definition: WrapMPI.h:113