Spack Prototype for PSI

This commit is contained in:
2023-04-27 08:06:59 +00:00
parent 8a0d620eb0
commit adb8e3eb09
53 changed files with 91348 additions and 2826 deletions

View File

@ -1,796 +0,0 @@
# Copyright 2013-2022 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)
import copy
import os
import os.path
import spack.util.environment
from spack.package import *
class Cp2k(MakefilePackage, CudaPackage):
"""CP2K is a quantum chemistry and solid state physics software package
that can perform atomistic simulations of solid state, liquid, molecular,
periodic, material, crystal, and biological systems
"""
homepage = "https://www.cp2k.org"
url = "https://github.com/cp2k/cp2k/releases/download/v3.0.0/cp2k-3.0.tar.bz2"
git = "https://github.com/cp2k/cp2k.git"
list_url = "https://github.com/cp2k/cp2k/releases"
maintainers = ["dev-zero"]
version("2022.1", sha256="2c34f1a7972973c62d471cd35856f444f11ab22f2ff930f6ead20f3454fd228b")
version("9.1", sha256="fedb4c684a98ad857cd49b69a3ae51a73f85a9c36e9cb63e3b02320c74454ce6")
version("8.2", sha256="2e24768720efed1a5a4a58e83e2aca502cd8b95544c21695eb0de71ed652f20a")
version("8.1", sha256="7f37aead120730234a60b2989d0547ae5e5498d93b1e9b5eb548c041ee8e7772")
version("7.1", sha256="ccd711a09a426145440e666310dd01cc5772ab103493c4ae6a3470898cd0addb")
version("6.1", sha256="af803558e0a6b9e9d9ce8a3ab955ba32bacd179922455424e061c82c9fefa34b")
version("5.1", sha256="e23613b593354fa82e0b8410e17d94c607a0b8c6d9b5d843528403ab09904412")
version("4.1", sha256="4a3e4a101d8a35ebd80a9e9ecb02697fb8256364f1eccdbe4e5a85d31fe21343")
version("3.0", sha256="1acfacef643141045b7cbade7006f9b7538476d861eeecd9658c9e468dc61151")
version("master", branch="master", submodules="True")
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support")
variant(
"smm",
default="libxsmm",
values=("libxsmm", "libsmm", "blas"),
description="Library for small matrix multiplications",
)
variant("plumed", default=False, description="Enable PLUMED support")
variant(
"libint", default=True, description="Use libint, required for HFX (and possibly others)"
)
variant("libxc", default=True, description="Support additional functionals via libxc")
variant(
"pexsi",
default=False,
description=("Enable the alternative PEXSI method" "for density matrix evaluation"),
)
variant(
"elpa", default=False, description="Enable optimised diagonalisation routines from ELPA"
)
variant(
"sirius",
default=False,
description=("Enable planewave electronic structure" " calculations via SIRIUS"),
)
variant("cosma", default=False, description="Use COSMA for p?gemm")
variant(
"libvori",
default=False,
description=("Enable support for Voronoi integration" " and BQB compression"),
)
variant("spglib", default=False, description="Enable support for spglib")
with when("+cuda"):
variant(
"cuda_arch_35_k20x",
default=False,
description=(
"CP2K (resp. DBCSR) has specific parameter sets for"
" different GPU models. Enable this when building"
" with cuda_arch=35 for a K20x instead of a K40"
),
)
variant(
"cuda_fft",
default=False,
description=("Use CUDA also for FFTs in the PW part of CP2K"),
)
variant(
"cuda_blas",
default=False,
when="@:7", # req in CP2K v8+
description=("Use CUBLAS for general matrix operations in DBCSR"),
)
HFX_LMAX_RANGE = range(4, 8)
variant(
"lmax",
description="Maximum supported angular momentum (HFX and others)",
default="5",
values=[str(x) for x in HFX_LMAX_RANGE],
multi=False,
)
depends_on("python", type="build")
depends_on("python@3:", when="@8:", type="build")
depends_on("blas")
depends_on("lapack")
depends_on("fftw-api@3")
# Force openmp propagation on some providers of blas / fftw-api
with when("+openmp"):
depends_on("fftw+openmp", when="^fftw")
depends_on("amdfftw+openmp", when="^amdfftw")
depends_on("cray-fftw+openmp", when="^cray-fftw")
depends_on("openblas threads=openmp", when="^openblas")
# The Cray compiler wrappers will automatically add libsci_mp with
# -fopenmp. Since CP2K unconditionally links blas/lapack/scalapack
# we have to be consistent.
depends_on("cray-libsci+openmp", when="^cray-libsci")
with when("smm=libxsmm"):
depends_on("libxsmm@1.17:~header-only", when="@9.1:")
# require libxsmm-1.11+ since 1.10 can leak file descriptors in Fortran
depends_on("libxsmm@1.11:~header-only", when="@:8.9")
# use pkg-config (support added in libxsmm-1.10) to link to libxsmm
depends_on("pkgconfig", type="build")
# please set variants: smm=blas by configuring packages.yaml or install
# cp2k with option smm=blas on aarch64
conflicts("target=aarch64:", msg="libxsmm is not available on arm")
with when("+libint"):
# ... and in CP2K 7.0+ for linking to libint2
depends_on("pkgconfig", type="build", when="@7.0:")
# libint & libxc are always statically linked
depends_on("libint@1.1.4:1.2", when="@3.0:6.9")
for lmax in HFX_LMAX_RANGE:
# libint2 can be linked dynamically again
depends_on(
"libint@2.6.0:+fortran tune=cp2k-lmax-{0}".format(lmax),
when="@7.0: lmax={0}".format(lmax),
)
with when("+libxc"):
depends_on("pkgconfig", type="build", when="@7.0:")
depends_on("libxc@2.2.2:3", when="@:5", type="build")
depends_on("libxc@4.0.3:4", when="@6.0:6.9", type="build")
depends_on("libxc@4.0.3:4", when="@7.0:8.1")
depends_on("libxc@5.1.3:5.1", when="@8.2:8")
depends_on("libxc@5.1.7:5.1", when="@9:")
with when("+mpi"):
depends_on("mpi@2:")
depends_on("scalapack")
with when("+cosma"):
depends_on("cosma+scalapack")
depends_on("cosma@2.5.1:", when="@9:")
depends_on("cosma+cuda", when="+cuda")
conflicts("~mpi")
# COSMA support was introduced in 8+
conflicts("@:7")
with when("+elpa"):
conflicts("~mpi", msg="elpa requires MPI")
depends_on("elpa+openmp", when="+openmp")
depends_on("elpa~openmp", when="~openmp")
depends_on("elpa@2011.12:2016.13", when="@:5")
depends_on("elpa@2011.12:2017.11", when="@6.0:6")
depends_on("elpa@2018.05:2020.11.001", when="@7.0:8.2")
depends_on("elpa@2021.05:", when="@8.3:")
depends_on("elpa@2021.11.001:", when="@9.1:")
with when("+plumed"):
depends_on("plumed+shared")
depends_on("plumed+mpi", when="+mpi")
depends_on("plumed~mpi", when="~mpi")
# while we link statically against PEXSI, its own deps may be linked in
# dynamically, therefore can't set this as pure build-type dependency.
with when("+pexsi"):
conflicts("~mpi", msg="pexsi requires MPI")
depends_on("pexsi+fortran@0.9.0:0.9", when="@:4")
depends_on("pexsi+fortran@0.10.0:", when="@5.0:")
# only OpenMP should be consistently used, all other common things
# like ELPA, SCALAPACK are independent and Spack will ensure that
# a consistent/compatible combination is pulled into the dependency graph.
with when("+sirius"):
depends_on("sirius+fortran+shared")
depends_on("sirius+openmp", when="+openmp")
depends_on("sirius~openmp", when="~openmp")
depends_on("sirius@:6", when="@:7")
depends_on("sirius@7.0.0:7.0", when="@8:8.2")
depends_on("sirius@7.2", when="@8.3:8.9")
depends_on("sirius@7.3:", when="@9.1")
conflicts("~mpi")
# sirius support was introduced in 7+
conflicts("@:6")
with when("+libvori"):
depends_on("libvori@201219:", when="@8.1", type="build")
depends_on("libvori@210412:", when="@8.2:", type="build")
# libvori support was introduced in 8+
conflicts("@:7")
# the bundled libcusmm uses numpy in the parameter prediction (v7+)
# which is written using Python 3
depends_on("py-numpy", when="@7:+cuda", type="build")
depends_on("python@3.6:", when="@7:+cuda", type="build")
depends_on("spglib", when="+spglib")
# Apparently cp2k@4.1 needs an "experimental" version of libwannier.a
# which is only available contacting the developer directly. See INSTALL
# in the stage of cp2k@4.1
depends_on("wannier90", when="@3.0+mpi", type="build")
# CP2K needs compiler specific compilation flags, e.g. optflags
conflicts("%apple-clang")
conflicts("%clang")
conflicts("%nag")
conflicts("~openmp", when="@8:", msg="Building without OpenMP is not supported in CP2K 8+")
# We only support specific cuda_archs for which we have parameter files
# for optimal kernels. Note that we don't override the cuda_archs property
# from the parent class, since the parent class defines constraints for all
# versions. Instead just mark all unsupported cuda archs as conflicting.
dbcsr_cuda_archs = ("35", "37", "60", "70")
cuda_msg = "cp2k only supports cuda_arch {0}".format(dbcsr_cuda_archs)
for arch in CudaPackage.cuda_arch_values:
if arch not in dbcsr_cuda_archs:
conflicts("+cuda", when="cuda_arch={0}".format(arch), msg=cuda_msg)
conflicts("+cuda", when="cuda_arch=none", msg=cuda_msg)
# Fix 2- and 3-center integral calls to libint
patch(
"https://github.com/cp2k/cp2k/commit/5eaf864ed2bd21fb1b05a9173bb77a815ad4deda.patch?full_index=1",
sha256="3617abb877812c4b933f601438c70f95e21c6161bea177277b1d4125fd1c0bf9",
when="@8.2",
)
@property
def makefile_architecture(self):
return "{0.architecture}-{0.compiler.name}".format(self.spec)
@property
def makefile_version(self):
return "{prefix}{suffix}".format(
prefix="p" if "+mpi" in self.spec else "s",
suffix="smp" if "+openmp" in self.spec else "opt",
)
@property
def makefile(self):
makefile_basename = ".".join([self.makefile_architecture, self.makefile_version])
return join_path("arch", makefile_basename)
@property
def archive_files(self):
return [join_path(self.stage.source_path, self.makefile)]
def edit(self, spec, prefix):
pkgconf = which("pkg-config")
if "^fftw" in spec:
fftw = spec["fftw:openmp" if "+openmp" in spec else "fftw"]
fftw_header_dir = fftw.headers.directories[0]
elif "^amdfftw" in spec:
fftw = spec["amdfftw:openmp" if "+openmp" in spec else "amdfftw"]
fftw_header_dir = fftw.headers.directories[0]
elif "^intel-mkl" in spec:
fftw = spec["intel-mkl"]
fftw_header_dir = fftw.headers.directories[0] + "/fftw"
elif "^intel-oneapi-mkl" in spec:
fftw = spec["intel-oneapi-mkl"]
fftw_header_dir = fftw.headers.directories[0] + "/fftw"
elif "^intel-parallel-studio+mkl" in spec:
fftw = spec["intel-parallel-studio"]
fftw_header_dir = "<NOTFOUND>"
for incdir in [join_path(f, "fftw") for f in fftw.headers.directories]:
if os.path.exists(incdir):
fftw_header_dir = incdir
break
elif "^cray-fftw" in spec:
fftw = spec["cray-fftw"]
fftw_header_dir = fftw.headers.directories[0]
else:
fftw = spec["intel-oneapi-mkl"]
fftw_header_dir = fftw.headers.directories[0] + "/fftw"
optimization_flags = {
"gcc": [
"-O2",
"-funroll-loops",
"-ftree-vectorize",
],
"intel": [
"-O2",
"-pc64",
"-unroll",
],
"oneapi": [
"-O2",
"-pc64",
"-unroll",
],
"pgi": ["-fast"],
"nvhpc": ["-fast"],
"cce": ["-O2"],
"xl": ["-O3"],
"aocc": ["-O1"],
}
dflags = ["-DNDEBUG"]
cppflags = [
"-D__FFTW3",
"-I{0}".format(fftw_header_dir),
]
if "^mpi@3:" in spec:
cppflags.append("-D__MPI_VERSION=3")
elif "^mpi@2:" in spec:
cppflags.append("-D__MPI_VERSION=2")
cflags = optimization_flags[self.spec.compiler.name][:]
cxxflags = optimization_flags[self.spec.compiler.name][:]
fcflags = optimization_flags[self.spec.compiler.name][:]
nvflags = ["-O3"]
ldflags = []
libs = []
gpuver = ""
if "%intel" or "%oneapi" in spec:
cflags.append("-fp-model precise")
cxxflags.append("-fp-model precise")
fcflags += [
"-fp-model precise",
"-heap-arrays 64",
"-g",
"-traceback",
]
elif "%gcc" in spec:
fcflags += [
"-ffree-form",
"-ffree-line-length-none",
"-ggdb", # make sure we get proper Fortran backtraces
]
elif "%aocc" in spec:
fcflags += [
"-ffree-form",
"-Mbackslash",
]
elif "%pgi" in spec or "%nvhpc" in spec:
fcflags += ["-Mfreeform", "-Mextend"]
elif "%cce" in spec:
fcflags += ["-emf", "-ffree", "-hflex_mp=strict"]
elif "%xl" in spec:
fcflags += ["-qpreprocess", "-qstrict", "-q64"]
ldflags += ["-Wl,--allow-multiple-definition"]
if "%gcc@10: +mpi" in spec and spec["mpi"].name in ["mpich", "cray-mpich"]:
fcflags += [
"-fallow-argument-mismatch"
] # https://github.com/pmodels/mpich/issues/4300
if "+openmp" in spec:
cflags.append(self.compiler.openmp_flag)
cxxflags.append(self.compiler.openmp_flag)
fcflags.append(self.compiler.openmp_flag)
ldflags.append(self.compiler.openmp_flag)
nvflags.append('-Xcompiler="{0}"'.format(self.compiler.openmp_flag))
elif "%cce" in spec: # Cray enables OpenMP by default
cflags += ["-hnoomp"]
cxxflags += ["-hnoomp"]
fcflags += ["-hnoomp"]
ldflags += ["-hnoomp"]
if "@7:" in spec: # recent versions of CP2K use C++14 CUDA code
cxxflags.append(self.compiler.cxx14_flag)
nvflags.append(self.compiler.cxx14_flag)
ldflags.append(fftw.libs.search_flags)
if "superlu-dist@4.3" in spec:
ldflags.insert(0, "-Wl,--allow-multiple-definition")
if "+plumed" in self.spec:
dflags.extend(["-D__PLUMED2"])
cppflags.extend(["-D__PLUMED2"])
libs.extend(
[join_path(self.spec["plumed"].prefix.lib, "libplumed.{0}".format(dso_suffix))]
)
cc = spack_cc if "~mpi" in spec else spec["mpi"].mpicc
cxx = spack_cxx if "~mpi" in spec else spec["mpi"].mpicxx
fc = spack_fc if "~mpi" in spec else spec["mpi"].mpifc
# Intel
if "%intel" or "%oneapi" in spec:
cppflags.extend(
[
"-D__INTEL",
"-D__HAS_ISO_C_BINDING",
"-D__USE_CP2K_TRACE",
]
)
fcflags.extend(["-diag-disable 8290,8291,10010,10212,11060", "-free", "-fpp"])
# FFTW, LAPACK, BLAS
lapack = spec["lapack"].libs
blas = spec["blas"].libs
ldflags.append((lapack + blas).search_flags)
libs.extend([str(x) for x in (fftw.libs, lapack, blas)])
if any(
p in spec for p in ("^intel-mkl", "^intel-parallel-studio+mkl", "^intel-oneapi-mkl")
):
cppflags += ["-D__MKL"]
elif "^accelerate" in spec:
cppflags += ["-D__ACCELERATE"]
if "+cosma" in spec:
# add before ScaLAPACK to override the p?gemm symbols
cosma = spec["cosma"].libs
ldflags.append(cosma.search_flags)
libs.extend(cosma)
# MPI
if "+mpi" in spec:
cppflags.extend(["-D__parallel", "-D__SCALAPACK"])
if "^intel-oneapi-mpi" in spec:
mpi = [join_path(spec["intel-oneapi-mpi"].libs.directories[0], "libmpicxx.so")]
else:
mpi = spec["mpi:cxx"].libs
# while intel-mkl has a mpi variant and adds the scalapack
# libs to its libs, intel-oneapi-mkl does not.
if "^intel-oneapi-mkl" in spec:
mpi_impl = "openmpi" if "^openmpi" in spec else "intelmpi"
scalapack = [
join_path(
spec["intel-oneapi-mkl"].libs.directories[0], "libmkl_scalapack_lp64.so"
),
join_path(
spec["intel-oneapi-mkl"].libs.directories[0],
"libmkl_blacs_{0}_lp64.so".format(mpi_impl),
),
]
else:
scalapack = spec["scalapack"].libs
ldflags.append(scalapack.search_flags)
libs.extend(scalapack)
libs.extend(mpi)
libs.extend(self.compiler.stdcxx_libs)
if "wannier90" in spec:
cppflags.append("-D__WANNIER90")
wannier = join_path(spec["wannier90"].libs.directories[0], "libwannier.a")
libs.append(wannier)
if "+libint" in spec:
cppflags += ["-D__LIBINT"]
if "@:6.9" in spec:
cppflags += [
"-D__LIBINT_MAX_AM=6",
"-D__LIBDERIV_MAX_AM1=5",
]
# libint-1.x.y has to be linked statically to work around
# inconsistencies in its Fortran interface definition
# (short-int vs int) which otherwise causes segfaults at
# runtime due to wrong offsets into the shared library
# symbols.
libs.extend(
[
join_path(spec["libint"].libs.directories[0], "libderiv.a"),
join_path(spec["libint"].libs.directories[0], "libint.a"),
]
)
else:
fcflags += pkgconf("--cflags", "libint2", output=str).split()
libs += pkgconf("--libs", "libint2", output=str).split()
if "+libxc" in spec:
cppflags += ["-D__LIBXC"]
if "@:6.9" in spec:
libxc = spec["libxc:fortran,static"]
cppflags += [libxc.headers.cpp_flags]
ldflags.append(libxc.libs.search_flags)
libs.append(str(libxc.libs))
else:
fcflags += pkgconf("--cflags", "libxcf03", output=str).split()
# some Fortran functions seem to be direct wrappers of the
# C functions such that we get a direct dependency on them,
# requiring `-lxc` to be present in addition to `-lxcf03`
libs += pkgconf("--libs", "libxcf03", "libxc", output=str).split()
if "+pexsi" in spec:
cppflags.append("-D__LIBPEXSI")
fcflags.append("-I" + join_path(spec["pexsi"].prefix, "fortran"))
libs.extend(
[
join_path(spec["pexsi"].libs.directories[0], "libpexsi.a"),
join_path(spec["superlu-dist"].libs.directories[0], "libsuperlu_dist.a"),
join_path(
spec["parmetis"].libs.directories[0], "libparmetis.{0}".format(dso_suffix)
),
join_path(
spec["metis"].libs.directories[0], "libmetis.{0}".format(dso_suffix)
),
]
)
if "+elpa" in spec:
elpa = spec["elpa"]
elpa_suffix = "_openmp" if "+openmp" in elpa else ""
elpa_incdir = elpa.headers.directories[0]
fcflags += ["-I{0}".format(join_path(elpa_incdir, "modules"))]
# Currently AOCC support only static libraries of ELPA
if "%aocc" in spec:
libs.append(
join_path(
elpa.prefix.lib, ("libelpa{elpa_suffix}.a".format(elpa_suffix=elpa_suffix))
)
)
else:
libs.append(
join_path(
elpa.libs.directories[0],
(
"libelpa{elpa_suffix}.{dso_suffix}".format(
elpa_suffix=elpa_suffix, dso_suffix=dso_suffix
)
),
)
)
if spec.satisfies("@:4"):
if elpa.satisfies("@:2014.5"):
cppflags.append("-D__ELPA")
elif elpa.satisfies("@2014.6:2015.10"):
cppflags.append("-D__ELPA2")
else:
cppflags.append("-D__ELPA3")
else:
cppflags.append(
"-D__ELPA={0}{1:02d}".format(elpa.version[0], int(elpa.version[1]))
)
fcflags += ["-I{0}".format(join_path(elpa_incdir, "elpa"))]
if "+cuda" in spec and "+cuda" in elpa:
cppflags += ["-D__ELPA_NVIDIA_GPU"]
if spec.satisfies("+sirius"):
sirius = spec["sirius"]
cppflags.append("-D__SIRIUS")
fcflags += ["-I{0}".format(sirius.prefix.include.sirius)]
libs += list(sirius.libs)
if spec.satisfies("+cuda"):
libs += [
"-L{}".format(spec["cuda"].libs.directories[0]),
"-L{}/stubs".format(spec["cuda"].libs.directories[0]),
"-lcuda",
"-lcudart",
"-lnvrtc",
"-lstdc++",
]
if spec.satisfies("@9:"):
acc_compiler_var = "OFFLOAD_CC"
acc_flags_var = "OFFLOAD_FLAGS"
cppflags += [
"-D__DBCSR_ACC",
"-D__GRID_CUDA",
"-DOFFLOAD_TARGET=cuda",
]
libs += ["-lcublas"]
else:
acc_compiler_var = "NVCC"
acc_flags_var = "NVFLAGS"
cppflags += ["-D__ACC"]
if spec.satisfies("+cuda_blas"):
cppflags += ["-D__DBCSR_ACC=2"]
libs += ["-lcublas"]
else:
cppflags += ["-D__DBCSR_ACC"]
if spec.satisfies("+cuda_fft"):
cppflags += ["-D__PW_CUDA"]
libs += ["-lcufft", "-lcublas"]
cuda_arch = spec.variants["cuda_arch"].value[0]
if cuda_arch:
gpuver = {
"35": "K40",
"37": "K80",
"60": "P100",
"70": "V100",
}[cuda_arch]
if cuda_arch == "35" and spec.satisfies("+cuda_arch_35_k20x"):
gpuver = "K20X"
if "smm=libsmm" in spec:
lib_dir = join_path("lib", self.makefile_architecture, self.makefile_version)
mkdirp(lib_dir)
try:
copy(env["LIBSMM_PATH"], join_path(lib_dir, "libsmm.a"))
except KeyError:
raise KeyError(
"Point environment variable LIBSMM_PATH to "
"the absolute path of the libsmm.a file"
)
except IOError:
raise IOError(
"The file LIBSMM_PATH pointed to does not "
"exist. Note that it must be absolute path."
)
cppflags.extend(
[
"-D__HAS_smm_dnn",
"-D__HAS_smm_vec",
]
)
libs.append("-lsmm")
elif "smm=libxsmm" in spec:
cppflags += ["-D__LIBXSMM"]
cppflags += pkgconf("--cflags-only-other", "libxsmmf", output=str).split()
fcflags += pkgconf("--cflags-only-I", "libxsmmf", output=str).split()
libs += pkgconf("--libs", "libxsmmf", output=str).split()
if "+libvori" in spec:
cppflags += ["-D__LIBVORI"]
libvori = spec["libvori"].libs
ldflags += [libvori.search_flags]
libs += libvori
libs += ["-lstdc++"]
if "+spglib" in spec:
cppflags += ["-D__SPGLIB"]
spglib = spec["spglib"].libs
ldflags += [spglib.search_flags]
libs += spglib
dflags.extend(cppflags)
cflags.extend(cppflags)
cxxflags.extend(cppflags)
fcflags.extend(cppflags)
nvflags.extend(cppflags)
with open(self.makefile, "w") as mkf:
if "+plumed" in spec:
mkf.write(
"# include Plumed.inc as recommended by"
"PLUMED to include libraries and flags"
)
mkf.write("include {0}\n".format(spec["plumed"].package.plumed_inc))
mkf.write("\n# COMPILER, LINKER, TOOLS\n\n")
mkf.write(
"FC = {0}\n" "CC = {1}\n" "CXX = {2}\n" "LD = {3}\n".format(fc, cc, cxx, fc)
)
if "%intel" in spec:
intel_bin_dir = ancestor(self.compiler.cc)
# CPP is a commented command in Intel arch of CP2K
# This is the hack through which cp2k developers avoid doing :
#
# ${CPP} <file>.F > <file>.f90
#
# and use `-fpp` instead
mkf.write("CPP = # {0} -P\n".format(spack_cc))
mkf.write("AR = {0}/xiar -r\n".format(intel_bin_dir))
else:
mkf.write("CPP = # {0} -E\n".format(spack_cc))
mkf.write("AR = ar -r\n")
if "+cuda" in spec:
mkf.write(
"{0} = {1}\n".format(
acc_compiler_var, join_path(spec["cuda"].prefix, "bin", "nvcc")
)
)
# Write compiler flags to file
def fflags(var, lst):
return "{0} = {1}\n\n".format(var, " \\\n\t".join(lst))
mkf.write("\n# FLAGS & LIBRARIES\n")
mkf.write(fflags("DFLAGS", dflags))
mkf.write(fflags("CPPFLAGS", cppflags))
mkf.write(fflags("CFLAGS", cflags))
mkf.write(fflags("CXXFLAGS", cxxflags))
if "+cuda" in spec:
mkf.write(fflags(acc_flags_var, nvflags))
mkf.write(fflags("FCFLAGS", fcflags))
mkf.write(fflags("LDFLAGS", ldflags))
mkf.write(fflags("LIBS", libs))
if "%intel" or "%oneapi" in spec:
mkf.write(fflags("LDFLAGS_C", ldflags + ["-nofor-main"]))
mkf.write("# CP2K-specific flags\n\n")
mkf.write("GPUVER = {0}\n".format(gpuver))
mkf.write("DATA_DIR = {0}\n".format(self.prefix.share.data))
@property
def build_directory(self):
build_dir = self.stage.source_path
if self.spec.satisfies("@:6"):
# prior to version 7.1 was the Makefile located in makefiles/
build_dir = join_path(build_dir, "makefiles")
return build_dir
@property
def build_targets(self):
return [
"ARCH={0}".format(self.makefile_architecture),
"VERSION={0}".format(self.makefile_version),
]
def build(self, spec, prefix):
if "+cuda" in spec and len(spec.variants["cuda_arch"].value) > 1:
raise InstallError("cp2k supports only one cuda_arch at a time")
# Apparently the Makefile bases its paths on PWD
# so we need to set PWD = self.build_directory
with spack.util.environment.set_env(PWD=self.build_directory):
super(Cp2k, self).build(spec, prefix)
with working_dir(self.build_directory):
make("libcp2k", *self.build_targets)
def install(self, spec, prefix):
exe_dir = join_path("exe", self.makefile_architecture)
lib_dir = join_path("lib", self.makefile_architecture, self.makefile_version)
install_tree(exe_dir, self.prefix.bin)
install_tree("data", self.prefix.share.data)
install_tree(lib_dir, self.prefix.lib)
mkdirp(self.prefix.include)
install("src/start/libcp2k.h", join_path(self.prefix.include, "libcp2k.h"))
@run_after("install")
def fix_package_config(self):
"""
Default build procedure generates libcp2k.pc with invalid paths,
because they are collected from temporary directory.
Ignoring invalid paths, most library-related switches are correct
except for fftw and openblas.
This procedure is appending two missing switches (tested with GROMACS 2022.2 + CP2K).
In case such approach causes issues in the future, it might be necessary
to generate and override entire libcp2k.pc.
"""
if self.spec.satisfies("@9.1:"):
with open(join_path(self.prefix.lib.pkgconfig, "libcp2k.pc"), "r+") as handle:
content = handle.read().rstrip()
content += " " + self.spec["blas"].libs.ld_flags
content += " " + self.spec["lapack"].libs.ld_flags
content += " " + self.spec["fftw-api"].libs.ld_flags
if "^fftw+openmp" in self.spec:
content += " -lfftw3_omp"
content += "\n"
handle.seek(0)
handle.write(content)
def check(self):
data_dir = join_path(self.stage.source_path, "data")
# CP2K < 7 still uses $PWD to detect the current working dir
# and Makefile is in a subdir, account for both facts here:
with spack.util.environment.set_env(CP2K_DATA_DIR=data_dir, PWD=self.build_directory):
with working_dir(self.build_directory):
make("test", *self.build_targets)

