Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add mpi_testall binding for fortran
authorAugustin Degomme <degomme@idpann.imag.fr>
Fri, 15 Feb 2013 09:31:14 +0000 (10:31 +0100)
committerAugustin Degomme <degomme@idpann.imag.fr>
Fri, 15 Feb 2013 09:31:14 +0000 (10:31 +0100)
src/smpi/private.h
src/smpi/smpi_f77.c

index 541d6dc..34da3d7 100644 (file)
@@ -337,6 +337,7 @@ void mpi_alltoallv__(void* sendbuf, int* sendcounts, int* senddisps, int* sendty
                     void* recvbuf, int* recvcounts, int* recvdisps, int* recvtype, int* comm, int* ierr);
 void mpi_get_processor_name__(char *name, int *resultlen, int* ierr);
 void mpi_test__ (int * request, int *flag, MPI_Status * status, int* ierr);
+void mpi_testall__ (int* count, int * requests,  int *flag, MPI_Status * statuses, int* ierr);
 void mpi_get_count__(MPI_Status * status, int* datatype, int *count, int* ierr);
 void mpi_type_extent__(int* datatype, MPI_Aint * extent, int* ierr);
 void mpi_attr_get__(int* comm, int* keyval, void* attr_value, int* flag, int* ierr );
index 41e837d..e933675 100644 (file)
@@ -457,6 +457,19 @@ void mpi_test__ (int * request, int *flag, MPI_Status * status, int* ierr){
   MPI_Request req = find_request(*request);
   *ierr= MPI_Test(&req, flag, status);
 }
+
+
+void mpi_testall__ (int* count, int * requests,  int *flag, MPI_Status * statuses, int* ierr){
+  MPI_Request* reqs;
+  int i;
+  reqs = xbt_new(MPI_Request, *count);
+  for(i = 0; i < *count; i++) {
+    reqs[i] = find_request(requests[i]);
+  }
+  *ierr= MPI_Testall(*count, reqs, flag, statuses);
+}
+
+
 void mpi_get_processor_name__(char *name, int *resultlen, int* ierr){
   *ierr = MPI_Get_processor_name(name, resultlen);
 }