Go to the documentation of this file.
18 #ifndef __ESCRIPT_ESYSMPI_H__
19 #define __ESCRIPT_ESYSMPI_H__
21 #include <escript/DataTypes.h>
26 #include <boost/shared_ptr.hpp>
35 #ifdef ESYS_INDEXTYPE_LONG
36 #define MPI_DIM_T MPI_LONG
38 #define MPI_DIM_T MPI_INT
48 #define MPI_COMM_WORLD 91
49 #define MPI_COMM_NULL 0
56 #define MPI_OP_NULL 17
69 return ((
'S'<< 24) + (
'u' << 16) + (
'b' << 8) +
'W')%1010201;
74 typedef boost::shared_ptr<JMPI_>
JMPI;
101 const int q = k/
size;
117 std::stringstream ss;
118 ss << fileName <<
'.';
162 #pragma clang diagnostic push
163 #pragma clang diagnostic ignored "-Wunused-private-field"
165 #pragma clang diagnostic pop
196 out=((double) clock())/CLOCKS_PER_SEC;
204 #endif // __ESCRIPT_ESYSMPI_H__
int MPI_Status
Definition: EsysMPI.h:44
static dim_t N
Definition: SparseMatrix_saveHB.cpp:50
int MPI_Op
Definition: EsysMPI.h:43
JMPI_(MPI_Comm comm, bool owncomm)
Definition: EsysMPI.cpp:50
int getSubWorldTag()
tag reserved for use by SubWorld code This value should be higher than the modulus used in JMPI_::set...
Definition: EsysMPI.h:66
Definition: EsysMPI.h:169
int rank
Definition: EsysMPI.h:155
bool checkResult(int res, int &mres, const JMPI &info)
Everyone puts in their error code and everyone gets the largest one.
Definition: EsysMPI.cpp:122
DataTypes::dim_t setDistribution(DataTypes::index_t min_id, DataTypes::index_t max_id, DataTypes::index_t *distribution)
Definition: EsysMPI.cpp:77
JMPI makeInfo(MPI_Comm comm, bool owncom)
Definition: EsysMPI.cpp:41
#define MPI_INT
Definition: EsysMPI.h:45
#define MPI_MAX
Definition: EsysMPI.h:53
~NoCOMM_WORLD()
Definition: EsysMPI.cpp:244
#define MPI_COMM_WORLD
Definition: EsysMPI.h:47
std::string appendRankToFileName(const std::string &fileName) const
appends MPI rank to a file name if MPI size > 1
Definition: EsysMPI.h:112
int counter() const
returns the current value of the message tag counter
Definition: EsysMPI.h:128
index_t dim_t
Definition: DataTypes.h:90
friend JMPI makeInfo(MPI_Comm comm, bool owncom)
Definition: EsysMPI.cpp:41
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
~JMPI_()
Definition: EsysMPI.cpp:69
int mod_rank(int k) const
Definition: EsysMPI.h:95
int msg_tag_counter
Definition: EsysMPI.h:165
void incCounter(int i=1)
increments the message tag counter by i
Definition: EsysMPI.h:134
MPI_Comm comm
Definition: EsysMPI.h:156
EsysException(const std::string &message)
Constructor which creates an Exception with the given message.
Definition: EsysException.h:63
void setCounter(int value)
sets the message tag counter to value
Definition: EsysMPI.h:143
int size
Definition: EsysMPI.h:154
double gettime()
returns the current ticks for timing
Definition: EsysMPI.h:186
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:85
Definition: AbstractContinuousDomain.cpp:23
#define MPI_COMM_NULL
Definition: EsysMPI.h:48
NoCOMM_WORLD()
Definition: EsysMPI.cpp:236
int MPI_Request
Definition: EsysMPI.h:42
int MPI_Comm
Definition: EsysMPI.h:41
bool shipString(const char *src, char **dest, MPI_Comm &comm)
Definition: EsysMPI.cpp:176
void split(DataTypes::dim_t N, DataTypes::dim_t *local_N, DataTypes::index_t *offset)
Definition: EsysMPI.cpp:104
bool isValid() const
returns true if this has a valid MPI communicator
Definition: EsysMPI.h:149
bool ownscomm
Definition: EsysMPI.h:163
static bool active()
Definition: EsysMPI.cpp:249