View File

@ -1,2 +0,0 @@
repo:
namespace: all

View File

@ -1,661 +0,0 @@
spack:
concretizer:
unify: when_possible
definitions:
- Compilers: &Compilers
- '%clang'
- '%dpcpp'
- '%gcc'
- '%intel'
- '%nvhpc'
- '%oneapi'
- '%pgi'
- Batchsystem_pckgs: &Batchsystem_pckgs
- slurm
- Compiler_pckgs: &Compiler_pckgs
- atlas
- clapack
- boost
- clhep
- eigen
- geant4
- googletest
- gsl
- intel-oneapi-mpi
- kokkos
- libint
- libxc
- libxsmm
- mpich
- openblas
- openmpi
- root
- superlu
- vtk
- Cuda_pckgs: &Cuda_pckgs
- cuda
- EM_pckgs: &EM_pckgs
- cistem
- ctffind
- motioncor2
- relion
- unblur
- Librairies_pckgs: &Librairies_pckgs
- alsa-lib
- gdrcopy
- giflib
- gmp
- hwloc
- isl
- knem
- libtasn1
- mpc
- mpfr
- nettle
- pmix
- ucx
- udunits
- wxwidgets
- x264
- zlib
- MX_pckgs: &MX_pckgs
- cbflib
- lz4
- openbabel
- visit
- HDF5_pckgs: &HDF5_pckgs
- alps
- h5hut+mpi
- hdf5-blosc
- ioapi
- hdf5+mpi
- netcdf-c
- netcdf-fortran
- netcdf-c
- trilinos
- HDF5_serial_pckgs: &HDF5_serial_pckgs
- hdf5~mpi
- h5hut~mpi
- ncview
- MPI_pckgs: &MPI_pckgs
- amrex
- boxlib
- cp2k
- cpmd
- elegant
- elpa
- fftw
- gromacs
- lammps
- astra
- Programming_pckgs: &Programming_pckgs
- autoconf
- automake
- binutils
- bison
- cmake
- erlang
- gcc
- go
- intel
- openjdk
- julia
- libtool
- lua
- m4
- nasm
- perl
- nvhpc+mpi
- python
- py-tensorflow
- qt
- r
- tcl
- tk
- System_pckgs: &System_pckgs
- bash
- filebench
- ior
- mdtest
- nmap
- patchelf
- unison
- Tools_pckgs: &Tools_pckgs
- aria2
- asciidoc
- coreutils
- emacs
- ffmpeg
- gaussian
- gettext
- git
- global
- gnupg
- gnuplot
- gnutls
- hdfview
- krb5
- kubernetes
- namd
- ncview
- openjpeg
- openssl
- orca
- paraview
- texlive
- tmux
- uncrustify
- vim
- visit
- xmlto
- xz
include:
- sysconfigs/config.yaml
- sysconfigs/compilers.yaml
- sysconfigs/packages.yaml
repos:
- .
#>>> modules.yaml
modules:
Batchsystem:
use_view: Batchsystem
arch_folder: false
enable:
- tcl
roots:
tcl: &Batchsystem_module_root /afs/psi.ch/sys/spack-rhel7/Batchsystem
tcl:
blacklist_implicits: true
include: *Batchsystem_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup Batchsystem
MODULEPATH: *Batchsystem_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
slurm:
environment:
prepend_path:
SLURM_CONF: '/etc/slurm/slurm.conf'
projections: &unified_modules_projections
all: modulefiles/{compiler.name}/{compiler.version}/{name}/{version}
^mpi: 'modulefiles/{compiler.name}/{compiler.version}/{name}/{version}/{^mpi.name}/{^mpi.version}'
~mpi: 'modulefiles/{compiler.name}/{compiler.version}/{name}_serial/{version}'
threads=openmp: 'modulefiles/{compiler.name}/{compiler.version}/{name}_OMP/{version}'
MPI:
use_view: MPI
arch_folder: false
enable:
- tcl
roots:
tcl: &MPI_module_root /afs/psi.ch/sys/spack-rhel7/MPI
tcl:
blacklist_implicits: true
include: *MPI_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
# equivalent to module-addgroup MPI
prepend_path:
MODULEPATH: *MPI_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
Compiler:
use_view: Compiler
arch_folder: false
enable:
- tcl
roots:
tcl: /afs/psi.ch/sys/spack-rhel7/Compiler
tcl:
blacklist_implicits: true
include: *Compiler_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
intel-oneapi-mpi:
environment:
prepend_path:
# equivalent to module-addgroup MPI
MODULEPATH: *MPI_module_root
set:
I_MPI_CXX: 'mpiicpc'
I_MPI_F77: 'mpiifort'
I_MPI_F90: 'mpiifort'
I_MPI_FC: 'mpiifort'
I_MPI_ICC: 'mpiicc'
MPIEXEC: 'mpiexec.hydra'
MPIFC: 'mpiifort'
MPIFORTRAN: 'mpiifort'
MPIRUN: 'mpirun'
mpich:
environment:
prepend_path:
# equivalent to module-addgroup MPI
MODULEPATH: *MPI_module_root
set:
MPIEXEC: ${prefix}/bin/mpiexec
MPIFC: ${prefix}/bin/mpif90
MPIFORTRAN: ${prefix}/bin/mpif90
MPIRUN: ${prefix}/bin/mpirun
openblas:
environment:
set:
BLASLIB: ${prefix}/libopenblas.a
openmpi:
environment:
prepend_path:
# equivalent to module-addgroup MPI
MODULEPATH: *MPI_module_root
set:
MPIEXEC: ${prefix}/bin/mpiexec
MPIFC: ${prefix}/bin/mpif90
MPIFORTRAN: ${prefix}/bin/mpif90
MPIRUN: ${prefix}/bin/mpirun
root:
environment:
set:
ROOTSYS: ${prefix}
projections: *unified_modules_projections
Cuda:
use_view: Cuda
arch_folder: false
enable:
- tcl
roots:
tcl: &Cuda_module_root /afs/psi.ch/sys/spack-rhel7/cuda
tcl:
blacklist_implicits: true
include: *Cuda_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup cuda
MODULEPATH: *Cuda_module_root
prepend_path:
${PACKAGE}_PATH: '{prefix}'
LIBRARY_PATH: '{prefix}/lib64/stubs'
LIBRARY_PATH: '{prefix}/targets/x86_64-linux/lib/stubs'
set:
${PACKAGE}_DIR: '{prefix}'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_PATH: '{prefix}'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
EM:
use_view: EM
arch_folder: false
enable:
- tcl
roots:
tcl: &EM_module_root /afs/psi.ch/sys/spack-rhel7/EM
tcl:
blacklist_implicits: true
include: *EM_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup EM
MODULEPATH: *EM_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
HDF5:
use_view: HDF5
arch_folder: false
enable:
- tcl
roots:
tcl: &HDF5_module_root /afs/psi.ch/sys/spack-rhel7/HDF5
tcl:
blacklist_implicits: true
include: *HDF5_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
- 'HDF5_serial'
environment:
prepend_path:
# equivalent to module-addgroup HDF5
MODULEPATH: *HDF5_module_root
set:
${PACKAGE}_ROOT: '{prefix}'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
projections: *unified_modules_projections
HDF5_serial:
use_view: HDF5_serial
arch_folder: false
enable:
- tcl
roots:
tcl: &HDF5_serial_module_root /afs/psi.ch/sys/spack-rhel7/HDF5_serial
tcl:
blacklist_implicits: true
include: *HDF5_serial_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
- 'HDF5_serial'
environment:
prepend_path:
# equivalent to module-addgroup HDF5_serial
MODULEPATH: *HDF5_serial_module_root
set:
${PACKAGE}_DIR: '{prefix}'
${PACKAGE}_HOME: '{prefix}'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib64'
${PACKAGE}_PREFIX: '{prefix}'
${PACKAGE}_ROOT: '{prefix}'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
Librairies:
use_view: Librairies
arch_folder: false
enable:
- tcl
roots:
tcl: &Librairies_module_root /afs/psi.ch/sys/spack-rhel7/Librairies
tcl:
blacklist_implicits: true
include: *Librairies_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup Librairies
MODULEPATH: *Librairies_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
MX:
use_view: MX
arch_folder: false
enable:
- tcl
roots:
tcl: &MX_module_root /afs/psi.ch/sys/spack-rhel7/MX
tcl:
blacklist_implicits: true
include: *MX_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup MX
MODULEPATH: *MX_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
Programming:
use_view: Programming
arch_folder: false
enable:
- tcl
roots:
tcl: &Programming_module_root /afs/psi.ch/sys/spack-rhel7/Programming
tcl:
blacklist_implicits: true
include: *Programming_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup Programming
MODULEPATH: *Programming_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
nvhpc:
environment:
set:
ARCH_VERSION: $NVARCH/'$env(PGI_VERSION)'
CPP: '{prefix}/$ARCH_VERSION/compilers/bin/nvprepro'
F90: '{prefix}/$ARCH_VERSION/compilers/bin/pgf90'
F95: '{prefix}/$ARCH_VERSION/compilers/bin/pgf95'
FORTRAN: '{prefix}/$ARCH_VERSION/compilers/bin/pgfortran'
NVARCH: '{arch}'
NVCOMPILERS: '{prefix}'
PGI: '{prefix}'
projections: *unified_modules_projections
System:
use_view: System
arch_folder: false
enable:
- tcl
roots:
tcl: &System_module_root /afs/psi.ch/sys/spack-rhel7/System
tcl:
blacklist_implicits: true
include: *System_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
prepend_path:
# equivalent to module-addgroup System
MODULEPATH: *System_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
Tools:
use_view: Tools
arch_folder: false
enable:
- tcl
roots:
tcl: &Tools_module_root /afs/psi.ch/sys/spack-rhel7/Tools
tcl:
blacklist_implicits: true
include: *Tools_pckgs
exclude: *Compilers
all:
autoload: direct
conflict:
- '{name}'
environment:
# equivalent to module-addgroup Tools
prepend_path:
MODULEPATH: *Tools_module_root
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
projections: *unified_modules_projections
prefix_inspections:
'':
- CMAKE_PREFIX_PATH
bin:
- PATH
include:
- C_INCLUDE_PATH
- CPLUS_INCLUDE_PATH
lib:
- LIBRARY_PATH
- LD_LIBRARY_PATH
lib/pkgconfig:
- PKG_CONFIG_PATH
lib64:
- LIBRARY_PATH
- LD_LIBRARY_PATH
lib64/pkgconfig:
- PKG_CONFIG_PATH
man:
- MANPATH
share/aclocal:
- ACLOCAL_PATH
share/man:
- MANPATH
share/pkgconfig:
- PKG_CONFIG_PATH
#<<<
# specs definitions
definitions:
- mpi:
- ^openmpi@4.1.4%gcc@8.3.0+cuda fabrics=ucx,xpmem,knem,ofi,cma,hcoll schedulers=slurm
+pmi ^ucx@1.13.0 ^cuda@11.5.1 ^slurm@21-08-8-2 ^hwloc@2.7.1 ^knem@1.1.4 ^xpmem@2.6.5-36
^pmix@4.1.2
- python:
- ^py-numpy@1.19.5%gcc@8.3.0 ^python@3.6.13%gcc@8.3.0
- blas:
- ^openblas%gcc@8.3.0
specs:
- matrix:
- [alps, geant4]
- ['%gcc@8.3.0']
- [$mpi]
- [$blas]
- [$python]
- matrix:
- [gromacs, h5hut+mpi, lammps, visit]
- ['%gcc@12.1.0']
- [$mpi]
- [$blas]
- [$python]
- matrix:
- [cp2k@9.1]
- ['%oneapi']
- [^intel-oneapi-mpi]
- [^libxsmm%oneapi]
- [^libint%oneapi]
- [^libxc%oneapi]
- [$python]
- matrix:
- [relion +cuda cuda_arch=61]
- ['%pgi']
- [^ctffind%gcc]
- [^openmpi%pgi]
- [^openblas]
- [^llvm%gcc@8.3.0]
- [$python]
view:
Batchsystem:
link: all
link_type: symlink
projections: &unified_projections
^mpi: '{name}/{version}/{^mpi.name}/{^mpi.version}/{compiler.name}/{compiler.version}/{hash}'
all: '{name}/{version}/{compiler.name}/{compiler.version}/{hash}'
~mpi: '{name}_serial/{version}/{compiler.name}/{compiler.version}/{hash}'
threads=openmp: '{name}_OMP/{version}/{compiler.name}/{compiler.version}/{hash}'
root: /afs/psi.ch/sys/spack-rhel7/Batchsystem
select: *Batchsystem_pckgs
Compiler:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/Compiler
select: *Compiler_pckgs
Cuda:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/cuda
select: *Cuda_pckgs
EM:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/EM
select: *EM_pckgs
HDF5:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/HDF5
select: *HDF5_pckgs
HDF5_serial:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/HDF5_serial
select: *HDF5_serial_pckgs
Librairies:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/Librairies
select: *Librairies_pckgs
MPI:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/MPI
select: *MPI_pckgs
MX:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/MX
select: *MX_pckgs
Programming:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/Programming
select: *Programming_pckgs
System:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/System
select: *System_pckgs
Tools:
link: all
link_type: symlink
projections: *unified_projections
root: /afs/psi.ch/sys/spack-rhel7/Tools
select: *Tools_pckgs

