ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | List of all members
CollectiveCommunicationInterface Class Referenceabstract

This class provides an interface for the collective communication classes. More...

#include <CollectiveCommunicationInterface.h>

Inheritance diagram for CollectiveCommunicationInterface:
CollectiveCommBaseInterface CollectiveCommunication CollectiveCommunicationNonBlocking CollectiveCommunicationSingleNonBlocking

Public Member Functions

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

Detailed Description

This class provides an interface for the collective communication classes.

It provides all methods, that are NOT YET provided by CollectiveCommBaseInterface

Author
Steffen Seckler

Member Function Documentation

◆ allreduceSumAllowPrevious()

virtual void CollectiveCommunicationInterface::allreduceSumAllowPrevious ( )
pure virtual

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.

Implemented in CollectiveCommunication, CollectiveCommunicationNonBlocking, and CollectiveCommunicationSingleNonBlocking.

◆ getTopology()

virtual MPI_Comm CollectiveCommunicationInterface::getTopology ( )
pure virtual

Get the MPI communicator

Returns
MPI communicator

Implemented in CollectiveCommunication, and CollectiveCommunicationNonBlocking.

◆ init()

virtual void CollectiveCommunicationInterface::init ( MPI_Comm  communicator,
int  numValues,
int  key = 0 
)
pure virtual

allocate memory for the values to be sent, initialize counters for specific

Parameters
keyThe key of the collective communication, this key will be used
communicatorMPI communicator for the
numValuesnumber of values that shall be communicated

Implemented in CollectiveCommunication, CollectiveCommunicationNonBlocking, and CollectiveCommunicationSingleNonBlocking.


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