diff --git a/src/parallel/Communicator.h b/src/parallel/Communicator.h index 1468074286ab1fa0a5b29c2692872c9b4ff81459..23a760981944cfa143d7521275255f39a92bb7fe 100644 --- a/src/parallel/Communicator.h +++ b/src/parallel/Communicator.h @@ -55,22 +55,22 @@ public: virtual ~Communicator() = default; - virtual int getBundleID() = 0; - virtual int getNumberOfBundles() = 0; - virtual int getProcessID() const = 0; - virtual int getProcessID(int bundle, int rank) = 0; - virtual bool isRoot() const = 0; - virtual void *getNativeCommunicator() = 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() = 0; - virtual int getBundleRoot() = 0; - virtual int getProcessRoot() = 0; - virtual int getNumberOfProcessesInBundle(int bundle) = 0; - virtual void barrier() = 0; - virtual void abort(int errorcode) = 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; diff --git a/src/parallel/MPICommunicator.cpp b/src/parallel/MPICommunicator.cpp index 08fa2878e7026ce2dd99c44a971e90cc5a8737e4..8ae7ea66387f5e02b2e90dcacefbc324e81ca564 100644 --- a/src/parallel/MPICommunicator.cpp +++ b/src/parallel/MPICommunicator.cpp @@ -20,7 +20,7 @@ namespace vf::parallel std::shared_ptr<Communicator> MPICommunicator::getInstance() { std::lock_guard<std::mutex> myLock(instantiation_mutex); - if (!instance){ + if (!instance) { instance = std::shared_ptr<MPICommunicator>(new MPICommunicator); } return instance; @@ -96,23 +96,23 @@ std::vector<unsigned long long> MPICommunicator::gather(std::vector<unsigned lon ////////////////////////////////////////////////////////////////////////// int MPICommunicator::getProcessID() const { return PID; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getProcessID(int /*bundle*/, int /*rank*/) { return PID; } +int MPICommunicator::getProcessID(int /*bundle*/, int /*rank*/) const { return PID; } ////////////////////////////////////////////////////////////////////////// int MPICommunicator::getNumberOfProcesses() const { return numprocs; } ////////////////////////////////////////////////////////////////////////// void *MPICommunicator::getNativeCommunicator() { return &comm; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getBundleID() { return 0; } +int MPICommunicator::getBundleID() const { return 0; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getNumberOfBundles() { return 1; } +int MPICommunicator::getNumberOfBundles() const { return 1; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getRoot() { return root; } +int MPICommunicator::getRoot() const { return root; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getBundleRoot() { return 0; } +int MPICommunicator::getBundleRoot() const { return 0; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getProcessRoot() { return 0; } +int MPICommunicator::getProcessRoot() const { return 0; } ////////////////////////////////////////////////////////////////////////// -int MPICommunicator::getNumberOfProcessesInBundle(int /*bundle*/) { return numprocs; } +int MPICommunicator::getNumberOfProcessesInBundle(int /*bundle*/) const { return numprocs; } ////////////////////////////////////////////////////////////////////////// bool MPICommunicator::isRoot() const { return PID == root; } ////////////////////////////////////////////////////////////////////////// diff --git a/src/parallel/MPICommunicator.h b/src/parallel/MPICommunicator.h index d011fa130c132693054728fc9fd8ec9580542acd..466a3c3f8d311c743b546116a0a4ca9a23735488 100644 --- a/src/parallel/MPICommunicator.h +++ b/src/parallel/MPICommunicator.h @@ -33,16 +33,16 @@ public: ~MPICommunicator() override; static std::shared_ptr<Communicator> getInstance(); - int getBundleID() override; - int getNumberOfBundles() override; + int getBundleID() const override; + int getNumberOfBundles() const override; int getProcessID() const override; - int getProcessID(int bundle, int rank) override; + int getProcessID(int bundle, int rank) const override; int getNumberOfProcesses() const override; void *getNativeCommunicator() override; - int getRoot() override; - int getBundleRoot() override; - int getProcessRoot() override; - int getNumberOfProcessesInBundle(int bundle) override; + int getRoot() const override; + int getBundleRoot() const override; + int getProcessRoot() const override; + int getNumberOfProcessesInBundle(int bundle) const override; bool isRoot() const override; void abort(int errorcode) override; diff --git a/src/parallel/NullCommunicator.cpp b/src/parallel/NullCommunicator.cpp index b319fbd257ad593d3739897c689226de8b3e6eb3..4166b490dc4264345fbfe931c9414d4d077cc9c1 100644 --- a/src/parallel/NullCommunicator.cpp +++ b/src/parallel/NullCommunicator.cpp @@ -45,21 +45,21 @@ namespace vf::parallel return instance; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getBundleID() { return 0; } + int NullCommunicator::getBundleID() const { return 0; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getNumberOfBundles() { return 0; } + int NullCommunicator::getNumberOfBundles() const { return 0; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getProcessID() const { return 0; } + int NullCommunicator::getProcessID() const { return 0; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getNumberOfProcesses() { return 0; } + int NullCommunicator::getNumberOfProcesses() const { return 1; } ////////////////////////////////////////////////////////////////////////// void *NullCommunicator::getNativeCommunicator() { return NULL; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getRoot() { return 0; } + int NullCommunicator::getRoot() const { return 0; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getBundleRoot() { return 0; } + int NullCommunicator::getBundleRoot() const { return 0; } ////////////////////////////////////////////////////////////////////////// - int NullCommunicator::getProcessRoot() { return 0; } + int NullCommunicator::getProcessRoot() const { return 0; } ////////////////////////////////////////////////////////////////////////// std::vector<std::string> NullCommunicator::gather(const std::string & /*str*/) { return std::vector<std::string>(); } ////////////////////////////////////////////////////////////////////////// @@ -68,10 +68,10 @@ namespace vf::parallel ////////////////////////////////////////////////////////////////////////// void NullCommunicator::receiveSerializedObject(std::stringstream &ss, int source) {} - int NullCommunicator::getProcessID(int bundle, int rank) { return 0; } + int NullCommunicator::getProcessID(int bundle, int rank) const { return 0; } bool NullCommunicator::isRoot() const { return true; } - int NullCommunicator::getNumberOfProcessesInBundle(int bundle) {return 0;} + int NullCommunicator::getNumberOfProcessesInBundle(int bundle) const {return 0;} void NullCommunicator::barrier() {} void NullCommunicator::abort(int errorcode) {} @@ -101,11 +101,6 @@ namespace vf::parallel void NullCommunicator::send(real *sbuf, int count_s, int nb_rank) const {}; double NullCommunicator::reduceSum(double quantityPerProcess) const { return 0.0; }; - int NullCommunicator::getNumberOfProcesses() const - { - return 1; - } - int NullCommunicator::mapCudaDevicesOnHosts(const std::vector<unsigned int> &devices, int numberOfDevices) const { return 0; diff --git a/src/parallel/NullCommunicator.h b/src/parallel/NullCommunicator.h index 312a40f08834fe4803236edb4d4eef78012d5ac4..69f437db733f9f6368cfdebc358c888da85ea1d8 100644 --- a/src/parallel/NullCommunicator.h +++ b/src/parallel/NullCommunicator.h @@ -46,21 +46,21 @@ class NullCommunicator : public Communicator public: static std::shared_ptr<Communicator> getInstance(); - int getBundleID() override; - int getNumberOfBundles() override; + int getBundleID() const override; + int getNumberOfBundles() const override; int getProcessID() const override; - int getProcessID(int bundle, int rank) override; - int getNumberOfProcesses(); + int getProcessID(int bundle, int rank) const override; + int getNumberOfProcesses() const override; bool isRoot() const override; void *getNativeCommunicator() override; void sendSerializedObject(std::stringstream &ss, int target) override; void receiveSerializedObject(std::stringstream &ss, int source) override; - int getRoot() override; - int getBundleRoot() override; - int getProcessRoot() override; - int getNumberOfProcessesInBundle(int bundle) override; + int getRoot() const override; + int getBundleRoot() const override; + int getProcessRoot() const override; + int getNumberOfProcessesInBundle(int bundle) const override; void barrier() override; void abort(int errorcode) override; @@ -90,7 +90,6 @@ public: void send(real *sbuf, int count_s, int nb_rank) const override; double reduceSum(double quantityPerProcess) const override; - int getNumberOfProcesses() const override; int mapCudaDevicesOnHosts(const std::vector<unsigned int> &devices, int numberOfDevices) const override; void receiveSend(real *buffer_send, int size_buffer_send, real *buffer_receive, int size_buffer_recv,