[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1b1-99-g269fc33
mysql vizuser
noreply at mpich.org
Sat Oct 19 20:21:55 CDT 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 269fc330d21d8ff49264d57b6dee875a08fa60ef (commit)
via 2b572f0cefac0491da025637db31f89b80186bda (commit)
from beac0a936b294c39385814ea93640953ae732cd8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/269fc330d21d8ff49264d57b6dee875a08fa60ef
commit 269fc330d21d8ff49264d57b6dee875a08fa60ef
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date: Fri Oct 18 20:51:06 2013 -0500
Add a test for allocating 1GB SHM window memory per process.
Test MPI_WIN_ALLOCATE and MPI_WIN_ALLOCATE_SHARED when allocating
large SHM window memory (1GB) per process.
Signed-off-by: Pavan Balaji <balaji at mcs.anl.gov>
diff --git a/test/mpi/rma/Makefile.am b/test/mpi/rma/Makefile.am
index 273d921..b059648 100644
--- a/test/mpi/rma/Makefile.am
+++ b/test/mpi/rma/Makefile.am
@@ -85,6 +85,7 @@ noinst_PROGRAMS = \
win_shared_noncontig \
win_shared_noncontig_put \
win_zero \
+ win_large_shm \
win_dynamic_acc \
get_acc_local \
compare_and_swap \
diff --git a/test/mpi/rma/testlist b/test/mpi/rma/testlist
index ccc7aca..84f5646 100644
--- a/test/mpi/rma/testlist
+++ b/test/mpi/rma/testlist
@@ -70,6 +70,7 @@ win_shared 4 mpiversion=3.0
win_shared_noncontig 4 mpiversion=3.0
win_shared_noncontig_put 4 mpiversion=3.0
win_zero 4 mpiversion=3.0
+win_large_shm 4 mpiversion=3.0
win_dynamic_acc 4 mpiversion=3.0
get_acc_local 1 mpiversion=3.0
linked_list 4 mpiversion=3.0
diff --git a/test/mpi/rma/win_large_shm.c b/test/mpi/rma/win_large_shm.c
new file mode 100644
index 0000000..fe730d2
--- /dev/null
+++ b/test/mpi/rma/win_large_shm.c
@@ -0,0 +1,83 @@
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
+/*
+ * (C) 2001 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+/* test MPI_WIN_ALLOCATE and MPI_WIN_ALLOCATE_SHARED when allocating
+ SHM memory with size of 1GB per process */
+
+#include "mpi.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+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 */
+
+ 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");
+
+ 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);
+
+ /* 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_allocate_shared(shm_win_size, sizeof(char), win_info, shared_comm, &mybase, &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);
+
+ 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);
+
+ 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);
+
+ 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);
+
+ MPI_Win_free(&win);
+
+ MPI_Comm_free(&shared_comm);
+
+ MPI_Info_free(&win_info);
+
+ if (my_rank == 0)
+ printf(" No Errors\n");
+
+ MPI_Finalize();
+
+ return 0;
+}
http://git.mpich.org/mpich.git/commitdiff/2b572f0cefac0491da025637db31f89b80186bda
commit 2b572f0cefac0491da025637db31f89b80186bda
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date: Fri Oct 18 14:29:09 2013 -0500
make MMAP SHM handle as MPI_Aint type.
make SHM handle type in MMAP SHM allocation defined as MPI_Aint instead of
integer to accomodate allocation of SHM memory with size larger than 2^32.
Signed-off-by: Pavan Balaji <balaji at mcs.anl.gov>
diff --git a/src/util/wrappers/mpiu_os_wrappers_pre.h b/src/util/wrappers/mpiu_os_wrappers_pre.h
index 8d2c186..44858fe 100644
--- a/src/util/wrappers/mpiu_os_wrappers_pre.h
+++ b/src/util/wrappers/mpiu_os_wrappers_pre.h
@@ -30,7 +30,7 @@
#ifdef USE_SYSV_SHM
typedef int MPIU_SHMW_Lhnd_t;
#elif defined USE_MMAP_SHM
-typedef int MPIU_SHMW_Lhnd_t;
+typedef MPI_Aint MPIU_SHMW_Lhnd_t;
#elif defined USE_NT_SHM
typedef HANDLE MPIU_SHMW_Lhnd_t;
#endif
diff --git a/src/util/wrappers/mpiu_shm_wrappers.h b/src/util/wrappers/mpiu_shm_wrappers.h
index 02774e4..5e6335b 100644
--- a/src/util/wrappers/mpiu_shm_wrappers.h
+++ b/src/util/wrappers/mpiu_shm_wrappers.h
@@ -592,7 +592,7 @@ static inline int MPIU_SHMW_Seg_create_attach_templ(
int offset, int flag)
{
int mpi_errno = MPI_SUCCESS;
- int lhnd = -1, rc = -1;
+ MPIU_SHMW_Lhnd_t lhnd = -1, rc = -1;
if(flag & MPIU_SHMW_FLAG_SHM_CREATE){
char dev_shm_fname[] = "/dev/shm/mpich_shar_tmpXXXXXX";
@@ -610,7 +610,7 @@ static inline int MPIU_SHMW_Seg_create_attach_templ(
MPIU_OSW_Strerror(MPIU_OSW_Get_errno()));
MPIU_SHMW_Lhnd_set(hnd, lhnd);
- rc = (int)lseek(lhnd, seg_sz - 1, SEEK_SET);
+ rc = (MPIU_SHMW_Lhnd_t)lseek(lhnd, seg_sz - 1, SEEK_SET);
MPIU_ERR_CHKANDJUMP1((rc == -1), mpi_errno,
MPI_ERR_OTHER, "**lseek", "**lseek %s",
MPIU_OSW_Strerror(MPIU_OSW_Get_errno()));
-----------------------------------------------------------------------
Summary of changes:
src/util/wrappers/mpiu_os_wrappers_pre.h | 2 +-
src/util/wrappers/mpiu_shm_wrappers.h | 4 +-
test/mpi/rma/Makefile.am | 1 +
test/mpi/rma/testlist | 1 +
test/mpi/rma/win_large_shm.c | 83 ++++++++++++++++++++++++++++++
5 files changed, 88 insertions(+), 3 deletions(-)
create mode 100644 test/mpi/rma/win_large_shm.c
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list