MPI_CALL(XBT_PUBLIC(int), MPI_Win_create,( void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win));
MPI_CALL(XBT_PUBLIC(int), MPI_Win_set_name,(MPI_Win win, char * name));
MPI_CALL(XBT_PUBLIC(int), MPI_Win_get_name,(MPI_Win win, char * name, int* len));
+MPI_CALL(XBT_PUBLIC(int), MPI_Win_get_group,(MPI_Win win, MPI_Group * group));
MPI_CALL(XBT_PUBLIC(int), MPI_Win_fence,( int assert, MPI_Win win));
MPI_CALL(XBT_PUBLIC(int), MPI_Get,( void *origin_addr, int origin_count, MPI_Datatype origin_datatype, int target_rank,
MPI_Win smpi_mpi_win_create( void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm);
void smpi_mpi_win_get_name(MPI_Win win, char* name, int* length);
+void smpi_mpi_win_get_group(MPI_Win win, MPI_Group* group);
void smpi_mpi_win_set_name(MPI_Win win, char* name);
int smpi_mpi_win_fence( int assert, MPI_Win win);
return PMPI_Errhandler_set(comm, errhandler);
}
+int MPI_Win_get_group(MPI_Win win, MPI_Group * group){
+ return PMPI_Win_get_group(win, group);
+}
+
int MPI_Win_set_errhandler(MPI_Win win, MPI_Errhandler errhandler) {
return PMPI_Win_set_errhandler(win, errhandler);
}
int PMPI_Win_get_name(MPI_Win win, char * name, int* len)
{
- int retval = 0;
+ int retval = MPI_SUCCESS;
if (win == MPI_WIN_NULL) {
- retval = MPI_ERR_TYPE;
+ retval = MPI_ERR_WIN;
} else if (name == NULL) {
retval = MPI_ERR_ARG;
} else {
smpi_mpi_win_get_name(win, name, len);
- retval = MPI_SUCCESS;
+ }
+ return retval;
+}
+
+int PMPI_Win_get_group(MPI_Win win, MPI_Group * group){
+ int retval = MPI_SUCCESS;
+ if (win == MPI_WIN_NULL) {
+ retval = MPI_ERR_WIN;
+ }else {
+ smpi_mpi_win_get_group(win, group);
}
return retval;
}
strcpy(name, win->name);
}
+void smpi_mpi_win_get_group(MPI_Win win, MPI_Group* group){
+ if(win->comm != MPI_COMM_NULL)
+ *group = smpi_comm_group(win->comm);
+}
+
void smpi_mpi_win_set_name(MPI_Win win, char* name){
win->name = strdup(name);;
}
# add_executable(baseattrwinf baseattrwinf.f)
# add_executable(winattr2f winattr2f.f)
# add_executable(winattrf winattrf.f)
-# add_executable(c2f2cwinf c2f2cwinf.f c2f2cwin.c)
+ add_executable(c2f2cwinf c2f2cwinf.f c2f2cwin.c)
add_executable(wingetf wingetf.f)
add_executable(winnamef winnamef.f)
# add_executable(winscale1f winscale1f.f)
target_link_libraries(winfencef simgrid mtest_f77)
#target_link_libraries(wingroupf simgrid mtest_f77)
#target_link_libraries(baseattrwinf simgrid mtest_f77)
-#target_link_libraries(c2f2cwinf simgrid mtest_f77)
+target_link_libraries(c2f2cwinf simgrid mtest_f77)
#target_link_libraries(winattr2f simgrid mtest_f77)
#target_link_libraries(winattrf simgrid mtest_f77)
target_link_libraries(wingetf simgrid mtest_f77)
#wingroupf 4
winaccf 4
#Needs mpi_win_f2c
-#c2f2cwinf 1
+c2f2cwinf 1
#Needs attr
#baseattrwinf 1
#winattrf 1
# add_executable(baseattrwinf90 baseattrwinf90.f90)
# add_executable(winattr2f90 winattr2f90.f90)
# add_executable(winattrf90 winattrf90.f90)
-# add_executable(c2f2cwinf90 c2f2cwinf90.f90 c2f2cwin.c)
+ add_executable(c2f2cwinf90 c2f2cwinf90.f90 c2f902cwin.c)
add_executable(wingetf90 wingetf90.f90)
add_executable(winnamef90 winnamef90.f90)
# add_executable(winscale1f90 winscale1f90.f90)
target_link_libraries(winfencef90 simgrid mtest_f90)
#target_link_libraries(wingroupf90 simgrid mtest_f90)
#target_link_libraries(baseattrwinf90 simgrid mtest_f90)
-#target_link_libraries(c2f2cwinf90 simgrid mtest_f90)
+target_link_libraries(c2f2cwinf90 simgrid mtest_f90)
#target_link_libraries(winattr2f90 simgrid mtest_f90)
#target_link_libraries(winattrf90 simgrid mtest_f90)
target_link_libraries(wingetf90 simgrid mtest_f90)
winnamef90 1
#wingroupf90 4
winaccf90 4
-#c2f2cwinf90 1
+c2f2cwinf90 1
#baseattrwinf90 1
#winattrf90 1
#winattr2f90 1
# add_executable(get_acc_local get_acc_local.c)
# add_executable(get_accumulate get_accumulate.c)
add_executable(getfence1 getfence1.c)
-# add_executable(getgroup getgroup.c)
+ add_executable(getgroup getgroup.c)
# add_executable(ircpi ircpi.c)
# add_executable(linked_list_bench_lock_all linked_list_bench_lock_all.c)
# add_executable(linked_list_bench_lock_excl linked_list_bench_lock_excl.c)
# target_link_libraries(get_acc_local simgrid mtest_c)
# target_link_libraries(get_accumulate simgrid mtest_c)
target_link_libraries(getfence1 simgrid mtest_c)
-# target_link_libraries(getgroup simgrid mtest_c)
+ target_link_libraries(getgroup simgrid mtest_c)
# target_link_libraries(ircpi simgrid mtest_c)
# target_link_libraries(linked_list_bench_lock_all simgrid mtest_c)
# target_link_libraries(linked_list_bench_lock_excl simgrid mtest_c)
# set_target_properties(get_acc_local PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
# set_target_properties(get_accumulate PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
set_target_properties(getfence1 PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
-# set_target_properties(getgroup PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
+ set_target_properties(getgroup PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
# set_target_properties(ircpi PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
# set_target_properties(linked_list_bench_lock_all PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")
# set_target_properties(linked_list_bench_lock_excl PROPERTIES COMPILE_FLAGS "${MPICH_FLAGS}")