View File

@ -1,106 +0,0 @@
---
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/dpcpp
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: dpcpp@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icc
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icpc
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
spec: intel@2021.6.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icpx
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: oneapi@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/8.3.0/bin/gcc
cxx: /opt/psi/Programming/gcc/8.3.0/bin/g++
f77: /opt/psi/Programming/gcc/8.3.0/bin/gfortran
fc: /opt/psi/Programming/gcc/8.3.0/bin/gfortran
spec: gcc@8.3.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/12.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/12.1.0/bin/g++
f77: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
spec: gcc@12.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang
cxx: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang++
f77: null
fc: null
spec: clang@12.0.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc
cxx: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc++
f77: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
fc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
spec: nvhpc@21.5
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: [pgi/18.5]
operating_system: rhel7
paths:
cc: /opt/psi/Programming/pgi/18.5/linux86-64/18.5/bin/pgcc
cxx: /opt/psi/Programming/pgi/18.5/linux86-64/18.5/bin/pgc++
f77: /opt/psi/Programming/pgi/18.5/linux86-64/18.5/bin/pgfortran
fc: /opt/psi/Programming/pgi/18.5/linux86-64/18.5/bin/pgfortran
spec: pgi@18.5
target: x86_64

View File

@ -1,6 +0,0 @@
config:
build_stage:
- /scratch/spack-rhel7
install_tree:
root: /scratch/spack-rhel7/spack-install
source_cache: /scratch/spack-rhel7/spack/var/spack/cache

View File

