Go to the documentation of this file.
14 #ifndef COMMUNICATOR_MPI_INCLUDED
15 #define COMMUNICATOR_MPI_INCLUDED
34 static int init(
int *pargc,
char ***pargv);
38 static int setup(
int Ninstance = 1);
40 static int setup(
const std::vector<int>& lattice_size,
41 std::vector<int>& grid_size,
47 #ifdef ENABLE_MULTI_INSTANCE
48 static bool is_primary_master();
54 #ifdef ENABLE_MULTI_INSTANCE
55 static int self_global();
56 static int world_id();
60 static MPI_Comm& world() {
return m_comm; }
68 #ifdef ENABLE_MULTI_INSTANCE
69 static int sync_global();
81 static int reduce(
int count,
void *recv_buf,
void *send_buf, MPI_Datatype
type, MPI_Op op,
int pattern);
83 static int exchange(
size_t size,
void *recv_buf,
void *send_buf,
int idir,
int ipm,
int tag);
85 static int send_1to1(
size_t size,
void *recv_buf,
void *send_buf,
int send_to,
int recv_from,
int tag);
101 #ifdef ENABLE_MULTI_INSTANCE
102 static int m_Ninstance;
103 static int m_instance_id;
105 static int m_global_rank;
106 static int m_global_size;
static int reduce(int count, void *recv_buf, void *send_buf, MPI_Datatype type, MPI_Op op, int pattern)
static int setup(int Ninstance=1)
static int send_1to1(size_t size, void *recv_buf, void *send_buf, int send_to, int recv_from, int tag)
MPI-realisation of communicator class implementation.
static int broadcast(size_t size, void *data, int sender)
static int init(int *pargc, char ***pargv)
Communicator_impl & operator=(const Communicator_impl &)
static char default_grid_map[16]
static int exchange(size_t size, void *recv_buf, void *send_buf, int idir, int ipm, int tag)
Communicator_impl(const Communicator_impl &)
static int broadcast_string(int count, string &data, int sender)