1 | #ifndef EP_LIB_INTERCOMM_HPP_INCLUDED |
---|
2 | #define EP_LIB_INTERCOMM_HPP_INCLUDED |
---|
3 | |
---|
4 | namespace ep_lib |
---|
5 | { |
---|
6 | #ifdef _intelmpi |
---|
7 | typedef int MPI_Datatype; |
---|
8 | typedef int MPI_Op; |
---|
9 | #elif _openmpi |
---|
10 | typedef void* MPI_Datatype; |
---|
11 | typedef void* MPI_Op; |
---|
12 | #endif |
---|
13 | |
---|
14 | int MPI_Comm_dup_intercomm(MPI_Comm comm, MPI_Comm *newcomm); |
---|
15 | |
---|
16 | int MPI_Comm_free_intercomm(MPI_Comm* comm); |
---|
17 | |
---|
18 | int MPI_Barrier_intercomm(MPI_Comm comm); |
---|
19 | |
---|
20 | int Message_Check_intercomm(MPI_Comm comm); |
---|
21 | |
---|
22 | int MPI_Isend_intercomm(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request); |
---|
23 | int MPI_Issend_intercomm(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request); |
---|
24 | |
---|
25 | |
---|
26 | int MPI_Iprobe_intercomm(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status); |
---|
27 | int MPI_Iprobe_any_source(int tag, MPI_Comm comm, int *flag, MPI_Status *status); |
---|
28 | int MPI_Improbe_intercomm(int source, int tag, MPI_Comm comm, int *flag, MPI_Message *message, MPI_Status *status); |
---|
29 | int MPI_Improbe_any_source(int tag, MPI_Comm comm, int *flag, MPI_Message *message, MPI_Status *status); |
---|
30 | |
---|
31 | int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm); |
---|
32 | |
---|
33 | int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm); |
---|
34 | |
---|
35 | int MPI_Intercomm_create_kernel(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm); |
---|
36 | |
---|
37 | #ifdef _intelmpi |
---|
38 | int MPI_Intercomm_create_from_world(MPI_Comm local_comm, int local_leader, int peer_comm_ptr, int mpi_remote_leader, int tag, MPI_Comm *newintercomm); |
---|
39 | #elif _openmpi |
---|
40 | int MPI_Intercomm_create_from_world(MPI_Comm local_comm, int local_leader, void* peer_comm_ptr, int mpi_remote_leader, int tag, MPI_Comm *newintercomm); |
---|
41 | #endif |
---|
42 | |
---|
43 | int MPI_Intercomm_create_unique_leader(MPI_Comm local_comm, int local_leader, MPI_Comm peer_comm, int remote_leader, int tag, MPI_Comm *newintercomm); |
---|
44 | |
---|
45 | int MPI_Intercomm_merge(MPI_Comm intercomm, bool high, MPI_Comm *newintracomm); |
---|
46 | |
---|
47 | int MPI_Intercomm_merge_unique_leader(MPI_Comm intercomm, bool high, MPI_Comm *newintracomm); |
---|
48 | |
---|
49 | int MPI_Comm_remote_size(MPI_Comm comm, int *size); |
---|
50 | |
---|
51 | int MPI_Comm_test_inter(MPI_Comm comm, int *flag); |
---|
52 | } |
---|
53 | |
---|
54 | |
---|
55 | #endif // EP_LIB_INTERCOMM_HPP_INCLUDED |
---|