eigenexa: new package. (#20934)

This commit is contained in:
takanori-ihara 2021-01-19 07:37:09 +09:00 committed by GitHub
parent 335c5ed5cb
commit a5963d686c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 113 additions and 0 deletions

View 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"

View 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
)
),
)