ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
This class is provides an interface for the base class of the collective communication. More...
#include <CollectiveCommBaseInterface.h>
Public Member Functions | |
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 |
This class is provides an interface for the base class of the collective communication.
Refactored to increase code-reuse
To fully understand the purpose of this class, read the documentation of the class CollectiveCommunication. The application developer should not have to care whether the program will be executed in parallel or sequentially. The only thing that the application developer should know that there might be several processes and at some point in the simulation those have to do a collective communication to broadcast or reduce values. Those values are given to the domain decomposition method, the communication command is executed by the domain decomp and the values can be read again. This class just has to ensure that this also works if there is no real domain decomposition but the class DomainDecompBase is used.
|
pure virtual |
Performs an allreduce operation with a custom reduce type.
type | the type of the operation |
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Performs an all-reduce (sum)
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Append a double value to the list of values to be stored
doubleValue | the value |
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Append a float value to the list of values to be stored
floatValue | the value |
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Append an int value to the list of values to be stored
intValue | the value |
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Append a long double value to the list of values to be stored
longDoubleValue | the value |
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Append a unsigned long value to the list of values to be stored
unsLongValue | the value |
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Performs a broadcast of the values to all processes in the communicator
root | of the broadcast |
Implemented in CollectiveCommunication, CollectiveCommunicationNonBlocking, and CollectiveCommBase.
|
pure virtual |
delete memory and MPI_Type
Implemented in CollectiveCommBase, CollectiveCommunication, CollectiveCommunicationNonBlocking, and CollectiveCommunicationSingleNonBlocking.
|
pure virtual |
Get the next value from the list, which must be double
no check is performed that the type is correct, so we rely on the sanity of the programmer to ensure FIFO ordering w.r.t. append-get order
Implemented in CollectiveCommBase, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Get the next value from the list, which must be float
no check is performed that the type is correct, so we rely on the sanity of the programmer to ensure FIFO ordering w.r.t. append-get order
Implemented in CollectiveCommBase, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Get the next value from the list, which must be int
no check is performed that the type is correct, so we rely on the sanity of the programmer to ensure FIFO ordering w.r.t. append-get order3
Implemented in CollectiveCommBase, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Get the next value from the list, which must be long double
no check is performed that the type is correct, so we rely on the sanity of the programmer to ensure FIFO ordering w.r.t. append-get order
Implemented in CollectiveCommBase, and CollectiveCommunicationNonBlocking.
|
pure virtual |
get the size of the entire object allocated memory
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Get the next value from the list, which must be unsigned long
no check is performed that the type is correct, so we rely on the sanity of the programmer to ensure FIFO ordering w.r.t. append-get order
Implemented in CollectiveCommBase, and CollectiveCommunicationNonBlocking.
|
pure virtual |
Performs a scan (sum)
Implemented in CollectiveCommBase, CollectiveCommunication, and CollectiveCommunicationNonBlocking.