#define MPI_Send(a, b, c, d, e, f) SMPI_MPI_Send(a, b, c, d, e, f)
#define MPI_Bcast(a, b, c, d, e) SMPI_MPI_Bcast(a, b, c, d, e)
#define MPI_Wait(a, b) SMPI_MPI_Wait(a, b)
+#define MPI_Waitall(a, b, c) SMPI_MPI_Waitall(a, b, c)
+#define MPI_Waitany(a, b, c, d) SMPI_MPI_Waitany(a, b, c, d)
#define MPI_Comm_split(a, b, c, d) SMPI_MPI_Comm_split(a, b, c, d)
#define MPI_Wtime() SMPI_MPI_Wtime()
-#define MPI_Reduce( a, b, c, d, e, f, g) SMPI_MPI_Reduce( a, b, c, d, e, f, g)
+#define MPI_Reduce( a, b, c, d, e, f, g) SMPI_MPI_Reduce( a, b, c, d, e, f, g)
// SMPI Functions
XBT_PUBLIC(int) SMPI_MPI_Init(int *argc, char ***argv);
XBT_PUBLIC(int) SMPI_MPI_Bcast(void *buf, int count, MPI_Datatype datatype,
int root, MPI_Comm comm);
XBT_PUBLIC(int) SMPI_MPI_Wait(MPI_Request * request, MPI_Status * status);
+XBT_PUBLIC(int) SMPI_MPI_Waitall(int count, MPI_Request requests[], MPI_Status status[]);
+XBT_PUBLIC(int) SMPI_MPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status status[]);
XBT_PUBLIC(int) SMPI_MPI_Comm_split(MPI_Comm comm, int color, int key,
MPI_Comm * comm_out);
XBT_PUBLIC(double) SMPI_MPI_Wtime(void);
-XBT_PUBLIC(int) SMPI_MPI_Reduce(void *sendbuf, void *recvbuf, int count,
+XBT_PUBLIC(int) SMPI_MPI_Reduce(void *sendbuf, void *recvbuf, int count,
MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm);
// smpi functions
int smpi_mpi_isend(smpi_mpi_request_t request);
int smpi_mpi_irecv(smpi_mpi_request_t request);
int smpi_mpi_wait(smpi_mpi_request_t request, smpi_mpi_status_t * status);
-int smpi_mpi_wait_all(int count, smpi_mpi_request_t *requests, smpi_mpi_status_t **status);
-int smpi_mpi_wait_any(int count, smpi_mpi_request_t *requests, int *index, smpi_mpi_status_t *status);
+int smpi_mpi_waitall(int count, smpi_mpi_request_t requests[], smpi_mpi_status_t status[]);
+int smpi_mpi_waitany(int count, smpi_mpi_request_t requests[], int *index, smpi_mpi_status_t status[]);
void smpi_execute(double duration);
void smpi_start_timer(void);
return retval;
}
-int smpi_mpi_wait_all(int count, smpi_mpi_request_t *requests, smpi_mpi_status_t **status) {
+int smpi_mpi_waitall(int count, smpi_mpi_request_t requests[], smpi_mpi_status_t status[]) {
int cpt;
int index;
int retval;
smpi_mpi_status_t stat;
for (cpt=0; cpt<count;cpt++) {
- retval = smpi_mpi_wait_any(count,requests, &index,&stat);
+ retval = smpi_mpi_waitany(count,requests, &index,&stat);
if (retval != MPI_SUCCESS)
return retval;
- memcpy(status[index],&stat,sizeof(stat));
+ memcpy(&(status[index]),&stat,sizeof(stat));
}
return MPI_SUCCESS;
}
-int smpi_mpi_wait_any(int count, smpi_mpi_request_t *requests, int *index, smpi_mpi_status_t *status) {
+int smpi_mpi_waitany(int count, smpi_mpi_request_t *requests, int *index, smpi_mpi_status_t *status) {
int cpt;
*index = MPI_UNDEFINED;