Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add some coverage in fortran bindings
authordegomme <adegomme@users.noreply.github.com>
Wed, 3 Apr 2019 08:11:04 +0000 (10:11 +0200)
committerdegomme <adegomme@users.noreply.github.com>
Wed, 3 Apr 2019 09:42:12 +0000 (11:42 +0200)
include/smpi/mpif.h.in
src/smpi/bindings/smpi_f77.cpp
src/smpi/include/private.hpp
teshsuite/smpi/mpich3-test/f77/coll/nonblockingf.f
teshsuite/smpi/mpich3-test/f77/rma/CMakeLists.txt
teshsuite/smpi/mpich3-test/f77/rma/testlist
teshsuite/smpi/mpich3-test/f90/rma/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/rma/testlist

index 786e226..fa9c17d 100644 (file)
       parameter(MPI_COMM_NULL_DELETE_FN =0)
       integer MPI_COMM_DUP_FN
       parameter(MPI_COMM_DUP_FN =1)
       parameter(MPI_COMM_NULL_DELETE_FN =0)
       integer MPI_COMM_DUP_FN
       parameter(MPI_COMM_DUP_FN =1)
-      integer MPI_WIN_NULL_COPY_FN, MPI_WIN_NULL_DELETE_FN
-      parameter(MPI_WIN_NULL_COPY_FN =0)
+      integer MPI_WIN_NULL_DELETE_FN
       parameter(MPI_WIN_NULL_DELETE_FN =0)
       parameter(MPI_WIN_NULL_DELETE_FN =0)
-      integer MPI_WIN_DUP_FN
-      parameter(MPI_WIN_DUP_FN =1)
       integer MPI_TYPE_NULL_COPY_FN, MPI_TYPE_NULL_DELETE_FN
       parameter(MPI_TYPE_NULL_COPY_FN =0)
       parameter(MPI_TYPE_NULL_DELETE_FN =0)
       integer MPI_TYPE_NULL_COPY_FN, MPI_TYPE_NULL_DELETE_FN
       parameter(MPI_TYPE_NULL_COPY_FN =0)
       parameter(MPI_TYPE_NULL_DELETE_FN =0)
       external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
       external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
       external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
       external MPI_BCAST, MPI_BARRIER, MPI_REDUCE, MPI_ALLREDUCE
       external MPI_SCATTER, MPI_GATHER, MPI_ALLGATHER, MPI_SCAN
       external MPI_ALLTOALL, MPI_GATHERV, MPI_SENDRECV
+      external MPI_WIN_DUP_FN, MPI_WIN_NULL_COPY_FN
 
       external MPI_WTIME
       external MPI_WTICK
 
       external MPI_WTIME
       external MPI_WTICK
index 9f3ce44..934f517 100644 (file)
@@ -226,15 +226,15 @@ void mpi_win_get_group_(int*  win, int* group, int* ierr){
  }
 }
 
  }
 }
 
-void mpi_win_get_attr_(int* win, int* type_keyval, int* attribute_val, int* flag, int* ierr){
-   int* value = nullptr;
+void mpi_win_get_attr_(int* win, int* type_keyval, MPI_Aint* attribute_val, int* flag, int* ierr){
+   MPI_Aint* value = nullptr;
   *ierr = MPI_Win_get_attr(simgrid::smpi::Win::f2c(*win), *type_keyval, &value, flag);
   if (*flag == 1)
     *attribute_val = *value;
 }
 
   *ierr = MPI_Win_get_attr(simgrid::smpi::Win::f2c(*win), *type_keyval, &value, flag);
   if (*flag == 1)
     *attribute_val = *value;
 }
 
-void mpi_win_set_attr_(int* win, int* type_keyval, int* att, int* ierr){
int* val = (int*)xbt_malloc(sizeof(int));
+void mpi_win_set_attr_(int* win, int* type_keyval, MPI_Aint* att, int* ierr){
MPI_Aint* val = (MPI_Aint*)xbt_malloc(sizeof(MPI_Aint));
  *val=*att;
   *ierr = MPI_Win_set_attr(simgrid::smpi::Win::f2c(*win), *type_keyval, val);
 }
  *val=*att;
   *ierr = MPI_Win_set_attr(simgrid::smpi::Win::f2c(*win), *type_keyval, val);
 }
