Compare commits

..

No commits in common. "master" and "f24" have entirely different histories.
master ... f24

10 changed files with 199 additions and 376 deletions

2
.gitignore vendored
View File

@ -2,5 +2,3 @@
/elpa-2015.02.002.tar.gz
/elpa-2015.05.001.tar.gz
/elpa-2015.11.001.tar.gz
/elpa-2017.05.003.tar.gz
/elpa-2017.05.003.tar.gz.asc

12
elpa-atlas.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up mpich/configure.ac.atlas mpich/configure.ac
--- mpich/configure.ac.atlas 2015-03-19 12:45:07.946282074 +0100
+++ mpich/configure.ac 2015-03-19 12:45:07.955282120 +0100
@@ -335,7 +335,7 @@ if test x"${have_mkl}" = x"yes" ; then
else
dnl first check blas
- AC_SEARCH_LIBS([dgemm],[blas],[have_blas=yes],[have_blas=no])
+ AC_SEARCH_LIBS([dgemm],[satlas blas],[have_blas=yes],[have_blas=no])
AC_MSG_CHECKING([whether we can link a program with a blas lib])
AC_MSG_RESULT([${have_blas}])

86
elpa-avx.patch Normal file
View File

@ -0,0 +1,86 @@
diff -up mpich/configure.ac.avx mpich/configure.ac
--- 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
+save_CFLAGS="$CFLAGS"
+save_CXXFLAGS="$CXXFLAGS"
+
dnl first pass: try with specified CFLAGS and CXXFLAGS
AC_MSG_CHECKING([whether we can compile AVX intrinsics in C])
+CFLAGS="$CFLAGS -mavx"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <x86intrin.h>
int main(int argc, char **argv){
@@ -211,6 +215,8 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
)
AC_MSG_RESULT([${can_compile_avx}])
if test "${can_compile_avx}" = "yes" ; then
+ AVXCFLAGS="-mavx"
+ CXXFLAGS="$CXXFLAGS -mavx"
AC_MSG_CHECKING([whether we can compile AVX intrinsics in C++])
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
@@ -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])
+ else
+ AVXCXXFLAGS="-mavx"
fi
fi
+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 <x86intrin.h>
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
@@ -669,6 +687,8 @@ AC_SUBST([OPENMP_CFLAGS])
AC_SUBST([OPENMP_FCFLAGS])
AC_SUBST([OPENMP_LDFLAGS])
#AC_SUBST(OPT_FCFLAGS)
+AC_SUBST([AVXCFLAGS])
+AC_SUBST([AVXCXXFLAGS])
rm -rf modules/ .fortran_dependencies/
mkdir modules
diff -up mpich/Makefile.am.avx mpich/Makefile.am
--- 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) $(AVX2CFLAGS) $(AM_CFLAGS)
+libelpa@SUFFIX@_la_CXXFLAGS = $(AVXCXXFLAGS) $(AVX2CXXFLAGS) $(AM_CFLAGS)
libelpa@SUFFIX@_la_SOURCES = src/elpa_utilities.F90 \
src/elpa1.F90 \

View File

@ -1,36 +0,0 @@
diff -up mpich/configure.ac.onenode mpich/configure.ac
--- mpich/configure.ac.onenode 2017-09-01 08:54:37.000000000 +0200
+++ mpich/configure.ac 2017-10-30 15:23:40.886476457 +0100
@@ -948,19 +948,11 @@ mkdir -p modules private_modules test_mo
# into "postdeps_FC" and causes linking errors later on.
postdeps_FC=$(echo $postdeps_FC | sed 's/-l //g')
-if test x"${with_mpi}" = x"yes"; then
if test x"${enable_openmp}" = x"yes"; then
SUFFIX="_openmp"
else
SUFFIX=""
fi
-else
- if test x"${enable_openmp}" = x"yes"; then
- SUFFIX="_onenode_openmp"
- else
- SUFFIX="_onenode"
- fi
-fi
AC_SUBST([SUFFIX])
AC_SUBST([PKG_CONFIG_FILE],[elpa${SUFFIX}-${PACKAGE_VERSION}.pc])
diff -up mpich/INSTALL.md.onenode mpich/INSTALL.md
--- mpich/INSTALL.md.onenode 2017-09-01 08:54:37.000000000 +0200
+++ mpich/INSTALL.md 2017-10-30 15:23:40.886476457 +0100
@@ -151,9 +151,6 @@ configure FC=gfortran --with-mpi=0
DO NOT specify a MPI compiler here!
-Note, that the the installed *ELPA* library files will be suffixed with
-"_onenode", in order to descriminate this build from possible ones with MPI.
-
Please continue reading at "C) Enabling GPU support"

