Provides several functions for handling configurations among mpi ranks. More...
Typedefs | |
| using | SerializedConfiguration = std::array< std::byte, serializedConfigurationSize > |
| Type definition for the serialization of configurations. | |
Functions | |
| Configuration | findGloballyBestConfiguration (AutoPas_MPI_Comm comm, Configuration localOptimalConfig, long localOptimalTime) |
| Handles communication to select the globally best configuration. | |
| SerializedConfiguration | serializeConfiguration (const Configuration &configuration) |
| Serializes a configuration object for communication via MPI. | |
| std::vector< std::byte > | serializeConfigurations (const std::vector< Configuration > &configurations) |
| Serialize a vector of configuration objects into a vector of bytes via serializeConfiguration(). | |
| Configuration | deserializeConfiguration (const SerializedConfiguration &config) |
| Recreates a Configuration object from the object obtained by _serializeConfiguration. | |
| std::vector< Configuration > | deserializeConfigurations (const std::vector< std::byte > &configurationsSerialized) |
| Deserialize a vector of bytes into a vector of configurations. | |
| 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. | |
| 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. | |
Provides several functions for handling configurations among mpi ranks.
This includes functionality for (de)serialization of configurations, grouping ranks into buckets of similar scenarios, and finding the globally optimal configuration given time measurements.
| Configuration autopas::utils::AutoPasConfigurationCommunicator::deserializeConfiguration | ( | const SerializedConfiguration & | config | ) |
Recreates a Configuration object from the object obtained by _serializeConfiguration.
| config | The SerializedConfiguration objects returned by _serializeConfiguration. |
| std::vector< Configuration > autopas::utils::AutoPasConfigurationCommunicator::deserializeConfigurations | ( | const std::vector< std::byte > & | configurationsSerialized | ) |
Deserialize a vector of bytes into a vector of configurations.
| configurationsSerialized |
| void autopas::utils::AutoPasConfigurationCommunicator::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.
Each bucket then has its own search space.
If negative (=invalid) values for pdBinStdDevDensity or pdBinMaxDensity are passed, every rank gets its own bucket.
| comm | MPI communicator |
| bucket | new MPI communicator for its bucket |
| smoothedPDBinStdDevDensity | standard deviation in particle-dependent bin density smoothed over last 10 iterations. See LiveInfo::gather() for more details. |
| smoothedPDBinMaxDensity | maximum particle-dependent bin density smoothed over last 10 iterations. See LiveInfo::gather() for more details. |
| MPITuningMaxDifferenceForBucket | For MPI-tuning: Maximum of the relative difference in the comparison metric for two ranks which exchange their tuning information. |
| MPITuningWeightForMaxDensity | For MPI-tuning: Weight for maxDensity in the calculation for bucket distribution. |
| Configuration autopas::utils::AutoPasConfigurationCommunicator::findGloballyBestConfiguration | ( | AutoPas_MPI_Comm | comm, |
| Configuration | localOptimalConfig, | ||
| long | localOptimalTime | ||
| ) |
Handles communication to select the globally best configuration.
| comm | The communicator used for sending and receiving the optimal configuration. |
| localOptimalConfig | The locally optimal configuration to be compared with others. |
| localOptimalTime | The time measured for localOptimalConfig. |
| std::vector< Configuration > autopas::utils::AutoPasConfigurationCommunicator::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.
| comm | |
| localConfigurations | |
| root |
| SerializedConfiguration autopas::utils::AutoPasConfigurationCommunicator::serializeConfiguration | ( | const Configuration & | configuration | ) |
Serializes a configuration object for communication via MPI.
| configuration | the configuration to be sent. |
| std::vector< std::byte > autopas::utils::AutoPasConfigurationCommunicator::serializeConfigurations | ( | const std::vector< Configuration > & | configurations | ) |
Serialize a vector of configuration objects into a vector of bytes via serializeConfiguration().
| configurations |