Commit 2772c6b5 authored by Andreas Marek's avatar Andreas Marek

Merge branch 'master' into ELPA_GPU

parents a98b83f0 e6ca1d19
......@@ -325,7 +325,10 @@ gfortran-double-precision-mpi-openmp-special-gcov-jobs:
- export OMP_NUM_THREADS=1
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# jobs for intel/gfortran single precision mpi and openmp
......@@ -384,7 +387,6 @@ gfortran-single-precision-mpi-openmp-special-gcov-jobs:
- export OMP_NUM_THREADS=1
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
# jobs for intel/gfortran double precision no mpi and openmp
......@@ -757,7 +759,7 @@ gfortran-double-precision-nompi-openmp-ftimings-special-gcov-jobs:
- cpu
script:
- ./autogen.sh
- ./configure FC=gfortran CFLAGS="--coverage -O3 -mavx" CXXFLAGS="--coverage -O3 -mavx" FCFLAGS="--coverage -O3 -mavx" SCALAPACK_LDFLAGS="$MKL_GFORTRAN_SCALAPACK_LDFLAGS_NO_MPI_OMP" SCALAPACK_FCFLAGS="$MKL_GFORTRAN_SCALAPACK_FCFLAGS_NO_MPI_OMP" --with-mpi=no --with-ftimings --enable-openmp
- ./configure FC=gfortran CFLAGS="--coverage -O3 -mavx" CXXFLAGS="--coverage -O3 -mavx" FCFLAGS="--coverage -O3 -mavx" SCALAPACK_LDFLAGS="$MKL_GFORTRAN_SCALAPACK_LDFLAGS_NO_MPI_OMP" SCALAPACK_FCFLAGS="$MKL_GFORTRAN_SCALAPACK_FCFLAGS_NO_MPI_OMP" --with-mpi=no --enable-timing --enable-openmp
- make -j 8
- export OMP_NUM_THREADS=1
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
......@@ -1006,6 +1008,18 @@ gfortran-double-precision-mpi-noopenmp-ftimings-redirect-assumed-size-jobs:
paths:
- coverage_data
# real generic simple, compex generic simple
intel-double-precision-mpi-openmp-ftimings-redirect-real-generic-simple-complex-generic-simple-kernel-jobs:
tags:
- cpu
script:
- ./autogen.sh
- ./configure CFLAGS="-O3 -mavx" CXXFLAGS="-O3 -mavx" FCFLAGS="-O3 -mavx" SCALAPACK_LDFLAGS="$MKL_INTEL_SCALAPACK_MPI_OMP" SCALAPACK_FCFLAGS="$MKL_INTEL_SCALAPACK_FCFLAGS_MPI_OMP" --enable-openmp --enable-timing --enable-redirect --with-real-generic-kernel-only --with-complex-generic-kernel-only
- make -j 8
- export OMP_NUM_THREADS=2
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
>>>>>>> master
# jobs for intel/gfortran single precision mpi and no openmp ftimings and redirect enabled
......@@ -1290,6 +1304,10 @@ gfortran-double-precision-nompi-noopenmp-ftimings-redirect-jobs:
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# jobs for intel/gfortran single precision nompi and no openmp ftimings and redirect enabled
......@@ -1314,7 +1332,6 @@ gfortran-single-precision-nompi-noopenmp-ftimings-redirect-jobs:
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
# jobs for intel/gfortran double precision mpi and openmp ftimings and redirect enabled
intel-double-precision-mpi-openmp-ftimings-redirect-jobs:
......@@ -1350,7 +1367,10 @@ gfortran-double-precision-mpi-openmp-ftimings-redirect-special-gcov-jobs:
- export OMP_NUM_THREADS=1
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# jobs for intel/gfortran single precision mpi and openmp ftimings and redirect enabled
......@@ -1466,6 +1486,10 @@ gfortran-single-precision-mpi-openmp-ftimings-redirect-real-generic-complex-gene
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# jobs for intel/gfortran double precision mpi and no openmp ftimings and redirect enabled
......@@ -1507,7 +1531,7 @@ gfortran-double-precision-mpi-noopenmp-ftimings-redirect-real-generic-complex-ge
artifacts:
paths:
- coverage_data
# real generic simple, compex generic simple
intel-single-precision-mpi-openmp-ftimings-redirect-real-generic-simple-complex-generic-simple-kernel-jobs:
......@@ -1576,6 +1600,10 @@ gfortran-single-precision-mpi-noopenmp-ftimings-redirect-real-generic-simple-com
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
gfortran-double-precision-mpi-noopenmp-ftimings-redirect-real-generic-simple-complex-generic-simple-kernel-assumed-size-jobs:
tags:
......@@ -1665,7 +1693,6 @@ gfortran-double-precision-mpi-noopenmp-ftimings-redirect-real-sse_assembly-compl
paths:
- coverage_data
# real sse block2, complex sse block 1
intel-single-precision-mpi-openmp-ftimings-redirect-real-sse_block2-complex-sse_block1-kernel-jobs:
tags:
......@@ -1688,6 +1715,10 @@ gfortran-single-precision-mpi-openmp-ftimings-redirect-real-sse_block2-complex-s
- export OMP_NUM_THREADS=2
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
gfortran-single-precision-mpi-openmp-ftimings-redirect-real-sse_block2-complex-sse_block1-kernel-special-gcov-jobs:
tags:
......@@ -1700,6 +1731,10 @@ gfortran-single-precision-mpi-openmp-ftimings-redirect-real-sse_block2-complex-s
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# real sse block2, complex sse block1
......@@ -1761,6 +1796,10 @@ gfortran-single-precision-mpi-openmp-ftimings-redirect-real-sse_block4-complex-s
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# real sse block4, complex sse block 2
intel-single-precision-mpi-noopenmp-ftimings-redirect-real-sse_block4-complex-sse_block2-kernel-jobs:
......@@ -1812,6 +1851,10 @@ intel-single-precision-mpi-openmp-ftimings-redirect-real-sse_block6-complex-avx_
- export OMP_NUM_THREADS=2
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
gfortran-single-precision-mpi-openmp-ftimings-redirect-real-sse_block6-complex-avx_block1-kernel-jobs:
tags:
......@@ -1909,6 +1952,10 @@ gfortran-single-precision-mpi-openmp-ftimings-redirect-real-avx_block2-complex-a
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
#real avx block2, complex avx block2
......@@ -1921,6 +1968,10 @@ intel-single-precision-mpi-noopenmp-ftimings-redirect-real-avx_block2-complex-av
- make -j 8
- export LD_LIBRARY_PATH=$MKL_HOME/lib/intel64:$LD_LIBRARY_PATH
- make check TEST_FLAGS='1500 50 16'
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
gfortran-single-precision-mpi-noopenmp-ftimings-redirect-real-avx_block2-complex-avx_block2-kernel-jobs:
tags:
......@@ -2314,6 +2365,10 @@ gfortran-set-kernel-via-environment-variable-mpi-openmp-special-gcov-job:
- export OMP_NUM_THREADS=1
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
intel-set-kernel-via-environment-variable-mpi-noopenmp-job:
tags:
......@@ -2339,6 +2394,10 @@ gfortran-set-kernel-via-environment-variable-mpi-noopenmp-job:
- export COMPLEX_ELPA_KERNEL=COMPLEX_ELPA_KERNEL_GENERIC
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
intel-set-kernel-via-environment-variable-nompi-openmp-job:
tags:
......@@ -2379,6 +2438,10 @@ gfortran-set-kernel-via-environment-variable-nompi-openmp-special-gcov-job:
- export OMP_NUM_THREADS=1
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
intel-set-kernel-via-environment-variable-nompi-noopenmp-job:
tags:
......@@ -2404,6 +2467,10 @@ gfortran-set-kernel-via-environment-variable-nompi-noopenmp-job:
- export COMPLEX_ELPA_KERNEL=COMPLEX_ELPA_KERNEL_GENERIC
- make check TEST_FLAGS='1500 50 16'
# - ./test_scripts/get_coverage_summary.sh
- ./ci_coverage_collect
artifacts:
paths:
- coverage_data
# test distcheck
distcheck:
......@@ -2412,7 +2479,8 @@ distcheck:
script:
- ./autogen.sh
- ./configure --with-mpi=no
- make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-mpi=no" TEST_FLAGS='1500 50 16'
# stupid 'make distcheck' leaves behind write-protected files that the stupid gitlab runner cannot remove
- make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-mpi=no" TEST_FLAGS='1500 50 16' || { chmod u+rwX -R . ; exit 1 ; }
# test test_project
......@@ -2441,3 +2509,13 @@ test_project:
- rm -rf installdest
- popd
## print coverage results
#total_coverage:
# stage: coverage
# tags:
# - cpu
# script:
# - ./ci_coverage_summary
# artifacts:
# paths:
# - coverage_summary
How to contribute to the ELPA library:
We are very happy and gratefull if you are willing to help us improve ELPA. Thus, we would like to make this process as simple as possible for you,
We are very happy and gratefull if you are willing to help us improve ELPA. Thus, we would like to make this process as simple as possible for you,
but at the same time still keep it manageable for us
For recommendations and suggestions, a simple email to us is sufficient!
......
Changelog for release ELPA 2016.05.001
Changelog for release ELPA 2016.05.003
- fix a problem with the build of SSE kernels
- make some (internal) functions public, such that they
can be used outside of ELPA
- add documentation and interfaces for new public functions
- shorten file namses and directory names for test programs
in under to by pass "make agrument list too long" error
Changelog for release ELPA 2016.05.002
- fix problem with generated *.sh- check scripts
- name library differently if build without MPI support
......
......@@ -854,33 +854,33 @@ EXCLUDE = @top_srcdir@/src/elpa1_compute.F90 \
@top_srcdir@/src/ftimings/resident_set_size.c \
@top_srcdir@/src/ftimings/time.c \
@top_srcdir@/src/ftimings/virtual_memory.c \
@top_srcdir@/test/shared_sources/mod_output_types.F90 \
@top_srcdir@/test/c_test_programs/elpa1_test_complex_c_version.c \
@top_srcdir@/test/c_test_programs/elpa1_test_real_c_version.c \
@top_srcdir@/test/c_test_programs/elpa2_test_complex_c_version.c \
@top_srcdir@/test/c_test_programs/elpa2_test_real_c_version.c \
@top_srcdir@/test/fortran_test_programs/read_real.F90 \
@top_srcdir@/test/fortran_test_programs/test_complex2_choose_kernel_with_api.F90 \
@top_srcdir@/test/fortran_test_programs/test_complex2_default_kernel.F90 \
@top_srcdir@/test/fortran_test_programs/test_complex2.F90 \
@top_srcdir@/test/fortran_test_programs/test_complex.F90 \
@top_srcdir@/test/fortran_test_programs/test_real2_choose_kernel_with_api.F90 \
@top_srcdir@/test/fortran_test_programs/test_real2_default_kernel.F90 \
@top_srcdir@/test/fortran_test_programs/test_real2_default_kernel_qr_decomposition.F90 \
@top_srcdir@/test/fortran_test_programs/test_real2.F90 \
@top_srcdir@/test/fortran_test_programs/test_real.F90 \
@top_srcdir@/test/fortran_test_programs/test_real_with_c.F90 \
@top_srcdir@/test/shared_sources/blacs_infrastructure.F90 \
@top_srcdir@/test/shared_sources/call_elpa1.c \
@top_srcdir@/test/shared_sources/call_elpa2.c \
@top_srcdir@/test/shared_sources/check_correctnes.F90 \
@top_srcdir@/test/shared_sources/mod_from_c.F90 \
@top_srcdir@/test/shared_sources/prepare_matrix.F90 \
@top_srcdir@/test/shared_sources/read_input_parameters.F90 \
@top_srcdir@/test/shared_sources/redir.c \
@top_srcdir@/test/shared_sources/redirect.F90 \
@top_srcdir@/test/shared_sources/setup_mpi.F90 \
@top_srcdir@/test/shared_sources/util.F90
@top_srcdir@/test/shared/mod_output_types.F90 \
@top_srcdir@/test/C/elpa1_test_complex_c_version.c \
@top_srcdir@/test/C/elpa1_test_real_c_version.c \
@top_srcdir@/test/C/elpa2_test_complex_c_version.c \
@top_srcdir@/test/C/elpa2_test_real_c_version.c \
@top_srcdir@/test/Fortran/read_real.F90 \
@top_srcdir@/test/Fortran/test_complex2_choose_kernel_with_api.F90 \
@top_srcdir@/test/Fortran/test_complex2_default_kernel.F90 \
@top_srcdir@/test/Fortran/test_complex2.F90 \
@top_srcdir@/test/Fortran/test_complex.F90 \
@top_srcdir@/test/Fortran/test_real2_choose_kernel_with_api.F90 \
@top_srcdir@/test/Fortran/test_real2_default_kernel.F90 \
@top_srcdir@/test/Fortran/test_real2_default_kernel_qr_decomposition.F90 \
@top_srcdir@/test/Fortran/test_real2.F90 \
@top_srcdir@/test/Fortran/test_real.F90 \
@top_srcdir@/test/Fortran/test_real_with_c.F90 \
@top_srcdir@/test/shared/blacs_infrastructure.F90 \
@top_srcdir@/test/shared/call_elpa1.c \
@top_srcdir@/test/shared/call_elpa2.c \
@top_srcdir@/test/shared/check_correctnes.F90 \
@top_srcdir@/test/shared/mod_from_c.F90 \
@top_srcdir@/test/shared/prepare_matrix.F90 \
@top_srcdir@/test/shared/read_input_parameters.F90 \
@top_srcdir@/test/shared/redir.c \
@top_srcdir@/test/shared/redirect.F90 \
@top_srcdir@/test/shared/setup_mpi.F90 \
@top_srcdir@/test/shared/util.F90
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
......
......@@ -2,7 +2,7 @@
## Preamle ##
This file provides documentation on how to build the *ELPA* library in **version ELPA-2016.05.002**.
This file provides documentation on how to build the *ELPA* library in **version ELPA-2016.05.003**.
Although most of the documentation is generic to any *ELPA* release, some configure options
described in this document might be specific to the above mentioned version of *ELPA*.
......@@ -33,6 +33,11 @@ for the documentation how to proceed.
Please look at configure --help for all available options.
Please note, that it is necessary to set the **compiler options** like optimisation flags etc.
for the Fortran and C part.
For example sth. like this is a usual way ./configure FCFLAGS="-O2 -mavx" CFLAGS="-O2 -mavx"
For details, please have a look at the documentation for the compilers of your choice.
### Setting of MPI compiler and libraries ###
In the standard case *ELPA* need a MPI compiler and MPI libraries. The configure script
......
......@@ -38,3 +38,9 @@ https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
the naming conventions. The old interface are still available
The states of release 2016.05.001 and 2016.05.002 define this interface
- 6
Compatible API change w.r.t. previous version: Interfaces have been made public.
The state of release 2016.05.003 defines this interface
This diff is collapsed.
......@@ -2,7 +2,7 @@
## Current Release ##
The current release is ELPA 2016.05.002
The current release is ELPA 2016.05.003
## About *ELPA*
......@@ -87,7 +87,7 @@ the possible configure options.
## Using *ELPA*
Please have a look at the "**USERS_GUIDE**" file, to get a documentation or at the [online]
(http://elpa.mpcdf.mpg.de/html/Documentation/ELPA-2016.05.002/html/index.html) doygen
(http://elpa.mpcdf.mpg.de/html/Documentation/ELPA-2016.05.003/html/index.html) doygen
documentation, where you find the definition of the interfaces.
## Contributing to *ELPA*
......
This file contains the release notes for the ELPA 2016.05.002 version
This file contains the release notes for the ELPA 2016.05.003 version
What is new?
-------------
For changes since release ELPA 2016.05.001 please have a look at the Changelog file
For changes since release ELPA 2016.05.002 please have a look at the Changelog file
a) ABI change
......@@ -15,4 +15,4 @@ Any incompatibilities to previous version?
---------------------------------------
As mentioned before, the ABI of ELPA was not changed; There is no
incompatibility with the previous version ELPA 2016.05.001. and ELPA 2015.11.001 releases. There is, however, an incompatibility with older versions than ELPA 2015.11.001 !
incompatibility with the previous version ELPA 2016.05.002. There is, however, an incompatibility with older versions than ELPA 2015.11.001 !
......@@ -9,7 +9,7 @@ Local documentation (via man pages) should be available (if *ELPA* has been inst
For example "man get_elpa_communicators" should provide the documentation for the *ELPA* function which sets
the necessary communicators.
Also a [online doxygen documentation] (http://elpa.mpcdf.mpg.de/html/Documentation/ELPA-2016.05.002/html/index.html)
Also a [online doxygen documentation] (http://elpa.mpcdf.mpg.de/html/Documentation/ELPA-2016.05.003/html/index.html)
for each *ELPA* release is available.
### General concept of the *ELPA* library ###
......@@ -20,7 +20,7 @@ The *ELPA* library consists of two main parts:
Both variants of the *ELPA* solvers are available for real or complex valued matrices.
Thus *ELPA* provides the following user functions (see man pages or [online] (http://elpa.mpcdf.mpg.de/html/Documentation/ELPA-2016.05.002/html/index.html) for details):
Thus *ELPA* provides the following user functions (see man pages or [online] (http://elpa.mpcdf.mpg.de/html/Documentation/ELPA-2016.05.003/html/index.html) for details):
- get_elpa_communicators : set the row / column communicators for *ELPA*
- solve_evp_complex_1stage : solve a complex valued eigenvale proplem with the *ELPA 1stage* solver
......
#!/bin/bash
cov_dir=coverage_data
cov_file=$cov_dir/coverage_${CI_BUILD_REF}_${CI_BUILD_NAME}.info
prefix=$cov_dir/coverage_${CI_BUILD_REF}_${CI_BUILD_NAME}
mkdir -p $cov_dir/
lcov --capture \
$(find src/ -name "*.gcn[ao]" | xargs -n 1 dirname | sort -u | grep -v ftimings | xargs -n 1 echo --directory) \
--output-file $cov_file
lcov -r $cov_file "/usr/*" -o $cov_file
lcov -r $cov_file "/afs/*" -o $cov_file
lcov -r $cov_file "src/ftimings" -o $cov_file
for dir in $(find -name "*.gcno" -print0 | xargs -0 -n 1 dirname | sort -u); do
dir=${dir#./};
lcov -c -b $PWD -d $dir --to-package $prefix.${dir//\//_}.package;
done
#!/bin/bash
for p in coverage_data/coverage_${CI_BUILD_REF}*.package ; do
cov_file=${p%.package}.info
lcov -c -b $PWD --from-package $p --output-file $cov_file
lcov -r $cov_file "/usr/*" -o $cov_file
lcov -r $cov_file "/afs/*" -o $cov_file
lcov -r $cov_file "src/ftimings" -o $cov_file
done
lcov $(for i in coverage_data/coverage_${CI_BUILD_REF}_*.info; do echo -a $i; done) -o coverage_data/coverage_${CI_BUILD_REF}.info
lcov --summary coverage_data/coverage_${CI_BUILD_REF}.info 2>&1 | \
awk '/lines|functions/ {
......@@ -11,4 +19,6 @@ lcov --summary coverage_data/coverage_${CI_BUILD_REF}.info 2>&1 | \
print "";
}' | \
sed 's/^/__COVERAGE__:/; s/, $//;'
genhtml coverage_data/coverage_${CI_BUILD_REF}.info -o coverage_data
mkdir coverage_summary
genhtml coverage_data/coverage_${CI_BUILD_REF}.info -o coverage_summary
AC_PREREQ([2.69])
# Remember to change the version also in elpa.spec
AC_INIT([elpa],[2016.05.002], [elpa-library@mpcdf.mpg.de])
# The version is set in elpa.spec, to have a single point of reference
AC_INIT([elpa],m4_esyscmd_s([awk '/^ *Version:/ {print $2;}' elpa.spec]), [elpa-library@mpcdf.mpg.de])
AC_SUBST([PACKAGE_VERSION])
AC_CONFIG_SRCDIR([src/elpa1.F90])
......@@ -34,7 +33,7 @@ AM_SILENT_RULES([yes])
# by the current interface, as they are ABI compatible (e.g. only new symbols
# were added by the new interface)
#
AC_SUBST([ELPA_SO_VERSION], [5:1:1])
AC_SUBST([ELPA_SO_VERSION], [6:0:2])
#
......@@ -95,6 +94,7 @@ fi
AC_PROG_INSTALL
AM_PROG_AR
AM_PROG_AS
AM_PROG_CC_C_O
# Fortran
......@@ -121,6 +121,14 @@ if test x"${enable_openmp}" = x"yes"; then
FCFLAGS="$OPENMP_FCFLAGS $FCFLAGS"
fi
dnl check which MPI binray invokes a MPI job
if test x"$with_mpi" = x"yes"; then
AC_CHECK_PROGS([MPI_BINARY], [mpiexec.hydra mpiexec mpirun], [no])
if test x"$MPI_BINARY" = x"no"; then
AC_MSG_ERROR([Could not find either of the MPI binaries: mpiexec.hydra, mpiexec, mpirun])
fi
fi
## C++
#AC_LANG([C++])
#AC_PROG_CXX
......@@ -158,50 +166,51 @@ install_complex_generic_simple=yes
AC_LANG([C])
dnl build with ftimings support
AC_MSG_CHECKING(whether ELPA should be build with ftimings support)
AC_ARG_WITH([ftimings],
AS_HELP_STRING([--with-ftimings],
[detailed timings, default no.]),
[with_ftimings=yes],
[with_ftimings=no])
AC_MSG_RESULT([${with_ftimings}])
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_ARG_ENABLE([redirect],
AS_HELP_STRING([--enable-redirect],
[for test programs, allow redirection of stdout/stderr per MPI taks in a file (useful for timing), default no.]),
[],
[enable_redirect=no])
AC_MSG_RESULT([${enable_redirect}])
dnl redirect
if test x"${enable_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"])
if test x"${with_ftimings}" = x"yes"; then
AC_DEFINE([HAVE_DETAILED_TIMINGS], [1], [Enable more timings])
AC_ARG_ENABLE([papi],
[AS_HELP_STRING([--disable-papi],[Do not use PAPI to also measure flop count, autodetected by default])],
[want_papi=$enableval],[want_papi="auto"])
papi_found=unknown
if test x"$want_papi" != x"no" ; then
AC_CHECK_LIB([papi],[PAPI_library_init],[papi_found="yes"],[papi_found="no"])
if test x"$want_papi" = x"yes" ; then
if test x"$papi_found" = x"no" ; then
AC_MSG_ERROR(["Could not find usable PAPI installation, please adjust CFLAGS, LDFLAGS"])
fi
AM_CONDITIONAL([HAVE_REDIRECT],[test x"$enable_redirect" = x"yes"])
dnl build with ftimings support
AC_MSG_CHECKING(whether ELPA should be build with more detailed timing support)
AC_ARG_ENABLE([timing],
AS_HELP_STRING([--enable-timing],
[more detailed timing, default no.]),
[],
[enable_timings=no])
AC_MSG_RESULT([${enable_timings}])
if test x"${enable_timings}" = x"yes"; then
AC_DEFINE([HAVE_DETAILED_TIMINGS], [1], [Enable more timing])
fi
AM_CONDITIONAL([HAVE_DETAILED_TIMINGS],[test x"$enable_timings" = x"yes"])
dnl PAPI for ftimings
AC_ARG_WITH([papi],
[AS_HELP_STRING([--with-papi],[Use PAPI to also measure flop count in the detailed timing (--enable-timing), disabled by default])],
[],
[with_papi="no"])
if test x"${enable_timings}" = x"yes"; then
if test x"$with_papi" = x"yes" ; then
AC_SEARCH_LIBS([PAPI_library_init],[papi],
[papi_found=yes],[papi_found=no])
if test x"$papi_found" = x"no" ; then
AC_MSG_ERROR(["Could not find usable PAPI installation, please install or adjust CFLAGS, LDFLAGS"])
fi
fi
if test x"$papi_found" = x"yes"; then
AC_DEFINE([HAVE_LIBPAPI], [1], [Use the PAPI library])
LIBS="-lpapi $LIBS"
fi
fi
AM_CONDITIONAL([HAVE_DETAILED_TIMINGS],[test x"$with_ftimings" = x"yes"])
AC_MSG_CHECKING(whether double-precision SSE assembly kernel can be compiled)
......@@ -943,6 +952,7 @@ fi
AM_CONDITIONAL([WANT_SINGLE_PRECISION_REAL],[test x"$want_single_precision" = x"yes"])
AM_CONDITIONAL([WANT_SINGLE_PRECISION_COMPLEX],[test x"$want_single_precision" = x"yes"])
AC_SUBST([MPI_BINARY])
AC_SUBST([WITH_MKL])
AC_SUBST([WITH_BLACS])
AC_SUBST([with_amd_bulldozer_kernel])
......
......@@ -19,8 +19,20 @@
# Set to 0 to disable
%define with_openmp 1
# Logic to figure out if we are on SLES-11-SP4, which need special
# treatment (custom compiler package name, old RPM macros)
%if 0%{suse_version} > 0
%if 0%{suse_version} <= 1110
%define sle_11_sp4 1
%else
%define sle_11_sp4 0
%endif
%else
%define sle_11_sp4 0
%endif
Name: elpa
Version: 2016.05.002
Version: 2016.05.003
Release: 2
Summary: A massively parallel eigenvector solver
License: LGPL-3.0
......@@ -28,19 +40,25 @@ Group: System/Libraries
Url: https://elpa.rzg.mpg.de/
Source0: https://elpa.mpcdf.mpg.de/html/Releases/%{version}/%{name}-%{version}.tar.gz
Requires: openmpi
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
# For SLE_11_SP4:
%if %{sle_11_sp4} == 1
BuildRequires: gcc48-c++
BuildRequires: gcc48-fortran
%else
BuildRequires: gcc-c++ >= 4.8
BuildRequires: gcc-fortran >= 4.8
%endif
BuildRequires: strace
BuildRequires: openmpi-devel
BuildRequires: blas
BuildRequires: blas-devel
BuildRequires: lapack
BuildRequires: lapack-devel
BuildRequires: pkg-config