View File

@ -1,19 +0,0 @@
diff -up mpich/configure.ac.papi mpich/configure.ac
--- mpich/configure.ac.papi 2017-09-01 08:54:37.000000000 +0200
+++ mpich/configure.ac 2017-10-18 00:25:55.531438089 +0200
@@ -188,6 +188,7 @@ fi
AM_CONDITIONAL([HAVE_DETAILED_TIMINGS], [test x"$enable_timings" = x"yes"])
dnl PAPI for ftimings
+AC_LANG_PUSH([C])
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])],
@@ -202,6 +203,7 @@ if test x"${enable_timings}" = x"yes"; t
AC_DEFINE([HAVE_LIBPAPI], [1], [Use the PAPI library])
fi
fi
+AC_LANG_POP([C])
save_FCFLAGS=$FCFLAGS
save_LDFLAGS=$LDFLAGS

View File

@ -6,4 +6,4 @@ diff -up mpich/elpa.pc.in.r mpich/elpa.pc.in
Libs: -L${libdir} -lelpa@SUFFIX@ @LIBS@ @OPENMP_FCFLAGS@
Cflags: -I${includedir}/elpa@SUFFIX@-@PACKAGE_VERSION@ @OPENMP_CFLAGS@
-fcflags= -I${includedir}/elpa@SUFFIX@-@PACKAGE_VERSION@/modules @OPENMP_FCFLAGS@
+fcflags= -I@MPI_FORTRAN_MOD_DIR@ @OPENMP_FCFLAGS@
+fcflags= -I${libdir}/gfortran/modules @OPENMP_FCFLAGS@

View File

