commit e55a93f29b5f3f1f8d56f380e4c580fe98b9d45d
parent cf6118cb14dc3ba1b062a2144f2545989860fcfe
Author: Fabian Wermelinger <fabianw@mavt.ethz.ch>
Date: Mon, 26 Sep 2016 19:30:01 +0200
added MPI_Comm to OrganizerMPI
Diffstat:
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/apps/OrganizerMPI.cpp b/apps/OrganizerMPI.cpp
@@ -11,7 +11,7 @@
using namespace std;
-OrganizerMPI::OrganizerMPI(const int argc, char ** const argv) : m_nscenes(0), m_scenes(nullptr), m_argc(1)
+OrganizerMPI::OrganizerMPI(const int argc, char ** const argv, const MPI_Comm comm) : m_nscenes(0), m_scenes(nullptr), m_argc(1), m_comm(comm)
{
m_isroot = (rank() == 0) ? true : false;
diff --git a/apps/OrganizerMPI.h b/apps/OrganizerMPI.h
@@ -21,32 +21,33 @@ private:
int m_nscenes;
char** m_scenes;
int m_argc;
+ const MPI_Comm m_comm;
bool m_isroot;
public:
- OrganizerMPI(const int argc, char ** const argv);
+ OrganizerMPI(const int argc, char ** const argv, const MPI_Comm comm=MPI_COMM_WORLD);
inline int size() const
{
int size;
- MPI_Comm_size(MPI_COMM_WORLD, &size);
+ MPI_Comm_size(m_comm, &size);
return size;
}
inline int rank() const
{
int rank;
- MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+ MPI_Comm_rank(m_comm, &rank);
return rank;
}
std::vector<char*> split_work() const;
inline int argc() const { return m_argc; }
inline bool isroot() const { return m_isroot; }
- inline void wait() const { MPI_Barrier(MPI_COMM_WORLD); }
+ inline void wait() const { MPI_Barrier(m_comm); }
inline void allreduce(void* send, void* recv, int count, MPI_Datatype type, MPI_Op op)
{
- MPI_Allreduce(send, recv, count, type, op, MPI_COMM_WORLD);
+ MPI_Allreduce(send, recv, count, type, op, m_comm);
}
};