This class is able to gather and store important information for a tuning phase from a container and functor. More...
#include <LiveInfo.h>
Public Types | |
| using | InfoType = std::variant< bool, double, size_t, ContainerOption, TraversalOption, LoadEstimatorOption, DataLayoutOption, Newton3Option > |
| The type of an info. | |
Public Member Functions | |
| LiveInfo ()=default | |
| Constructor. | |
| LiveInfo (size_t numOwnedParticles, size_t numHaloParticles, double cutoff, double skin, double domainSizeX, double domainSizeY, double domainSizeZ, size_t particleSize, size_t threadCount, size_t rebuildFrequency, size_t numCells, size_t numEmptyCells, size_t minParticlesPerCell, size_t maxParticlesPerCell, size_t medianParticlesPerCell, size_t lowerQuartileParticlesPerCell, size_t upperQuartileParticlesPerCell, double meanParticlesPerCell, double particlesPerCellStdDev, double relativeParticlesPerCellStdDev, size_t estimatedNumNeighborInteractions, double particleDependentBinMaxDensity, double particleDependentBinDensityStdDev, size_t maxParticlesPerBlurredBin, size_t minParticlesPerBlurredBin, size_t medianParticlesPerBlurredBin, size_t lowerQuartileParticlesPerBlurredBin, size_t upperQuartileParticlesPerBlurredBin, double meanParticlesPerBlurredBin, double particlesPerBlurredBinStdDev, double relativeParticlesPerBlurredBinStdDev) | |
| Constructor for LiveInfo using the parameters. | |
| template<class Particle_T > | |
| void | gather (ContainerIterator< Particle_T, true, false > particleIter, size_t rebuildFrequency, size_t numOwnedParticles, std::array< double, 3 > boxMin, std::array< double, 3 > boxMax, double cutoff, double skin) |
| Gathers key statistics that define the computational profile of the simulation, in order to provide lower dimensional and human understandable inputs for the tuning strategies. | |
| const auto & | get () const |
| Returns a map of all infos. | |
| template<typename T > | |
| T | get (const std::string &key) const |
| Gets a single value from the infos that corresponds to the given string. | |
| std::string | toString () const |
| Creates a string containing all live info gathered. | |
| std::pair< std::string, std::string > | getCSVLine () const |
| Generate a csv representation containing all values from the toString() method. | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const LiveInfo &info) |
| Stream operator to write the LiveInfo to a stream. | |
| std::istream & | operator>> (std::istream &in, LiveInfo &info) |
| Stream operator to read the LiveInfo in from a stream. | |
This class is able to gather and store important information for a tuning phase from a container and functor.
Infos are identified by a string. Their type is InfoType.
|
inline |
Constructor for LiveInfo using the parameters.
| numOwnedParticles | The number of owned particles. |
| numHaloParticles | The number of halo particles. |
| cutoff | The cutoff radius. |
| skin | The skin radius. |
| domainSizeX | The size of the domain in x direction. |
| domainSizeY | The size of the domain in y direction. |
| domainSizeZ | The size of the domain in z direction. |
| particleSize | The size of a particle in bytes. |
| threadCount | The number of threads used. |
| rebuildFrequency | The rebuild frequency of the neighbor lists. |
| numCells | The number of cells in the container. |
| numEmptyCells | The number of empty cells in the container. |
| minParticlesPerCell | The minimum number of particles in a cell. |
| maxParticlesPerCell | The maximum number of particles in a cell. |
| medianParticlesPerCell | The median number of particles in a cell. |
| lowerQuartileParticlesPerCell | The lower quartile of particles per cell. |
| upperQuartileParticlesPerCell | The upper quartile of particles per cell. |
| meanParticlesPerCell | The mean number of particles per cell. |
| particlesPerCellStdDev | The standard deviation of particles per cell. |
| relativeParticlesPerCellStdDev | The relative standard deviation of particles per cell. (mean normalized) |
| estimatedNumNeighborInteractions | The estimated number of neighbor interactions. |
| particleDependentBinMaxDensity | The maximum density of the particle-dependent bin structure. |
| particleDependentBinDensityStdDev | The standard deviation of the densities of the particle-dependent bin structure. |
| maxParticlesPerBlurredBin | The maximum number of particles in a blurred bin. |
| minParticlesPerBlurredBin | The minimum number of particles in a blurred bin. |
| medianParticlesPerBlurredBin | The median number of particles in a blurred bin. |
| lowerQuartileParticlesPerBlurredBin | The lower quartile of particles per blurred bin. |
| upperQuartileParticlesPerBlurredBin | The upper quartile of particles per blurred bin. |
| meanParticlesPerBlurredBin | The mean number of particles in a blurred bin. |
| particlesPerBlurredBinStdDev | The standard deviation of particles per blurred bin. |
| relativeParticlesPerBlurredBinStdDev | The relative standard deviation of particles per blurred bin. (mean normalized) |
|
inline |
Gathers key statistics that define the computational profile of the simulation, in order to provide lower dimensional and human understandable inputs for the tuning strategies.
A lot of the information is based on a couple of different spatial bin resolutions:
Currently, it provides: -— Bin Independent Statistics -—
| Particle_T | The type of particle the container stores. |
| particleIter | Iterator to the first particle in the AutoPas container. |
| rebuildFrequency | The current verlet rebuild frequency that is used in the simulation. |
| numOwnedParticles | The number of owned particles in the container. |
| boxMin | Lower left corner of (sub)domain. |
| boxMax | Upper right corner of (sub)domain. |
| cutoff | The cutoff. |
| skin | The (Verlet) skin. |
|
inline |
Returns a map of all infos.
|
inline |
Gets a single value from the infos that corresponds to the given string.
| T | return type |
| key | string key for the infos map |
|
inline |
Generate a csv representation containing all values from the toString() method.
Since the keys are not necessarily known in advance, this method generates a CSV header and a CSV line.
|
inline |
Creates a string containing all live info gathered.
|
friend |
|
friend |