47 typedef int MPI_Request;
48 typedef int MPI_Status;
50 typedef int MPI_Datatype;
52 enum { MPI_COMM_NULL=-1};
55 MPI_DOUBLE_INT,MPI_MINLOC,
62 extern int MPI_Init(
int*,
char***);
65 inline int MPI_Initialized(
int *flag) { *flag=1;
return 0; }
67 extern int MPI_Finalize();
69 inline int MPI_Abort( MPI_Comm,
int errorcode) { std::abort();
return 0; }
74 inline int MPI_Comm_size( MPI_Comm,
int *size) { *size = 1;
return 0; }
77 inline int MPI_Comm_rank( MPI_Comm,
int *
rank) { *rank = 0;
return 0; }
79 inline MPI_Comm MPI_Comm_c2f( MPI_Comm comm) {
return comm; }
80 inline MPI_Comm MPI_Comm_f2c( MPI_Comm comm) {
return comm; }
85 inline double MPI_Wtime() {
88 gettimeofday( &tv, NULL);
90 return tv.tv_sec + tv.tv_usec*1.e-6;
93 inline void MPI_Pcontrol(
int level, ...) {}
97 inline int MPI_Barrier( MPI_Comm) {
return 0; }
102 inline int MPI_Bcast(
void *buffer,
int count, MPI_Datatype datatype,
103 int root, MPI_Comm comm) {
return 0; }
107 extern int MPI_Allreduce(
void *sendbuf,
void *recvbuf,
int count,
108 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm );
111 extern int MPI_Allgather(
void *sendbuf,
int sendcount, MPI_Datatype sendtype,
112 void *recvbuf,
int recvcount, MPI_Datatype recvtype,
116 extern int MPI_Allgatherv (
void *sendbuf,
int sendcount,
117 MPI_Datatype sendtype,
118 void *recvbuf,
int *recvcounts,
int *displs,
119 MPI_Datatype recvtype, MPI_Comm comm );
122 extern int MPI_Alltoall(
void *sendbuf,
int sendcount, MPI_Datatype sendtype,
123 void *recvbuf,
int recvcnt, MPI_Datatype recvtype,
127 extern int MPI_Alltoallv(
void *sendbuf,
int *sendcount,
128 int *senddispls, MPI_Datatype sendtype,
129 void *recvbuf,
int *recvcounts,
int *recvdispls,
130 MPI_Datatype recvtype, MPI_Comm comm );
136 extern int MPI_Isend(
void *buf,
int count, MPI_Datatype datatype,
139 MPI_Comm comm, MPI_Request *request );
142 extern int MPI_Irecv(
void *buf,
int count, MPI_Datatype datatype,
144 MPI_Comm comm, MPI_Request *request );
147 inline int MPI_Waitall(
int count,
148 MPI_Request array_of_requests[],
149 MPI_Status array_of_statuses[] )
153 inline int MPI_Waitany(
int count,
154 MPI_Request array_of_requests[],
157 { *index=0;
return 0; }
163 {
int rank; MPI_Comm_rank( c, &rank);
return rank; }
166 {
int size; MPI_Comm_size( c, &size);
return size; }
169 {
int flag; MPI_Initialized( &flag);
return flag; }
175 extern int COMMPI_Isend(
void *buf,
int count, MPI_Datatype datatype,
178 MPI_Comm comm, MPI_Request *request );
183 extern int COMMPI_Irecv(
void *buf,
int count, MPI_Datatype datatype,
185 MPI_Comm comm, MPI_Request *request );
191 {
return MPI_Comm_c2f( t); }
203 {
return MPI_Comm_f2c( c); }
int COMMPI_Comm_rank(MPI_Comm c)
int COMMPI_Irecv(void *buf, int count, MPI_Datatype datatype, int src, int tag, MPI_Comm comm, MPI_Request *request)
Begins a nonblocking receive.
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_BYTE
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_COMM_WORLD
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_COMM_SELF
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_MAX
T COMMPI_Comm_f2c(int c, T)
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_MIN
This file contains some definitions of macros and constants for Roccoms.
int COMMPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
Begins a nonblocking send.
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_BAND INTEGER MPI_BOR
int COMMPI_Comm_size(MPI_Comm c)
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_LAND
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_BAND INTEGER MPI_LOR
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_PROD
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_GROUP_EMPTY INTEGER MPI_SUM