Commit ff7a1270 authored by gsell's avatar gsell
Browse files

elpa: build-block added

parent 7ad01230
#!/usr/bin/env modbuild
pbuild::set_download_url "http://elpa.mpcdf.mpg.de/html/Releases/${V_PKG}/$P-${V_PKG}.tar.gz"
pbuild::add_to_group 'MPI'
pbuild::use_autotools
pbuild::install_docfiles 'COPYING/COPYING'
pbuild::install_docfiles 'COPYING/gpl.txt'
pbuild::install_docfiles 'COPYING/lgpl.txt'
pbuild::supported_os Linux
pbuild::supported_compilers Intel
pbuild::pre_configure() {
local -r MKL_LIBRARY_DIR=${MKLROOT}/lib/intel64
local -r MKL_INCLUDE_DIR=${MKLROOT}/include
local -a flags=()
if pbuild::use_flag "omp"; then
flags+=('-qopenmp')
pbuild::add_configure_args "--enable-openmp"
else
flags+=('-qno-openmp')
fi
flags+=('-O2' '-fPIC' '-g')
flags+=('-fp-model precise' '-funroll-loops')
flags+=('-traceback' '-xHost')
local -a cflags=()
cflags+=("${flags[@]}")
cflags+=('-I${MKL_INCLUDE_DIR}')
local -a fcflags=()
fcflags+=("${flags[@]}")
fcflags+=( '-fpp' '-free')
fcflags+=("-I${MKL_INCLUDE_DIR}/intel64/lp64")
local -a ldflags=()
ldflags+=("-L${MKL_LIBRARY_DIR}")
ldflags+=('-lmkl_scalapack_lp64' '-lmkl_intel_lp64' '-lmkl_sequential')
ldflags+=('-lmkl_core' '-lmkl_blacs_intelmpi_lp64' '-lpthread')
local -a scalapack_fcflags=()
scalapack_fcflags+=( "${ldflags[@]}" )
scalapack_fcflags+=("-I${MKL_INCLUDE_DIR}/intel64/lp64")
local -a scalapack_ldflags=()
scalapack_ldflags+=( "${ldflags[@]}" )
scalapack_ldflags+=("-Wl,-rpath,${MKL_LIBRARY_DIR}")
pbuild::add_configure_args "CC=${MPICC}"
pbuild::add_configure_args "CXX=${MPICXX}"
pbuild::add_configure_args "FC=${MPIFC}"
pbuild::add_configure_args "CFLAGS=${cflags[*]}"
pbuild::add_configure_args "CXXFLAGS=${cflags[*]}"
pbuild::add_configure_args "FCFLAGS=${fcflags[*]}"
pbuild::add_configure_args "LDFLAGS=${ldflags[*]}"
pbuild::add_configure_args "SCALAPACK_FCFLAGS=${scalapack_fcflags[*]}"
pbuild::add_configure_args "SCALAPACK_LDLAGS=${scalapack_ldflags[*]}"
pbuild::add_configure_args "--disable-shared"
pbuild::add_configure_args "--enable-static"
pbuild::add_configure_args "--enable-avx512"
}
pbuild::post_install() {
if pbuild::use_flag "omp"; then
ln -fs "elpa_openmp-${V_PKG}/elpa" "${PREFIX}/include/elpa"
ln -fs "elpa_openmp-${V_PKG}/modules" "${PREFIX}/include/modules"
else
ln -fs "elpa-${V_PKG}/elpa" "${PREFIX}/include/elpa"
ln -fs "elpa-${V_PKG}/modules" "${PREFIX}/include/modules"
fi
}
elpa/2019.05.001 unstable intel/19.4 impi/19.4
elpa/2019.05.001_omp unstable intel/19.4 impi/19.4
#%Module1.0
module-whatis "Eigenvalue SoLvers for Petaflop-Applications"
module-url "https://elpa.mpcdf.mpg.de"
module-license "GNU LGPL, version 3"
module-maintainer "Achim Gsell <achim.gsell@psi.ch>"
module-help "
The computation of selected or all eigenvalues and eigenvectors of a
symmetric (Hermitian) matrix has high relevance for various scientific
disciplines.
For the calculation of a significant part of the eigensystem typically
direct eigensolvers are used. For large problems, the eigensystem
calculations with existing solvers can become the computational
bottleneck.
As a consequence, the ELPA project was initiated with the aim to
develop and implement an efficient eigenvalue solver for petaflop
applications, supported by the German Federal Government, through
BMBF Grant 01IH08007, from Dec 2008 to Nov 2011.
The challenging task has been addressed through a multi-disciplinary
consortium of partners with complementary skills in different areas.
As project outcome, the highly scalable and efficient direct eigen-
solvers LPA have been developed. The ELPA library was publicly
released in May 2011.
Since the end of BMBF Grant 01IH08007 in Nov 2011, the ELPA library
has been maintained by RZG - renamed to MPCDF in 2015.
Through the BMBF Grant 01IH15001 (Project ELPA-AEO from Feb 2016 to
Jan 2019) the ELPA library could be further optimized, enhanced and
ported to new architectures.
"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment