34 #define MPI_COMM_WORLD 91
39 #define ESYS_MPI_TODO { fprintf( stdout, "\nTODO : %s:%d\n", __FILE__, __LINE__); MPI_Finalize(); exit(1); }
42 #define ESYS_MPI_INC_COUNTER(V,I) {(V).msg_tag_counter=((V).msg_tag_counter+(I))%1010201;}
43 #define ESYS_MPI_SET_COUNTER(V,I) {(V).msg_tag_counter=(I)%1010201;}
89 int mpiSize,
int mpiRank)
99 std::string result(ss.str());
Esys_MPIInfo * Esys_MPIInfo_alloc(MPI_Comm comm)
Definition: Esys_MPI.cpp:30
void splitWorld()
Definition: Esys_MPI.cpp:158
Esys_MPIInfo * Esys_MPIInfo_getReference(Esys_MPIInfo *in)
Definition: Esys_MPI.cpp:67
bool getSplitWorld()
Definition: Esys_MPI.cpp:151
Struct that holds MPI communicator, rank, size and a tag counter.
Definition: Esys_MPI.h:48
int size
Definition: Esys_MPI.h:50
void Esys_MPIInfo_Split(Esys_MPIInfo *mpi_info, dim_t n, dim_t *local_N, index_t *offset)
Definition: Esys_MPI.cpp:89
int Esys_MPIInfo_initialized(void)
Definition: Esys_MPI.cpp:169
Esys_MPI_rank rank
Definition: Esys_MPI.h:51
int MPI_Comm
Definition: Esys_MPI.h:29
#define ESYSUTILS_DLL_API
Definition: esysUtils/src/system_dep.h:40
MPI_Comm comm
Definition: Esys_MPI.h:52
int MPI_Request
Definition: Esys_MPI.h:30
void Esys_MPIInfo_free(Esys_MPIInfo *)
Definition: Esys_MPI.cpp:60
int msg_tag_counter
Definition: Esys_MPI.h:53
dim_t reference_counter
Definition: Esys_MPI.h:49
int index_t
Definition: types.h:25
int Esys_MPI_rank
Definition: Esys_MPI.h:37
int MPI_Status
Definition: Esys_MPI.h:31
index_t Esys_MPIInfo_mod(index_t n, index_t k)
Definition: Esys_MPI.cpp:75
int dim_t
Definition: types.h:24
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:88
dim_t Esys_MPIInfo_setDistribution(Esys_MPIInfo *in, index_t min_id, index_t max_id, index_t *distribution)
Definition: Esys_MPI.cpp:105
bool Esys_MPIInfo_noError(Esys_MPIInfo *mpi_info)
Definition: Esys_MPI.cpp:133