source: XIOS/dev/branch_openmp/extern/ep_dev/ep_intercomm.hpp @ 1525

Last change on this file since 1525 was 1525, checked in by yushan, 7 years ago

save dev : intercomm_create via intracomm. To do : modif related intercomm communication routines, barrier, free, rank, size...

File size: 1.2 KB
Line 
1#ifndef EP_INTERCOMM_HPP_INCLUDED
2#define EP_INTERCOMM_HPP_INCLUDED
3
4typedef std::pair< int, int > SIZE_RANK_INFO; // < rank, size>
5typedef std::vector< std::pair<int, int> > RANK_MAP;  // at(ep_rank) = <ep_rank_local, mpi_rank>
6typedef std::map<int, std::pair<int, int> > EP_RANK_MAP;  // key(ep_rank) = <ep_rank_local, mpi_rank>
7typedef std::map<int, std::pair< int, std::pair<int, int> > > INTERCOMM_RANK_MAP;
8typedef std::map<int, int > INTER_RANK_MAP;
9
10namespace ep_lib
11{
12
13  class ep_comm;
14
15  class ep_intercomm
16  {
17    public:
18
19    void *mpi_inter_comm;
20
21    INTERCOMM_RANK_MAP *intercomm_rank_map;  // quadruple : ep_rank_in_local_comm, ep_rank_loc_in_newcomm, mpi_rank_in_new_comm, comm_label
22                                             // of remote_comm
23   
24    EP_RANK_MAP *local_rank_map;             // = ep_rank_map of local_comm
25
26
27    RANK_MAP *inter_rank_map; 
28    RANK_MAP *loc_rank_map;
29    RANK_MAP *remote_rank_map;
30
31
32    SIZE_RANK_INFO size_rank_info[3];        // size_rank_info of newcomm
33
34
35    int intercomm_tag;                       // newcomm_ep_rank_loc of ep with ep_rank_loc==0
36                                             // used in comm_dup_intercomm
37   
38  };
39
40
41}
42
43
44
45#endif // EP_INTERCOMM_HPP_INCLUDED
46
Note: See TracBrowser for help on using the repository browser.