34#ifndef MPI_NullCommunicator_H
35#define MPI_NullCommunicator_H
49 double Wtime()
override;
55 bool isRoot()
const override;
68 std::vector<std::string>
gather(
const std::string &
str)
override;
69 std::vector<int>
gather(std::vector<int> &values)
override;
70 std::vector<float>
gather(std::vector<float> &values)
override;
71 std::vector<double>
gather(std::vector<double> &values)
override;
72 std::vector<unsigned long long>
gather(std::vector<unsigned long long> &values)
override;
88 void broadcast(std::vector<int> &values)
override;
89 void broadcast(std::vector<float> &values)
override;
90 void broadcast(std::vector<double> &values)
override;
91 void broadcast(std::vector<long int> &values)
override;
An abstract class for communication between processes in parallel computation.
A class implements Communicator for shared memory.
bool isRoot() const override
double reduceSum(double quantityPerProcess) const override
int getProcessRoot() const override
void allGather(std::vector< int > &svalues, std::vector< int > &rvalues) override
void broadcast(int &value) override
void sendSerializedObject(std::stringstream &stream, int target) override
static std::shared_ptr< Communicator > getInstance()
std::vector< std::string > gather(const std::string &str) override
int mapCudaDevicesOnHosts(const std::vector< unsigned int > &devices, int numberOfDevices) const override
void receiveSerializedObject(std::stringstream &stream, int source) override
void resetRequests() override
void receiveNonBlocking(real *rbuf, int count_r, int sourceRank) override
int getBundleRoot() const override
int getRoot() const override
void abort(int errorcode) override
int getNumberOfBundles() const override
int getBundleID() const override
int getNumberOfProcesses() const override
void allReduceSum(std::vector< float > &values) override
int getNumberOfProcessesInBundle(int bundle) const override
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 override
void sendNonBlocking(real *sbuf, int count_s, int destinationRank) override
void * getNativeCommunicator() override
int getProcessID() const override
void send(real *sbuf, int count_s, int nb_rank) const override
std::shared_ptr< T > SPtr