KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
Loading...
Searching...
No Matches
measurement_utils.hpp File Reference
#include <memory>
#include <optional>
#include <kassert/kassert.hpp>
#include <mpi.h>
#include "kamping/collectives/bcast.hpp"
#include "kamping/collectives/gather.hpp"
#include "kamping/communicator.hpp"
#include "kamping/measurements/measurement_aggregation_definitions.hpp"
Include dependency graph for measurement_utils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kamping::measurements::internal::Max
 Object encapsulating a maximum operation on a given range of objects. More...
 
struct  kamping::measurements::internal::Min
 Object encapsulating a minimum operation on a given range of objects. More...
 
struct  kamping::measurements::internal::Sum
 Object encapsulating a summation operation on a given range of objects. More...
 
struct  kamping::measurements::internal::Gather
 Object encapsulating a gather operation on a given range of objects. More...
 
class  kamping::measurements::internal::TreeNode< DerivedNode >
 Object representing a node in a tree. The class is not meant to be used on its own but to encapsulate the basic "tree-node behaviour" (e.g. management of children nodes etc.) for other specialised node classes like TimerTreeNode via CRTP paradigm. More...
 
class  kamping::measurements::internal::NodeMeasurements< T, default_global_aggregation_mode >
 Class to store measurement data points associated with a node in a measurement tree, e.g., a timer-tree. More...
 
class  kamping::measurements::internal::TimerTreeNode< TimePoint, Duration >
 Class representing a node in the timer tree. Each node represents a time measurement (or multiple with the same key). A node can have multiple children which represent nested time measurements. The measurements associated with a node's children are executed while the node's measurement is still active. More...
 
class  kamping::measurements::internal::CounterTreeNode< DataType >
 Class representing a node in the counter tree. Each node represents a measurement (or multiple with the same key). A node can have multiple children which represent nested measurements. The measurements associated with a node's children are executed while the node's measurement is still active. More...
 
struct  kamping::measurements::internal::Tree< NodeType >
 Tree consisting of objects of type NodeType. The tree constitutes a hierarchy of measurements such that each node correspond to one (or multiple) measurement(s) with the same name. For timer tree, the measurements corresponding to the node's children are all started and stopped while the node's current time measurement is running. More...
 

Functions

template<typename Communicator >
bool kamping::measurements::internal::is_string_same_on_all_ranks (std::string const &str, Communicator const &comm)
 Checks that the given string is equal on all ranks in the given communicator.
 

Detailed Description

This file contains (distributed) utility classes and functions that are needed for a distributed timer class.

Function Documentation

◆ is_string_same_on_all_ranks()

template<typename Communicator >
bool kamping::measurements::internal::is_string_same_on_all_ranks ( std::string const & str,
Communicator const & comm )
inline

Checks that the given string is equal on all ranks in the given communicator.

Template Parameters
CommunicatorType of communicator.
Parameters
strString which is tested for equality on all ranks.
commCommunicator on which the equality test is executed.
Returns
Returns whether string is equal on all ranks.