#ifndef EP_TYPE_HPP_INCLUDED #define EP_TYPE_HPP_INCLUDED #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _Debug #define Debug(x) std::cout << x << std::endl #else #define Debug(x) #endif #define BUFFER_SIZE 10000 typedef std::pair< int, int > SIZE_RANK_INFO; // < rank, size> typedef std::vector< std::pair > RANK_MAP; // at(ep_rank) = typedef std::vector, std::pair > > INTERCOMM_RANK_MAP; typedef struct { int first; int second; int third; } Triple_int; namespace ep_lib { #define MPI_UNDEFINED -32766 #define MPI_STATUS_IGNORE NULL #define MPI_INFO_NULL MPI_Info() class ep_communicator; class ep_intercomm; class OMPbarrier; typedef ep_communicator* EP_Comm; class MPI_Comm; class MPI_Status { public: #ifdef _intelmpi int ep_datatype; #elif _openmpi void * ep_datatype; #endif int ep_src; int ep_tag; void* mpi_status; }; class MPI_Message { public: #ifdef _intelmpi int mpi_message; #elif _openmpi void * mpi_message; #endif int ep_src; int ep_tag; void* mpi_status; MPI_Message() { mpi_message = 0; mpi_status = 0; } }; typedef std::list Message_list; class OMPbarrier { private: int nbThreads; //, MPI_Comm * > > tag_list; static std::map, MPI_Comm > fc_comm_map; // EP_Comm } #endif // EP_TYPE_HPP_INCLUDED