diff --git a/.gitignore b/.gitignore index c79eda9..fc43a0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /ELPA_2013.11.008_20140321.tar.gz /elpa-2015.02.002.tar.gz /elpa-2015.05.001.tar.gz +/elpa-2015.11.001.tar.gz diff --git a/elpa-no-avx.patch b/elpa-avx.patch similarity index 51% rename from elpa-no-avx.patch rename to elpa-avx.patch index 29ce026..9467178 100644 --- a/elpa-no-avx.patch +++ b/elpa-avx.patch @@ -1,7 +1,7 @@ diff -up mpich/configure.ac.avx mpich/configure.ac ---- mpich/configure.ac.avx 2015-08-06 17:31:47.819635434 +0200 -+++ mpich/configure.ac 2015-08-07 12:42:07.817171493 +0200 -@@ -198,8 +198,12 @@ AC_MSG_RESULT([${can_compile_sse}]) +--- mpich/configure.ac.avx 2016-04-03 16:02:10.334634259 +0200 ++++ mpich/configure.ac 2016-04-03 16:03:45.419882924 +0200 +@@ -196,8 +196,12 @@ AC_MSG_RESULT([${can_compile_sse}]) dnl check whether one can compile with avx - gcc intrinsics @@ -14,7 +14,7 @@ diff -up mpich/configure.ac.avx mpich/configure.ac AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include int main(int argc, char **argv){ -@@ -213,6 +217,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +@@ -211,6 +215,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ) AC_MSG_RESULT([${can_compile_avx}]) if test "${can_compile_avx}" = "yes" ; then @@ -23,7 +23,7 @@ diff -up mpich/configure.ac.avx mpich/configure.ac AC_MSG_CHECKING([whether we can compile AVX intrinsics in C++]) AC_LANG_PUSH([C++]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -@@ -230,9 +236,14 @@ if test "${can_compile_avx}" = "yes" ; t +@@ -228,10 +234,16 @@ if test "${can_compile_avx}" = "yes" ; t AC_MSG_RESULT([${can_compile_avx}]) if test "${can_compile_avx}" = "no" ; then AC_MSG_WARN([Cannot compile C++ with AVX: disabling AVX alltogether]) @@ -35,10 +35,35 @@ diff -up mpich/configure.ac.avx mpich/configure.ac +CFLAGS=$save_CFLAGS +CXXFLAGS=$save_CXXFLAGS + + AC_MSG_CHECKING([whether we can compile AVX2 intrinsics in C]) ++CFLAGS="$CFLAGS -mavx2 -mfma" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + #include + int main(int argc, char **argv){ +@@ -246,6 +258,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + ) + AC_MSG_RESULT([${can_compile_avx2}]) + if test "${can_compile_avx2}" = "yes" ; then ++ AVX2CFLAGS="-mavx2 -mfma" ++ CXXFLAGS="$CXXFLAGS -mavx2 -mfma" + AC_MSG_CHECKING([whether we can compile AVX2 intrinsics in C++]) + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ +@@ -264,9 +278,13 @@ if test "${can_compile_avx2}" = "yes" ; + AC_MSG_RESULT([${can_compile_avx2}]) + if test "${can_compile_avx2}" = "no" ; then + AC_MSG_WARN([Cannot compile C++ with AVX2!]) ++ else ++ AVX2CXXFLAGS="-mavx2 -mfma" + fi + fi + ++CFLAGS=$save_CFLAGS ++CXXFLAGS=$save_CXXFLAGS + if test "${can_compile_avx}" = "yes" ; then install_real_avx_block2=yes - install_real_avx_block4=yes -@@ -634,6 +645,8 @@ AC_SUBST([OPENMP_CFLAGS]) +@@ -669,6 +687,8 @@ AC_SUBST([OPENMP_CFLAGS]) AC_SUBST([OPENMP_FCFLAGS]) AC_SUBST([OPENMP_LDFLAGS]) #AC_SUBST(OPT_FCFLAGS) @@ -48,14 +73,14 @@ diff -up mpich/configure.ac.avx mpich/configure.ac rm -rf modules/ .fortran_dependencies/ mkdir modules diff -up mpich/Makefile.am.avx mpich/Makefile.am ---- mpich/Makefile.am.avx 2015-04-20 10:46:16.000000000 +0200 -+++ mpich/Makefile.am 2015-08-06 17:31:47.820635439 +0200 +--- mpich/Makefile.am.avx 2015-11-22 20:05:49.000000000 +0100 ++++ mpich/Makefile.am 2016-04-03 16:02:10.336634243 +0200 @@ -8,6 +8,8 @@ AM_LDFLAGS = $(SCALAPACK_LDFLAGS) # libelpa lib_LTLIBRARIES = libelpa@SUFFIX@.la libelpa@SUFFIX@_la_LINK = $(FCLINK) $(AM_LDFLAGS) -version-info $(ELPA_SO_VERSION) -lstdc++ -+libelpa@SUFFIX@_la_CFLAGS = $(AVXCFLAGS) $(AM_CFLAGS) -+libelpa@SUFFIX@_la_CXXFLAGS = $(AVXCXXFLAGS) $(AM_CFLAGS) ++libelpa@SUFFIX@_la_CFLAGS = $(AVXCFLAGS) $(AVX2CFLAGS) $(AM_CFLAGS) ++libelpa@SUFFIX@_la_CXXFLAGS = $(AVXCXXFLAGS) $(AVX2CXXFLAGS) $(AM_CFLAGS) libelpa@SUFFIX@_la_SOURCES = src/elpa_utilities.F90 \ src/elpa1.F90 \ diff --git a/elpa.spec b/elpa.spec index 69627ee..d8461d7 100644 --- a/elpa.spec +++ b/elpa.spec @@ -2,16 +2,16 @@ Summary: High-performance library for parallel solution of eigenvalue problems Name: elpa -Version: 2015.05.001 -Release: 4%{?dist} -URL: http://elpa.rzg.mpg.de/ -Source0: http://elpa.rzg.mpg.de/elpa-%{version}.tar.gz +Version: 2015.11.001 +Release: 1%{?dist} +URL: http://elpa.mpcdf.mpg.de/software +Source0: http://elpa.mpcdf.mpg.de/elpa-%{version}.tar.gz # fix pkgconfig file Patch1: elpa-pc.patch # build against atlas instead of reference blas Patch2: elpa-atlas.patch -# don't use AVX instructions in test binaries -Patch3: elpa-no-avx.patch +# fix detection of AVX(2) compiler support and use them only in the library +Patch3: elpa-avx.patch License: LGPLv3+ BuildRequires: atlas-devel BuildRequires: gcc-gfortran @@ -129,10 +129,10 @@ mkdir _openmp cp -pr mpich openmpi _openmp/ %build -export FCFLAGS=-ffree-line-length-none %{_mpich_load} export LDFLAGS="-L%{_libdir}/atlas -L$MPI_LIB" +export FCFLAGS="-ffree-line-length-none -I$MPI_FORTRAN_MOD_DIR" pushd mpich %configure --disable-silent-rules --disable-static \ --libdir=%{_libdir}/mpich%{?_opt_cc_suffix}/lib @@ -151,6 +151,7 @@ popd %{_openmpi_load} export LDFLAGS="-L%{_libdir}/atlas -L$MPI_LIB" +export FCFLAGS="-ffree-line-length-none -I$MPI_FORTRAN_MOD_DIR" pushd openmpi %configure --disable-silent-rules --disable-static \ --libdir=%{_libdir}/openmpi%{?_opt_cc_suffix}/lib @@ -231,8 +232,8 @@ popd %files mpich %{_libdir}/mpich%{?_opt_cc_suffix}/bin/elpa2_print_kernels %{_libdir}/mpich%{?_opt_cc_suffix}/bin/elpa2_print_kernels_openmp -%{_libdir}/mpich%{?_opt_cc_suffix}/lib/libelpa.so.3* -%{_libdir}/mpich%{?_opt_cc_suffix}/lib/libelpa_openmp.so.3* +%{_libdir}/mpich%{?_opt_cc_suffix}/lib/libelpa.so.4* +%{_libdir}/mpich%{?_opt_cc_suffix}/lib/libelpa_openmp.so.4* %files mpich-devel %{_libdir}/mpich%{?_opt_cc_suffix}/lib/libelpa.so @@ -245,8 +246,8 @@ popd %files openmpi %{_libdir}/openmpi%{?_opt_cc_suffix}/bin/elpa2_print_kernels %exclude %{_libdir}/openmpi%{?_opt_cc_suffix}/bin/elpa2_print_kernels_openmp -%{_libdir}/openmpi%{?_opt_cc_suffix}/lib/libelpa.so.3* -%exclude %{_libdir}/openmpi%{?_opt_cc_suffix}/lib/libelpa_openmp.so.3* +%{_libdir}/openmpi%{?_opt_cc_suffix}/lib/libelpa.so.4* +%exclude %{_libdir}/openmpi%{?_opt_cc_suffix}/lib/libelpa_openmp.so.4* %files openmpi-devel %{_libdir}/openmpi%{?_opt_cc_suffix}/lib/libelpa.so @@ -257,6 +258,11 @@ popd %exclude %{_fmoddir}/openmpi%{?_cc_name_suffix}/*_openmp.mod %changelog +* Sun Apr 03 2016 Dominik Mierzejewski 2015.11.001-1 +- update to 2015.11.001 release +- update URL and Source URL +- fix AVX(2) support detection and usage + * Wed Feb 03 2016 Fedora Release Engineering - 2015.05.001-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild diff --git a/sources b/sources index 0cc6dcd..8ab1086 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -04e4bfc0eb9b8e59b1b53361fa55e6d7 elpa-2015.05.001.tar.gz +de0f35b7ee7c971fd0dca35c900b87e6 elpa-2015.11.001.tar.gz