ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
CollectiveCommunicationSingleNonBlocking Class Reference

#include <CollectiveCommunicationSingleNonBlocking.h>

Inheritance diagram for CollectiveCommunicationSingleNonBlocking:
CollectiveCommunication CollectiveCommBase CollectiveCommunicationInterface CollectiveCommBaseInterface CollectiveCommBaseInterface

Public Member Functions

 CollectiveCommunicationSingleNonBlocking ()=default
 
 CollectiveCommunicationSingleNonBlocking (const CollectiveCommunicationSingleNonBlocking &)=delete
 
CollectiveCommunicationSingleNonBlockingoperator= (const CollectiveCommunicationSingleNonBlocking &)=delete
 
 ~CollectiveCommunicationSingleNonBlocking () override
 
void allreduceSumAllowPrevious () override
 
void init (MPI_Comm communicator, int numValues, int key=0) override
 allocate memory for the values to be sent, initialize counters More...
 
void finalize () override
 delete memory and MPI_Type More...
 
- Public Member Functions inherited from CollectiveCommunication
void appendInt (int intValue) override
 
void appendUnsLong (unsigned long unsLongValue) override
 
void appendFloat (float floatValue) override
 
void appendDouble (double doubleValue) override
 
void appendLongDouble (long double longDoubleValue) override
 
MPI_Comm getTopology () override
 
void broadcast (int root=0) override
 
void allreduceSum () override
 Performs an all-reduce (sum) More...
 
void allreduceCustom (ReduceType type) override
 
void scanSum () override
 Performs a scan (sum) More...
 
virtual size_t getTotalSize () override
 
- Public Member Functions inherited from CollectiveCommBase
void init (int numValues)
 allocate memory for the values to be stored, initialize getter-iterator More...
 
virtual int getInt () override
 
virtual unsigned long getUnsLong () override
 
virtual float getFloat () override
 
virtual double getDouble () override
 
virtual long double getLongDouble () override
 
- Public Member Functions inherited from CollectiveCommBaseInterface
virtual ~CollectiveCommBaseInterface ()
 virtual destructor
 
- Public Member Functions inherited from CollectiveCommunicationInterface
 ~CollectiveCommunicationInterface () override=default
 virtual destructor
 

Additional Inherited Members

- Protected Member Functions inherited from CollectiveCommunication
void setMPIType ()
 defines a MPI datatype which can be used to transfer a CollectiveCommunication object More...
 
- Static Protected Member Functions inherited from CollectiveCommunication
static void add (valType *invec, valType *inoutvec, int *, MPI_Datatype *dtype)
 method used by MPI to add variables of this type More...
 
static void max (valType *invec, valType *inoutvec, int *, MPI_Datatype *dtype)
 
static void min (valType *invec, valType *inoutvec, int *, MPI_Datatype *dtype)
 
- Protected Attributes inherited from CollectiveCommunication
std::vector< MPI_Datatype > _types
 Vector of the corresponding MPI types for the values stored in _values.
 
MPI_Datatype _agglomeratedType
 
MPI_Comm _communicator
 Communicator to be used by the communication commands.
 
- Protected Attributes inherited from CollectiveCommBase
std::vector< valType_values
 Vector to store the values which shall be communicated.
 
std::vector< valType >::const_iterator _getter
 Iterator to extract the values which were communicated.
 

Detailed Description

CollectiveCommunicationSingleNonBlocking extends the CollectiveCommunication by an implementation of nonblocking collectives.

Author
Steffen Seckler

Constructor & Destructor Documentation

◆ CollectiveCommunicationSingleNonBlocking() [1/2]

CollectiveCommunicationSingleNonBlocking::CollectiveCommunicationSingleNonBlocking ( )
default

Constructor

◆ CollectiveCommunicationSingleNonBlocking() [2/2]

CollectiveCommunicationSingleNonBlocking::CollectiveCommunicationSingleNonBlocking ( const CollectiveCommunicationSingleNonBlocking )
delete

Copy constructor is deleted, as copying the vector _tempValues will change memory addresses used in the mpi communication!

◆ ~CollectiveCommunicationSingleNonBlocking()

CollectiveCommunicationSingleNonBlocking::~CollectiveCommunicationSingleNonBlocking ( )
inlineoverride

Destructor

Member Function Documentation

◆ allreduceSumAllowPrevious()

void CollectiveCommunicationSingleNonBlocking::allreduceSumAllowPrevious ( )
inlineoverridevirtual

Performs an all-reduce (sum), however values of previous iterations are permitted. By allowing values from previous iterations, overlapping communication is possible. One possible use case for this function is the reduction of slowly changing variables, e.g. the temperature.

Reimplemented from CollectiveCommunication.

◆ finalize()

void CollectiveCommunicationSingleNonBlocking::finalize ( )
inlineoverridevirtual

delete memory and MPI_Type

Returns
the value

Reimplemented from CollectiveCommunication.

◆ init()

void CollectiveCommunicationSingleNonBlocking::init ( MPI_Comm  communicator,
int  numValues,
int  key = 0 
)
inlineoverridevirtual

allocate memory for the values to be sent, initialize counters

Parameters
numValuesnumber of values that shall be communicated

Reimplemented from CollectiveCommunication.

◆ operator=()

CollectiveCommunicationSingleNonBlocking& CollectiveCommunicationSingleNonBlocking::operator= ( const CollectiveCommunicationSingleNonBlocking )
delete

Copy assignment operator is deleted, as copying the vector _tempValues will change memory addresses used in the mpi communication!


The documentation for this class was generated from the following file: