source: XIOS/dev/dev_trunk_omp/extern/src_ep_dev/ep_type.hpp @ 1650

Last change on this file since 1650 was 1650, checked in by yushan, 5 years ago

branch tested with openmpi thread_multiple

File size: 1.4 KB
Line 
1#ifndef EP_TYPE_HPP_INCLUDED
2#define EP_TYPE_HPP_INCLUDED
3
4#ifdef _usingEP
5
6#include <iostream>
7#include <stdlib.h>
8#include <stdio.h>
9#include <list>
10#include <map>
11#include <omp.h>
12#include <vector>
13#include <numeric>
14#include <bitset>
15#include <algorithm>
16#include <assert.h>
17#include <math.h>
18#include <string.h>
19
20#ifdef _Debug
21#define Debug(x) std::cout << x << std::endl
22#else
23#define Debug(x)
24#endif
25
26#ifdef _Memory_check
27#define memcheck(x) std::cout << x << std::endl
28#else
29#define memcheck(x)
30#endif
31
32
33#define BUFFER_SIZE 10000
34
35#include "ep_status.hpp"
36#include "ep_request.hpp"
37#include "ep_info.hpp"
38#include "ep_message.hpp"
39#include "ep_barrier.hpp"
40#include "ep_comm.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 EP_Fint
65  {
66    public:
67 
68    void* mpi_fint;
69   
70    EP_Fint() {}
71    EP_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#endif
95#endif // EP_TYPE_HPP_INCLUDED
96
Note: See TracBrowser for help on using the repository browser.