00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef RTOP_MPI_H
00038 #define RTOP_MPI_H
00039
00040 #include "RTOp_ConfigDefs.hpp"
00041
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045
00046
00047
00048
00049 #define MPI_Aint int
00050 typedef int MPI_Datatype;
00051 #define MPI_CHAR ((MPI_Datatype)1)
00052 #define MPI_INT ((MPI_Datatype)6)
00053 #define MPI_FLOAT ((MPI_Datatype)10)
00054 #define MPI_DOUBLE ((MPI_Datatype)11)
00055 typedef int MPI_Comm;
00056 #define MPI_COMM_WORLD 91
00057 #define MPI_COMM_NULL ((MPI_Comm)0)
00058 typedef int MPI_Op;
00059 #define MPI_OP_NULL ((MPI_Op)0)
00060 #define MPI_MAX (MPI_Op)(100)
00061 #define MPI_MIN (MPI_Op)(101)
00062 #define MPI_SUM (MPI_Op)(102)
00063 #define MPI_DATATYPE_NULL ((MPI_Datatype)0)
00064 typedef struct { int MPI_SOURCE; int MPI_TAG; int MPI_ERROR; } MPI_Status;
00065 typedef void (MPI_User_function) ( void *, void *, int *, MPI_Datatype * );
00066
00067
00068
00069
00070 #define EXPORT_MPI_API
00071 EXPORT_MPI_API int MPI_Init(int *, char ***);
00072 EXPORT_MPI_API int MPI_Finalize(void);
00073 EXPORT_MPI_API int MPI_Comm_size(MPI_Comm, int *);
00074 EXPORT_MPI_API int MPI_Comm_rank(MPI_Comm, int *);
00075 EXPORT_MPI_API int MPI_Type_struct(int, int *, MPI_Aint *, MPI_Datatype *, MPI_Datatype *);
00076 EXPORT_MPI_API int MPI_Type_commit(MPI_Datatype *);
00077 EXPORT_MPI_API int MPI_Type_free(MPI_Datatype *);
00078 EXPORT_MPI_API int MPI_Op_create(MPI_User_function *, int, MPI_Op *);
00079 EXPORT_MPI_API int MPI_Op_free( MPI_Op *);
00080 EXPORT_MPI_API int MPI_Send(void*, int, MPI_Datatype, int, int, MPI_Comm);
00081 EXPORT_MPI_API int MPI_Recv(void*, int, MPI_Datatype, int, int, MPI_Comm, MPI_Status*);
00082 EXPORT_MPI_API int MPI_Sendrecv_replace(void*, int, MPI_Datatype, int, int, int, int, MPI_Comm, MPI_Status*);
00083 EXPORT_MPI_API int MPI_Reduce(void* , void*, int, MPI_Datatype, MPI_Op, int, MPI_Comm);
00084 EXPORT_MPI_API int MPI_Allreduce(void* , void*, int, MPI_Datatype, MPI_Op, MPI_Comm);
00085 EXPORT_MPI_API int MPI_Barrier(MPI_Comm);
00086 EXPORT_MPI_API int MPI_Bcast(void*, int, MPI_Datatype, int, MPI_Comm );
00087 EXPORT_MPI_API int MPI_Gather(void* , int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm);
00088
00089 #ifdef __cplusplus
00090 }
00091 #endif
00092
00093 #endif