eigenexa: new package. (#20934)
This commit is contained in:
parent
335c5ed5cb
commit
a5963d686c
2 changed files with 113 additions and 0 deletions
64
var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch
Normal file
64
var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -200,7 +200,7 @@ AC_SUBST(DEBUG)
|
||||||
|
## fortran compiler
|
||||||
|
#
|
||||||
|
|
||||||
|
-eigenexa_default_fc="mpifrtpx mpiifort mpixlf90_r sxmpif90 mpif90"
|
||||||
|
+eigenexa_default_fc="mpifrt mpifrtpx mpiifort mpixlf90_r sxmpif90 mpif90"
|
||||||
|
|
||||||
|
# check usablility
|
||||||
|
AC_PROG_F77($eigenexa_default_fc)
|
||||||
|
@@ -221,7 +221,6 @@ AC_MSG_CHECKING([for actual compiler])
|
||||||
|
|
||||||
|
fc_ver_info=$(${F77} -E --version)
|
||||||
|
for vtok in ${fc_ver_info} ; do
|
||||||
|
-
|
||||||
|
if test x"${vtok}" = x"ifort"; then
|
||||||
|
FC_ACT="ifort"
|
||||||
|
break
|
||||||
|
@@ -230,12 +229,16 @@ for vtok in ${fc_ver_info} ; do
|
||||||
|
FC_ACT="gfortran"
|
||||||
|
break
|
||||||
|
|
||||||
|
+ elif test x"${vtok}" = x"(FRT)"; then
|
||||||
|
+ FC_ACT="mpifrtpx"
|
||||||
|
+ break
|
||||||
|
+
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "${FC_ACT}"; then
|
||||||
|
- FC_ACT=${F77}
|
||||||
|
+ FC_ACT=`basename ${F77}`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"${FC_ACT}" = x"ifort"; then
|
||||||
|
@@ -260,7 +263,7 @@ fi
|
||||||
|
## C compiler
|
||||||
|
#
|
||||||
|
|
||||||
|
-eigenexa_default_cc="mpifccpx mpiicc mpixlc_r sxmpic++ mpicc"
|
||||||
|
+eigenexa_default_cc="mpifcc mpifccpx mpiicc mpixlc_r sxmpic++ mpicc"
|
||||||
|
|
||||||
|
# check usablility
|
||||||
|
AC_PROG_CC($eigenexa_default_cc)
|
||||||
|
@@ -423,7 +426,7 @@ fi
|
||||||
|
## For Fujitsu compiler architecture-oriented options
|
||||||
|
if test x"${FC_ACT}" = x"mpifrtpx"; then
|
||||||
|
F_ARCH=""
|
||||||
|
- F_BASE="-Kopenmp,openmp_ordered_reduction"
|
||||||
|
+ F_BASE="-Kopenmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@@ -489,7 +492,7 @@ elif test x"${FC_ACT}" = x"gfortran"; th
|
||||||
|
FFLAGS0=${G_BASE}" -O0"
|
||||||
|
|
||||||
|
elif test x"${FC_ACT}" = x"mpifrtpx"; then
|
||||||
|
- FFLAGS0="-Kopenmp,openmp_ordered_reduction -Cpp"
|
||||||
|
+ FFLAGS0="-Kopenmp -Cpp"
|
||||||
|
|
||||||
|
elif test x"${FC_ACT}" = x"mpixlf90_r"; then
|
||||||
|
FFLAGS0="-qfixed -qsmp=omp -qthreaded -O0 -qessl -qstrict"
|
49
var/spack/repos/builtin/packages/eigenexa/package.py
Normal file
49
var/spack/repos/builtin/packages/eigenexa/package.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class Eigenexa(AutotoolsPackage):
|
||||||
|
"""EigenExa is a high-performance eigenvalue solver."""
|
||||||
|
|
||||||
|
homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/"
|
||||||
|
url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz"
|
||||||
|
|
||||||
|
version(
|
||||||
|
"2.6", sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95"
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("autoconf", type="build")
|
||||||
|
depends_on("automake", type="build")
|
||||||
|
depends_on("libtool", type="build")
|
||||||
|
depends_on("m4", type="build")
|
||||||
|
depends_on("mpi")
|
||||||
|
depends_on("lapack")
|
||||||
|
depends_on("scalapack")
|
||||||
|
|
||||||
|
patch("fj_compiler.patch", when="%fj")
|
||||||
|
|
||||||
|
parallel = False
|
||||||
|
|
||||||
|
def setup_build_environment(self, env):
|
||||||
|
env.set("FC", self.spec["mpi"].mpifc, force=True)
|
||||||
|
env.set("F77", self.spec["mpi"].mpif77, force=True)
|
||||||
|
env.set("CC", self.spec["mpi"].mpicc, force=True)
|
||||||
|
env.set(
|
||||||
|
"LAPACK_LIBS",
|
||||||
|
"{0} {1}".format(
|
||||||
|
self.spec["lapack"].libs.ld_flags, self.spec["scalapack"].libs.ld_flags
|
||||||
|
),
|
||||||
|
)
|
||||||
|
env.set(
|
||||||
|
"LAPACK_PATH",
|
||||||
|
"{0}".format(
|
||||||
|
":".join(
|
||||||
|
self.spec["lapack"].libs.directories
|
||||||
|
+ self.spec["scalapack"].libs.directories
|
||||||
|
)
|
||||||
|
),
|
||||||
|
)
|
Loading…
Reference in a new issue