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

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

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

File size: 1.4 KB
Line 
1#ifndef EP_TYPE_HPP_INCLUDED
2#define EP_TYPE_HPP_INCLUDED
3
4
5#include <iostream>
6#include <stdlib.h>
7#include <stdio.h>
8#include <list>
9#include <map>
10#include <omp.h>
11#include <vector>
12#include <numeric>
13#include <bitset>
14#include <algorithm>
15#include <assert.h>
16#include <math.h>
17#include <string.h>
18
19#ifdef _Debug
20#define Debug(x) std::cout << x << std::endl
21#else
22#define Debug(x)
23#endif
24
25#ifdef _Memory_check
26#define memcheck(x) std::cout << x << std::endl
27#else
28#define memcheck(x)
29#endif
30
31
32#define BUFFER_SIZE 10000
33
34#include "ep_status.hpp"
35#include "ep_request.hpp"
36#include "ep_info.hpp"
37#include "ep_message.hpp"
38#include "ep_barrier.hpp"
39#include "ep_comm.hpp"
40#include "ep_intercomm.hpp"
41#include "ep_window.hpp"
42
43
44
45namespace ep_lib
46{
47
48  class ep_communicator;
49  class ep_intercomm;
50
51
52  class MPI_Aint
53  {
54    public:
55
56    void* mpi_aint;
57
58    MPI_Aint() {}
59    MPI_Aint(void* aint);
60    MPI_Aint(int aint);
61    MPI_Aint operator=(int a);
62  };
63
64  class MPI_Fint
65  {
66    public:
67 
68    void* mpi_fint;
69   
70    MPI_Fint() {}
71    MPI_Fint(void* fint);
72                                 
73  };
74 
75 
76
77
78  static MPI_Comm *passage;
79
80  static int TAG = 40000;
81
82  static std::list<std::pair<std::pair<int, int>, MPI_Comm * > > tag_list;
83
84  static std::list< std::pair<std::pair<int, int> , std::pair<MPI_Comm * , std::pair<int, int> > > > intercomm_list;
85
86  static std::map<std::pair<int, int>, MPI_Comm >  fc_comm_map;
87
88 
89
90
91}
92
93
94
95#endif // EP_TYPE_HPP_INCLUDED
96
Note: See TracBrowser for help on using the repository browser.