@@ -284,6 +284,19 @@ void mpi_win_flush_local_all_(int* win, int* ierr){
   *ierr = MPI_Win_flush_local_all(simgrid::smpi::Win::f2c(*win));
 }
 
   *ierr = MPI_Win_flush_local_all(simgrid::smpi::Win::f2c(*win));
 }
 
+void mpi_win_null_copy_fn_( int* win, int* keyval, int* extrastate, MPI_Aint* valin, MPI_Aint* valout,
+                            int* flag, int* ierr ){
+  *flag=0;
+  *ierr=MPI_SUCCESS;
+}
+
+void mpi_win_dup_fn_( int* win, int* keyval, int* extrastate, MPI_Aint* valin, MPI_Aint* valout,
+                      int* flag, int* ierr ){
+  *flag=1;
+  *valout=*valin;
+  *ierr=MPI_SUCCESS;
+}
+
 void mpi_info_create_( int *info, int* ierr){
   MPI_Info tmp;
   *ierr =  MPI_Info_create(&tmp);
 void mpi_info_create_( int *info, int* ierr){
   MPI_Info tmp;
   *ierr =  MPI_Info_create(&tmp);
index de6dff6..6adc870 100644 (file)
@@ -229,8 +229,8 @@ void mpi_win_detach_(int* win, int* base, int* ierr);
 void mpi_win_set_info_(int* win, int* info, int* ierr);
 void mpi_win_get_info_(int* win, int* info, int* ierr);
 void mpi_win_get_group_(int* win, int* group, int* ierr);
 void mpi_win_set_info_(int* win, int* info, int* ierr);
 void mpi_win_get_info_(int* win, int* info, int* ierr);
 void mpi_win_get_group_(int* win, int* group, int* ierr);
-void mpi_win_get_attr_(int* win, int* type_keyval, int* attribute_val, int* flag, int* ierr);
-void mpi_win_set_attr_(int* win, int* type_keyval, int* att, int* ierr);
+void mpi_win_get_attr_(int* win, int* type_keyval, MPI_Aint* attribute_val, int* flag, int* ierr);
+void mpi_win_set_attr_(int* win, int* type_keyval, MPI_Aint* att, int* ierr);
 void mpi_win_delete_attr_(int* win, int* comm_keyval, int* ierr);
 void mpi_win_create_keyval_(void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr);
 void mpi_win_free_keyval_(int* keyval, int* ierr);
 void mpi_win_delete_attr_(int* win, int* comm_keyval, int* ierr);
 void mpi_win_create_keyval_(void* copy_fn, void* delete_fn, int* keyval, void* extra_state, int* ierr);
 void mpi_win_free_keyval_(int* keyval, int* ierr);
@@ -242,6 +242,8 @@ void mpi_win_flush_(int* rank, int* win, int* ierr);
 void mpi_win_flush_local_(int* rank, int* win, int* ierr);
 void mpi_win_flush_all_(int* win, int* ierr);
 void mpi_win_flush_local_all_(int* win, int* ierr);
 void mpi_win_flush_local_(int* rank, int* win, int* ierr);
 void mpi_win_flush_all_(int* win, int* ierr);
 void mpi_win_flush_local_all_(int* win, int* ierr);
+void mpi_win_dup_fn_( int* win, int* keyval, int* extrastate, MPI_Aint* valin, MPI_Aint* valout, int* flag, int* ierr );
+void mpi_win_null_copy_fn_( int* win, int* keyval, int* extrastate, MPI_Aint* valin, MPI_Aint* valout, int* flag, int* ierr );
 void mpi_info_create_(int* info, int* ierr);
 void mpi_info_set_(int* info, char* key, char* value, int* ierr, unsigned int keylen, unsigned int valuelen);
 void mpi_info_free_(int* info, int* ierr);
 void mpi_info_create_(int* info, int* ierr);
 void mpi_info_set_(int* info, char* key, char* value, int* ierr, unsigned int keylen, unsigned int valuelen);
 void mpi_info_free_(int* info, int* ierr);
index c491c8b..b2785bb 100644 (file)
@@ -93,6 +93,24 @@ C
      .                  MPI_SUM, comm, req, ierr)
       call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
 
      .                  MPI_SUM, comm, req, ierr)
       call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
 
