45 instance = std::make_shared<NullCommunicator>();
static std::shared_ptr< Communicator > instance
static std::mutex instantiation_mutex
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