@ -1,104 +0,0 @@
# Copyright 2013-2022 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)
# ----------------------------------------------------------------------------
# If you submit this package back to Spack as a pull request,
# please first remove this boilerplate and all FIXME comments.
#
# This is a template package file for Spack. We've put "FIXME"
# next to all the things you'll want to change. Once you've handled
# them, you can save this file and test your package like this:
#
# spack install ffbidx
#
# You can edit this file again by typing:
#
# spack edit ffbidx
#
# See the Spack documentation for more information on packaging.
# ----------------------------------------------------------------------------
from spack.package import *
class Ffbidx(CMakePackage, CudaPackage):
"""Develop an indexer for fast feedback"""
homepage = "https://github.com/paulscherrerinstitute/fast-feedback-indexer.git"
git = "https://github.com/paulscherrerinstitute/fast-feedback-indexer.git"
maintainers = ["hcstadler"]
version('main')
variant('build_type', default='Release',
description='CMake build type',
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
variant("cuda", default=True, description="Build with CUDA")
variant("fast_indexer", default=True, description="Build the fast feedback indexer library" )
variant("python", default=False, description="Build python module")
variant("simple_data_files", default=False, description="Install simple data files")
variant("simple_data_indexer", default=False, description="Build simple data reader library and indexer")
variant("test_all", default=False, description="Enable testing")
depends_on("python@3.1.5:", when='+python')
depends_on("py-numpy", when='+python')
depends_on("eigen@3.4.0:", type=('build', 'link'), when='+simple_data_indexer')
depends_on("eigen@3.4.0:", type=('build', 'link'), when='+fast_indexer')
depends_on("cmake@3.21.0:", type='build')
conflicts('cuda_arch=none', when='+fast_indexer',
msg='CUDA architecture is required when building the fast feedback indexer library')
conflicts("~cuda", when='+fast_indexer',
msg="The fast feedback indexer library requires CUDA'")
conflicts('+python', when='~fast_indexer',
msg='Python module needs the fast feedback indexer library')
conflicts('+test_all', when='~simple_data_indexer~fast_indexer',
msg='Tests need the build of both simple data reader and fast feedback indexer library')
conflicts('+simple_data_indexer', when='~fast_indexer',
msg='Simple data indexer needs the fast feedback indexer library')
# Conflicts for compilers without C++17 support
conflicts('gcc@:6.5.0')
conflicts('intel@:18.0.5')
# Add ctest stage if +test_all in spec
@run_after('build')
def test(self):
if '+test_all' in self.spec:
with working_dir(self.build_directory):
ctest = Executable("ctest")
ctest()
def cmake_args(self):
args = [
self.define('CMAKE_INSTALL_LIBDIR', 'lib'),
self.define_from_variant('BUILD_FAST_INDEXER', 'fast_indexer'),
self.define_from_variant('BUILD_FAST_INDEXER_STATIC', 'fast_indexer'),
self.define_from_variant('SIMPLE_DATA_INDEXER', 'simple_data_indexer'),
self.define_from_variant('REFINED_SIMPLE_DATA_INDEXER', 'simple_data_indexer'),
self.define_from_variant('BUILD_SIMPLE_DATA_READER', 'simple_data_indexer'),
self.define_from_variant('CMAKE_CUDA_ARCHITECTURES', 'cuda_arch'),
self.define_from_variant('INSTALL_SIMPLE_DATA_FILES', 'simple_data_files'),
self.define_from_variant('PYTHON_MODULE', 'python'),
self.define_from_variant('TEST_ALL', 'test_all'),
]
if 'python' in self.spec:
python_root_dir = self.spec['python'].prefix
args.append(self.define('Python3_ROOT_DIR', python_root_dir))
print(f'using python from {python_root_dir}')
return args
# Set PATHS for run time
def setup_run_environment(self, env):
env.append_path('PATH', self.prefix.bin)
env.append_path('CPATH', self.prefix.include)
env.append_path('LD_LIBRARY_PATH', self.prefix.lib)
env.append_path('LIBRARY_PATH', self.prefix.lib)
env.append_path('PKG_CONFIG_PATH', self.prefix.share.ffbidx.pkgconfig)
if '+python' in self.spec:
env.append_path('PYTHONPATH', self.prefix.lib.ffbidx)

View File

@ -1,2 +0,0 @@
repo:
namespace: ffibdx

View File

@ -1,11 +0,0 @@
spack:
concretizer:
unify: when_possible
include:
- sysconfigs/config.yaml
- sysconfigs/compilers.yaml
- sysconfigs/packages.yaml
repos:
- .
specs:
- ffbidx@main cuda_arch=60 +python +simple_data_indexer +simple_data_files +test_all ^openblas

View File

@ -1,93 +0,0 @@
---
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/dpcpp
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: dpcpp@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icc
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icpc
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
spec: intel@2021.6.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icpx
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: oneapi@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/9.5.0/bin/gcc
cxx: /opt/psi/Programming/gcc/9.5.0/bin/g++
f77: /opt/psi/Programming/gcc/9.5.0/bin/gfortran
fc: /opt/psi/Programming/gcc/9.5.0/bin/gfortran
spec: gcc@9.5.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/12.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/12.1.0/bin/g++
f77: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
spec: gcc@12.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang
cxx: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang++
f77: null
fc: null
spec: clang@12.0.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc
cxx: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc++
f77: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
fc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
spec: nvhpc@21.5
target: x86_64

View File

@ -1,4 +0,0 @@
config:
build_stage:
- /scratch/$USER/spack/spack-stages
source_cache: /scratch/$USER/spack/spack-source_cache

View File

@ -1,282 +0,0 @@
---
packages:
all:
compiler:
- gcc@12.1.0
target:
- haswell
providers:
pkgconfig: [pkg-config]
permissions:
read: user
write: user
binutils:
buildable: false
externals:
- prefix: /usr
spec: binutils@2.38
bzip2:
buildable: false
externals:
- prefix: /usr
spec: bzip2@1.0.6
cmake:
buildable: false
externals:
- prefix: /opt/psi/Programming/cmake/3.23.2
spec: cmake@3.23.2
cpio:
buildable: false
externals:
- prefix: /usr
spec: cpio@2.11
curl:
buildable: false
externals:
- prefix: /usr
spec: curl@7.29.0
cvs:
buildable: false
externals:
- prefix: /usr
spec: cvs@1.11.23
diffutils:
buildable: false
externals:
- prefix: /usr
spec: diffutils@3.3
doxygen:
buildable: false
externals:
- prefix: /usr
spec: doxygen@1.8.5
expat:
buildable: false
externals:
- prefix: /usr
spec: expat@1.6.0
file:
externals:
- prefix: /usr
spec: file@5.11
findutils:
buildable: false
externals:
- prefix: /usr
spec: findutils@4.5.11
# E.G: only available from already downloaded source, so I put it here
gams:
externals:
- prefix: /opt/psi/Tools/GAMS/31.1.1/gams31.1_linux_x64_64_sfx
spec: gams@31.1.1
gawk:
buildable: false
externals:
- prefix: /usr
spec: gawk@4.0.2
ghostscript:
buildable: false
externals:
- prefix: /usr
spec: ghostscript@9.25
git:
buildable: false
externals:
- prefix: /usr
spec: git@1.8.3.1~tcltk
glew:
buildable: false
externals:
- prefix: /usr
spec: glew@1.10.0
gmake:
buildable: false
externals:
- prefix: /usr
spec: gmake@3.82
groff:
buildable: false
externals:
- prefix: /usr
spec: groff@1.22.2
hcoll:
buildable: false
externals:
- prefix: /opt/mellanox/hcoll
spec: hcoll@3.9.1927
fftw:
buildable: false
externals:
- prefix: /usr
spec: fftw@3.3.3
intel-oneapi-mkl:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mkl@2022.1.0
intel-oneapi-mpi:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mpi@2021.6.0
libcroco:
buildable: false
externals:
- prefix: /usr
spec: libcroco@0.6.13
libfuse:
buildable: false
externals:
- prefix: /usr
spec: libfuse@3.6.1
libice:
buildable: false
externals:
- prefix: /usr
spec: libice@6.3.0
libjpeg-turbo:
buildable: false
externals:
- prefix: /usr
spec: libjpeg-turbo@62.1.0
libpthread:
buildable: false
externals:
- prefix: /usr
spec: libpthread@2.17
libpthread-stubs:
buildable: false
externals:
- prefix: /usr
spec: libpthread-stubs@0.4
libreadline:
buildable: false
externals:
- prefix: /usr
spec: libreadline@6.2
libtiff:
buildable: false
externals:
- prefix: /usr
spec: libtiff@5.2.0
libx11:
buildable: false
externals:
- prefix: /usr
spec: libx11@6.3.0
libxext:
buildable: false
externals:
- prefix: /usr
spec: libxext@6.4.0
libxft:
buildable: false
externals:
- prefix: /usr
spec: libxft@2.3.2
libxpm:
buildable: false
externals:
- prefix: /usr
spec: libxpm@4.11.0
libxt:
buildable: false
externals:
- prefix: /usr
spec: libxt@6.0.0
m4:
buildable: false
externals:
- prefix: /usr
spec: m4@1.4.16
# E.G: only available from already downloaded source, so I put it here
mxm:
buildable: false
externals:
- prefix: /opt/psi/System/mxm/3.6.3104
spec: mxm@3.6.3104
ncurses:
buildable: false
externals:
- prefix: /usr
spec: ncurses@5.9.20130511
nlohmann-json:
buildable: false
externals:
- prefix: /usr
spec: nlohmann-json@3.10.5
numactl:
buildable: false
externals:
- prefix: /usr
spec: numactl@2.0.14
openssh:
buildable: false
externals:
- prefix: /usr
spec: openssh@7.4p1
openssl:
buildable: false
externals:
- prefix: /usr
spec: openssl@1.0.2k-fips
pcre:
buildable: false
externals:
- prefix: /usr
spec: pcre@8.32
pkg-config:
buildable: false
externals:
- prefix: /usr
spec: pkg-config@0.27.1
rsync:
buildable: false
externals:
- prefix: /usr
spec: rsync@3.1.2
ruby:
buildable: false
externals:
- prefix: /usr
spec: ruby@2.0.0p648
sed:
buildable: false
externals:
- prefix: /usr
spec: sed@4.2.2
slurm:
buildable: false
externals:
- prefix: /usr
spec: slurm@21-08-8-2
sqlite:
buildable: false
externals:
- prefix: /usr
spec: sqlite@3.7.17
subversion:
buildable: false
externals:
- prefix: /usr
spec: subversion@1.7.14
tar:
buildable: false
externals:
- prefix: /usr
spec: tar@1.26
texinfo:
buildable: false
externals:
- prefix: /usr
spec: texinfo@5.1
xerces-c:
buildable: false
externals:
- prefix: /usr
spec: xerces-c@3.1
xz:
buildable: false
externals:
- prefix: /usr
spec: xz@5.2.2

View File

@ -1,102 +0,0 @@
# Copyright 2013-2022 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)
# ----------------------------------------------------------------------------
# If you submit this package back to Spack as a pull request,
# please first remove this boilerplate and all FIXME comments.
#
# This is a template package file for Spack. We've put "FIXME"
# next to all the things you'll want to change. Once you've handled
# them, you can save this file and test your package like this:
#
# spack install hyquas
#
# You can edit this file again by typing:
#
# spack edit hyquas
#
# See the Spack documentation for more information on packaging.
# ----------------------------------------------------------------------------
from spack.package import *
class Hyquas(CMakePackage, CudaPackage):
"""HyQuas is a Hybrid partitioner based Quantum circuit Simulation system on GPU, which supports both single-GPU,
single-node-multi-GPU, and multi-node-multi-GPU quantum circuit simulation."""
homepage = "https://github.com/thu-pacman/HyQuas#readme"
git = "https://github.com/thu-pacman/HyQuas.git"
maintainers = ["germanne"]
version('main', submodules=True)
depends_on("cmake", type=('build'))
depends_on("mpi", type=('link', 'run'))
for value in CudaPackage.cuda_arch_values:
depends_on("nccl@2.9.6-1+cuda cuda_arch={0}".format(value), type=('link', 'run'), when='cuda_arch={0}'.format(value))
variant("cuda", default=True, description="Build with CUDA")
variant("backend", default='blas', description="Build with backend type:", values=('serial', 'group', 'group-serial', 'blas', 'mix', 'blas-advance'))
variant("schedule", default=True, description="Build with printing the schedule")
variant("summary", default=True, description="Show the running details")
variant("measure_stage", default=False, description="Measure time of each stage")
variant("micro_bench", default=False, description="Compile micro-benchmarks")
variant("eval_pp", default=False, description="Compile evaluator preprocess")
variant("disable_assert", default=True, description="Use assert in cuda runtime")
variant("use_double", default=True, description="Double or float precision")
variant("overlap", default=True, description="Enable overlap")
variant("mpi", default=False, description="Use mpi")
variant("overlap_mat", default=True, description="Overlap initMatirx")
variant("log_eval", default=False, description="Show logging of evaluator")
variant("mat_size", default='7', description="Mat size", values=('4','5','6','7'))
conflicts("~cuda", msg="HyQuas requires CUDA")
def setup_build_environment(self, env):
env.set("NCCL_ROOT", self.spec['nccl'].prefix)
def setup_run_environment(self, env):
env.set("HYQUAS_ROOT", self.stage.source_path)
@run_before('cmake')
def build_cutt(self):
cuda_arch = self.spec.variants['cuda_arch'].value[0]
# Filtering CMakefile & Makefile to change the cuda arch flags which are hardcoded
CMakefile = FileFilter('CMakeLists.txt')
CMakefile.filter("CUDA_NVCC_FLAGS .*", "CUDA_NVCC_FLAGS \"-Xcompiler -fopenmp -std=c++14 -O2 -g -arch=compute_{0} -code=sm_{0} --ptxas-options=-v -lineinfo -keep\")".format(cuda_arch))
with working_dir('./third-party/cutt'):
makefile = FileFilter('Makefile')
makefile.filter("GENCODE_FLAGS := .*", "GENCODE_FLAGS := -gencode arch=compute_{0},code=sm_{0}".format(cuda_arch))
make()
def cmake_args(self):
args = [
self.define_from_variant('BACKEND', 'backend'),
self.define_from_variant('SHOW_SUMMARY', 'summary'),
self.define_from_variant('SHOW_SCHEDULE', 'schedule'),
self.define_from_variant('MICRO_BENCH', 'micro_bench'),
self.define_from_variant('USE_DOUBLE', 'use_double'),
self.define_from_variant('DISABLE_ASSERT', 'disable_assert'),
self.define_from_variant('ENABLE_OVERLAP', 'overlap'),
self.define_from_variant('MEASURE_STAGE', 'measure_stage'),
self.define_from_variant('EVALUATOR_PREPROCESS', 'eval_pp'),
self.define_from_variant('USE_MPI', 'mpi'),
self.define_from_variant('OVERLAP_MAT', 'overlap_mat'),
self.define_from_variant('LOG_EVALUATOR', 'log_eval'),
self.define_from_variant('MAT', 'mat_size')
]
return args
def install(self, spec, prefix):
mkdir(prefix.bin)
with working_dir(self.stage.source_path):
mkdirp('evaluator-preprocess/parameter-files')
with working_dir(self.build_directory):
install('main', prefix.bin)

View File

@ -1,2 +0,0 @@
repo:
namespace: HiQsimulator

View File

@ -1,16 +0,0 @@
spack:
concretizer:
unify: when_possible
include:
- sysconfigs/config.yaml
- sysconfigs/compilers.yaml
- sysconfigs/packages.yaml
repos:
- .
specs:
- libfabric@1.15.1
- openmpi@4.0.5%gcc+cuda fabrics=ucx,xpmem,knem,ofi,cma schedulers=slurm ^ucx@1.13.0
^hwloc@2.7.1 ^knem@1.1.4 ^xpmem@2.6.3 ^pmix@4.1.2
- cuda@11.0.2
- hyquas@main%gcc+cuda cuda_arch=70 ~mpi+schedule+use_double+micro_bench+eval_pp~disable_assert
backend=mix mat_size=7 ^cuda@11.0.2

View File

@ -1,93 +0,0 @@
---
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/dpcpp
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: dpcpp@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icc
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icpc
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
spec: intel@2021.6.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icpx
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: oneapi@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/9.5.0/bin/gcc
cxx: /opt/psi/Programming/gcc/9.5.0/bin/g++
f77: /opt/psi/Programming/gcc/9.5.0/bin/gfortran
fc: /opt/psi/Programming/gcc/9.5.0/bin/gfortran
spec: gcc@9.5.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/12.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/12.1.0/bin/g++
f77: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
spec: gcc@12.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang
cxx: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang++
f77: null
fc: null
spec: clang@12.0.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc
cxx: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc++
f77: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
fc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
spec: nvhpc@21.5
target: x86_64

View File

@ -1,4 +0,0 @@
config:
build_stage:
- /scratch/$USER/spack/spack-stages
source_cache: /scratch/$USER/spack/spack-source_cache

View File

@ -1,282 +0,0 @@
---
packages:
all:
compiler:
- gcc@12.1.0
target:
- haswell
providers:
pkgconfig: [pkg-config]
permissions:
read: user
write: user
binutils:
buildable: false
externals:
- prefix: /usr
spec: binutils@2.38
bzip2:
buildable: false
externals:
- prefix: /usr
spec: bzip2@1.0.6
cmake:
buildable: false
externals:
- prefix: /opt/psi/Programming/cmake/3.23.2
spec: cmake@3.23.2
cpio:
buildable: false
externals:
- prefix: /usr
spec: cpio@2.11
curl:
buildable: false
externals:
- prefix: /usr
spec: curl@7.29.0
cvs:
buildable: false
externals:
- prefix: /usr
spec: cvs@1.11.23
diffutils:
buildable: false
externals:
- prefix: /usr
spec: diffutils@3.3
doxygen:
buildable: false
externals:
- prefix: /usr
spec: doxygen@1.8.5
expat:
buildable: false
externals:
- prefix: /usr
spec: expat@1.6.0
file:
externals:
- prefix: /usr
spec: file@5.11
findutils:
buildable: false
externals:
- prefix: /usr
spec: findutils@4.5.11
# E.G: only available from already downloaded source, so I put it here
gams:
externals:
- prefix: /opt/psi/Tools/GAMS/31.1.1/gams31.1_linux_x64_64_sfx
spec: gams@31.1.1
gawk:
buildable: false
externals:
- prefix: /usr
spec: gawk@4.0.2
ghostscript:
buildable: false
externals:
- prefix: /usr
spec: ghostscript@9.25
git:
buildable: false
externals:
- prefix: /usr
spec: git@1.8.3.1~tcltk
glew:
buildable: false
externals:
- prefix: /usr
spec: glew@1.10.0
gmake:
buildable: false
externals:
- prefix: /usr
spec: gmake@3.82
groff:
buildable: false
externals:
- prefix: /usr
spec: groff@1.22.2
hcoll:
buildable: false
externals:
- prefix: /opt/mellanox/hcoll
spec: hcoll@3.9.1927
fftw:
buildable: false
externals:
- prefix: /usr
spec: fftw@3.3.3
intel-oneapi-mkl:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mkl@2022.1.0
intel-oneapi-mpi:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mpi@2021.6.0
libcroco:
buildable: false
externals:
- prefix: /usr
spec: libcroco@0.6.13
libfuse:
buildable: false
externals:
- prefix: /usr
spec: libfuse@3.6.1
libice:
buildable: false
externals:
- prefix: /usr
spec: libice@6.3.0
libjpeg-turbo:
buildable: false
externals:
- prefix: /usr
spec: libjpeg-turbo@62.1.0
libpthread:
buildable: false
externals:
- prefix: /usr
spec: libpthread@2.17
libpthread-stubs:
buildable: false
externals:
- prefix: /usr
spec: libpthread-stubs@0.4
libreadline:
buildable: false
externals:
- prefix: /usr
spec: libreadline@6.2
libtiff:
buildable: false
externals:
- prefix: /usr
spec: libtiff@5.2.0
libx11:
buildable: false
externals:
- prefix: /usr
spec: libx11@6.3.0
libxext:
buildable: false
externals:
- prefix: /usr
spec: libxext@6.4.0
libxft:
buildable: false
externals:
- prefix: /usr
spec: libxft@2.3.2
libxpm:
buildable: false
externals:
- prefix: /usr
spec: libxpm@4.11.0
libxt:
buildable: false
externals:
- prefix: /usr
spec: libxt@6.0.0
m4:
buildable: false
externals:
- prefix: /usr
spec: m4@1.4.16
# E.G: only available from already downloaded source, so I put it here
mxm:
buildable: false
externals:
- prefix: /opt/psi/System/mxm/3.6.3104
spec: mxm@3.6.3104
ncurses:
buildable: false
externals:
- prefix: /usr
spec: ncurses@5.9.20130511
nlohmann-json:
buildable: false
externals:
- prefix: /usr
spec: nlohmann-json@3.10.5
numactl:
buildable: false
externals:
- prefix: /usr
spec: numactl@2.0.14
openssh:
buildable: false
externals:
- prefix: /usr
spec: openssh@7.4p1
openssl:
buildable: false
externals:
- prefix: /usr
spec: openssl@1.0.2k-fips
pcre:
buildable: false
externals:
- prefix: /usr
spec: pcre@8.32
pkg-config:
buildable: false
externals:
- prefix: /usr
spec: pkg-config@0.27.1
rsync:
buildable: false
externals:
- prefix: /usr
spec: rsync@3.1.2
ruby:
buildable: false
externals:
- prefix: /usr
spec: ruby@2.0.0p648
sed:
buildable: false
externals:
- prefix: /usr
spec: sed@4.2.2
slurm:
buildable: false
externals:
- prefix: /usr
spec: slurm@21-08-8-2
sqlite:
buildable: false
externals:
- prefix: /usr
spec: sqlite@3.7.17
subversion:
buildable: false
externals:
- prefix: /usr
spec: subversion@1.7.14
tar:
buildable: false
externals:
- prefix: /usr
spec: tar@1.26
texinfo:
buildable: false
externals:
- prefix: /usr
spec: texinfo@5.1
xerces-c:
buildable: false
externals:
- prefix: /usr
spec: xerces-c@3.1
xz:
buildable: false
externals:
- prefix: /usr
spec: xz@5.2.2

View File

@ -1,23 +0,0 @@
diff --git a/cmake/Findglog.cmake b/cmake/Findglog.cmake
index d3123c4..3425d0d 100644
--- a/cmake/Findglog.cmake
+++ b/cmake/Findglog.cmake
@@ -176,17 +176,8 @@ if(glog_FOUND)
gflags::gflags)
else()
# Make sure that the glog::glog target depends on gflags::gflags
- get_target_property(_libraries glog::glog INTERFACE_LINK_LIBRARIES)
- set(_new_libraries)
- foreach(_dep ${_libraries})
- if(_dep STREQUAL gflags)
- list(APPEND _new_libraries gflags::gflags)
- else()
- list(APPEND _new_libraries ${_dep})
- endif()
- endforeach()
set_target_properties(glog::glog
- PROPERTIES INTERFACE_LINK_LIBRARIES ${_new_libraries})
+ PROPERTIES INTERFACE_LINK_LIBRARIES gflags::gflags)
endif()
endif()

