1 #ifndef MADNESS_STUBMPI_H
2 #define MADNESS_STUBMPI_H
20 #define MPI_STATUS_IGNORE ((MPI_Status *)1)
21 #define MPI_STATUSES_IGNORE ((MPI_Status *)1)
24 #define MPI_COMM_WORLD (0x44000000)
25 #define MPI_UNDEFINED (-32766)
34 #define MPI_ERR_COMM 5
35 #define MPI_ERR_ARG 12
36 #define MPI_ERR_IN_STATUS 999999
37 #define MPI_ERRORS_RETURN 888888
38 #define MPI_MAX_ERROR_STRING 1024
42 #define MPI_CONGRUENT 1
47 #define MPI_COMM_NULL ((MPI_Comm)0x04000000)
48 #define MPI_OP_NULL ((MPI_Op)0x18000000)
49 #define MPI_GROUP_NULL ((MPI_Group)0x08000000)
50 #define MPI_DATATYPE_NULL ((MPI_Datatype)0x0c000000)
51 #define MPI_REQUEST_NULL ((MPI_Request)0x2c000000)
52 #define MPI_ERRHANDLER_NULL ((MPI_Errhandler)0x14000000)
56 #define MPI_THREAD_SINGLE 0
57 #define MPI_THREAD_FUNNELED 1
58 #define MPI_THREAD_SERIALIZED 2
59 #define MPI_THREAD_MULTIPLE 3
60 #define MPI_COMM_TYPE_SHARED 4
63 #define MPI_IN_PLACE ((void *) -1)
64 #define MPI_PROC_NULL -1
65 #define MPI_ANY_SOURCE -2
66 #define MPI_ANY_TAG -1
71 #define MPI_CHAR ((MPI_Datatype)0x4c000101)
72 #define MPI_SIGNED_CHAR ((MPI_Datatype)0x4c000118)
73 #define MPI_UNSIGNED_CHAR ((MPI_Datatype)0x4c000102)
74 #define MPI_BYTE ((MPI_Datatype)0x4c00010d)
75 #define MPI_WCHAR ((MPI_Datatype)0x4c00040e)
76 #define MPI_SHORT ((MPI_Datatype)0x4c000203)
77 #define MPI_UNSIGNED_SHORT ((MPI_Datatype)0x4c000204)
78 #define MPI_INT ((MPI_Datatype)0x4c000405)
79 #define MPI_UNSIGNED ((MPI_Datatype)0x4c000406)
80 #define MPI_LONG ((MPI_Datatype)0x4c000807)
81 #define MPI_UNSIGNED_LONG ((MPI_Datatype)0x4c000808)
82 #define MPI_FLOAT ((MPI_Datatype)0x4c00040a)
83 #define MPI_DOUBLE ((MPI_Datatype)0x4c00080b)
84 #define MPI_LONG_DOUBLE ((MPI_Datatype)0x4c00100c)
85 #define MPI_LONG_LONG_INT ((MPI_Datatype)0x4c000809)
86 #define MPI_UNSIGNED_LONG_LONG ((MPI_Datatype)0x4c000819)
87 #define MPI_LONG_LONG ((MPI_Datatype)0x4c000809)
92 #define MPI_MAX ((MPI_Op)0x58000001)
93 #define MPI_MIN ((MPI_Op)0x58000002)
94 #define MPI_SUM ((MPI_Op)0x58000003)
95 #define MPI_PROD ((MPI_Op)0x58000004)
96 #define MPI_LAND ((MPI_Op)0x58000005)
97 #define MPI_BAND ((MPI_Op)0x58000006)
98 #define MPI_LOR ((MPI_Op)0x58000007)
99 #define MPI_BOR ((MPI_Op)0x58000008)
100 #define MPI_LXOR ((MPI_Op)0x58000009)
101 #define MPI_BXOR ((MPI_Op)0x5800000a)
102 #define MPI_MINLOC ((MPI_Op)0x5800000b)
103 #define MPI_MAXLOC ((MPI_Op)0x5800000c)
104 #define MPI_REPLACE ((MPI_Op)0x5800000d)
177 if(sendbuf !=
MPI_IN_PLACE) std::memcpy(recvbuf, sendbuf, count);
181 if(sendbuf !=
MPI_IN_PLACE) std::memcpy(recvbuf, sendbuf, count);
219 if (comm1 == comm2) {
236 std::strncpy(
string,
"Invalid communicator", *resultlen);
Tensor< double > op(const Tensor< double > &x)
Definition: kain.cc:508
Macros and tools pertaining to the configuration of MADNESS.
double wall_time()
Returns the wall time in seconds relative to an arbitrary origin.
Definition: timers.cc:48
static const double b
Definition: nonlinschro.cc:119
static const double a
Definition: nonlinschro.cc:118
int count
Definition: stubmpi.h:13
int cancelled
Definition: stubmpi.h:14
int MPI_SOURCE
Definition: stubmpi.h:15
int MPI_TAG
Definition: stubmpi.h:16
int MPI_ERROR
Definition: stubmpi.h:17
#define MPI_SUCCESS
Definition: stubmpi.h:33
int MPI_Op_free(MPI_Op *op)
Definition: stubmpi.h:258
int MPI_Ssend(void *, int, MPI_Datatype, int, int, MPI_Comm)
Definition: stubmpi.h:167
void() MPI_User_function(void *a, void *b, int *len, MPI_Datatype *)
Definition: stubmpi.h:107
int MPI_Info_create(MPI_Info *info)
Definition: stubmpi.h:262
int MPI_Bcast(void *, int, MPI_Datatype, int, MPI_Comm)
Definition: stubmpi.h:173
#define MPI_ERR_COMM
Definition: stubmpi.h:34
#define MPI_COMM_NULL
Definition: stubmpi.h:47
int MPI_Error_string(int errorcode, char *string, int *resultlen)
Definition: stubmpi.h:228
int MPI_Isend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *)
Definition: stubmpi.h:164
int MPI_Op
Definition: stubmpi.h:91
int MPI_Group_free(MPI_Group *group)
Definition: stubmpi.h:122
int MPI_Request
Definition: stubmpi.h:11
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm)
Definition: stubmpi.h:187
int MPI_Errhandler
Definition: stubmpi.h:27
#define MPI_COMM_WORLD
Definition: stubmpi.h:24
int MPI_Group
Definition: stubmpi.h:10
int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result)
Definition: stubmpi.h:218
int MPI_Finalize()
Definition: stubmpi.h:130
int MPI_Info_free(MPI_Info *info)
Definition: stubmpi.h:263
int MPI_Query_thread(int *provided)
Definition: stubmpi.h:132
int MPI_Comm_create(MPI_Comm, MPI_Group, MPI_Comm *newcomm)
Definition: stubmpi.h:202
int MPI_Op_create(MPI_User_function *user_fn, int commute, MPI_Op *op)
Definition: stubmpi.h:254
int MPI_Finalized(int *flag)
Definition: stubmpi.h:131
int MPI_Recv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status *)
Definition: stubmpi.h:170
int MPI_Comm
Definition: stubmpi.h:23
#define MPI_IDENT
Definition: stubmpi.h:41
int MPI_Issend(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *)
Definition: stubmpi.h:165
int MPI_Init_thread(int *, char ***, int, int *provided)
Definition: stubmpi.h:128
#define MPI_ERR_ARG
Definition: stubmpi.h:35
#define MPI_UNEQUAL
Definition: stubmpi.h:44
unsigned int MPI_Comm_size(MPI_Comm, int *size)
Definition: stubmpi.h:161
int MPI_Buffer_attach(void *, int)
Definition: stubmpi.h:135
#define MPI_GROUP_NULL
Definition: stubmpi.h:49
int MPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler errhandler)
Definition: stubmpi.h:250
int MPI_Comm_split_type(MPI_Comm comm, int split_type, int key, MPI_Info info, MPI_Comm *newcomm)
Definition: stubmpi.h:193
int MPI_Abort(MPI_Comm, int code)
Definition: stubmpi.h:198
int MPI_Group_translate_ranks(MPI_Group, int, const int[], MPI_Group, int ranks2[])
Definition: stubmpi.h:110
int MPI_Comm_rank(MPI_Comm, int *rank)
Definition: stubmpi.h:160
int MPI_Comm_free(MPI_Comm *comm)
Definition: stubmpi.h:213
double MPI_Wtime()
Definition: stubmpi.h:252
int MPI_Comm_get_attr(MPI_Comm, int, void *, int *)
Definition: stubmpi.h:185
int MPI_Info
Definition: stubmpi.h:29
int MPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype, MPI_Op, MPI_Comm)
Definition: stubmpi.h:180
#define MPI_IN_PLACE
Definition: stubmpi.h:63
int MPI_Bsend(void *, int, MPI_Datatype, int, int, MPI_Comm)
Definition: stubmpi.h:168
int MPI_Irecv(void *, int, MPI_Datatype, int, int, MPI_Comm, MPI_Request *)
Definition: stubmpi.h:169
int MPI_Comm_group(MPI_Comm, MPI_Group *group)
Definition: stubmpi.h:208
int MPI_Barrier(MPI_Comm)
Definition: stubmpi.h:200
int MPI_Testsome(int, MPI_Request *, int *outcount, int *, MPI_Status *)
Definition: stubmpi.h:149
int MPI_Get_count(MPI_Status *, MPI_Datatype, int *count)
Definition: stubmpi.h:154
struct MPI_Status MPI_Status
int MPI_Initialized(int *flag)
Definition: stubmpi.h:129
int MPI_Init(int *, char ***)
Definition: stubmpi.h:127
int MPI_Send(void *, int, MPI_Datatype, int, int, MPI_Comm)
Definition: stubmpi.h:166
int MPI_Test(MPI_Request *, int *flag, MPI_Status *)
Definition: stubmpi.h:138
int MPI_Group_incl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup)
Definition: stubmpi.h:117
int MPI_Buffer_detach(void *buffer, int *size)
Definition: stubmpi.h:136
int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype, MPI_Op, int, MPI_Comm)
Definition: stubmpi.h:176
#define MPI_UNDEFINED
Definition: stubmpi.h:25
int MPI_Datatype
Definition: stubmpi.h:70
int MPI_Testany(int, MPI_Request[], int *index, int *flag, MPI_Status *)
Definition: stubmpi.h:143
Wrappers around platform dependent timers and performance info.