ELPA 2014.06.003: Allow redirect of MPI task output

If specified in the configure step, the test programs
redirect their stdout and stderr output of each MPI
task in a seperate file, which will be stored in a
subdirectory "mpi_stdout".

This will only be done if the environment variable
"REDIRECT_ELPA_TEST_OUTPUT" is set to "true"
parent bd93cec5
......@@ -111,31 +111,45 @@ noinst_PROGRAMS = \
build_lib = libelpa@SUFFIX@.la
elpa1_test_real@SUFFIX@_SOURCES = test/test_real.F90 test/util.F90
if HAVE_REDIRECT
redirect_sources = test/redir.c test/redirect.F90
else
redirect_sources =
endif
elpa1_test_real@SUFFIX@_SOURCES = test/test_real.F90 test/util.F90 $(redirect_sources)
elpa1_test_real@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real@SUFFIX@_SOURCES = test/test_real2.F90 test/util.F90
elpa2_test_real@SUFFIX@_SOURCES = test/test_real2.F90 test/util.F90 $(redirect_sources)
elpa2_test_real@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real_default_kernel@SUFFIX@_SOURCES = test/test_real2_default_kernel.F90 test/util.F90
elpa2_test_real_default_kernel@SUFFIX@_SOURCES = test/test_real2_default_kernel.F90 test/util.F90 $(redirect_sources)
elpa2_test_real_default_kernel@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_real2_choose_kernel_with_api.F90 test/util.F90
elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_real2_choose_kernel_with_api.F90 test/util.F90 $(redirect_sources)
elpa2_test_real_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
elpa1_test_complex@SUFFIX@_SOURCES = test/test_complex.F90 test/util.F90
elpa1_test_complex@SUFFIX@_SOURCES = test/test_complex.F90 test/util.F90 $(redirect_sources)
elpa1_test_complex@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex@SUFFIX@_SOURCES = test/test_complex2.F90 test/util.F90
elpa2_test_complex@SUFFIX@_SOURCES = test/test_complex2.F90 test/util.F90 $(redirect_sources)
elpa2_test_complex@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex_default_kernel@SUFFIX@_SOURCES = test/test_complex2_default_kernel.F90 test/util.F90
elpa2_test_complex_default_kernel@SUFFIX@_SOURCES = test/test_complex2_default_kernel.F90 test/util.F90 $(redirect_sources)
elpa2_test_complex_default_kernel@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_complex2_choose_kernel_with_api.F90 test/util.F90
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_complex2_choose_kernel_with_api.F90 test/util.F90 $(redirect_sources)
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
elpa2_print_kernels@SUFFIX@_SOURCES = src/print_available_elpa2_kernels.F90 test/util.F90
elpa2_print_kernels@SUFFIX@_SOURCES = src/print_available_elpa2_kernels.F90 test/util.F90 $(redirect_sources)
elpa2_print_kernels@SUFFIX@_LDADD = $(build_lib)
check_SCRIPTS = \
......
......@@ -194,8 +194,12 @@ am_libelpa@SUFFIX@_la_OBJECTS = src/elpa1.lo src/elpa2.lo \
$(am__objects_13)
libelpa@SUFFIX@_la_OBJECTS = $(am_libelpa@SUFFIX@_la_OBJECTS)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am__elpa1_test_complex@SUFFIX@_SOURCES_DIST = test/test_complex.F90 \
test/util.F90 test/redir.c test/redirect.F90
@HAVE_REDIRECT_TRUE@am__objects_14 = test/redir.$(OBJEXT) \
@HAVE_REDIRECT_TRUE@ test/redirect.$(OBJEXT)
am_elpa1_test_complex@SUFFIX@_OBJECTS = test/test_complex.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa1_test_complex@SUFFIX@_OBJECTS = \
$(am_elpa1_test_complex@SUFFIX@_OBJECTS)
elpa1_test_complex@SUFFIX@_DEPENDENCIES = $(build_lib)
......@@ -203,48 +207,70 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
am__elpa1_test_real@SUFFIX@_SOURCES_DIST = test/test_real.F90 \
test/util.F90 test/redir.c test/redirect.F90
am_elpa1_test_real@SUFFIX@_OBJECTS = test/test_real.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa1_test_real@SUFFIX@_OBJECTS = \
$(am_elpa1_test_real@SUFFIX@_OBJECTS)
elpa1_test_real@SUFFIX@_DEPENDENCIES = $(build_lib)
am__elpa2_print_kernels@SUFFIX@_SOURCES_DIST = \
src/print_available_elpa2_kernels.F90 test/util.F90 \
test/redir.c test/redirect.F90
am_elpa2_print_kernels@SUFFIX@_OBJECTS = \
src/print_available_elpa2_kernels.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa2_print_kernels@SUFFIX@_OBJECTS = \
$(am_elpa2_print_kernels@SUFFIX@_OBJECTS)
elpa2_print_kernels@SUFFIX@_DEPENDENCIES = $(build_lib)
am__elpa2_test_complex@SUFFIX@_SOURCES_DIST = test/test_complex2.F90 \
test/util.F90 test/redir.c test/redirect.F90
am_elpa2_test_complex@SUFFIX@_OBJECTS = test/test_complex2.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa2_test_complex@SUFFIX@_OBJECTS = \
$(am_elpa2_test_complex@SUFFIX@_OBJECTS)
elpa2_test_complex@SUFFIX@_DEPENDENCIES = $(build_lib)
am__elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES_DIST = \
test/test_complex2_choose_kernel_with_api.F90 test/util.F90 \
test/redir.c test/redirect.F90
am_elpa2_test_complex_choose_kernel_with_api@SUFFIX@_OBJECTS = \
test/test_complex2_choose_kernel_with_api.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_OBJECTS = $(am_elpa2_test_complex_choose_kernel_with_api@SUFFIX@_OBJECTS)
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_DEPENDENCIES = \
$(build_lib)
am__elpa2_test_complex_default_kernel@SUFFIX@_SOURCES_DIST = \
test/test_complex2_default_kernel.F90 test/util.F90 \
test/redir.c test/redirect.F90
am_elpa2_test_complex_default_kernel@SUFFIX@_OBJECTS = \
test/test_complex2_default_kernel.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa2_test_complex_default_kernel@SUFFIX@_OBJECTS = \
$(am_elpa2_test_complex_default_kernel@SUFFIX@_OBJECTS)
elpa2_test_complex_default_kernel@SUFFIX@_DEPENDENCIES = $(build_lib)
am__elpa2_test_real@SUFFIX@_SOURCES_DIST = test/test_real2.F90 \
test/util.F90 test/redir.c test/redirect.F90
am_elpa2_test_real@SUFFIX@_OBJECTS = test/test_real2.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa2_test_real@SUFFIX@_OBJECTS = \
$(am_elpa2_test_real@SUFFIX@_OBJECTS)
elpa2_test_real@SUFFIX@_DEPENDENCIES = $(build_lib)
am__elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES_DIST = \
test/test_real2_choose_kernel_with_api.F90 test/util.F90 \
test/redir.c test/redirect.F90
am_elpa2_test_real_choose_kernel_with_api@SUFFIX@_OBJECTS = \
test/test_real2_choose_kernel_with_api.$(OBJEXT) \
test/util.$(OBJEXT)
test/util.$(OBJEXT) $(am__objects_14)
elpa2_test_real_choose_kernel_with_api@SUFFIX@_OBJECTS = \
$(am_elpa2_test_real_choose_kernel_with_api@SUFFIX@_OBJECTS)
elpa2_test_real_choose_kernel_with_api@SUFFIX@_DEPENDENCIES = \
$(build_lib)
am__elpa2_test_real_default_kernel@SUFFIX@_SOURCES_DIST = \
test/test_real2_default_kernel.F90 test/util.F90 test/redir.c \
test/redirect.F90
am_elpa2_test_real_default_kernel@SUFFIX@_OBJECTS = \
test/test_real2_default_kernel.$(OBJEXT) test/util.$(OBJEXT)
test/test_real2_default_kernel.$(OBJEXT) test/util.$(OBJEXT) \
$(am__objects_14)
elpa2_test_real_default_kernel@SUFFIX@_OBJECTS = \
$(am_elpa2_test_real_default_kernel@SUFFIX@_OBJECTS)
elpa2_test_real_default_kernel@SUFFIX@_DEPENDENCIES = $(build_lib)
......@@ -344,15 +370,15 @@ SOURCES = $(libelpa@SUFFIX@_la_SOURCES) \
$(elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES) \
$(elpa2_test_real_default_kernel@SUFFIX@_SOURCES)
DIST_SOURCES = $(am__libelpa@SUFFIX@_la_SOURCES_DIST) \
$(elpa1_test_complex@SUFFIX@_SOURCES) \
$(elpa1_test_real@SUFFIX@_SOURCES) \
$(elpa2_print_kernels@SUFFIX@_SOURCES) \
$(elpa2_test_complex@SUFFIX@_SOURCES) \
$(elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES) \
$(elpa2_test_complex_default_kernel@SUFFIX@_SOURCES) \
$(elpa2_test_real@SUFFIX@_SOURCES) \
$(elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES) \
$(elpa2_test_real_default_kernel@SUFFIX@_SOURCES)
$(am__elpa1_test_complex@SUFFIX@_SOURCES_DIST) \
$(am__elpa1_test_real@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_print_kernels@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_test_complex@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_test_complex_default_kernel@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_test_real@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES_DIST) \
$(am__elpa2_test_real_default_kernel@SUFFIX@_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
......@@ -770,23 +796,25 @@ dist_doc_DATA = README COPYING/COPYING COPYING/gpl.txt COPYING/lgpl.txt
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = @PKG_CONFIG_FILE@
build_lib = libelpa@SUFFIX@.la
elpa1_test_real@SUFFIX@_SOURCES = test/test_real.F90 test/util.F90
@HAVE_REDIRECT_FALSE@redirect_sources =
@HAVE_REDIRECT_TRUE@redirect_sources = test/redir.c test/redirect.F90
elpa1_test_real@SUFFIX@_SOURCES = test/test_real.F90 test/util.F90 $(redirect_sources)
elpa1_test_real@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real@SUFFIX@_SOURCES = test/test_real2.F90 test/util.F90
elpa2_test_real@SUFFIX@_SOURCES = test/test_real2.F90 test/util.F90 $(redirect_sources)
elpa2_test_real@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real_default_kernel@SUFFIX@_SOURCES = test/test_real2_default_kernel.F90 test/util.F90
elpa2_test_real_default_kernel@SUFFIX@_SOURCES = test/test_real2_default_kernel.F90 test/util.F90 $(redirect_sources)
elpa2_test_real_default_kernel@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_real2_choose_kernel_with_api.F90 test/util.F90
elpa2_test_real_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_real2_choose_kernel_with_api.F90 test/util.F90 $(redirect_sources)
elpa2_test_real_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
elpa1_test_complex@SUFFIX@_SOURCES = test/test_complex.F90 test/util.F90
elpa1_test_complex@SUFFIX@_SOURCES = test/test_complex.F90 test/util.F90 $(redirect_sources)
elpa1_test_complex@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex@SUFFIX@_SOURCES = test/test_complex2.F90 test/util.F90
elpa2_test_complex@SUFFIX@_SOURCES = test/test_complex2.F90 test/util.F90 $(redirect_sources)
elpa2_test_complex@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex_default_kernel@SUFFIX@_SOURCES = test/test_complex2_default_kernel.F90 test/util.F90
elpa2_test_complex_default_kernel@SUFFIX@_SOURCES = test/test_complex2_default_kernel.F90 test/util.F90 $(redirect_sources)
elpa2_test_complex_default_kernel@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_complex2_choose_kernel_with_api.F90 test/util.F90
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_SOURCES = test/test_complex2_choose_kernel_with_api.F90 test/util.F90 $(redirect_sources)
elpa2_test_complex_choose_kernel_with_api@SUFFIX@_LDADD = $(build_lib)
elpa2_print_kernels@SUFFIX@_SOURCES = src/print_available_elpa2_kernels.F90 test/util.F90
elpa2_print_kernels@SUFFIX@_SOURCES = src/print_available_elpa2_kernels.F90 test/util.F90 $(redirect_sources)
elpa2_print_kernels@SUFFIX@_LDADD = $(build_lib)
check_SCRIPTS = \
elpa1_test_real.sh \
......@@ -1024,6 +1052,10 @@ test/test_complex.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)
test/util.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)
test/redir.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)
test/redirect.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)
elpa1_test_complex@SUFFIX@$(EXEEXT): $(elpa1_test_complex@SUFFIX@_OBJECTS) $(elpa1_test_complex@SUFFIX@_DEPENDENCIES) $(EXTRA_elpa1_test_complex@SUFFIX@_DEPENDENCIES)
@rm -f elpa1_test_complex@SUFFIX@$(EXEEXT)
......@@ -1093,6 +1125,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/elpa2_kernels/$(DEPDIR)/elpa2_kernels_real_sse-avx_2hv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/elpa2_kernels/$(DEPDIR)/elpa2_kernels_real_sse-avx_4hv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/elpa2_kernels/$(DEPDIR)/elpa2_kernels_real_sse-avx_6hv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/redir.Po@am__quote@
.F90.o:
$(AM_V_PPFC)$(PPFCCOMPILE) -c -o $@ $<
......@@ -1760,7 +1793,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf src/elpa2_kernels/$(DEPDIR)
-rm -rf src/elpa2_kernels/$(DEPDIR) test/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-local distclean-tags
......@@ -1809,7 +1842,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf src/elpa2_kernels/$(DEPDIR)
-rm -rf src/elpa2_kernels/$(DEPDIR) test/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
......
......@@ -15,6 +15,9 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Redirect stdout and stderr of test programs per MPI tasks to a file */
#undef HAVE_REDIRECT
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
......
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for elpa 2014.06.002.
# Generated by GNU Autoconf 2.69 for elpa 2014.06.003.
#
# Report bugs to <elpa-library@rzg.mpg.de>.
#
......@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='elpa'
PACKAGE_TARNAME='elpa'
PACKAGE_VERSION='2014.06.002'
PACKAGE_STRING='elpa 2014.06.002'
PACKAGE_VERSION='2014.06.003'
PACKAGE_STRING='elpa 2014.06.003'
PACKAGE_BUGREPORT='elpa-library@rzg.mpg.de'
PACKAGE_URL=''
......@@ -710,6 +710,8 @@ FCFLAGS
ac_ct_FC
FC
MPIFC
HAVE_REDIRECT_FALSE
HAVE_REDIRECT_TRUE
am__fastdepCXX_FALSE
am__fastdepCXX_TRUE
CXXDEPMODE
......@@ -818,6 +820,7 @@ enable_option_checking
enable_silent_rules
enable_maintainer_mode
enable_dependency_tracking
with_redirect
with_avx_optimization
with_openmp
enable_openmp
......@@ -1404,7 +1407,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures elpa 2014.06.002 to adapt to many kinds of systems.
\`configure' configures elpa 2014.06.003 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1474,7 +1477,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of elpa 2014.06.002:";;
short | recursive ) echo "Configuration of elpa 2014.06.003:";;
esac
cat <<\_ACEOF
......@@ -1501,6 +1504,9 @@ Optional Features:
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-redirect for test programs, allow redirection of
stdout/stderr per MPI taks in a file (useful for
ftimings), default no.
--with-avx-optimization use AVX optimization, default no.
--with-openmp use OpenMP threading, default no.
--with-only-real-generic-kernel
......@@ -1630,7 +1636,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
elpa configure 2014.06.002
elpa configure 2014.06.003
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -2113,7 +2119,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by elpa $as_me 2014.06.002, which was
It was created by elpa $as_me 2014.06.003, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2980,7 +2986,7 @@ fi
# Define the identity of the package.
PACKAGE='elpa'
VERSION='2014.06.002'
VERSION='2014.06.003'
cat >>confdefs.h <<_ACEOF
......@@ -5045,6 +5051,34 @@ install_complex_bgp=no
install_complex_bgq=no
install_complex_avx_block1=no
install_complex_avx_block2=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdout/stderr file redirect should be enabled" >&5
$as_echo_n "checking whether stdout/stderr file redirect should be enabled... " >&6; }
# Check whether --with-redirect was given.
if test "${with_redirect+set}" = set; then :
withval=$with_redirect; with_redirect=yes
else
with_redirect=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_redirect}" >&5
$as_echo "${with_redirect}" >&6; }
if test x"${with_redirect}" = x"yes"; then
$as_echo "#define HAVE_REDIRECT 1" >>confdefs.h
fi
if test x"$with_redirect" = x"yes"; then
HAVE_REDIRECT_TRUE=
HAVE_REDIRECT_FALSE='#'
else
HAVE_REDIRECT_TRUE='#'
HAVE_REDIRECT_FALSE=
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether SSE assembler kernel can be compiled" >&5
$as_echo_n "checking whether SSE assembler kernel can be compiled... " >&6; }
......@@ -21308,6 +21342,10 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVE_REDIRECT_TRUE}" && test -z "${HAVE_REDIRECT_FALSE}"; then
as_fn_error $? "conditional \"HAVE_REDIRECT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
case $FC_MODINC in #(
*\ ) FC_MODINC=$FC_MODINC'${ac_empty}' ;;
esac
......@@ -21767,7 +21805,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by elpa $as_me 2014.06.002, which was
This file was extended by elpa $as_me 2014.06.003, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -21833,7 +21871,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
elpa config.status 2014.06.002
elpa config.status 2014.06.003
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
AC_PREREQ([2.69])
AC_INIT([elpa],[2014.06.002], [elpa-library@rzg.mpg.de])
AC_INIT([elpa],[2014.06.003], [elpa-library@rzg.mpg.de])
AC_SUBST([PACKAGE_VERSION])
AC_CONFIG_SRCDIR([src/elpa1.F90])
......@@ -99,6 +99,22 @@ install_complex_bgp=no
install_complex_bgq=no
install_complex_avx_block1=no
install_complex_avx_block2=no
dnl build with the possibilty to redirect stdout and stderr
dnl per MPI task in a file
AC_MSG_CHECKING(whether stdout/stderr file redirect should be enabled)
AC_ARG_WITH([redirect],
AS_HELP_STRING([--with-redirect],
[for test programs, allow redirection of stdout/stderr per MPI taks in a file (useful for ftimings), default no.]),
[with_redirect=yes],
[with_redirect=no])
AC_MSG_RESULT([${with_redirect}])
if test x"${with_redirect}" = x"yes"; then
AC_DEFINE([HAVE_REDIRECT], [1], [Redirect stdout and stderr of test programs per MPI tasks to a file])
fi
AM_CONDITIONAL([HAVE_REDIRECT],[test x"$with_redirect" = x"yes"])
AC_MSG_CHECKING(whether SSE assembler kernel can be compiled)
$CC -c $srcdir/src/elpa2_kernels/elpa2_kernels_asm_x86_64.s -o test.o 2>/dev/null
......
......@@ -9,7 +9,7 @@
! - Technische Universität München, Lehrstuhl für Informatik mit
! Schwerpunkt Wissenschaftliches Rechnen ,
! - Fritz-Haber-Institut, Berlin, Abt. Theorie,
! - Max-Plack-Institut für Mathematik in den Naturwissenschaftrn,
! - Max-Plack-Institut für Mathematik in den Naturwissenschaften,
! Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition,
! and
! - IBM Deutschland GmbH
......@@ -40,6 +40,17 @@
!
!
#include "config-f90.h"
!>
!> Fortran test programm to demonstrates the use of
!> ELPA 1 real case library.
!> This program can read a matrix from an ascii
!> file and computes then the Eigenvectors.
!> If "HAVE_REDIRECT" was defined at build time
!> the stdout and stderr output of each MPI task
!> can be redirected to files if the environment
!> variable "REDIRECT_ELPA_TEST_OUTPUT" is set
!> to "true".
!>
program read_real
!-------------------------------------------------------------------------------
......@@ -53,6 +64,12 @@ program read_real
#ifdef WITH_OPENMP
use test_util
#endif
#ifdef HAVE_ISO_FORTRAN_ENV
use iso_fortran_env, only : error_unit
#endif
#ifdef HAVE_REDIRECT
use redirect
#endif
implicit none
include 'mpif.h'
......@@ -82,6 +99,9 @@ program read_real
character*256 filename
#ifdef WITH_OPENMP
integer :: omp_get_max_threads, required_mpi_thread_level, provided_mpi_thread_level
#endif
#ifndef HAVE_ISO_FORTRAN_ENV
integer, parameter :: error_unit = 6
#endif
!-------------------------------------------------------------------------------
! MPI Initialization
......@@ -95,8 +115,8 @@ program read_real
provided_mpi_thread_level, mpierr)
if (required_mpi_thread_level .ne. provided_mpi_thread_level) then
print *,"MPI ERROR: MPI_THREAD_MULTIPLE is not provided on this system"
print *," ", mpi_thread_level_name(provided_mpi_thread_level), " is available"
write(error_unit,*) "MPI ERROR: MPI_THREAD_MULTIPLE is not provided on this system"
write(error_unit,*) " ", mpi_thread_level_name(provided_mpi_thread_level), " is available"
call EXIT(1)
stop 1
endif
......@@ -105,6 +125,22 @@ program read_real
call mpi_comm_rank(mpi_comm_world,myid,mpierr)
call mpi_comm_size(mpi_comm_world,nprocs,mpierr)
#ifdef HAVE_REDIRECT
if (check_redirect_environment_variable()) then
if (myid .eq. 0) then
print *," "
print *,"Redirection of mpi processes is used"
print *," "
if (create_directories() .ne. 1) then
write(error_unit,*) "Unable to create directory for stdout and stderr!"
stop
endif
endif
call MPI_BARRIER(MPI_COMM_WORLD, mpierr)
call redirect_stdout(myid)
endif
#endif
!-------------------------------------------------------------------------------
! Get the name of the input file containing the matrix and open input file
! Please note:
......@@ -114,12 +150,12 @@ program read_real
if(myid==0) then
call get_command_argument(1,filename,lenarg,info)
if(info/=0) then
print *,'Usage: test_real matrix_file'
write(error_unit,*) 'Usage: test_real matrix_file'
call mpi_abort(mpi_comm_world,0,mpierr)
endif
open(10,file=filename,action='READ',status='OLD',iostat=info)
if(info/=0) then
print *,'Error: Unable to open ',trim(filename)
write(error_unit,*) 'Error: Unable to open ',trim(filename)
call mpi_abort(mpi_comm_world,0,mpierr)
endif
endif
......@@ -172,7 +208,7 @@ program read_real
! Quick check for plausibility
if(na<=0 .or. na>10000000) then
if(myid==0) print *,'Illegal value for matrix size: ',na
if(myid==0) write(error_unit,*) 'Illegal value for matrix size: ',na
call mpi_finalize(mpierr)
stop
endif
......
......@@ -9,7 +9,7 @@
! - Technische Universität München, Lehrstuhl für Informatik mit
! Schwerpunkt Wissenschaftliches Rechnen ,
! - Fritz-Haber-Institut, Berlin, Abt. Theorie,
! - Max-Plack-Institut für Mathematik in den Naturwissenschaftrn,
! - Max-Plack-Institut für Mathematik in den Naturwissenschaften,
! Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition,
! and
! - IBM Deutschland GmbH
......@@ -40,6 +40,17 @@
!
!
#include "config-f90.h"
!>
!> Fortran test programm to demonstrates the use of
!> ELPA 1 real case library.
!> This program can read a matrix from an ascii
!> file and computes then the Eigenvectors.
!> If "HAVE_REDIRECT" was defined at build time
!> the stdout and stderr output of each MPI task
!> can be redirected to files if the environment
!> variable "REDIRECT_ELPA_TEST_OUTPUT" is set
!> to "true".
!>
program read_real_gen
!-------------------------------------------------------------------------------
......@@ -57,6 +68,9 @@ program read_real_gen
#ifdef HAVE_ISO_FORTRAN_ENV
use iso_fortran_env, only : error_unit
#endif
#ifdef HAVE_REDIRECT
use redirect
#endif
implicit none
include 'mpif.h'
......@@ -118,6 +132,21 @@ program read_real_gen
call mpi_comm_rank(mpi_comm_world,myid,mpierr)
call mpi_comm_size(mpi_comm_world,nprocs,mpierr)
#ifdef HAVE_REDIRECT
if (check_redirect_environment_variable()) then
if (myid .eq. 0) then
print *," "
print *,"Redirection of mpi processes is used"
print *," "
if (create_directories() .ne. 1) then
write(error_unit,*) "Unable to create directory for stdout and stderr!"
stop
endif
endif
call MPI_BARRIER(MPI_COMM_WORLD, mpierr)
call redirect_stdout(myid)
endif
#endif
!-------------------------------------------------------------------------------
! Get the name of the input files and open input files
......
// This file is part of ELPA.
//
// The ELPA library was originally created by the ELPA consortium,
// consisting of the following organizations:
//
// - Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG),
// - Bergische Universität Wuppertal, Lehrstuhl für angewandte
// Informatik,
// - Technische Universität München, Lehrstuhl für Informatik mit
// Schwerpunkt Wissenschaftliches Rechnen ,
// - Fritz-Haber-Institut, Berlin, Abt. Theorie,
// - Max-Plack-Institut für Mathematik in den Naturwissenschaften,
// Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition,
// and
// - IBM Deutschland GmbH
//
//
// More information can be found here:
// http://elpa.rzg.mpg.de/
//
// ELPA is free software: you can redistribute it and/or modify
// it under the terms of the version 3 of the license of the
// GNU Lesser General Public License as published by the Free
// Software Foundation.
//
// ELPA is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with ELPA. If not, see <http://www.gnu.org/licenses/>
//