X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c57842fe897f53b46f0be3da87f7c996674be7d6..5ca17dc381bb7fba4f2689143e2080f7549ee0ab:/teshsuite/smpi/mpich3-test/rma/win_large_shm.c diff --git a/teshsuite/smpi/mpich3-test/rma/win_large_shm.c b/teshsuite/smpi/mpich3-test/rma/win_large_shm.c index fe730d2f72..63bb5f7c00 100644 --- a/teshsuite/smpi/mpich3-test/rma/win_large_shm.c +++ b/teshsuite/smpi/mpich3-test/rma/win_large_shm.c @@ -11,68 +11,83 @@ #include #include -int main(int argc, char **argv) { +int main(int argc, char **argv) +{ int my_rank, shared_rank; void *mybase = NULL; MPI_Win win; MPI_Info win_info; MPI_Comm shared_comm; - int shm_win_size = 1024 * 1024 * 1024 * sizeof(char); /* 1GB */ + int i; + int shm_win_size = 1024 * 1024 * 1024 * sizeof(char); /* 1GB */ MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); - MPI_Info_create(&win_info); - MPI_Info_set(win_info, (char*)"alloc_shm", (char*)"true"); + for (i = 0; i < 2; i++) { + if (i == 0) { + MPI_Info_create(&win_info); + MPI_Info_set(win_info, (char *) "alloc_shm", (char *) "true"); + } + else { + win_info = MPI_INFO_NULL; + } - MPI_Comm_split_type(MPI_COMM_WORLD, MPI_COMM_TYPE_SHARED, my_rank, MPI_INFO_NULL, &shared_comm); + MPI_Comm_split_type(MPI_COMM_WORLD, MPI_COMM_TYPE_SHARED, my_rank, MPI_INFO_NULL, + &shared_comm); - MPI_Comm_rank(shared_comm, &shared_rank); + MPI_Comm_rank(shared_comm, &shared_rank); - /* every processes allocate 1GB window memory */ - MPI_Win_allocate(shm_win_size, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); + /* every processes allocate 1GB window memory */ + MPI_Win_allocate(shm_win_size, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); - MPI_Win_free(&win); + MPI_Win_free(&win); - MPI_Win_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, &win); + MPI_Win_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, &win); - MPI_Win_free(&win); + MPI_Win_free(&win); - /* some processes allocate 1GB and some processes allocate zero bytes */ - if (my_rank % 2 == 0) - MPI_Win_allocate(shm_win_size, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); - else - MPI_Win_allocate(0, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); + /* some processes allocate 1GB and some processes allocate zero bytes */ + if (my_rank % 2 == 0) + MPI_Win_allocate(shm_win_size, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); + else + MPI_Win_allocate(0, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); - MPI_Win_free(&win); + MPI_Win_free(&win); - if (shared_rank % 2 == 0) - MPI_Win_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, &win); - else - MPI_Win_allocate_shared(0, sizeof(char), win_info, shared_comm, &mybase, &win); + if (shared_rank % 2 == 0) + MPI_Win_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, + &win); + else + MPI_Win_allocate_shared(0, sizeof(char), win_info, shared_comm, &mybase, &win); - MPI_Win_free(&win); + MPI_Win_free(&win); - /* some processes allocate 1GB and some processes allocate smaller bytes */ - if (my_rank % 2 == 0) - MPI_Win_allocate(shm_win_size, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); - else - MPI_Win_allocate(shm_win_size/2, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); + /* some processes allocate 1GB and some processes allocate smaller bytes */ + if (my_rank % 2 == 0) + MPI_Win_allocate(shm_win_size, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, &win); + else + MPI_Win_allocate(shm_win_size / 2, sizeof(char), win_info, MPI_COMM_WORLD, &mybase, + &win); - MPI_Win_free(&win); + MPI_Win_free(&win); - /* some processes allocate 1GB and some processes allocate smaller bytes */ - if (shared_rank % 2 == 0) - MPI_Win_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, &win); - else - MPI_Win_allocate_shared(shm_win_size/2, sizeof(char), win_info, shared_comm, &mybase, &win); + /* some processes allocate 1GB and some processes allocate smaller bytes */ + if (shared_rank % 2 == 0) + MPI_Win_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, + &win); + else + MPI_Win_allocate_shared(shm_win_size / 2, sizeof(char), win_info, shared_comm, &mybase, + &win); - MPI_Win_free(&win); + MPI_Win_free(&win); - MPI_Comm_free(&shared_comm); + MPI_Comm_free(&shared_comm); - MPI_Info_free(&win_info); + if (i == 0) + MPI_Info_free(&win_info); + } if (my_rank == 0) printf(" No Errors\n");