View File

@ -1,58 +0,0 @@
# Copyright 2013-2022 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)
# ----------------------------------------------------------------------------
# If you submit this package back to Spack as a pull request,
# please first remove this boilerplate and all FIXME comments.
#
# This is a template package file for Spack. We've put "FIXME"
# next to all the things you'll want to change. Once you've handled
# them, you can save this file and test your package like this:
#
# spack install py-hiqsimulator
#
# You can edit this file again by typing:
#
# spack edit py-hiqsimulator
#
# See the Spack documentation for more information on packaging.
# ----------------------------------------------------------------------------
from spack.package import *
class PyHiqsimulator(PythonPackage):
"""Huawei HiQ is an open-source software framework for quantum computing. It is based on and compatible with ProjectQ.
It aims at providing tools which facilitate inventing, implementing, testing, debugging, and running quantum algorithms
using either classical hardware or actual quantum devices. You can find more about Huawei HiQ at
http://hiq.huaweicloud.com"""
homepage = "https://hiqsimulator.readthedocs.io/en/latest/index.html"
git = "https://github.com/Huawei-HiQ/HiQsimulator"
maintainers = ["germanne"]
version('develop', submodules=True)
depends_on('py-setuptools@44.1.0', type='build')
depends_on('py-mpi4py', type=("run"))
depends_on('py-projectq@0.4.1', type=("run"))
depends_on("cmake", type="build")
depends_on("openmpi", type=("run", "link"))
depends_on("boost+mpi+program_options+numpy+python+system+thread+timer+chrono+atomic", type=("build", "run", "link"))
depends_on("glog", type=("build", "run", "link"))
patch('cmake-glog.patch')
def setup_build_environment(self, env):
env.set('BOOST_ROOT', self.spec['boost'].prefix)
def install_options(self, spec, prefix):
# FIXME: Add options to pass to setup.py install
# FIXME: If not needed, delete this function
options = []
return options

View File

@ -1,38 +0,0 @@
# Copyright 2013-2022 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.package import *
class PyProjectq(PythonPackage):
"""
ProjectQ is an open-source software framework for quantum computing started
at ETH Zurich. It allows users to implement their quantum programs in
Python using a powerful and intuitive syntax. ProjectQ can then translate
these programs to any type of back-end, be it a simulator run on a
classical computer of an actual quantum chip.
"""
# Homepage and git repository
homepage = "https://projectq.ch"
url = 'https://github.com/ProjectQ-Framework/ProjectQ/archive/refs/tags/v0.4.1.tar.gz'
git = 'https://github.com/ProjectQ-Framework/ProjectQ.git'
# Versions
version("develop", branch="develop")
version("0.3.6", commit="fa484fe037a3a1772127bbd00fe4628ddba34611")
version("0.4.1", sha256="008f39f9e9cda47dde97020f640f89a9ee1488d37ab45d8fad78c112b15e695d")
version("0.6.1", sha256="8d8f8694c49b85714957d6db9154af3b2f769133256157435fbc103c2dbcf1ae")
# Dependencies
depends_on("py-setuptools", type=("build"))
depends_on("py-numpy", type=("build", "run"))
depends_on("py-scipy", type=("build", "run"))
depends_on("py-future", type=("build", "run"))
depends_on("py-requests", type=("build", "run"))
# conflict with pybind11@2.2.0 -> see requirements.txt
depends_on("py-pybind11@1.7:2.1,2.2.1:", type=("build", "run"))
depends_on("py-networkx", type=("run"))

View File

@ -1,2 +0,0 @@
repo:
namespace: HiQsimulator

View File

@ -1,13 +0,0 @@
spack:
concretizer:
unify: when_possible
include:
- sysconfigs/config.yaml
- sysconfigs/compilers.yaml
- sysconfigs/packages.yaml
repos:
- .
specs:
- openmpi%gcc+cuda fabrics=ucx,xpmem,knem,ofi,cma schedulers=slurm ^ucx@1.13.0
^hwloc@2.7.1 ^knem@1.1.4 ^xpmem@2.6.3 ^pmix@4.1.2
- py-hiqsimulator@develop%gcc

View File

@ -1,93 +0,0 @@
---
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/dpcpp
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: dpcpp@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icc
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/icpc
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/intel64/ifort
spec: intel@2021.6.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icx
cxx: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/icpx
f77: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
fc: /opt/psi/Programming/intel/22.2/compiler/2022.1.0/linux/bin/ifx
spec: oneapi@2022.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/8.3.0/bin/gcc
cxx: /opt/psi/Programming/gcc/8.3.0/bin/g++
f77: /opt/psi/Programming/gcc/8.3.0/bin/gfortran
fc: /opt/psi/Programming/gcc/8.3.0/bin/gfortran
spec: gcc@8.3.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/12.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/12.1.0/bin/g++
f77: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
spec: gcc@12.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang
cxx: /opt/psi/Programming/clang/12.0.0_rhel7/bin/clang++
f77: null
fc: null
spec: clang@12.0.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc
cxx: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvc++
f77: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
fc: /opt/psi/Programming/pgi/21.5/Linux_x86_64/21.5/compilers/bin/nvfortran
spec: nvhpc@21.5
target: x86_64

View File

@ -1,4 +0,0 @@
config:
build_stage:
- /scratch/$USER/spack/spack-stages
source_cache: /scratch/$USER/spack/spack-source_cache

View File

