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