[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.0.4-386-ga7ea4b9
mysql vizuser
noreply at mpich.org
Fri Jul 26 10:43:05 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 a7ea4b9b018afe02dcf558cf5fc8f288c3180a47 (commit)
from d92264053b17d873503a87b6c322896b03fc6f61 (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/a7ea4b9b018afe02dcf558cf5fc8f288c3180a47
commit a7ea4b9b018afe02dcf558cf5fc8f288c3180a47
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date: Tue Jul 23 13:44:03 2013 -0500
Adds framework for testing checkpointing.
Checkpointing tests only run if --enable-checkpointing is
configured. First test is to see if mpiexec can successfully
checkpoint a job using blcr.
Signed-off-by: Wesley Bland <wbland at mcs.anl.gov>
diff --git a/test/mpi/Makefile.am b/test/mpi/Makefile.am
index 76b072a..ed82f0e 100644
--- a/test/mpi/Makefile.am
+++ b/test/mpi/Makefile.am
@@ -19,7 +19,7 @@ all_lang_subdirs = f77 cxx f90
# duplication because automake is able to "see" into simple variable
# assignments that are not driven by a configure @-substitution variable.
DIST_SUBDIRS = $(static_subdirs) io $(all_lang_subdirs) threads spawn .
-SUBDIRS = $(static_subdirs) $(iodir) $(otherlangs) $(threadsdir) $(spawndir) .
+SUBDIRS = $(static_subdirs) $(iodir) $(otherlangs) $(threadsdir) $(spawndir) $(ckpointdir) .
EXTRA_DIST = maint/common.defn maint/f77tof90.in maint/testmerge.in maint/updatefiles testlist.in
diff --git a/test/mpi/ckpoint/Makefile.am b/test/mpi/ckpoint/Makefile.am
new file mode 100644
index 0000000..456e04d
--- /dev/null
+++ b/test/mpi/ckpoint/Makefile.am
@@ -0,0 +1,13 @@
+# -*- Mode: Makefile; -*-
+# vim: set ft=automake :
+#
+# (C) 2011 by Argonne National Laboratory.
+# See COPYRIGHT in top-level directory.
+#
+
+include $(top_srcdir)/Makefile.mtest
+
+## for all programs that are just built from the single corresponding source
+## file, we don't need per-target _SOURCES rules, automake will infer them
+## correctly
+noinst_PROGRAMS = write_ckpoint
diff --git a/test/mpi/ckpoint/testlist b/test/mpi/ckpoint/testlist
new file mode 100644
index 0000000..6b98eb1
--- /dev/null
+++ b/test/mpi/ckpoint/testlist
@@ -0,0 +1 @@
+write_ckpoint 2 timeLimit=30 mpiexecarg=-ckpoint-prefix mpiexecarg=/tmp mpiexecarg=-ckpointlib mpiexecarg=blcr mpiexecarg=-ckpoint-interval mpiexecarg=5
diff --git a/test/mpi/ckpoint/write_ckpoint.c b/test/mpi/ckpoint/write_ckpoint.c
new file mode 100644
index 0000000..eadd43c
--- /dev/null
+++ b/test/mpi/ckpoint/write_ckpoint.c
@@ -0,0 +1,32 @@
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
+/*
+ * (C) 2001 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#include "mpi.h"
+#include <stdio.h>
+
+int main(int argc,char *argv[])
+{
+ int numprocs, myid, i;
+ int namelen;
+ char processor_name[MPI_MAX_PROCESSOR_NAME];
+
+ MPI_Init(&argc,&argv);
+ MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
+ MPI_Comm_rank(MPI_COMM_WORLD,&myid);
+ MPI_Get_processor_name(processor_name,&namelen);
+
+ for ( i = 0 ; i < 22; i++ ) {
+ MPI_Barrier(MPI_COMM_WORLD);
+ MTestSleep(1);
+ }
+
+ if (myid == 0) {
+ printf("No Errors\n");
+ }
+
+ MPI_Finalize();
+ return 0;
+}
diff --git a/test/mpi/configure.ac b/test/mpi/configure.ac
index 3816e1a..7339192 100644
--- a/test/mpi/configure.ac
+++ b/test/mpi/configure.ac
@@ -135,6 +135,11 @@ AC_ARG_ENABLE(checkfaults,
[Add some tests for checking on handling of faults in user programs])],,
[enable_checkfaults=no])
+AC_ARG_ENABLE(checkpointing,
+ [AC_HELP_STRING([--enable-checkpointing],
+ [Add some tests for checkpointing])],,
+ [enable_checkpointing=no])
+
AC_ARG_ENABLE(fast,
[AC_HELP_STRING([--enable-fast],
[Indicates that the MPI implementation may have been
@@ -287,6 +292,13 @@ AC_SUBST(perfdir)
if test "$enable_threads" = "multiple" -o "$enable_threads" = "runtime" ; then
threadsdir="threads"
fi
+#
+# Only run the checkpointing tests if enabled
+ckpointdir="#ckpoint"
+if test "$enable_checkpointing" = "yes" ; then
+ ckpointdir="ckpoint"
+fi
+AC_SUBST(ckpointdir)
PAC_LOAD_BASE_CACHE
PAC_VPATH_CHECK()
@@ -1414,6 +1426,7 @@ AC_OUTPUT(maint/testmerge \
errors/f77/errhan/iooffset.h \
errors/f90/Makefile \
errors/f90/errhan/Makefile \
+ ckpoint/Makefile \
manual/Makefile \
manual/manyconnect \
manual/mpi_t/Makefile \
diff --git a/test/mpi/runtests.in b/test/mpi/runtests.in
index dbe1f79..67ab8ce 100644
--- a/test/mpi/runtests.in
+++ b/test/mpi/runtests.in
@@ -637,7 +637,7 @@ sub RunMPIProgram {
if (/^\s*No [Ee]rrors\s*$/ && $found_noerror == 0) {
$found_noerror = 1;
}
- if (! /^\s*No [Ee]rrors\s*$/ && !/^\s*Test Passed\s*$/) {
+ if (! /^\s*No [Ee]rrors\s*$/ && !/^\s*Test Passed\s*$/ && !/requesting checkpoint\s*$/ && !/checkpoint completed\s*$/) {
print STDERR "Unexpected output in $programname: $_";
if (!$found_error) {
$found_error = 1;
diff --git a/test/mpi/testlist.in b/test/mpi/testlist.in
index 172c119..0a77991 100644
--- a/test/mpi/testlist.in
+++ b/test/mpi/testlist.in
@@ -21,3 +21,4 @@ topo
@f90dir@
@errordir@
@threadsdir@
+ at ckpointdir@
-----------------------------------------------------------------------
Summary of changes:
test/mpi/Makefile.am | 2 +-
test/mpi/{errors/basic => ckpoint}/Makefile.am | 3 +--
test/mpi/ckpoint/testlist | 1 +
.../infloop.c => test/mpi/ckpoint/write_ckpoint.c | 13 ++++++-------
test/mpi/configure.ac | 13 +++++++++++++
test/mpi/runtests.in | 2 +-
test/mpi/testlist.in | 1 +
7 files changed, 24 insertions(+), 11 deletions(-)
copy test/mpi/{errors/basic => ckpoint}/Makefile.am (89%)
create mode 100644 test/mpi/ckpoint/testlist
copy examples/developers/infloop.c => test/mpi/ckpoint/write_ckpoint.c (72%)
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list