@ -1,297 +0,0 @@
---
packages:
all:
compiler:
- gcc@12.1.0
target:
- haswell
providers:
pkgconfig: [pkg-config]
permissions:
read: user
write: user
binutils:
buildable: false
externals:
- prefix: /usr
spec: binutils@2.38
bzip2:
buildable: false
externals:
- prefix: /usr
spec: bzip2@1.0.6
cmake:
buildable: false
externals:
- prefix: /opt/psi/Programming/cmake/3.23.2
spec: cmake@3.23.2
cpio:
buildable: false
externals:
- prefix: /usr
spec: cpio@2.11
curl:
buildable: false
externals:
- prefix: /usr
spec: curl@7.29.0
cvs:
buildable: false
externals:
- prefix: /usr
spec: cvs@1.11.23
diffutils:
buildable: false
externals:
- prefix: /usr
spec: diffutils@3.3
doxygen:
buildable: false
externals:
- prefix: /usr
spec: doxygen@1.8.5
expat:
buildable: false
externals:
- prefix: /usr
spec: expat@1.6.0
file:
externals:
- prefix: /usr
spec: file@5.11
findutils:
buildable: false
externals:
- prefix: /usr
spec: findutils@4.5.11
flex:
buildable: false
externals:
- prefix: /usr
spec: flex@2.5.37+lex
# E.G: only available from already downloaded source, so I put it here
gams:
externals:
- prefix: /opt/psi/Tools/GAMS/31.1.1/gams31.1_linux_x64_64_sfx
spec: gams@31.1.1
gawk:
buildable: false
externals:
- prefix: /usr
spec: gawk@4.0.2
ghostscript:
buildable: false
externals:
- prefix: /usr
spec: ghostscript@9.25
git:
buildable: false
externals:
- prefix: /usr
spec: git@1.8.3.1~tcltk
glew:
buildable: false
externals:
- prefix: /usr
spec: glew@1.10.0
gmake:
buildable: false
externals:
- prefix: /usr
spec: gmake@3.82
groff:
buildable: false
externals:
- prefix: /usr
spec: groff@1.22.2
hcoll:
buildable: false
externals:
- prefix: /opt/mellanox/hcoll
spec: hcoll@3.9.1927
fftw:
buildable: false
externals:
- prefix: /usr
spec: fftw@3.3.3
intel-oneapi-mkl:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mkl@2022.1.0
intel-oneapi-mpi:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mpi@2021.6.0
libcroco:
buildable: false
externals:
- prefix: /usr
spec: libcroco@0.6.13
libevent:
buildable: false
externals:
- prefix: /usr
spec: libevent@2.0
libfabric:
buildable: false
externals:
- prefix: /usr
spec: libfabric@1.10.2
libfuse:
buildable: false
externals:
- prefix: /usr
spec: libfuse@3.6.1
libice:
buildable: false
externals:
- prefix: /usr
spec: libice@6.3.0
libjpeg-turbo:
buildable: false
externals:
- prefix: /usr
spec: libjpeg-turbo@62.1.0
libpthread:
buildable: false
externals:
- prefix: /usr
spec: libpthread@2.17
libpthread-stubs:
buildable: false
externals:
- prefix: /usr
spec: libpthread-stubs@0.4
libreadline:
buildable: false
externals:
- prefix: /usr
spec: libreadline@6.2
libtiff:
buildable: false
externals:
- prefix: /usr
spec: libtiff@5.2.0
libx11:
buildable: false
externals:
- prefix: /usr
spec: libx11@6.3.0
libxext:
buildable: false
externals:
- prefix: /usr
spec: libxext@6.4.0
libxft:
buildable: false
externals:
- prefix: /usr
spec: libxft@2.3.2
libxpm:
buildable: false
externals:
- prefix: /usr
spec: libxpm@4.11.0
libxt:
buildable: false
externals:
- prefix: /usr
spec: libxt@6.0.0
m4:
buildable: false
externals:
- prefix: /usr
spec: m4@1.4.16
# E.G: only available from already downloaded source, so I put it here
mxm:
buildable: false
externals:
- prefix: /opt/psi/System/mxm/3.6.3104
spec: mxm@3.6.3104
ncurses:
buildable: false
externals:
- prefix: /usr
spec: ncurses@5.9.20130511
nlohmann-json:
buildable: false
externals:
- prefix: /usr
spec: nlohmann-json@3.10.5
numactl:
buildable: false
externals:
- prefix: /usr
spec: numactl@2.0.14
openssh:
buildable: false
externals:
- prefix: /usr
spec: openssh@7.4p1
openssl:
buildable: false
externals:
- prefix: /usr
spec: openssl@1.0.2k-fips
pcre:
buildable: false
externals:
- prefix: /usr
spec: pcre@8.32
pkg-config:
buildable: false
externals:
- prefix: /usr
spec: pkg-config@0.27.1
rsync:
buildable: false
externals:
- prefix: /usr
spec: rsync@3.1.2
ruby:
buildable: false
externals:
- prefix: /usr
spec: ruby@2.0.0p648
sed:
buildable: false
externals:
- prefix: /usr
spec: sed@4.2.2
slurm:
buildable: false
externals:
- prefix: /usr
spec: slurm@21-08-8-2
sqlite:
buildable: false
externals:
- prefix: /usr
spec: sqlite@3.7.17
subversion:
buildable: false
externals:
- prefix: /usr
spec: subversion@1.7.14
tar:
buildable: false
externals:
- prefix: /usr
spec: tar@1.26
texinfo:
buildable: false
externals:
- prefix: /usr
spec: texinfo@5.1
xerces-c:
buildable: false
externals:
- prefix: /usr
spec: xerces-c@3.1
xz:
buildable: false
externals:
- prefix: /usr
spec: xz@5.2.2

24
env/rhel7/ffbidx/spack.yaml vendored Normal file
View File

@ -0,0 +1,24 @@
spack:
upstreams:
spack-instance-1:
install_tree: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack
config:
build_stage:
- /scratch/$user/spack-stage
install_tree:
root: /data/user/$user/spack-install
concretizer:
unify: true
include:
- ../sysconfigs/modules.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/packages.yaml
repos:
- ../../../
specs:
- openblas
- ffbidx@main%gcc@12.1.0+python+simple_data_files+simple_data_indexer+test_all cuda_arch=60
develop:
ffbidx:
path: /scratch/$user/spack-dev/fast-feedback-indexer
spec: ffbidx@main+python+simple_data_files+simple_data_indexer+test_all cuda_arch=60

13699
env/rhel7/hyquas/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

27
env/rhel7/hyquas/spack.yaml vendored Normal file
View File

@ -0,0 +1,27 @@
spack:
upstreams:
spack-instance-1:
install_tree: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack
config:
build_stage:
- /scratch/$user/spack-stage
install_tree:
root: /data/user/$user/spack-install
concretizer:
unify: when_possible
include:
- ../sysconfigs/modules.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/packages.yaml
repos:
- ../../../
specs:
- openmpi@4.0.5%gcc
- cuda@11.0.2
- hyquas@main%gcc@9.5.0+cuda cuda_arch=70 ~mpi+schedule+use_double+micro_bench+eval_pp~disable_assert
backend=mix mat_size=7
view: false
develop:
hyquas:
path: /scratch/$user/spack-dev/HyQuas
spec: hyquas@main

5689
env/rhel7/py-hiqsimulator/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

25
env/rhel7/py-hiqsimulator/spack.yaml vendored Normal file
View File

@ -0,0 +1,25 @@
spack:
upstreams:
spack-instance-1:
install_tree: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack
config:
build_stage:
- /scratch/$user/spack-stage
install_tree:
root: /data/user/$user/spack-install
concretizer:
unify: true
include:
- ../sysconfigs/modules.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/packages.yaml
repos:
- ../../../
specs:
- openmpi%gcc@12.1.0
- py-hiqsimulator@develop%gcc@12.1.0
develop:
py-hiqsimulator:
path: /scratch/$user/spack-dev/HiQsimulator
spec: py-hiqsimulator@develop%gcc@12.1.0
view: false

16554
env/rhel7/stable/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

54
env/rhel7/stable/spack.yaml vendored Normal file
View File

@ -0,0 +1,54 @@
spack:
concretizer:
unify: when_possible
config:
build_stage:
- /scratch/spack/spack-stage
install_missing_compilers: true
definitions:
- gcc_mpi:
- ^openmpi%gcc
- gcc_6.1.0_pckgs:
- trilinos@11.14.3 +mpi+cuda cuda_arch=60 ~tpetra
- gcc_12.1.0_pckgs:
- gromacs@2022.5 +mpi
- h5hut@2.0.0rc3 +mpi
- lammps@20221222
- quantum-espresso@7.0 hdf5=parallel
- trilinos@13.4.1
- intel_mpi:
- ^intel-oneapi-mpi@2021.8.0
- intel_pckgs:
- gromacs@2022.5
- nvhpc_mpi:
- ^openmpi%nvhpc
- nvhpc_pckgs:
- quantum-espresso@7.0 +mpi+cuda hdf5=parallel
include:
- ../sysconfigs/packages.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/modules.yaml
specs:
- gams@31.1.1
- matrix:
- [$gcc_6.1.0_pckgs]
- [$gcc_mpi]
- [^openblas]
- ['%gcc@6.1.0']
- matrix:
- [$gcc_12.1.0_pckgs]
- [$gcc_mpi]
- [^hdf5%gcc@12.1.0]
- [^openblas]
- ['%gcc@12.1.0']
- matrix:
- [$intel_pckgs]
- [$intel_mpi]
- [^intel-oneapi-mkl]
- ['%oneapi@2022.2.1']
- matrix:
- [$nvhpc_pckgs]
- [$nvhpc_mpi]
- [^hdf5%nvhpc@23.1]
- ['%nvhpc@23.1']
view: false

53
env/rhel7/sysconfigs/compilers.yaml vendored Normal file
View File

@ -0,0 +1,53 @@
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
spec: gcc@4.8.5
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/9.5.0/bin/gcc
cxx: /opt/psi/Programming/gcc/9.5.0/bin/g++
f77: /opt/psi/Programming/gcc/9.5.0/bin/gfortran
fc: /opt/psi/Programming/gcc/9.5.0/bin/gfortran
spec: gcc@9.5.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/12.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/12.1.0/bin/g++
f77: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
spec: gcc@12.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvc
cxx: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvc++
f77: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvfortran
fc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvfortran
spec: nvhpc@23.1
target: x86_64

108
env/rhel7/sysconfigs/modules.yaml vendored Normal file
View File

@ -0,0 +1,108 @@
modules:
default:
tcl:
hash_length: 3
projections:
all: '{name}/{version}-{compiler.name}-{compiler.version}'
exclude: ['at-spi2-atk', 'at-spi2-core', 'libxft', 'atk', 'libxi', 'libxkbcommon',' libxkbfile', 'bdftopcf','berkeley-db',
'libxrandr','bison@3.8.2', 'libxrender','libxslt','bzip2','libxtst','cairo','libyaml','libzmq','dbus','diffutils','mkfontdir',
'docbook-xml', 'mkfontscale','docbook-xsl','msgpack-c', 'elfutils', 'munge','expat', 'ncurses','fixesproto', 'numactl', 'flex',
'font-util', 'fontconfig', 'fontsproto','freetype', 'pango', 'gawk', 'pcre', 'pcre2', 'gdbm', 'gdk-pixbuf', 'gettext', 'glib',
'gobject-introspection', 'gperf','gtkplus', 'harfbuzz','http-parser', 'inputproto', 'intltool','jansson','jemalloc','json-c',
'json-glib','kbproto', 'pixman', 'pkg-config', 'pmix', 'libaio', 'libbsd', 'libedit','libepoxy','libevent','libffi','libfontenc',
'libgcrypt','libgpg-error','libice','libiconv', 'libidn2','libjwt', 'libmd',' randrproto', 'readline', 'recordproto','renderproto',
'shared-mime-info', 'sqlite','libpciaccess','libpthread-stubs', 'libsm','libsodium','libtool', 'libunistring', 'libx11', 'libxau',
'lixcb', 'util-linux-uuid', 'util-macros', 'xcb-proto', 'xextproto', 'xkbcomp','xkbdata','xmlto','xproto','xrandr','xz','zlib',
'libxcrypt', 'libxdmcp', 'libxext', 'libxfixes', 'xtrans', 'zstd', 'librsvg', 'libxfont', 'libxcb', 'fribidi', 'kokkos-nvcc-wrapper']
all:
autoload: direct
conflict:
- '{name}'
environment:
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
intel-oneapi-mpi:
environment:
set:
I_MPI_CXX: 'mpiicpc'
I_MPI_F77: 'mpiifort'
I_MPI_F90: 'mpiifort'
I_MPI_FC: 'mpiifort'
I_MPI_ICC: 'mpiicc'
MPIEXEC: 'mpiexec.hydra'
MPIFC: 'mpiifort'
MPIFORTRAN: 'mpiifort'
MPIRUN: 'mpirun'
mpich:
environment:
set:
MPIEXEC: ${prefix}/bin/mpiexec
MPIFC: ${prefix}/bin/mpif90
MPIFORTRAN: ${prefix}/bin/mpif90
MPIRUN: ${prefix}/bin/mpirun
openblas:
environment:
set:
BLASLIB: ${prefix}/libopenblas.a
openmpi:
environment:
set:
MPIEXEC: ${prefix}/bin/mpiexec
MPIFC: ${prefix}/bin/mpif90
MPIFORTRAN: ${prefix}/bin/mpif90
MPIRUN: ${prefix}/bin/mpirun
root:
environment:
set:
ROOTSYS: ${prefix}
cuda:
environment:
prepend_path:
${PACKAGE}_PATH: '{prefix}'
LIBRARY_PATH: '{prefix}/lib64/stubs'
LIBRARY_PATH: '{prefix}/targets/x86_64-linux/lib/stubs'
set:
${PACKAGE}_DIR: '{prefix}'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_PATH: '{prefix}'
${PACKAGE}_VERSION: '{version}'
hdf5~mpi:
environment:
set:
${PACKAGE}_DIR: '{prefix}'
${PACKAGE}_HOME: '{prefix}'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib64'
${PACKAGE}_PREFIX: '{prefix}'
${PACKAGE}_ROOT: '{prefix}'
${PACKAGE}_VERSION: '{version}'
prefix_inspections:
'':
- CMAKE_PREFIX_PATH
bin:
- PATH
include:
- C_INCLUDE_PATH
- CPLUS_INCLUDE_PATH
lib:
- LIBRARY_PATH
- LD_LIBRARY_PATH
lib/pkgconfig:
- PKG_CONFIG_PATH
lib64:
- LIBRARY_PATH
- LD_LIBRARY_PATH
lib64/pkgconfig:
- PKG_CONFIG_PATH
man:
- MANPATH
share/aclocal:
- ACLOCAL_PATH
share/man:
- MANPATH
share/pkgconfig:
- PKG_CONFIG_PATH