+      call MPI_Iscatter(sbuf, NUM_INTS, MPI_INTEGER, rbuf, 
+     .                  NUM_INTS, MPI_INTEGER, 0, comm, req, ierr)
+      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
+
+      call MPI_Iscatterv(sbuf, scounts, sdispls, MPI_INTEGER,
+     .                   rbuf, NUM_INTS, MPI_INTEGER,
+     .                   0, comm, req, ierr)
+      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
+
+      call MPI_Iallgather(sbuf, NUM_INTS, MPI_INTEGER,
+     .                  rbuf, NUM_INTS, MPI_INTEGER, comm, req, ierr)
+      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
+
+      call MPI_Iallgatherv(sbuf, NUM_INTS, MPI_INTEGER, 
+     .                  rbuf, rcounts, rdispls, MPI_INTEGER, 
+     .                  comm, req, ierr)
+      call MPI_Wait(req, MPI_STATUS_IGNORE, ierr)
+
       call mtest_finalize( errs )
       call MPI_Finalize( ierr )
       end
       call mtest_finalize( errs )
       call MPI_Finalize( ierr )
       end
index e34c19d..1cadf23 100644 (file)
@@ -9,12 +9,11 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
 
   foreach(test winaccf
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
 
   foreach(test winaccf
-             # winerrf
-              winfencef wingroupf
-            # baseattrwinf winattr2f winattrf
-               wingetf winnamef winscale1f
-            # winscale2f
-              )
+           winfencef wingroupf
+           baseattrwinf winattr2f winattrf
+           wingetf winnamef winscale1f
+         # winscale2f winerrf
+           )
     add_executable(${test} EXCLUDE_FROM_ALL ${test}.f)
     add_dependencies(tests ${test})
     target_link_libraries(${test} simgrid mtest_f77)
     add_executable(${test} EXCLUDE_FROM_ALL ${test}.f)
     add_dependencies(tests ${test})
     target_link_libraries(${test} simgrid mtest_f77)
index 9141374..db7670b 100644 (file)
@@ -9,6 +9,6 @@ winnamef 1
 wingroupf 4 needs_privatization=1
 winaccf 4 needs_privatization=1
 c2f2cwinf 1
 wingroupf 4 needs_privatization=1
 winaccf 4 needs_privatization=1
 c2f2cwinf 1
-#baseattrwinf 1
-#winattrf 1
-#winattr2f 1
+baseattrwinf 1
+winattrf 1
+winattr2f 1
index 2dbd955..44b91b1 100644 (file)
@@ -10,11 +10,11 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_FORTRAN)
  
   foreach(test winaccf90
              # winerrf90
  
   foreach(test winaccf90
              # winerrf90
-              winfencef90 wingroupf90
-            # baseattrwinf90 winattr2f90 winattrf90
-              wingetf90 winnamef90 winscale1f90
-            # winscale2f90
-              )
+           winfencef90 wingroupf90
+           baseattrwinf90 winattr2f90 winattrf90
+           wingetf90 winnamef90 winscale1f90
+         # winscale2f90
+           )
     add_executable(${test} EXCLUDE_FROM_ALL ${test}.f90)
     add_dependencies(tests ${test})
     target_link_libraries(${test} simgrid mtest_f90)   
     add_executable(${test} EXCLUDE_FROM_ALL ${test}.f90)
     add_dependencies(tests ${test})
     target_link_libraries(${test} simgrid mtest_f90)   
index 0686c73..80be344 100644 (file)
@@ -9,6 +9,6 @@ winnamef90 1
 wingroupf90 4 needs_privatization=1
 winaccf90 4 needs_privatization=1
 c2f2cwinf90 1
 wingroupf90 4 needs_privatization=1
 winaccf90 4 needs_privatization=1
 c2f2cwinf90 1
-#baseattrwinf90 1
-#winattrf90 1
-#winattr2f90 1
+baseattrwinf90 1
+winattrf90 1
+winattr2f90 1