@ -1,77 +0,0 @@
diff -up mpich/configure.ac.simd mpich/configure.ac
--- mpich/configure.ac.simd 2017-10-30 14:41:22.320909606 +0100
+++ mpich/configure.ac 2017-10-30 14:41:22.322909621 +0100
@@ -668,6 +668,8 @@ m4_foreach_w([elpa_m4_kind],[real comple
AC_LANG_PUSH([C])
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -msse3"
if test x"${need_sse}" = x"yes"; then
AC_MSG_CHECKING(whether we can compile SSE3 with gcc intrinsics in C)
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
@@ -686,7 +688,9 @@ int main(int argc, char **argv) {
AC_MSG_ERROR([Could not compile test program, try with --disable-sse, or adjust the C compiler or CFLAGS])
fi
AC_DEFINE([HAVE_SSE_INTRINSICS],[1],[gcc intrinsics SSE is supported on this CPU])
+ SSE3CFLAGS="-msse3"
fi
+CFLAGS="$save_CFLAGS"
if test x"${need_sse_assembly}" = x"yes"; then
@@ -728,6 +732,8 @@ fi
if test x"${need_avx}" = x"yes"; then
dnl check whether one can compile AVX gcc intrinsics
AC_MSG_CHECKING([whether we can compile AVX gcc intrinsics in C])
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -mavx"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <x86intrin.h>
int main(int argc, char **argv){
@@ -744,11 +750,15 @@ if test x"${need_avx}" = x"yes"; then
AC_MSG_ERROR([Could not compile a test program with AVX, try with --disable-avx, or adjust the C compiler or CFLAGS])
fi
AC_DEFINE([HAVE_AVX],[1],[AVX is supported on this CPU])
+ AVXCFLAGS="-mavx"
+ CFLAGS="$save_CFLAGS"
fi
if test x"${need_avx2}" = x"yes"; then
AC_MSG_CHECKING([whether we can compile AVX2 gcc intrinsics in C])
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -mavx2 -mfma"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <x86intrin.h>
int main(int argc, char **argv){
@@ -766,6 +776,8 @@ if test x"${need_avx2}" = x"yes"; then
AC_MSG_ERROR([Could not compile a test program with AVX2, try with --disable-avx2, or adjust the C compiler or CFLAGS])
fi
AC_DEFINE([HAVE_AVX2],[1],[AVX2 is supported on this CPU])
+ AVX2CFLAGS="-mavx2 -mfma"
+ CFLAGS="$save_CFLAGS"
fi
@@ -923,6 +935,9 @@ AC_SUBST([WITH_MKL])
AC_SUBST([WITH_BLACS])
AC_SUBST([FC_MODINC])
AC_SUBST([FC_MODOUT])
+AC_SUBST([SSE3CFLAGS])
+AC_SUBST([AVXCFLAGS])
+AC_SUBST([AVX2CFLAGS])
AC_SUBST([OPENMP_CFLAGS])
AC_SUBST([OPENMP_FCFLAGS])
AC_SUBST([OPENMP_LDFLAGS])
diff -up mpich/Makefile.am.simd mpich/Makefile.am
--- mpich/Makefile.am.simd 2017-09-01 08:54:37.000000000 +0200
+++ mpich/Makefile.am 2017-10-30 14:41:22.322909621 +0100
@@ -33,6 +33,7 @@ endif
# internal parts
noinst_LTLIBRARIES += libelpa@SUFFIX@_private.la
libelpa@SUFFIX@_private_la_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules
+libelpa@SUFFIX@_private_la_CFLAGS = $(SSE3CFLAGS) $(AVXCFLAGS) $(AVX2CFLAGS) $(AM_CFLAGS)
libelpa@SUFFIX@_private_la_SOURCES = \
src/elpa_impl.F90 \
src/elpa_abstract_impl.F90 \

338
elpa.spec
View File

@ -1,45 +1,20 @@
%{!?openblas_arches:%global openblas_arches x86_64 %{ix86} armv7hl %{power64} aarch64 s390x}
%ifnarch %{openblas_arches}
# matches openblas/scalapack ExclusiveArch
%global with_atlas 1
%endif
%ifnarch s390 s390x
%global with_papi 1
%endif
%bcond_without check
%global sover 8
Summary: High-performance library for parallel solution of eigenvalue problems
Name: elpa
Version: 2017.05.003
Release: 3%{?dist}
URL: https://elpa.mpcdf.mpg.de/software
Source0: https://elpa.mpcdf.mpg.de/html/Releases/%{version}/elpa-%{version}.tar.gz
Source1: https://elpa.mpcdf.mpg.de/html/Releases/%{version}/elpa-%{version}.tar.gz.asc
Source2: gpg-keyring-05288C27E0CF6B3D7F4FEF6A52C18F6F0A355F25.gpg
# drop _onenode suffix from non-MPI builds
Patch1: elpa-onenode.patch
# fix detection of papi
Patch2: elpa-papi.patch
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
# fix detection of AVX(2) compiler support and use them only in the library
Patch3: elpa-simd.patch
Patch3: elpa-avx.patch
License: LGPLv3+
%if %{with atlas}
BuildRequires: atlas-devel
%else
BuildRequires: openblas-devel
%endif
BuildRequires: gcc-gfortran
BuildRequires: gnupg2
BuildRequires: libtool
BuildRequires: /usr/bin/execstack
%if %{with papi}
BuildRequires: papi-devel
%endif
Requires: %{name}-common = %{version}-%{release}
%description
ELPA is a Fortran-based high-performance computational library for the
@ -66,28 +41,17 @@ eigenvalue problems.
This package contains common files for ELPA.
%package common-devel
Summary: Common development files for ELPA (non-MPI version)
Requires: %{name}-common = %{version}-%{release}
%description common-devel
ELPA is a Fortran-based high-performance computational library for the
(massively) parallel solution of symmetric or Hermitian, standard or generalized
eigenvalue problems.
This package contains the common development files for ELPA (non-MPI version).
%package devel
Summary: Development files for ELPA (non-MPI version)
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-common-devel = %{version}-%{release}
Summary: C header files for ELPA
BuildArch: noarch
Requires: %{name}-mpi-devel = %{version}-%{release}
%description devel
ELPA is a Fortran-based high-performance computational library for the
(massively) parallel solution of symmetric or Hermitian, standard or generalized
eigenvalue problems.
This package contains the development files for ELPA (non-MPI version).
This package contains the C header files for ELPA.
%package mpich
Summary: Fast library for parallel solution of eigenvalue problems (MPICH version)
@ -107,7 +71,7 @@ This package contains ELPA built against MPICH.
Summary: Development files for ELPA (MPICH version)
Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran%{?_isa}
Requires: %{name}-common-devel = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
Provides: %{name}-mpi-devel = %{version}-%{release}
%description mpich-devel
@ -120,9 +84,7 @@ This package contains the development files for ELPA (MPICH version).
%package openmpi
Summary: Fast library for parallel solution of eigenvalue problems (OpenMPI version)
# required for running the testsuite
%if %{with check}
BuildRequires: rsh
%endif
BuildRequires: openmpi-devel
BuildRequires: blacs-openmpi-devel
BuildRequires: scalapack-openmpi-devel
@ -139,7 +101,7 @@ This package contains ELPA built against OpenMPI.
Summary: Development files for ELPA (OpenMPI version)
Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
Requires: gcc-gfortran%{?_isa}
Requires: %{name}-common-devel = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
Provides: %{name}-mpi-devel = %{version}-%{release}
%description openmpi-devel
@ -150,135 +112,100 @@ eigenvalue problems.
This package contains the development files for ELPA (OpenMPI version).
%prep
gpgv2 --keyring %{S:2} %{S:1} %{S:0}
%setup -q -c -T -a 0
mv elpa-%{version} mpich
pushd mpich
%patch1 -p1 -b .onenode
%patch2 -p1 -b .papi
%patch3 -p1 -b .simd
%patch1 -p1 -b .r
%patch2 -p1 -b .atlas
%patch3 -p1 -b .avx
autoreconf -vifs
popd
cp -pr mpich openmpi
cp -pr mpich serial
mkdir _openmp
cp -pr mpich openmpi serial _openmp/
cp -pr mpich openmpi _openmp/
%build
%global defopts --disable-silent-rules --disable-static --docdir=%{_pkgdocdir}
%global ldflags %{__global_ldflags}
%if %{with atlas}
%global ldflags %{ldflags} -L%{_libdir}/atlas
%endif
%global fcflags %{optflags} -I%{_fmoddir} -ffree-line-length-none
%global defopts --disable-silent-rules --disable-static
%global ldflags -L%{_libdir}/atlas
%global fcflags -ffree-line-length-none
. /etc/profile.d/modules.sh
%{_mpich_load}
export LDFLAGS="%{ldflags} -L$MPI_LIB"
export FCFLAGS="%{fcflags} -I$MPI_FORTRAN_MOD_DIR"
pushd mpich
%configure %{defopts} \
--libdir=$MPI_LIB
for mpi in '' mpich openmpi ; do
export CFLAGS="%{optflags}"
export LDFLAGS="%{ldflags}"
export FCFLAGS="%{fcflags}"
if [ -n "$mpi" ]; then
module load mpi/${mpi}-%{_arch}
export LDFLAGS="${LDFLAGS} -L$MPI_LIB"
export FCFLAGS="${FCFLAGS} -I$MPI_FORTRAN_MOD_DIR"
fi
for s in '' _openmp ; do
pushd ${s:-.}/${mpi:-serial}
if [ -n "$mpi" ]; then
fmoddir="$MPI_FORTRAN_MOD_DIR"
mpiflag="--libdir=$MPI_LIB"
else
fmoddir="%{_fmoddir}"
mpiflag="--with-mpi=no"
fi
sed -i -e "s,\${includedir}/elpa@SUFFIX@-@PACKAGE_VERSION@/modules,${fmoddir}," elpa.pc.in
%configure %{defopts} \
%ifnarch x86_64
--disable-sse-assembly \
--disable-sse \
--disable-avx \
--disable-avx2 \
%endif
${s:+--enable-openmp} \
%if %{with papi}
--with-papi \
%endif
$mpiflag || cat config.log
make %{?_smp_mflags} V=1
popd
make %{?_smp_mflags} V=1
popd
done
if [ -n "$mpi" ]; then
module unload mpi/${mpi}-%{_arch}
fi
done
pushd _openmp/mpich
%configure %{defopts} \
--enable-openmp \
--libdir=$MPI_LIB
make %{?_smp_mflags} V=1
popd
%{_mpich_unload}
%{_openmpi_load}
export LDFLAGS="%{ldflags} -L$MPI_LIB"
export FCFLAGS="%{fcflags} -I$MPI_FORTRAN_MOD_DIR"
pushd openmpi
%configure %{defopts} \
--libdir=$MPI_LIB
make %{?_smp_mflags} V=1
popd
pushd _openmp/openmpi
%configure %{defopts} \
--enable-openmp \
--libdir=$MPI_LIB
make %{?_smp_mflags} V=1
popd
%{_openmpi_unload}
%install
. /etc/profile.d/modules.sh
for s in '' _openmp ; do
# install serial last to avoid overwriting non-MPI binaries in _bindir
for mpi in mpich openmpi '' ; do
pushd ${s:-.}/${mpi:-serial}
for mpi in mpich openmpi ; do
pushd ${s:-.}/${mpi}
make DESTDIR=%{buildroot} install
if [ -n "$mpi" ]; then
module load mpi/${mpi}-%{_arch}
libdir=%{_libdir}/${mpi}/lib
fmoddir=$MPI_FORTRAN_MOD_DIR
mkdir -p %{buildroot}$MPI_BIN
mv %{buildroot}%{_bindir}/elpa2_print_kernels${s} %{buildroot}$MPI_BIN
module unload mpi/${mpi}-%{_arch}
else
libdir=%{_libdir}
fmoddir=%{_fmoddir}
fi
execstack -c .libs/libelpa${s}.so.%{sover}.* %{buildroot}${libdir}/libelpa${s}.so.%{sover}.*
mkdir -p %{buildroot}${fmoddir}
rm %{buildroot}%{_bindir}/elpa?_test_*
mkdir -p %{buildroot}%{_libdir}/${mpi}/bin
mv %{buildroot}%{_bindir}/elpa2_print_kernels${s} %{buildroot}%{_libdir}/${mpi}/bin/
execstack -c .libs/libelpa${s}.so.?.* %{buildroot}%{_libdir}/${mpi}/lib/libelpa${s}.so.?.*
mkdir -p %{buildroot}%{_fmoddir}/${mpi}
for f in $(ls -1 %{buildroot}%{_includedir}/elpa${s}-%{version}/modules/*.mod) ; do
m=$(basename ${f} .mod)
mv %{buildroot}%{_includedir}/elpa${s}-%{version}/modules/${m}.mod %{buildroot}${fmoddir}/${m}${s}.mod
mv %{buildroot}%{_includedir}/elpa${s}-%{version}/modules/${m}.mod %{buildroot}%{_fmoddir}/${mpi}/${m}${s}.mod
done
rmdir %{buildroot}%{_includedir}/elpa${s}-%{version}/modules
rm %{buildroot}${libdir}/libelpa${s}.la
rm %{buildroot}%{_libdir}/${mpi}/lib/libelpa${s}.la
# fix-up fcflags include path per mpi implementation
sed -i -e "/^fcflags.*modules/s,/modules,/modules/${mpi}," %{buildroot}%{_libdir}/${mpi}/lib/pkgconfig/elpa${s}-%{version}.pc
popd
done
done
echo ".so elpa2_print_kernels.1" > %{buildroot}%{_mandir}/man1/elpa2_print_kernels_openmp.1
# testsuite takes:
# 1 hour on aarch64 (all PASS)
# 1 hour on armv7hl (all PASS)
# 1 hour on i686 (serial/mpich PASS, OpenMPI disabled)
# 1 hour on ppc64le ( 9/50 FAIL for serial+openmp, 4/73 FAIL for mpich+openmp)
# 1 hour on ppc64 ( 1/50 FAIL for serial+openmp)
# 1 hour on s390x (25/50 FAIL for serial, 39/73 FAIL for mpi)
# 3 hours on x86_64 (all PASS)
%if %{with check}
%if 1
%check
. /etc/profile.d/modules.sh
for s in '' _openmp ; do
# openmpi tests get randomly stuck on i686 https://bugzilla.redhat.com/show_bug.cgi?id=1512229
%ifnarch i686
for mpi in '' mpich openmpi ; do
%else
for mpi in '' mpich ; do
%endif
pushd ${s:-.}/${mpi:-serial}
if [ -n "$mpi" ]; then
module load mpi/${mpi}-%{_arch}
fi
make check V=1 TEST_FLAGS="500 150 16" || cat ./test-suite.log
if [ -n "$mpi" ]; then
module unload mpi/${mpi}-%{_arch}
fi
popd
done
done
%endif
%{_mpich_load}
pushd mpich
make check V=1 || cat ./test-suite.log
popd
pushd _openmp/mpich
make check V=1 || cat ./test-suite.log
popd
%{_mpich_unload}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
# only non-mt openmpi build can be tested, see bug #1105902
%{_openmpi_load}
pushd openmpi
make check V=1 || cat ./test-suite.log
popd
%{_openmpi_unload}
%endif
%post mpich -p /sbin/ldconfig
@ -288,113 +215,46 @@ done
%postun openmpi -p /sbin/ldconfig
%files
%{_bindir}/elpa2_print_kernels
%{_bindir}/elpa2_print_kernels_openmp
%{_libdir}/libelpa.so.%{sover}*
%{_libdir}/libelpa_openmp.so.%{sover}*
%files common
%license %{_pkgdocdir}/COPYING
%license %{_pkgdocdir}/LICENSE
%license %{_pkgdocdir}/gpl.txt
%license %{_pkgdocdir}/lgpl.txt
%{_pkgdocdir}/README.md
%{_mandir}/man1/elpa2_print_kernels.1*
%{_mandir}/man1/elpa2_print_kernels_openmp.1*
%files common-devel
%{_includedir}/elpa-%{version}
%{_includedir}/elpa_openmp-%{version}
%{_pkgdocdir}/Changelog
%{_pkgdocdir}/CONTRIBUTING.md
%exclude %{_pkgdocdir}/INSTALL.md
%{_pkgdocdir}/USERS_GUIDE.md
%{_mandir}/man3/elpa_*.3*
%{_mandir}/man3/get_elpa_*.3*
%{_mandir}/man3/solve_evp_*.3*
%{_pkgdocdir}/README
%files devel
%{_libdir}/libelpa.so
%{_libdir}/libelpa_openmp.so
%{_libdir}/pkgconfig/elpa-%{version}.pc
%{_libdir}/pkgconfig/elpa_openmp-%{version}.pc
%{_fmoddir}/*.mod
%{_includedir}/elpa-%{version}
%{_includedir}/elpa_openmp-%{version}
%{_pkgdocdir}/examples
%files mpich
%{_libdir}/mpich/bin/elpa2_print_kernels
%{_libdir}/mpich/bin/elpa2_print_kernels_openmp
%{_libdir}/mpich/lib/libelpa.so.%{sover}*
%{_libdir}/mpich/lib/libelpa_openmp.so.%{sover}*
%{_libdir}/mpich/lib/libelpa.so.4*
%{_libdir}/mpich/lib/libelpa_openmp.so.4*
%files mpich-devel
%{_libdir}/mpich/lib/libelpa.so
%{_libdir}/mpich/lib/libelpa_openmp.so
%{_libdir}/mpich/lib/pkgconfig/elpa-%{version}.pc
%{_libdir}/mpich/lib/pkgconfig/elpa_openmp-%{version}.pc
%{_fmoddir}/mpich*/*.mod
%{_fmoddir}/mpich/*.mod
# only non-mt openmpi build, see bug #1105902
%files openmpi
%{_libdir}/openmpi/bin/elpa2_print_kernels
%{_libdir}/openmpi/bin/elpa2_print_kernels_openmp
%{_libdir}/openmpi/lib/libelpa.so.%{sover}*
%{_libdir}/openmpi/lib/libelpa_openmp.so.%{sover}*
%exclude %{_libdir}/openmpi/bin/elpa2_print_kernels_openmp
%{_libdir}/openmpi/lib/libelpa.so.4*
%exclude %{_libdir}/openmpi/lib/libelpa_openmp.so.4*
%files openmpi-devel
%{_libdir}/openmpi/lib/libelpa.so
%{_libdir}/openmpi/lib/libelpa_openmp.so
%exclude %{_libdir}/openmpi/lib/libelpa_openmp.so
%{_libdir}/openmpi/lib/pkgconfig/elpa-%{version}.pc
%{_libdir}/openmpi/lib/pkgconfig/elpa_openmp-%{version}.pc
%{_fmoddir}/openmpi*/*.mod
%exclude %{_libdir}/openmpi/lib/pkgconfig/elpa_openmp-%{version}.pc
%{_fmoddir}/openmpi/*.mod
%exclude %{_fmoddir}/openmpi/*_openmp.mod
%changelog
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2017.05.003-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2017.05.003-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Nov 10 2017 Dominik Mierzejewski <rpm@greysector.net> 2017.05.003-1
- update to 2017.05.003 (ABI and API break)
- drop obsolete openblas patch
- re-enable OpenMPI OpenMP builds
- enable papi on supported arches
- build and ship non-MPI version (without _onenode suffix)
- provide a man-link for openmp version of elpa2_print_kernels
- execstack is now available everywhere
- include and verify GPG signature
- conditionalize running tests and reduce testsuite runtime per upstream
recommendation
- split out API documentation and headers into -common-devel subpackage
- disable all non-generic kernels on non-x86_64 for now
- disable testing under OpenMPI for now (rhbz#1512229)
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2015.11.001-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2015.11.001-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Mon Jun 12 2017 Dominik Mierzejewski <rpm@greysector.net> 2015.11.001-6
- fix AVX2 instructions usage enablement (#1383412)
* Sun Jun 11 2017 Dominik Mierzejewski <rpm@greysector.net> 2015.11.001-5
- update URL and Source URL, switch to https
- factorize build process
- fix Fortran mods path (#1409235)
- build against openblas on supported arches to match scalapack
- don't run the testsuite on ARM 32bit (takes 6.5 hours)
- execstack is not available on some arches for EPEL (#1460531)
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2015.11.001-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun Nov 13 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2015.11.001-3
- Rebuild (Power64)
* Fri Oct 21 2016 Orion Poplawski <orion@cora.nwra.com> - 2015.11.001-2
- Rebuild for openmpi 2.0
* Sun Apr 03 2016 Dominik Mierzejewski <rpm@greysector.net> 2015.11.001-1
- update to 2015.11.001 release
- update URL and Source URL

View File

@ -1,2 +1 @@
SHA512 (elpa-2017.05.003.tar.gz) = 0d8876af09e45050319a047989ae5312859ec5d0cc09cdf349737235a9d9b815a46774a192cdd3bb2d87e223733c60fc196b21f8671c6cc56666ad9ef3d72676
SHA512 (elpa-2017.05.003.tar.gz.asc) = b3e62fe83ea31885ab9396e3d072abe07b4fc0ed7729261d6b1a8a868113e935a33734591b80af841b392657b33a702028d67278803691e43641bb2d4202c57a
de0f35b7ee7c971fd0dca35c900b87e6 elpa-2015.11.001.tar.gz