View File

@ -1,35 +1,68 @@
---
packages:
'%gcc':
require: '%gcc@4.8.5'
'%nvhpc':
require: '%nvhpc'
'%oneapi':
require: '%oneapi'
all:
compiler:
- gcc@12.1.0
permissions:
read: user
write: user
providers:
pkgconfig: [ pkg-config ]
target:
- haswell
providers:
pkgconfig: [pkg-config]
autoconf:
buildable: false
externals:
- prefix: /usr
spec: autoconf@2.69
automake:
buildable: false
externals:
- prefix: /usr
spec: automake@1.13.4
berkeley-db:
require: '%gcc@4.8.5'
binutils:
buildable: false
externals:
- prefix: /usr
spec: binutils@2.38
spec: binutils@2.27.44
boost:
require: '%gcc@4.8.5'
bzip2:
buildable: false
externals:
- prefix: /usr
spec: bzip2@1.0.6
ca-certificates-mozilla:
require: '%gcc@4.8.5'
cairo:
require: '%gcc@4.8.5'
cmake:
require: '@3.25.2%gcc@4.8.5'
coreutils:
buildable: false
externals:
- prefix: /usr
spec: coreutils@8.22
cpio:
buildable: false
externals:
- prefix: /usr
spec: cpio@2.11
ctffind:
require: '%gcc@4.8.5'
cuda:
externals:
- prefix: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/cuda/
spec: cuda@12.0.0%nvhpc@23.1
curl:
buildable: false
externals:
- prefix: /usr
spec: curl@7.29.0
spec: curl@7.29.0+ldap
cvs:
buildable: false
externals:
@ -44,13 +77,14 @@ packages:
buildable: false
externals:
- prefix: /usr
spec: doxygen@1.8.5
spec: doxygen@1.8.5+graphviz~mscgen
expat:
buildable: false
externals:
- prefix: /usr
spec: expat@1.6.0
file:
buildable: false
externals:
- prefix: /usr
spec: file@5.11
@ -64,23 +98,31 @@ packages:
externals:
- prefix: /usr
spec: flex@2.5.37+lex
# E.G: only available from already downloaded source, so I put it here
fltk:
require: '%gcc@4.8.5'
fontconfig:
require: '%gcc@4.8.5'
gams:
buildable: false
externals:
- prefix: /opt/psi/Tools/GAMS/31.1.1/gams31.1_linux_x64_64_sfx
spec: gams@31.1.1
spec: gams@31.1.1%gcc@4.8.5
gawk:
buildable: false
externals:
- prefix: /usr
spec: gawk@4.0.2
gdbm:
require: '%gcc@4.8.5'
gettext:
require: '%gcc@4.8.5'
ghostscript:
buildable: false
externals:
- prefix: /usr
spec: ghostscript@9.25
git:
buildable: false
require: '%gcc@4.8.5'
externals:
- prefix: /usr
spec: git@1.8.3.1~tcltk
@ -99,26 +141,15 @@ packages:
externals:
- prefix: /usr
spec: groff@1.22.2
harfbuzz:
require: '@5.1.0%gcc@12.1.0'
hcoll:
buildable: false
externals:
- prefix: /opt/mellanox/hcoll
spec: hcoll@3.9.1927
fftw:
buildable: false
externals:
- prefix: /usr
spec: fftw@3.3.3
intel-oneapi-mkl:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mkl@2022.1.0
intel-oneapi-mpi:
buildable: false
externals:
- prefix: /opt/psi/Programming/intel/22.2
spec: intel-oneapi-mpi@2021.6.0
libbsd:
require: '%gcc@4.8.5'
libcroco:
buildable: false
externals:
@ -130,15 +161,7 @@ packages:
- prefix: /usr
spec: libepoxy@0.0.0
libevent:
buildable: false
externals:
- prefix: /usr
spec: libevent@2.0
libfabric:
buildable: false
externals:
- prefix: /usr
spec: libfabric@1.10.2
require: '%gcc@4.8.5'
libfuse:
buildable: false
externals:
@ -149,11 +172,19 @@ packages:
externals:
- prefix: /usr
spec: libice@6.3.0
libiconv:
require: '%gcc@4.8.5'
libidn2:
require: '%gcc@4.8.5'
libjpeg-turbo:
buildable: false
externals:
- prefix: /usr
spec: libjpeg-turbo@62.1.0
libmd:
require: '%gcc@4.8.5'
libpciaccess:
require: '%gcc@4.8.5'
libpthread:
buildable: false
externals:
@ -174,11 +205,18 @@ packages:
externals:
- prefix: /usr
spec: librsvg@2.40.20
libsigsegv:
require: '%gcc@4.8.5'
libtiff:
buildable: false
externals:
- prefix: /usr
spec: libtiff@5.2.0
libtool:
buildable: false
externals:
- prefix: /usr
spec: libtool@2.4.2
libx11:
buildable: false
externals:
@ -194,6 +232,8 @@ packages:
externals:
- prefix: /usr
spec: libxft@2.3.2
libxml2:
require: '%gcc@4.8.5'
libxpm:
buildable: false
externals:
@ -209,17 +249,13 @@ packages:
externals:
- prefix: /usr
spec: m4@1.4.16
# E.G: only available from already downloaded source, so I put it here
mxm:
buildable: false
externals:
- prefix: /opt/psi/System/mxm/3.6.3104
spec: mxm@3.6.3104
ncurses:
buildable: false
externals:
- prefix: /usr
spec: ncurses@5.9.20130511
ninja:
require: '%gcc@4.8.5'
nlohmann-json:
buildable: false
externals:
@ -230,26 +266,46 @@ packages:
externals:
- prefix: /usr
spec: numactl@2.0.14
openblas:
require: '%gcc@4.8.5'
openmpi:
externals:
- prefix: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/comm_libs/openmpi4/openmpi-4.0.5
spec: openmpi@4.0.5%nvhpc@23.1
require:
- one_of: [
"openmpi@4.1.5%gcc schedulers=slurm fabrics=auto +pmi +cxx +cxx_exceptions +cuda +legacylaunchers",
"openmpi@4.0.5%gcc schedulers=slurm fabrics=auto +pmi +cxx +cxx_exceptions +cuda +legacylaunchers",
"openmpi@4.0.5%gcc",
"openmpi@4.0.5%nvhpc@23.1"
]
openssh:
buildable: false
externals:
- prefix: /usr
spec: openssh@7.4p1
openssl:
buildable: false
externals:
- prefix: /usr
spec: openssl@1.0.2k-fips
pcre:
pcre2:
buildable: false
externals:
- prefix: /usr
spec: pcre@8.32
spec: pcre2@8.32
perl:
require: '%gcc@4.8.5'
pkg-config:
buildable: false
externals:
- prefix: /usr
spec: pkg-config@0.27.1
py-fypp:
require: '%gcc@4.8.5'
python:
require: '%gcc@4.8.5'
readline:
require: '%gcc@4.8.5'
rsync:
buildable: false
externals:
@ -265,6 +321,8 @@ packages:
externals:
- prefix: /usr
spec: sed@4.2.2
slurm:
require: '+pmix +hwloc +gtk +readline +restd +mariadb'
sqlite:
buildable: false
externals:
@ -285,13 +343,27 @@ packages:
externals:
- prefix: /usr
spec: texinfo@5.1
unuran:
require: '%gcc@4.8.5'
util-linux-uuid:
require: '%gcc@4.8.5'
util-macros:
require: '%gcc@4.8.5'
valgrind:
require: '%gcc@4.8.5'
xerces-c:
buildable: false
externals:
- prefix: /usr
spec: xerces-c@3.1
xxhash:
require: '%gcc@4.8.5'
xz:
buildable: false
externals:
- prefix: /usr
spec: xz@5.2.2
spec: xz@5.2.2
zlib:
require: '%gcc@4.8.5'
zstd:
require: '%gcc@4.8.5'

16169
env/rhel7/unstable/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

140
env/rhel7/unstable/spack.yaml vendored Normal file
View File

@ -0,0 +1,140 @@
spack:
config:
build_stage:
- /scratch/spack/spack-stage
install_missing_compilers: true
concretizer:
unify: when_possible
include:
- ../sysconfigs/packages.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/modules.yaml
definitions:
- gcc_mpi:
- ^openmpi%gcc
- gcc_6.1.0_pckgs:
- trilinos +mpi+cuda cuda_arch=60 ~tpetra
- gcc_12.1.0_pckgs:
- gromacs +mpi
- h5hut +mpi
- lammps
- quantum-espresso hdf5=parallel
- trilinos
- intel_mpi:
- ^intel-oneapi-mpi@2021.8.0
- intel_pckgs:
- gromacs@2022.4
- nvhpc_mpi:
- ^openmpi%nvhpc
- nvhpc_pckgs:
- quantum-espresso +mpi+cuda hdf5=parallel
specs:
- matrix:
- [$gcc_12.1.0_pckgs]
- [$gcc_mpi]
- [^hdf5%gcc@12.1.0]
- [^openblas]
- ['%gcc@12.1.0']
- matrix:
- [$intel_pckgs]
- [$intel_mpi]
- [^intel-oneapi-mkl]
- ['%oneapi@2022.2.1']
- matrix:
- [$nvhpc_pckgs]
- [$nvhpc_mpi]
- [^hdf5%nvhpc@23.1]
- ['%nvhpc@23.1']
view: false
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
spec: gcc@4.8.5
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/6.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/6.1.0/bin/g++
f77: /opt/psi/Programming/gcc/6.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/6.1.0/bin/gfortran
spec: gcc@6.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /opt/psi/Programming/gcc/12.1.0/bin/gcc
cxx: /opt/psi/Programming/gcc/12.1.0/bin/g++
f77: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
fc: /opt/psi/Programming/gcc/12.1.0/bin/gfortran
spec: gcc@12.1.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules: []
operating_system: rhel7
paths:
cc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvc
cxx: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvc++
f77: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvfortran
fc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/nvhpc-23.1-6barulbmh2l6pgbzulzcyta4kb57csgu/Linux_x86_64/23.1/compilers/bin/nvfortran
spec: nvhpc@23.1
target: x86_64
- compiler:
spec: gcc@4.8.5
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
flags: {}
operating_system: rhel7
target: x86_64
modules: []
environment: {}
extra_rpaths: []
- compiler:
spec: dpcpp@2022.2.1
paths:
cc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/icx
cxx: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/dpcpp
f77: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/ifx
fc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/ifx
flags: {}
operating_system: rhel7
target: x86_64
modules: []
environment: {}
extra_rpaths: []
- compiler:
spec: oneapi@2022.2.1
paths:
cc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/icx
cxx: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/icpx
f77: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/ifx
fc: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack/linux-rhel7-haswell/gcc-12.1.0/intel-oneapi-compilers-2022.2.1-33g2lmhbfkd2kx2bhwbetcnf2zk625t7/compiler/2022.2.1/linux/bin/ifx
flags: {}
operating_system: rhel7
target: x86_64
modules: []
environment: {}
extra_rpaths: []

24
env/sles15/ffbidx/spack.yaml vendored Normal file
View File

@ -0,0 +1,24 @@
spack:
upstreams:
spack-instance-1:
install_tree: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack
config:
build_stage:
- /scratch/$user/spack-stage
install_tree:
root: /data/user/$user/spack-install
concretizer:
unify: true
include:
- ../sysconfigs/modules.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/packages.yaml
repos:
- ../../../
specs:
- openblas
- ffbidx@main%gcc@12.1.0+python+simple_data_files+simple_data_indexer+test_all cuda_arch=60
develop:
ffbidx:
path: /scratch/$user/spack-dev/fast-feedback-indexer
spec: ffbidx@main+python+simple_data_files+simple_data_indexer+test_all cuda_arch=60

13699
env/sles15/hyquas/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

31
env/sles15/hyquas/spack.yaml vendored Normal file
View File

@ -0,0 +1,31 @@
spack:
upstreams:
spack-instance-1:
install_tree: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack
config:
build_stage:
- /scratch/$user/spack-stage
install_tree:
root: /data/user/$user/spack-install
concretizer:
unify: true
include:
- ../sysconfigs/modules.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/packages.yaml
repos:
- ../../../
specs:
- git-lfs
- cmake@3.25.2%gcc@12.1.0
- openmpi@4.1.5%gcc schedulers=slurm fabrics=auto +pmi +cxx +cxx_exceptions +cuda
+legacylaunchers ^slurm +pmix +hwloc +gtk +readline +restd +mariadb
- cuda@11.0.2
- hyquas@main%gcc+cuda cuda_arch=70 ~mpi+schedule+use_double+micro_bench+eval_pp~disable_assert
backend=mix mat_size=7
develop:
hyquas:
path: /scratch/$user/spack-dev/HyQuas
spec: hyquas@main%gcc+cuda cuda_arch=70 ~mpi+schedule+use_double+micro_bench+eval_pp~disable_assert
backend=mix mat_size=7
view: false

5689
env/sles15/py-hiqsimulator/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

25
env/sles15/py-hiqsimulator/spack.yaml vendored Normal file
View File

@ -0,0 +1,25 @@
spack:
upstreams:
spack-instance-1:
install_tree: /afs/psi.ch/sys/spack-rhel7/spack/opt/spack
config:
build_stage:
- /scratch/$user/spack-stage
install_tree:
root: /data/user/$user/spack-install
concretizer:
unify: true
include:
- ../sysconfigs/modules.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/packages.yaml
repos:
- ../../../
specs:
- openmpi@4.1.5%gcc
- py-hiqsimulator@develop%gcc
develop:
py-hiqsimulator:
path: /scratch/$user/spack-dev/HiQsimulator
spec: py-hiqsimulator@develop%gcc
view: false

View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
#SBATCH -N 4 # 4 nodes are requested
#SBATCH -t 00:03:00 # Walltime, 3 minutes
#SBATCH -n 8 # 8 processes are requested
#SBATCH --ntasks-per-socket=1 # 1 process per allocated socket
#SBATCH --hint=compute_bound # Use all cores in each socket, one thread per core
#SBATCH --exclusive # node should not be shared with other jobs
mpirun python3 ./examples/teleport_mpi.py # Execute program

18585
env/sles15/stable/spack.lock vendored Normal file

File diff suppressed because it is too large Load Diff

66
env/sles15/stable/spack.yaml vendored Normal file
View File

