An abstract class for communication between processes in parallel computation.
More...
|
| | Communicator (const Communicator &)=delete |
| |
| Communicator & | operator= (const Communicator &rhs)=delete |
| |
| virtual | ~Communicator ()=default |
| |
| virtual double | Wtime ()=0 |
| |
| virtual int | getBundleID () const =0 |
| |
| virtual int | getNumberOfBundles () const =0 |
| |
| virtual int | getProcessID () const =0 |
| |
| virtual int | getProcessID (int bundle, int rank) const =0 |
| |
| virtual bool | isRoot () const =0 |
| |
| virtual void * | getNativeCommunicator ()=0 |
| |
| virtual void | sendSerializedObject (std::stringstream &ss, int target)=0 |
| |
| virtual void | receiveSerializedObject (std::stringstream &ss, int source)=0 |
| |
| virtual int | getRoot () const =0 |
| |
| virtual int | getBundleRoot () const =0 |
| |
| virtual int | getProcessRoot () const =0 |
| |
| virtual int | getNumberOfProcessesInBundle (int bundle) const =0 |
| |
| virtual void | barrier ()=0 |
| |
| virtual void | abort (int errorcode)=0 |
| |
| virtual std::vector< std::string > | gather (const std::string &str)=0 |
| |
| virtual std::vector< int > | gather (std::vector< int > &values)=0 |
| |
| virtual std::vector< float > | gather (std::vector< float > &values)=0 |
| |
| virtual std::vector< double > | gather (std::vector< double > &values)=0 |
| |
| virtual std::vector< unsigned long long > | gather (std::vector< unsigned long long > &values)=0 |
| |
| virtual void | allGather (std::vector< int > &svalues, std::vector< int > &rvalues)=0 |
| |
| virtual void | allGather (std::vector< float > &svalues, std::vector< float > &rvalues)=0 |
| |
| virtual void | allGather (std::vector< double > &svalues, std::vector< double > &rvalues)=0 |
| |
| virtual void | allGather (std::vector< unsigned long long > &svalues, std::vector< unsigned long long > &rvalues)=0 |
| |
| virtual void | allGather (std::vector< uint > &svalues, std::vector< uint > &rvalues)=0 |
| |
| virtual void | allReduceSum (std::vector< float > &svalues)=0 |
| |
| virtual void | allReduceSum (std::vector< double > &svalues)=0 |
| |
| virtual void | allReduceSum (std::vector< uint > &svalues)=0 |
| |
| virtual void | broadcast (int &value)=0 |
| |
| virtual void | broadcast (float &value)=0 |
| |
| virtual void | broadcast (double &value)=0 |
| |
| virtual void | broadcast (long int &value)=0 |
| |
| virtual void | broadcast (std::vector< int > &values)=0 |
| |
| virtual void | broadcast (std::vector< float > &values)=0 |
| |
| virtual void | broadcast (std::vector< double > &values)=0 |
| |
| virtual void | broadcast (std::vector< long int > &values)=0 |
| |
| virtual void | receiveSend (uint *buffer_receive, int size_buffer_recv, int neighbor_rank_recv, const uint *buffer_send, int size_buffer_send, int neighbor_rank_send) const =0 |
| |
| virtual int | getNumberOfProcesses () const =0 |
| |
| virtual void | send (real *sbuf, int count_s, int nb_rank) const =0 |
| |
| virtual double | reduceSum (double quantityPerProcess) const =0 |
| |
| virtual int | mapCudaDevicesOnHosts (const std::vector< unsigned int > &devices, int numberOfDevices) const =0 |
| |
| virtual void | receiveSend (real *buffer_send, int size_buffer_send, real *buffer_receive, int size_buffer_recv, int neighbor_rank) const =0 |
| |
| virtual void | receiveNonBlocking (real *rbuf, int count_r, int sourceRank)=0 |
| |
| virtual void | sendNonBlocking (real *sbuf, int count_s, int destinationRank)=0 |
| |
| virtual void | send (real *sbuf, int count_s, int destinationRank)=0 |
| |
| virtual void | waitAll ()=0 |
| |
| virtual void | resetRequests ()=0 |
| |
An abstract class for communication between processes in parallel computation.
Definition at line 49 of file Communicator.h.