25 #include <boost/shared_ptr.hpp> 31 #ifdef ESYS_INDEXTYPE_LONG 32 #define MPI_DIM_T MPI_LONG 34 #define MPI_DIM_T MPI_INT 44 #define MPI_COMM_WORLD 91 45 #define MPI_COMM_NULL 0 53 #define MPI_OP_NULL 17 61 #define ESYS_MPI_TODO { fprintf( stdout, "\nTODO : %s:%d\n", __FILE__, __LINE__); MPI_Finalize(); exit(1); } 64 #define ESYS_MPI_INC_COUNTER(V,I) {(V).msg_tag_counter=((V).msg_tag_counter+(I))%1010201;} 65 #define ESYS_MPI_SET_COUNTER(V,I) {(V).msg_tag_counter=(I)%1010201;} 76 return ((
'S'<< 24) + (
'u' << 16) + (
'b' << 8) +
'W')%1010201;
81 typedef boost::shared_ptr<JMPI_>
JMPI;
99 msg_tag_counter%=1010201;
104 msg_tag_counter%=1010201;
128 int mpiSize,
int mpiRank)
130 std::stringstream ss;
138 std::string result(ss.str());
151 bool checkResult(
int input,
int& output,
const JMPI& comm);
160 static bool active();
int msg_tag_counter
Definition: Esys_MPI.h:90
int getSubWorldTag()
tag reserved for use by SubWorld code this value should be higher than the modulus used in JMPI_::set...
Definition: Esys_MPI.h:74
#define MPI_COMM_NULL
Definition: Esys_MPI.h:45
void split(dim_t N, dim_t *local_N, index_t *offset)
Definition: Esys_MPI.cpp:108
bool ownscomm
Definition: Esys_MPI.h:91
bool isValid()
Definition: Esys_MPI.h:107
bool shipString(const char *src, char **dest, MPI_Comm &comm)
Definition: Esys_MPI.cpp:273
index_t mod_rank(index_t n, index_t k)
Definition: Esys_MPI.cpp:156
void setCounter(int i)
Definition: Esys_MPI.h:102
int MPI_Comm
Definition: Esys_MPI.h:38
friend JMPI makeInfo(MPI_Comm comm, bool owncom)
Definition: Esys_MPI.cpp:35
#define ESYSUTILS_DLL_API
Definition: esysUtils/src/system_dep.h:31
dim_t setDistribution(index_t min_id, index_t max_id, index_t *distribution)
Definition: Esys_MPI.cpp:79
int MPI_Request
Definition: Esys_MPI.h:39
Definition: Esys_MPI.h:155
void incCounter(int i)
Definition: Esys_MPI.h:96
MPI_Comm comm
Definition: Esys_MPI.h:89
~JMPI_()
Definition: Esys_MPI.cpp:69
bool checkResult(int input, int &output, const JMPI &comm)
Definition: Esys_MPI.cpp:197
static dim_t N
Definition: SparseMatrix_saveHB.cpp:37
Esys_MPI_rank rank
Definition: Esys_MPI.h:88
Definition: Esys_MPI.cpp:32
int index_t
Definition: types.h:24
int Esys_MPI_rank
Definition: Esys_MPI.h:59
int MPI_Op
Definition: Esys_MPI.h:40
Definition: Esys_MPI.h:83
index_t dim_t
Definition: types.h:27
int MPI_Status
Definition: Esys_MPI.h:41
JMPI_(MPI_Comm comm, bool ocomm)
Definition: Esys_MPI.cpp:46
bool Esys_MPIInfo_noError(const JMPI &mpi_info)
Definition: Esys_MPI.cpp:173
boost::shared_ptr< JMPI_ > JMPI
Definition: Esys_MPI.h:79
std::string appendRankToFileName(const std::string &fileName, int mpiSize, int mpiRank)
Appends MPI rank to a file name if MPI size > 1.
Definition: Esys_MPI.h:127
int size
Definition: Esys_MPI.h:87