@ -0,0 +1,66 @@
spack:
concretizer:
unify: false
config:
build_stage:
- /scratch/spack/spack-stage
definitions:
- aocc_mpi:
- ^cray-mpich
- aocc_pckgs:
- gromacs@2021.7
- cce_mpi:
- ^cray-mpich
- cce_pckgs:
- gromacs@2021.7
- gcc_7.5.0_mpi:
- ^openmpi@4.1.5
- gcc_11.2.0_mpi:
- ^cray-mpich
- gcc_7.5.0_pckgs:
- trilinos@11.14.3 +mpi+cuda cuda_arch=60 ~tpetra
- gcc_11.2.0_pckgs:
- gams@31.1.1
- gromacs@2022.5 +mpi
- h5hut@2.0.0rc3 +mpi
- lammps@20221222
- trilinos@13.4.1 ~fortran
- intel_mpi:
- ^cray-mpich
- intel_pckgs:
- gromacs@2021.7
- nvhpc_mpi:
- ^cray-mpich
- nvhpc_pckgs:
- quantum-espresso@7.0 +mpi+cuda
include:
- ../sysconfigs/packages.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/modules.yaml
specs:
- matrix:
- [$aocc_pckgs]
- [$aocc_mpi]
- ['%aocc@3.1.0']
- matrix:
- [$cce_pckgs]
- [$cce_mpi]
- ['%cce@13.0.0']
- matrix:
- [$gcc_7.5.0_pckgs]
- [$gcc_7.5.0_mpi]
- [^openblas]
- ['%gcc@7.5.0']
- matrix:
- [$gcc_11.2.0_pckgs]
- [$gcc_11.2.0_mpi]
- ['%gcc@11.2.0']
- matrix:
- [$nvhpc_pckgs]
- [$nvhpc_mpi]
- ['%nvhpc@20.9']
- matrix:
- [$intel_pckgs]
- [$intel_mpi]
- ['%oneapi@2021.2.0']
view: false

111
env/sles15/sysconfigs/compilers.yaml vendored Normal file
View File

@ -0,0 +1,111 @@
compilers:
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- PrgEnv-cray/8.3.0
- cce/13.0.0
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: cc
cxx: CC
f77: ftn
fc: ftn
spec: cce@13.0.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- PrgEnv-gnu/8.3.0
- gcc/11.2.0
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: cc
cxx: CC
f77: ftn
fc: ftn
spec: gcc@11.2.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
spec: gcc@7.5.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- PrgEnv-nvidia/8.3.0
- nvidia/20.9
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: cc
cxx: CC
f77: ftn
fc: ftn
spec: nvhpc@20.9
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- PrgEnv-intel/8.3.0
- intel/2021.2.0
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: cc
cxx: CC
f77: ftn
fc: ftn
spec: intel@2021.2.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- PrgEnv-intel/8.3.0
- intel-oneapi/2021.2.0
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: cc
cxx: CC
f77: ftn
fc: ftn
spec: oneapi@2021.2.0
target: x86_64
- compiler:
environment: {}
extra_rpaths: []
flags: {}
modules:
- PrgEnv-aocc/8.3.0
- aocc/3.1.0
- libfabric/1.15.2.0
operating_system: sles15
paths:
cc: cc
cxx: CC
f77: ftn
fc: ftn
spec: aocc@3.1.0
target: x86_64

96
env/sles15/sysconfigs/modules.yaml vendored Normal file
View File

@ -0,0 +1,96 @@
modules:
default:
tcl:
blacklist_implicits: true
all:
autoload: direct
conflict:
- '{name}'
environment:
set:
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_VERSION: '{version}'
intel-oneapi-mpi:
environment:
set:
I_MPI_CXX: 'mpiicpc'
I_MPI_F77: 'mpiifort'
I_MPI_F90: 'mpiifort'
I_MPI_FC: 'mpiifort'
I_MPI_ICC: 'mpiicc'
MPIEXEC: 'mpiexec.hydra'
MPIFC: 'mpiifort'
MPIFORTRAN: 'mpiifort'
MPIRUN: 'mpirun'
mpich:
environment:
set:
MPIEXEC: ${prefix}/bin/mpiexec
MPIFC: ${prefix}/bin/mpif90
MPIFORTRAN: ${prefix}/bin/mpif90
MPIRUN: ${prefix}/bin/mpirun
openblas:
environment:
set:
BLASLIB: ${prefix}/libopenblas.a
openmpi:
environment:
set:
MPIEXEC: ${prefix}/bin/mpiexec
MPIFC: ${prefix}/bin/mpif90
MPIFORTRAN: ${prefix}/bin/mpif90
MPIRUN: ${prefix}/bin/mpirun
root:
environment:
set:
ROOTSYS: ${prefix}
cuda:
environment:
prepend_path:
${PACKAGE}_PATH: '{prefix}'
LIBRARY_PATH: '{prefix}/lib64/stubs'
LIBRARY_PATH: '{prefix}/targets/x86_64-linux/lib/stubs'
set:
${PACKAGE}_DIR: '{prefix}'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_PATH: '{prefix}'
${PACKAGE}_VERSION: '{version}'
hdf5~mpi:
environment:
set:
${PACKAGE}_DIR: '{prefix}'
${PACKAGE}_HOME: '{prefix}'
${PACKAGE}_INCLUDE_DIR: '{prefix}/include'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib'
${PACKAGE}_LIBRARY_DIR: '{prefix}/lib64'
${PACKAGE}_PREFIX: '{prefix}'
${PACKAGE}_ROOT: '{prefix}'
${PACKAGE}_VERSION: '{version}'
prefix_inspections:
'':
- CMAKE_PREFIX_PATH
bin:
- PATH
include:
- C_INCLUDE_PATH
- CPLUS_INCLUDE_PATH
lib:
- LIBRARY_PATH
- LD_LIBRARY_PATH
lib/pkgconfig:
- PKG_CONFIG_PATH
lib64:
- LIBRARY_PATH
- LD_LIBRARY_PATH
lib64/pkgconfig:
- PKG_CONFIG_PATH
man:
- MANPATH
share/aclocal:
- ACLOCAL_PATH
share/man:
- MANPATH
share/pkgconfig:
- PKG_CONFIG_PATH

281
env/sles15/sysconfigs/packages.yaml vendored Normal file
View File

@ -0,0 +1,281 @@
---
packages:
'%aocc':
require: '%aocc'
'%cce':
require: '%cce'
'%clang':
require: '%clang'
'%gcc':
require: '%gcc@7.5.0'
'%nvhpc':
require: '%nvhpc'
'%oneapi':
require: '%oneapi'
all:
providers:
blas: [ cray-libsci ]
mpi: [ cray-mpich ]
pkgconfig: [ pkg-config ]
target:
- zen
autoconf:
buildable: false
externals:
- prefix: /usr
spec: autoconf@2.69
automake:
buildable: false
externals:
- prefix: /usr
spec: automake@1.15.1
berkeley-db:
require: '%gcc@7.5.0'
binutils:
buildable: false
externals:
- prefix: /usr
spec: binutils@2.37.20211103
bison:
buildable: false
externals:
- prefix: /usr
spec: bison@3.0.4
boost:
require: '%gcc@7.5.0'
ca-certificates-mozilla:
require: '%gcc@7.5.0'
cairo:
require: '%gcc@7.5.0'
cmake:
externals:
- spec: cmake@3.17.0
prefix: /usr
require:
- one_of: [
"cmake@3.17.0",
"cmake@3.25.2%gcc@7.5.0"
]
coreutils:
buildable: false
externals:
- prefix: /usr
spec: coreutils@8.32
cray-libsci:
externals:
- modules:
- cray-libsci/21.08.1.2
spec: cray-libsci@21.08.1.2
cray-mpich:
buildable: false
externals:
- modules:
- cray-mpich/8.1.12
spec: cray-mpich@8.1.12 ~wrappers
ctffind:
require: '%gcc@7.5.0'
cuda:
externals:
- prefix: /opt/nvidia/hpc_sdk/Linux_x86_64/20.9/cuda
spec: cuda@11.0.0%nvhpc@20.9
curl:
buildable: false
externals:
- prefix: /usr
spec: curl@7.66.0+gssapi+ldap+nghttp2
diffutils:
buildable: false
externals:
- prefix: /usr
spec: diffutils@3.6
expat:
require: '%gcc@7.5.0'
fftw:
buildable: false
externals:
- modules:
- cray-fftw/3.3.8.13
spec: fftw@3.3.8.13
findutils:
buildable: false
externals:
- prefix: /usr
spec: findutils@4.8.0
flex:
buildable: false
externals:
- prefix: /usr
spec: flex@2.6.4+lex
fltk:
require: '%gcc@7.5.0'
fontconfig:
require: '%gcc@7.5.0'
gams:
buildable: false
externals:
- prefix: /opt/psi/Tools/GAMS/31.1.1/gams31.1_linux_x64_64_sfx
spec: gams@31.1.1%gcc
gawk:
buildable: false
externals:
- prefix: /usr
spec: gawk@4.2.1
gdbm:
require: '%gcc@7.5.0'
gettext:
require: '%gcc@7.5.0'
git:
buildable: false
externals:
- prefix: /usr
spec: git@2.35.3~tcltk
gmake:
buildable: false
externals:
- prefix: /usr
spec: gmake@4.2.1
groff:
buildable: false
externals:
- prefix: /usr
spec: groff@1.22.3
hdf5:
externals:
- modules:
- cray-hdf5-parallel/1.12.0.7
spec: hdf5@1.12.0.7+mpi
- prefix: /opt/cray/pe/hdf5-parallel/1.12.0.7/nvidia/20.7
spec: hdf5@1.12.0.7%nvhpc+mpi
- modules:
- cray-hdf5/1.12.0.7
spec: hdf5@1.12.0.7~mpi
libbsd:
require: '%gcc@7.5.0'
libevent:
require: '%gcc@7.5.0'
libfabric:
buildable: false
externals:
- prefix: /opt/cray/libfabric/1.15.2.0
spec: libfabric@1.15.2.0
libiconv:
require: '%gcc@7.5.0'
libidn2:
require: '%gcc@7.5.0'
libmd:
require: '%gcc@7.5.0'
libpciaccess:
require: '%gcc@7.5.0'
libsigsegv:
require: '%gcc@7.5.0'
libtool:
buildable: false
externals:
- prefix: /usr
spec: libtool@2.4.6
libxml2:
require: '%gcc@7.5.0'
llvm:
buildable: false
externals:
- prefix: /opt/AMD/aocc-compiler-3.1.0
spec: llvm@15.0.3
m4:
buildable: false
externals:
- prefix: /usr
spec: m4@1.4.18
ncurses:
require: '%gcc@7.5.0'
netcdf-c:
buildable: false
externals:
- modules:
- cray-parallel-netcdf/1.12.1.7
spec: netcdf-c@4.0.1 +mpi
netcdf-fortran:
buildable: false
externals:
- modules:
- cray-parallel-netcdf/1.12.1.7
spec: netcdf-fortran@4.0.1
ninja:
require: '%gcc@7.5.0'
openblas:
require: '%gcc@7.5.0'
opengl:
externals:
- prefix: /usr
spec: opengl@1.7.0
openmpi:
externals:
- prefix: /opt/nvidia/hpc_sdk/Linux_x86_64/20.9/comm_libs/openmpi4/openmpi-4.0.5
spec: openmpi@4.0.5%nvhpc@20.9
require:
- one_of: [
"openmpi@4.1.5%gcc@7.5.0 schedulers=slurm fabrics=auto +pmi +cxx +cxx_exceptions +cuda +legacylaunchers",
"openmpi@4.0.5%nvhpc@20.9"
]
openssh:
buildable: false
externals:
- prefix: /usr
spec: openssh@8.4p1
openssl:
buildable: false
externals:
- prefix: /usr
spec: openssl@1.1.1d
perl:
require: '%gcc@7.5.0'
pkg-config:
buildable: false
externals:
- prefix: /usr
spec: pkg-config@0.29.2
pkgconf:
require: '%gcc@7.5.0'
py-fypp:
require: '%gcc@7.5.0'
python:
require: '%gcc@7.5.0'
readline:
require: '%gcc@7.5.0'
slurm:
require: '+pmix +hwloc +gtk +readline +restd +mariadb ^cups'
sqlite:
require: '%gcc@7.5.0'
tar:
buildable: false
externals:
- prefix: /usr
spec: tar@1.34
texinfo:
buildable: false
externals:
- prefix: /usr
spec: texinfo@6.5
unuran:
require: '%gcc@7.5.0'
util-linux-uuid:
require: '%gcc@7.5.0'
util-macros:
require: '%gcc@7.5.0'
valgrind:
buildable: false
externals:
- modules:
- valgrind4hpc/2.12.8
spec: valgrind@2.12.8
xpmem:
buildable: false
externals:
- modules:
- xpmem/2.4.4-2.3_9.1__gff0e1d9.shasta
spec: xpmem@2.4.4
xxhash:
require: '%gcc@7.5.0'
zlib:
require: '%gcc@7.5.0'
zstd:
require: '%gcc@7.5.0'

52
env/sles15/unstable/spack.yaml vendored Normal file
View File

@ -0,0 +1,52 @@
spack:
concretizer:
unify: when_possible
config:
build_stage:
- /scratch/spack/spack-stage
definitions:
- aocc_mpi:
- ^cray-mpich
- aocc_pckgs:
- gromacs@2022.5
- cce_mpi:
- ^cray-mpich
- cce_pckgs:
- gromacs@2022.5
- gcc_11.2.0_mpi:
- ^cray-mpich
- gcc_11.2.0_pckgs:
- gromacs@2023 +mpi +cuda
- h5hut +mpi
- lammps
- trilinos ~fortran
- intel_mpi:
- ^cray-mpich
- intel_pckgs:
- gromacs@2022.5
- nvhpc_mpi:
- ^cray-mpich
- nvhpc_pckgs:
- quantum-espresso +mpi+cuda hdf5=parallel
include:
- ../sysconfigs/packages.yaml
- ../sysconfigs/compilers.yaml
- ../sysconfigs/modules.yaml
specs:
- matrix:
- [$aocc_pckgs]
- [$aocc_mpi]
- ['%aocc@3.1.0']
- matrix:
- [$cce_pckgs]
- [$cce_mpi]
- ['%cce@13.0.0']
- matrix:
- [$gcc_11.2.0_pckgs]
- [$gcc_11.2.0_mpi]
- ['%gcc@11.2.0']
- matrix:
- [$nvhpc_pckgs]
- [$nvhpc_mpi]
- ['%nvhpc@20.9']
view: false