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

Last change on this file since 1503 was 1503, checked in by yushan, 3 years ago

rank_map is passed from vector to map, in order to have more flexibility in comm_split

File size: 925 bytes
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>
7//typedef std::vector<std::pair< std::pair<int, int>, std::pair<int, int> > > INTERCOMM_RANK_MAP;
8
9namespace ep_lib
10{
11
12  class ep_comm;
13
14  class ep_intercomm
15  {
16    public:
17
18    void *mpi_inter_comm;
19
20    RANK_MAP *intercomm_rank_map;
21    RANK_MAP *local_rank_map;
22    RANK_MAP *remote_rank_map;
23
24
25    SIZE_RANK_INFO size_rank_info[3];
26
27
28    ep_comm *local_comm;
29    int intercomm_tag;
30
31    ep_intercomm();
32    //~ep_intercomm(){delete mpi_inter_comm;}
33    bool operator == (ep_intercomm right);
34    bool operator != (ep_intercomm right);
35   
36  };
37
38
39}
40
41
42
43#endif // EP_INTERCOMM_HPP_INCLUDED
44
Note: See TracBrowser for help on using the repository browser.