AutoPas  3.0.0
Loading...
Searching...
No Matches
Namespaces | Typedefs | Functions
AutoPasConfigurationCommunicator.h File Reference
#include <array>
#include <cstddef>
#include <vector>
#include "WrapMPI.h"
#include "autopas/containers/ParticleContainerInterface.h"
#include "autopas/tuning/Configuration.h"
#include "autopas/utils/ExceptionHandler.h"
#include "autopas/utils/NumberSet.h"
#include "autopas/utils/SimilarityFunctions.h"
Include dependency graph for AutoPasConfigurationCommunicator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  autopas
 This is the main namespace of AutoPas.
 
namespace  autopas::utils
 In this namespace some helper classes and functions can be found used inside of AutoPas.
 
namespace  autopas::utils::AutoPasConfigurationCommunicator
 Provides several functions for handling configurations among mpi ranks.
 

Typedefs

using autopas::utils::AutoPasConfigurationCommunicator::SerializedConfiguration = std::array< std::byte, 14 >
 type definition for the serialization of configurations.
 

Functions

template<typename TOption >
std::byte autopas::utils::AutoPasConfigurationCommunicator::castToByte (TOption option)
 Simply a shorter way of static_casting from Option to std::byte.
 
size_t autopas::utils::AutoPasConfigurationCommunicator::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.
 
void autopas::utils::AutoPasConfigurationCommunicator::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 interactionTypeOption, int rank, int commSize)
 Distributes the provided configurations globally for equal work loads.
 
void autopas::utils::AutoPasConfigurationCommunicator::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.
 
SerializedConfiguration autopas::utils::AutoPasConfigurationCommunicator::serializeConfiguration (Configuration configuration)
 Serializes a configuration object for communication via MPI.
 
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().
 
Configuration autopas::utils::AutoPasConfigurationCommunicator::deserializeConfiguration (SerializedConfiguration config)
 Recreates a Configuration object from the object obtained by _serializeConfiguration.
 
std::vector< Configurationautopas::utils::AutoPasConfigurationCommunicator::deserializeConfigurations (const std::vector< std::byte > &configurationsSerialized)
 Deserialize a vector of bytes into a vector of configurations.
 
Configuration autopas::utils::AutoPasConfigurationCommunicator::findGloballyBestConfiguration (AutoPas_MPI_Comm comm, Configuration localOptimalConfig, long localOptimalTime)
 Handles communication to select the globally best configuration.
 
std::vector< Configurationautopas::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.
 

Detailed Description

Author
W. Thieme
Date
30.04.2020