Compare commits
69 Commits
v0.16.0
...
features/i
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9479be5618 | ||
|
|
4dd854d31b | ||
|
|
25fd25a77d | ||
|
|
842867dd89 | ||
|
|
49866c9013 | ||
|
|
983fb11dee | ||
|
|
b33969598a | ||
|
|
8b2c7a6c65 | ||
|
|
f40492b7d4 | ||
|
|
164fc4ee95 | ||
|
|
408824f365 | ||
|
|
f6549849e5 | ||
|
|
348cbe143c | ||
|
|
87689f7cc8 | ||
|
|
d9f6ef9df4 | ||
|
|
2c0091df3f | ||
|
|
28a3b30c53 | ||
|
|
4e35df4b61 | ||
|
|
c468d6bed2 | ||
|
|
3f0984e5e1 | ||
|
|
fd07decd27 | ||
|
|
aa8dd782cd | ||
|
|
617f2ac714 | ||
|
|
aee3b4a1e8 | ||
|
|
01c9f3edc3 | ||
|
|
5c623b03b1 | ||
|
|
cb4a08b3e0 | ||
|
|
fa66d683e4 | ||
|
|
fb2ac2077d | ||
|
|
b62401ec8f | ||
|
|
8a54817d4e | ||
|
|
5088d799eb | ||
|
|
c25f15b7d5 | ||
|
|
d7db6068c5 | ||
|
|
236796577d | ||
|
|
b490d65f28 | ||
|
|
92d540fde7 | ||
|
|
4609a126ba | ||
|
|
f30aeb35ae | ||
|
|
439b329c38 | ||
|
|
f613e10f24 | ||
|
|
f92e52cdc8 | ||
|
|
16d5cc2c99 | ||
|
|
d6e44b94d6 | ||
|
|
5015635506 | ||
|
|
c417827954 | ||
|
|
e75b76f433 | ||
|
|
1522d1fac6 | ||
|
|
5129d84304 | ||
|
|
14a9359395 | ||
|
|
8f3594564c | ||
|
|
1b7a5e53a6 | ||
|
|
dd54cb4c7a | ||
|
|
db9b7a509a | ||
|
|
a2801a1384 | ||
|
|
cb22bcf6f1 | ||
|
|
c9aac3e221 | ||
|
|
a680df8453 | ||
|
|
932f128bc8 | ||
|
|
95f5419502 | ||
|
|
bc5c475909 | ||
|
|
10f784338b | ||
|
|
3b9155239b | ||
|
|
676d68a979 | ||
|
|
3069631f37 | ||
|
|
eca1370abc | ||
|
|
b1dc3e787b | ||
|
|
8b431d1774 | ||
|
|
a0a15b5cd0 |
138
lib/spack/spack/build_systems/hip.py
Normal file
138
lib/spack/spack/build_systems/hip.py
Normal file
@@ -0,0 +1,138 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
# Troubleshooting advice for +hip builds:
|
||||
#
|
||||
# 1. When building with clang, go your compilers.yaml,
|
||||
# add an entry for the amd version of clang, as below.
|
||||
# This will ensure that your entire package is compiled/linked
|
||||
# with the same compiler version. If you use a different version of
|
||||
# clang which is linked against a different version of the gcc library,
|
||||
# you will get errors along the lines of:
|
||||
# undefined reference to
|
||||
# `std::__throw_out_of_range_fmt(char const*, ...)@@GLIBCXX_3.4.20'
|
||||
# which is indicative of a mismatch in standard library versions.
|
||||
#
|
||||
# in compilers.yaml
|
||||
# - compiler:
|
||||
# spec: clang@amd
|
||||
# paths:
|
||||
# cc: /opt/rocm/llvm/bin/clang
|
||||
# cxx: /opt/rocm/llvm/bin/clang++
|
||||
# f77:
|
||||
# fc:
|
||||
# flags: {}
|
||||
# operating_system: rhel7
|
||||
# target: x86_64
|
||||
# modules: []
|
||||
# environment: {}
|
||||
# extra_rpaths: []
|
||||
#
|
||||
#
|
||||
# 2. hip and its dependencies are currently NOT picked up by spack
|
||||
# automatically, and should therefore be added to packages.yaml by hand:
|
||||
#
|
||||
# in packages.yaml:
|
||||
# hip:
|
||||
# externals:
|
||||
# - spec: hip@3.8.20371-d1886b0b
|
||||
# prefix: /opt/rocm/hip
|
||||
# extra_attributes:
|
||||
# compilers:
|
||||
# c: /opt/rocm/llvm/bin/clang++
|
||||
# c++: /opt/rocm/llvm/bin/clang++
|
||||
# hip: /opt/rocm/hip/bin/hipcc
|
||||
# buildable: false
|
||||
# hsa-rocr-dev:
|
||||
# externals:
|
||||
# - spec: hsa-rocr-dev
|
||||
# prefix: /opt/rocm
|
||||
# extra_attributes:
|
||||
# compilers:
|
||||
# c: /opt/rocm/llvm/bin/clang++
|
||||
# cxx: /opt/rocm/llvm/bin/clang++
|
||||
# buildable: false
|
||||
# llvm-amdgpu:
|
||||
# externals:
|
||||
# - spec: llvm-amdgpu
|
||||
# prefix: /opt/rocm/llvm
|
||||
# extra_attributes:
|
||||
# compilers:
|
||||
# c: /opt/rocm/llvm/bin/clang++
|
||||
# cxx: /opt/rocm/llvm/bin/clang++
|
||||
# buildable: false
|
||||
#
|
||||
# 3. In part 2, DO NOT list the path to hsa as /opt/rocm/hsa ! You want spack
|
||||
# to find hsa in /opt/rocm/include/hsa/hsa.h . The directory of
|
||||
# /opt/rocm/hsa also has an hsa.h file, but it won't be found because spack
|
||||
# does not like its directory structure.
|
||||
#
|
||||
|
||||
from spack.package import PackageBase
|
||||
from spack.directives import depends_on, variant, conflicts
|
||||
|
||||
|
||||
class HipPackage(PackageBase):
|
||||
"""Auxiliary class which contains HIP variant, dependencies and conflicts
|
||||
and is meant to unify and facilitate its usage. Closely mimics CudaPackage.
|
||||
|
||||
Maintainers: dtaller
|
||||
"""
|
||||
|
||||
# https://llvm.org/docs/AMDGPUUsage.html
|
||||
# Possible architectures
|
||||
amdgpu_targets = (
|
||||
'gfx701', 'gfx801', 'gfx802', 'gfx803',
|
||||
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
|
||||
'gfx1011', 'gfx1012', 'none'
|
||||
)
|
||||
|
||||
variant('hip', default=False, description='Enable HIP support')
|
||||
|
||||
# possible amd gpu targets for hip builds
|
||||
variant('amdgpu_target', default='none', values=amdgpu_targets)
|
||||
|
||||
depends_on('llvm-amdgpu', when='+hip')
|
||||
depends_on('hsa-rocr-dev', when='+hip')
|
||||
depends_on('hip', when='+hip')
|
||||
|
||||
# need amd gpu type for hip builds
|
||||
conflicts('amdgpu_target=none', when='+hip')
|
||||
|
||||
# Make sure non-'none' amdgpu_targets cannot be used without +hip
|
||||
for value in amdgpu_targets[:-1]:
|
||||
conflicts('~hip', when='amdgpu_target=' + value)
|
||||
|
||||
# https://github.com/ROCm-Developer-Tools/HIP/blob/master/bin/hipcc
|
||||
# It seems that hip-clang does not (yet?) accept this flag, in which case
|
||||
# we will still need to set the HCC_AMDGPU_TARGET environment flag in the
|
||||
# hip package file. But I will leave this here for future development.
|
||||
@staticmethod
|
||||
def hip_flags(amdgpu_target):
|
||||
return '--amdgpu-target={0}'.format(amdgpu_target)
|
||||
|
||||
# https://llvm.org/docs/AMDGPUUsage.html
|
||||
# Possible architectures (not including 'none' option)
|
||||
@staticmethod
|
||||
def amd_gputargets_list():
|
||||
return (
|
||||
'gfx701', 'gfx801', 'gfx802', 'gfx803',
|
||||
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
|
||||
'gfx1011', 'gfx1012'
|
||||
)
|
||||
|
||||
# HIP version vs Architecture
|
||||
|
||||
# TODO: add a bunch of lines like:
|
||||
# depends_on('hip@:6.0', when='amdgpu_target=gfx701')
|
||||
# to indicate minimum version for each architecture.
|
||||
|
||||
# Compiler conflicts
|
||||
|
||||
# TODO: add conflicts statements along the lines of
|
||||
# arch_platform = ' target=x86_64: platform=linux'
|
||||
# conflicts('%gcc@5:', when='+cuda ^cuda@:7.5' + arch_platform)
|
||||
# conflicts('platform=darwin', when='+cuda ^cuda@11.0.2:')
|
||||
# for hip-related limitations.
|
||||
@@ -15,6 +15,7 @@
|
||||
from llnl.util.filesystem import working_dir
|
||||
|
||||
import spack.architecture as architecture
|
||||
import spack.config
|
||||
import spack.paths
|
||||
from spack.main import get_version
|
||||
from spack.util.executable import which
|
||||
@@ -89,6 +90,7 @@ def report(args):
|
||||
print('* **Python:**', platform.python_version())
|
||||
print('* **Platform:**', architecture.Arch(
|
||||
architecture.platform(), 'frontend', 'frontend'))
|
||||
print('* **Concretizer:**', spack.config.get('config:concretizer'))
|
||||
|
||||
|
||||
def debug(parser, args):
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
import spack.package
|
||||
|
||||
description = "run spack's tests for an install"
|
||||
section = "administrator"
|
||||
section = "admin"
|
||||
level = "long"
|
||||
|
||||
|
||||
@@ -333,6 +333,7 @@ def test_results(args):
|
||||
if names:
|
||||
test_suites = [spack.install_test.get_test_suite(name) for name
|
||||
in names]
|
||||
test_suites = list(filter(lambda ts: ts is not None, test_suites))
|
||||
if not test_suites:
|
||||
tty.msg('No test suite(s) found in test stage: {0}'
|
||||
.format(', '.join(names)))
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
description = "run a command in a spec's test environment, " \
|
||||
"or dump its environment to screen or file"
|
||||
section = "administration"
|
||||
section = "admin"
|
||||
level = "long"
|
||||
|
||||
setup_parser = env_utility.setup_parser
|
||||
|
||||
@@ -159,11 +159,11 @@ def extract_version_from_output(cls, output):
|
||||
|
||||
match = re.search(
|
||||
# Normal clang compiler versions are left as-is
|
||||
r'clang version ([^ )]+)-svn[~.\w\d-]*|'
|
||||
r'clang version ([^ )\n]+)-svn[~.\w\d-]*|'
|
||||
# Don't include hyphenated patch numbers in the version
|
||||
# (see https://github.com/spack/spack/pull/14365 for details)
|
||||
r'clang version ([^ )]+?)-[~.\w\d-]*|'
|
||||
r'clang version ([^ )]+)',
|
||||
r'clang version ([^ )\n]+?)-[~.\w\d-]*|'
|
||||
r'clang version ([^ )\n]+)',
|
||||
output
|
||||
)
|
||||
if match:
|
||||
|
||||
@@ -34,9 +34,13 @@ class Fj(spack.compiler.Compiler):
|
||||
def verbose_flag(self):
|
||||
return "-v"
|
||||
|
||||
@property
|
||||
def debug_flags(self):
|
||||
return "-g"
|
||||
|
||||
@property
|
||||
def opt_flags(self):
|
||||
return ['-O', '-O0', '-O1', '-O2', '-O3', '-O4']
|
||||
return ['-O0', '-O1', '-O2', '-O3', '-Ofast']
|
||||
|
||||
@property
|
||||
def openmp_flag(self):
|
||||
@@ -54,6 +58,10 @@ def cxx11_flag(self):
|
||||
def cxx14_flag(self):
|
||||
return "-std=c++14"
|
||||
|
||||
@property
|
||||
def cxx17_flag(self):
|
||||
return "-std=c++17"
|
||||
|
||||
@property
|
||||
def c99_flag(self):
|
||||
return "-std=c99"
|
||||
|
||||
@@ -55,10 +55,14 @@ def __init__(self):
|
||||
'10.14': 'mojave',
|
||||
'10.15': 'catalina',
|
||||
'10.16': 'bigsur',
|
||||
'11.0': 'bigsur',
|
||||
'11': 'bigsur',
|
||||
}
|
||||
|
||||
mac_ver = str(macos_version().up_to(2))
|
||||
# Big Sur versions go 11.0, 11.0.1, 11.1 (vs. prior versions that
|
||||
# only used the minor component)
|
||||
part = 1 if macos_version() >= Version('11') else 2
|
||||
|
||||
mac_ver = str(macos_version().up_to(part))
|
||||
name = mac_releases.get(mac_ver, "macos")
|
||||
super(MacOs, self).__init__(name, mac_ver)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
from spack.build_systems.autotools import AutotoolsPackage
|
||||
from spack.build_systems.cmake import CMakePackage
|
||||
from spack.build_systems.cuda import CudaPackage
|
||||
from spack.build_systems.hip import HipPackage
|
||||
from spack.build_systems.qmake import QMakePackage
|
||||
from spack.build_systems.maven import MavenPackage
|
||||
from spack.build_systems.scons import SConsPackage
|
||||
|
||||
@@ -1290,7 +1290,6 @@ def target_defaults(self, specs):
|
||||
if not spec.architecture or not spec.architecture.target:
|
||||
continue
|
||||
|
||||
print("TTYPE:", type(platform.target(spec.target.name)))
|
||||
target = archspec.cpu.TARGETS.get(spec.target.name)
|
||||
if not target:
|
||||
raise ValueError("Invalid target: ", spec.target.name)
|
||||
@@ -1323,13 +1322,18 @@ def virtual_providers(self):
|
||||
self.gen.fact(fn.virtual(vspec))
|
||||
all_providers = sorted(spack.repo.path.providers_for(vspec))
|
||||
for idx, provider in enumerate(all_providers):
|
||||
self.gen.fact(fn.provides_virtual(provider.name, vspec))
|
||||
provides_atom = fn.provides_virtual(provider.name, vspec)
|
||||
possible_provider_fn = fn.possible_provider(
|
||||
vspec, provider.name, idx
|
||||
)
|
||||
item = (idx, provider, possible_provider_fn)
|
||||
self.providers_by_vspec_name[vspec].append(item)
|
||||
clauses = self.spec_clauses(provider, body=True)
|
||||
clauses_but_node = [c for c in clauses if c.name != 'node']
|
||||
if clauses_but_node:
|
||||
self.gen.rule(provides_atom, AspAnd(*clauses_but_node))
|
||||
else:
|
||||
self.gen.fact(provides_atom)
|
||||
for clause in clauses:
|
||||
self.gen.rule(clause, possible_provider_fn)
|
||||
self.gen.newline()
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
import os.path
|
||||
|
||||
import spack.architecture as architecture
|
||||
import spack.config
|
||||
from spack.main import SpackCommand, get_version
|
||||
from spack.util.executable import which
|
||||
|
||||
@@ -53,3 +54,4 @@ def test_report():
|
||||
assert get_version() in out
|
||||
assert platform.python_version() in out
|
||||
assert str(arch) in out
|
||||
assert spack.config.get('config:concretizer') in out
|
||||
|
||||
@@ -471,14 +471,16 @@ def test_fj_flags():
|
||||
supported_flag_test("cxx98_flag", "-std=c++98", "fj@4.0.0")
|
||||
supported_flag_test("cxx11_flag", "-std=c++11", "fj@4.0.0")
|
||||
supported_flag_test("cxx14_flag", "-std=c++14", "fj@4.0.0")
|
||||
supported_flag_test("cxx17_flag", "-std=c++17", "fj@4.0.0")
|
||||
supported_flag_test("c99_flag", "-std=c99", "fj@4.0.0")
|
||||
supported_flag_test("c11_flag", "-std=c11", "fj@4.0.0")
|
||||
supported_flag_test("cc_pic_flag", "-KPIC", "fj@4.0.0")
|
||||
supported_flag_test("cxx_pic_flag", "-KPIC", "fj@4.0.0")
|
||||
supported_flag_test("f77_pic_flag", "-KPIC", "fj@4.0.0")
|
||||
supported_flag_test("fc_pic_flag", "-KPIC", "fj@4.0.0")
|
||||
supported_flag_test("opt_flags", ['-O', '-O0', '-O1', '-O2', '-O3', '-O4'],
|
||||
supported_flag_test("opt_flags", ['-O0', '-O1', '-O2', '-O3', '-Ofast'],
|
||||
'fj@4.0.0')
|
||||
supported_flag_test("debug_flags", "-g", "fj@4.0.0")
|
||||
|
||||
|
||||
def test_gcc_flags():
|
||||
|
||||
@@ -96,7 +96,11 @@ def test_apple_clang_version_detection(
|
||||
('clang version 8.0.0-3 (tags/RELEASE_800/final)\n'
|
||||
'Target: aarch64-unknown-linux-gnu\n'
|
||||
'Thread model: posix\n'
|
||||
'InstalledDir: /usr/bin\n', '8.0.0')
|
||||
'InstalledDir: /usr/bin\n', '8.0.0'),
|
||||
('clang version 11.0.0\n'
|
||||
'Target: aarch64-unknown-linux-gnu\n'
|
||||
'Thread model: posix\n'
|
||||
'InstalledDir: /usr/bin\n', '11.0.0')
|
||||
])
|
||||
def test_clang_version_detection(version_str, expected_version):
|
||||
version = spack.compilers.clang.Clang.extract_version_from_output(
|
||||
|
||||
@@ -883,3 +883,15 @@ def test_transitive_conditional_virtual_dependency(self):
|
||||
|
||||
# 'stuff' is provided by an external package, so check it's present
|
||||
assert 'externalvirtual' in s
|
||||
|
||||
@pytest.mark.regression('20040')
|
||||
def test_conditional_provides_or_depends_on(self):
|
||||
if spack.config.get('config:concretizer') == 'original':
|
||||
pytest.xfail('Known failure of the original concretizer')
|
||||
|
||||
# Check that we can concretize correctly a spec that can either
|
||||
# provide a virtual or depend on it based on the value of a variant
|
||||
s = Spec('conditional-provider +disable-v1').concretized()
|
||||
assert 'v1-provider' in s
|
||||
assert s['v1'].name == 'v1-provider'
|
||||
assert s['v2'].name == 'conditional-provider'
|
||||
|
||||
9
share/spack/gitlab/nersc_pipeline.yml
Normal file
9
share/spack/gitlab/nersc_pipeline.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
merge_pipeline:
|
||||
only:
|
||||
- develop
|
||||
variables:
|
||||
SPACK_REPO: ${CI_PROJECT_URL}
|
||||
SPACK_REF: ${CI_COMMIT_SHA}
|
||||
trigger:
|
||||
project: ecp/e4s/e4s
|
||||
strategy: depend
|
||||
@@ -0,0 +1,18 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
class ConditionalProvider(Package):
|
||||
"""Mimic the real netlib-lapack, that may be built on top of an
|
||||
optimized blas.
|
||||
"""
|
||||
homepage = "https://dev.null"
|
||||
|
||||
version('1.0')
|
||||
|
||||
variant('disable-v1', default=False, description='nope')
|
||||
|
||||
provides('v2')
|
||||
provides('v1', when='~disable-v1')
|
||||
|
||||
depends_on('v1', when='+disable-v1')
|
||||
13
var/spack/repos/builtin.mock/packages/v1-provider/package.py
Normal file
13
var/spack/repos/builtin.mock/packages/v1-provider/package.py
Normal file
@@ -0,0 +1,13 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
class V1Provider(Package):
|
||||
"""Mimic the real netlib-lapack, that may be built on top of an
|
||||
optimized blas.
|
||||
"""
|
||||
homepage = "https://dev.null"
|
||||
|
||||
version('1.0')
|
||||
|
||||
provides('v1')
|
||||
@@ -33,6 +33,8 @@ class Acts(CMakePackage, CudaPackage):
|
||||
git = "https://github.com/acts-project/acts.git"
|
||||
maintainers = ['HadrienG2']
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
# Supported Acts versions
|
||||
version('master', branch='master')
|
||||
version('2.00.0', commit='8708eae2b2ccdf57ab7b451cfbba413daa1fc43c')
|
||||
|
||||
@@ -51,7 +51,7 @@ class Adios2(CMakePackage):
|
||||
# transport engines
|
||||
variant('sst', default=True,
|
||||
description='Enable the SST staging engine')
|
||||
variant('dataman', default=True,
|
||||
variant('dataman', default=False,
|
||||
description='Enable the DataMan engine for WAN transports')
|
||||
variant('dataspaces', default=False,
|
||||
description='Enable support for DATASPACES')
|
||||
|
||||
@@ -12,6 +12,8 @@ class Aida(Package):
|
||||
homepage = "http://aida.freehep.org/"
|
||||
url = "ftp://ftp.slac.stanford.edu/software/freehep/AIDA/v3.2.1/aida-3.2.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('3.2.1', sha256='c51da83e99c0985a7ef3e8bc5a60c3ae61f3ca603b61100c2438b4cdadd5bb2e')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 526efe86427a4d49da38773534d84025dd4246c3 Mon Sep 17 00:00:00 2001
|
||||
From: Ethan Stewart <ethan.stewart@amd.com>
|
||||
Date: Tue, 10 Nov 2020 15:32:59 -0600
|
||||
Subject: [PATCH] Add cmake option for copying source for debugging.
|
||||
|
||||
---
|
||||
openmp/CMakeLists.txt | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/openmp/CMakeLists.txt b/openmp/CMakeLists.txt
|
||||
index a86e83c50212..51962b561a3b 100644
|
||||
--- a/openmp/CMakeLists.txt
|
||||
+++ b/openmp/CMakeLists.txt
|
||||
@@ -103,3 +103,11 @@ endif()
|
||||
|
||||
# Now that we have seen all testsuites, create the check-openmp target.
|
||||
construct_check_openmp_target()
|
||||
+
|
||||
+option(DEBUG_COPY_SOURCE "Enable source code copy for openmp debug build."
|
||||
+ ${ENABLE_SOURCE_COPY})
|
||||
+if (${ENABLE_SOURCE_COPY})
|
||||
+ install(DIRECTORY runtime/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/runtime)
|
||||
+ install(DIRECTORY libomptarget/src libomptarget/plugins DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libomptarget)
|
||||
+ install(DIRECTORY libompd/src DESTINATION ${OPENMP_INSTALL_LIBDIR}/src/openmp/libompd)
|
||||
+endif()
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -8,6 +8,22 @@
|
||||
tools_url = 'https://github.com/ROCm-Developer-Tools'
|
||||
compute_url = 'https://github.com/RadeonOpenCompute'
|
||||
|
||||
# 3.9 SHA Keys
|
||||
aomp39 = dict()
|
||||
aomp39 = {
|
||||
"aomp":
|
||||
"14fc6867af0b17e3bff8cb42cb36f509c95a29b7a933a106bf6778de21f6c123",
|
||||
"devlib":
|
||||
"c99f45dacf5967aef9a31e3731011b9c142446d4a12bac69774998976f2576d7",
|
||||
"llvm":
|
||||
"f0a0b9fec0626878340a15742e73a56f155090011716461edcb069dcf05e6b30",
|
||||
"flang":
|
||||
"43d57bcc87fab092ac242e36da62588a87b6fa91f9e81fdb330159497afdecb3",
|
||||
"extras":
|
||||
"014fca1fba54997c6db0e84822df274fb6807698b6856da4f737f38f10ab0e5d"
|
||||
|
||||
}
|
||||
|
||||
# 3.8 SHA Keys
|
||||
aomp38 = dict()
|
||||
aomp38 = {
|
||||
@@ -65,17 +81,19 @@ class Aomp(Package):
|
||||
"""llvm openmp compiler from AMD."""
|
||||
|
||||
homepage = tools_url + "/aomp"
|
||||
url = tools_url + "/aomp/archive/rocm-3.8.0.tar.gz"
|
||||
url = tools_url + "/aomp/archive/rocm-3.9.0.tar.gz"
|
||||
|
||||
maintainers = ['srekolam', 'arjun-raj-kuppala', 'estewart08']
|
||||
version('3.9.0', sha256=aomp38['aomp'])
|
||||
version('3.8.0', sha256=aomp38['aomp'])
|
||||
version('3.7.0', sha256=aomp37['aomp'])
|
||||
version('3.5.0', sha256=aomp35['aomp'])
|
||||
|
||||
depends_on('cmake@3.5.2:3.13.4', type='build')
|
||||
depends_on('mesa~llvm@18.3:', type=('build', 'link'))
|
||||
depends_on('mesa18~llvm@18.3:', type=('build', 'link'))
|
||||
depends_on('py-setuptools@44.1.0', type='build')
|
||||
depends_on('python@2.7.18', type='build')
|
||||
depends_on('python@2.7.18', type='build', when='@3.5.0:3.8.0')
|
||||
depends_on('python@3.6.9', type='build', when='@3.9.0:')
|
||||
depends_on('py-pip', when='@3.8.0:', type='build')
|
||||
depends_on('py-wheel@0.29.0', when='@3.8.0:', type=('build', 'run'))
|
||||
depends_on('perl-data-dumper', type='build')
|
||||
@@ -83,11 +101,60 @@ class Aomp(Package):
|
||||
depends_on('elfutils', type=('build', 'link'))
|
||||
depends_on('libffi', type=('build', 'link'))
|
||||
|
||||
for ver in ['3.5.0', '3.7.0', '3.8.0']:
|
||||
depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver)
|
||||
depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver)
|
||||
depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver)
|
||||
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
|
||||
depends_on('hsakmt-roct@' + ver, type=('build', 'run'), when='@' + ver)
|
||||
depends_on('comgr@' + ver, type='build', when='@' + ver)
|
||||
depends_on('hsa-rocr-dev@' + ver, type=('build', 'run'),
|
||||
when='@' + ver)
|
||||
depends_on('rocm-device-libs@' + ver, type=('build', 'run'),
|
||||
when='@' + ver)
|
||||
|
||||
if ver != '3.5.0':
|
||||
depends_on('hip@' + ver, type=('build', 'run'), when='@' + ver)
|
||||
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
|
||||
|
||||
if ver == '3.9.0':
|
||||
depends_on('rocm-gdb@' + ver, type=('build', 'run'),
|
||||
when='@' + ver)
|
||||
|
||||
# 3.9.0 Resources
|
||||
if ver == '3.9.0':
|
||||
resource(
|
||||
name='rocm-device-libs',
|
||||
url=compute_url +
|
||||
'/ROCm-Device-Libs/archive/rocm-3.9.0.tar.gz',
|
||||
sha256=aomp39['devlib'],
|
||||
expand=True,
|
||||
destination='aomp-dir',
|
||||
placement='rocm-device-libs',
|
||||
when='@3.9.0')
|
||||
|
||||
resource(
|
||||
name='amd-llvm-project',
|
||||
url=tools_url + '/amd-llvm-project/archive/rocm-3.9.0.tar.gz',
|
||||
sha256=aomp39['llvm'],
|
||||
expand=True,
|
||||
destination='aomp-dir',
|
||||
placement='amd-llvm-project',
|
||||
when='@3.9.0')
|
||||
|
||||
resource(
|
||||
name='flang',
|
||||
url=tools_url + '/flang/archive/rocm-3.9.0.tar.gz',
|
||||
sha256=aomp39['flang'],
|
||||
expand=True,
|
||||
destination='aomp-dir',
|
||||
placement='flang',
|
||||
when='@3.9.0')
|
||||
|
||||
resource(
|
||||
name='aomp-extras',
|
||||
url=tools_url + '/aomp-extras/archive/rocm-3.9.0.tar.gz',
|
||||
sha256=aomp39['extras'],
|
||||
expand=True,
|
||||
destination='aomp-dir',
|
||||
placement='aomp-extras',
|
||||
when='@3.9.0')
|
||||
|
||||
# 3.8.0 Resources
|
||||
if ver == '3.8.0':
|
||||
@@ -233,6 +300,11 @@ class Aomp(Package):
|
||||
destination='aomp-dir',
|
||||
placement='opencl-on-vdi',
|
||||
when='@3.5.0')
|
||||
|
||||
# Copy source files over for debug build in 3.9.0
|
||||
patch('0001-Add-cmake-option-for-copying-source-for-debugging.patch',
|
||||
working_dir='aomp-dir/amd-llvm-project', when='@3.9.0:')
|
||||
|
||||
# Revert back to .amdgcn.bc naming scheme for 3.8.0
|
||||
patch('0001-Add-amdgcn-to-devicelibs-bitcode-names-3.8.patch',
|
||||
working_dir='aomp-dir/amd-llvm-project', when='@3.8.0')
|
||||
@@ -256,8 +328,14 @@ def patch(self):
|
||||
src = self.stage.source_path
|
||||
libomptarget = '{0}/aomp-dir/amd-llvm-project/openmp/libomptarget'
|
||||
aomp_extras = '{0}/aomp-dir/aomp-extras/aomp-device-libs'
|
||||
flang = '{0}/aomp-dir/flang/'
|
||||
|
||||
if self.spec.version == Version('3.8.0'):
|
||||
if self.spec.version >= Version('3.9.0'):
|
||||
filter_file(
|
||||
'ADDITIONAL_VERSIONS 2.7', 'ADDITIONAL_VERSIONS 3',
|
||||
flang.format(src) + 'CMakeLists.txt')
|
||||
|
||||
if self.spec.version >= Version('3.8.0'):
|
||||
filter_file(
|
||||
'{CMAKE_INSTALL_PREFIX}', '{HSA_INCLUDE}',
|
||||
libomptarget.format(src) + '/hostrpc/services/CMakeLists.txt')
|
||||
@@ -330,6 +408,13 @@ def patch(self):
|
||||
'-Wl,-rpath,${COMGR_LIB}',
|
||||
libomptarget.format(src) + '/plugins/hsa/CMakeLists.txt')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
devlibs_prefix = self.spec['rocm-device-libs'].prefix
|
||||
aomp_prefix = self.spec['aomp'].prefix
|
||||
env.set('HIP_DEVICE_LIB_PATH',
|
||||
'{0}/amdgcn/bitcode'.format(format(devlibs_prefix)))
|
||||
env.set('AOMP', '{0}'.format(format(aomp_prefix)))
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
aomp_prefix = self.spec['aomp'].prefix
|
||||
env.set('AOMP', '{0}'.format(format(aomp_prefix)))
|
||||
@@ -347,7 +432,15 @@ def install(self, spec, prefix):
|
||||
hsakmt_prefix = self.spec['hsakmt-roct'].prefix
|
||||
comgr_prefix = self.spec['comgr'].prefix
|
||||
opencl_src = '/aomp-dir/opencl-on-vdi/api/opencl'
|
||||
omp_src = '/aomp-dir/amd-llvm-project/openmp'
|
||||
debug_map = '-fdebug-prefix-map={0}{1}={2}'
|
||||
debug_map_format = debug_map.format(src, omp_src, aomp_prefix)
|
||||
components = dict()
|
||||
if self.spec.version >= Version('3.9.0'):
|
||||
bitcode_dir = '/amdgcn/bitcode'
|
||||
else:
|
||||
bitcode_dir = '/lib'
|
||||
|
||||
components['amd-llvm-project'] = [
|
||||
'../aomp-dir/amd-llvm-project/llvm',
|
||||
'-DLLVM_ENABLE_PROJECTS=clang;lld;compiler-rt',
|
||||
@@ -388,15 +481,16 @@ def install(self, spec, prefix):
|
||||
components['aomp-extras'] = [
|
||||
'../aomp-dir/aomp-extras',
|
||||
'-DROCM_PATH=$ROCM_DIR ',
|
||||
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
|
||||
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
|
||||
'-DAOMP_STANDALONE_BUILD=0',
|
||||
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src)
|
||||
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
|
||||
'-DCMAKE_VERBOSE_MAKEFILE=1'
|
||||
]
|
||||
|
||||
components['openmp'] = [
|
||||
'../aomp-dir/amd-llvm-project/openmp',
|
||||
'-DROCM_DIR={0}'.format(hsa_prefix),
|
||||
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
|
||||
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
|
||||
'-DAOMP_STANDALONE_BUILD=0',
|
||||
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
|
||||
'-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
|
||||
@@ -416,7 +510,7 @@ def install(self, spec, prefix):
|
||||
components['openmp-debug'] = [
|
||||
'../aomp-dir/amd-llvm-project/openmp',
|
||||
'-DROCM_DIR={0}'.format(hsa_prefix),
|
||||
'-DDEVICE_LIBS_DIR={0}/lib'.format(devlibs_prefix),
|
||||
'-DDEVICE_LIBS_DIR={0}{1}'.format(devlibs_prefix, bitcode_dir),
|
||||
'-DAOMP_STANDALONE_BUILD=0',
|
||||
'-DDEVICELIBS_ROOT={0}/aomp-dir/rocm-device-libs'.format(src),
|
||||
'-DOPENMP_TEST_C_COMPILER=$AOMP/bin/clang',
|
||||
@@ -434,7 +528,13 @@ def install(self, spec, prefix):
|
||||
'-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1'
|
||||
]
|
||||
|
||||
if self.spec.version == Version('3.8.0'):
|
||||
if self.spec.version >= Version('3.9.0'):
|
||||
components['openmp-debug'] += [
|
||||
'-DENABLE_SOURCE_COPY=ON',
|
||||
'-DOPENMP_SOURCE_DEBUG_MAP={0}'.format(debug_map_format),
|
||||
]
|
||||
|
||||
if self.spec.version >= Version('3.8.0'):
|
||||
components['openmp-debug'] += [
|
||||
'-DLIBOMP_ARCH=x86_64',
|
||||
'-DLIBOMP_OMP_VERSION=50',
|
||||
|
||||
@@ -12,7 +12,7 @@ class AwsParallelcluster(PythonPackage):
|
||||
tool to deploy and manage HPC clusters in the AWS cloud."""
|
||||
|
||||
homepage = "https://github.com/aws/aws-parallelcluster"
|
||||
url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.9.1.tar.gz"
|
||||
url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.10.0.tar.gz"
|
||||
|
||||
maintainers = [
|
||||
'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn',
|
||||
@@ -23,6 +23,7 @@ class AwsParallelcluster(PythonPackage):
|
||||
'pcluster.config', 'pcluster.networking'
|
||||
]
|
||||
|
||||
version('2.10.0', sha256='a7a27871b4f54cb913b0c1233e675131e9b2099549af0840d32c36b7e91b104b')
|
||||
version('2.9.1', sha256='12dc22286cd447a16931f1f8619bdd47d4543fd0de7905d52b6c6f83ff9db8a3')
|
||||
version('2.9.0', sha256='e98a8426bc46aca0860d9a2be89bbc4a90aab3ed2f60ca6c385b595fbbe79a78')
|
||||
version('2.8.1', sha256='c183dc3f053bc2445db724e561cea7f633dd5e7d467a7b3f9b2f2f703f7d5d49')
|
||||
@@ -33,29 +34,33 @@ class AwsParallelcluster(PythonPackage):
|
||||
version('2.5.1', sha256='4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303')
|
||||
version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3')
|
||||
|
||||
# common deps
|
||||
depends_on('python@2.7:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-future@0.16.0:0.18.2', type=('build', 'run'))
|
||||
|
||||
depends_on('py-ipaddress@1.0.22:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-configparser@3.5.0:3.8.1', when='^python@:2', type=('build', 'run'))
|
||||
|
||||
# 2.9.x changes
|
||||
depends_on('py-tabulate@0.8.2:0.8.3', when='@:2.8', type=('build', 'run'))
|
||||
depends_on('py-tabulate@0.8.5', when='@2.9: ^python@3.0:3.4', type=('build', 'run'))
|
||||
depends_on('py-tabulate@0.8.2:0.8.7', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-pyyaml@5.2', when='@2.6:2.8 ^python@3.0:3.4', type=('build', 'run'))
|
||||
depends_on('py-pyyaml@5.3.1:', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-jinja2@2.10.1', when='@2.9: ^python@3.0:3.4', type=('build', 'run'))
|
||||
depends_on('py-jinja2@2.11.0:', when='@2.9: ^python@:2,3.5:', type=('build', 'run'))
|
||||
|
||||
# 2.8.x changes
|
||||
depends_on('py-boto3@1.14.3:', when='@2.8:', type=('build', 'run'))
|
||||
depends_on('py-boto3@1.16.14:', when='@2.10:', type=('build', 'run'))
|
||||
depends_on('py-boto3@1.14.3:', when='@2.8:2.9', type=('build', 'run'))
|
||||
depends_on('py-boto3@1.10.15:', when='@:2.7', type=('build', 'run'))
|
||||
|
||||
# 2.6.x changes
|
||||
depends_on('py-setuptools', when='@2.6:', type=('build', 'run'))
|
||||
|
||||
depends_on('py-enum34@1.1.6:', when='@2.6: ^python@:3.3', type=('build', 'run'))
|
||||
depends_on('py-enum34@1.1.6:', when='@:2.5', type=('build', 'run'))
|
||||
|
||||
depends_on('py-pyyaml@5.1.2', when='@2.6: ^python@:2,3.5:', type=('build', 'run'))
|
||||
depends_on('py-pyyaml@5.1.2:', when='@:2.5', type=('build', 'run'))
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ class Botan(Package):
|
||||
|
||||
maintainers = ['aumuell']
|
||||
|
||||
version('2.17.2', sha256='ebe27dfe2b55d7e02bf520e926606c48b76b22facb483256b13ab38e018e1e6c')
|
||||
version('2.17.1', sha256='741358b3f1638ed7d9b2f59b4e344aa46f4966b15958b5434c0ac1580df0c0c1')
|
||||
version('2.17.0', sha256='b97044b312aa718349af7851331b064bc7bd5352400d5f80793bace427d01343')
|
||||
version('2.16.0', sha256='92ed6ebc918d86bd1b04221ca518af4cf29cc326c4760740bd2d22e61cea2628')
|
||||
version('2.15.0', sha256='d88af1307f1fefac79aa4f2f524699478d69ce15a857cf2d0a90ac6bf2a50009')
|
||||
version('2.14.0', sha256='0c10f12b424a40ee19bde00292098e201d7498535c062d8d5b586d07861a54b5')
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Camp(CMakePackage, CudaPackage):
|
||||
class Camp(CMakePackage, CudaPackage, HipPackage):
|
||||
"""
|
||||
Compiler agnostic metaprogramming library providing concepts,
|
||||
type operations and tuples for C++ and cuda
|
||||
@@ -22,27 +22,6 @@ class Camp(CMakePackage, CudaPackage):
|
||||
depends_on('cmake@3.8:', type='build')
|
||||
depends_on('cmake@3.9:', type='build', when="+cuda")
|
||||
|
||||
variant('hip', default=False, description='Enable HIP support')
|
||||
|
||||
# possible amd gpu targets for hip builds
|
||||
# TODO: we should add a hip build system description equivalent to
|
||||
# lib/spack/spack/build_systems/cuda.py, where possible hip amd gpu
|
||||
# architectures are defined in a similar way as for cuda gpu
|
||||
# architectures. In the meantime, require users to define
|
||||
# amd gpu type for hip builds with a variant here.
|
||||
amdgpu_targets = (
|
||||
'gfx701', 'gfx801', 'gfx802', 'gfx803',
|
||||
'gfx900', 'gfx906', 'gfx908', 'gfx1010',
|
||||
'gfx1011', 'gfx1012', 'none'
|
||||
)
|
||||
variant('amdgpu_target', default='none', values=amdgpu_targets)
|
||||
|
||||
depends_on('llvm-amdgpu', when='+hip')
|
||||
depends_on('hip', when='+hip')
|
||||
|
||||
# need amd gpu type for hip builds
|
||||
conflicts('amdgpu_target=none', when='+hip')
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
@@ -66,7 +45,7 @@ def cmake_args(self):
|
||||
options.extend([
|
||||
'-DENABLE_HIP=ON',
|
||||
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
|
||||
'-DHIP_HCC_FLAGS=--amdgpu-target={0}'.format(arch)])
|
||||
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
|
||||
else:
|
||||
options.append('-DENABLE_HIP=OFF')
|
||||
|
||||
|
||||
@@ -31,6 +31,8 @@ class CcsQcd(MakefilePackage):
|
||||
homepage = "https://github.com/fiber-miniapp/ccs-qcd"
|
||||
git = "https://github.com/fiber-miniapp/ccs-qcd.git"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('master', branch='master')
|
||||
version('1.2.1', commit='d7c6b6923f35a824e997ba8db5bd12dc20dda45c')
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
from spack import *
|
||||
|
||||
|
||||
class Chai(CMakePackage, CudaPackage):
|
||||
class Chai(CMakePackage, CudaPackage, HipPackage):
|
||||
"""
|
||||
Copy-hiding array interface for data migration between memory spaces
|
||||
"""
|
||||
@@ -36,6 +36,15 @@ class Chai(CMakePackage, CudaPackage):
|
||||
depends_on('umpire+cuda', when="+cuda")
|
||||
depends_on('raja+cuda', when="+raja+cuda")
|
||||
|
||||
# variants +hip and amdgpu_targets are not automatically passed to
|
||||
# dependencies, so do it manually.
|
||||
amdgpu_targets = HipPackage.amd_gputargets_list()
|
||||
depends_on('umpire+hip', when='+hip')
|
||||
depends_on('raja+hip', when="+raja+hip")
|
||||
for val in amdgpu_targets:
|
||||
depends_on('umpire amdgpu_target=%s' % val, when='amdgpu_target=%s' % val)
|
||||
depends_on('raja amdgpu_target=%s' % val, when='+raja amdgpu_target=%s' % val)
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
@@ -54,6 +63,15 @@ def cmake_args(self):
|
||||
else:
|
||||
options.append('-DENABLE_CUDA=OFF')
|
||||
|
||||
if '+hip' in spec:
|
||||
arch = self.spec.variants['amdgpu_target'].value
|
||||
options.extend([
|
||||
'-DENABLE_HIP=ON',
|
||||
'-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix),
|
||||
'-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'.format(arch)])
|
||||
else:
|
||||
options.append('-DENABLE_HIP=OFF')
|
||||
|
||||
if '+raja' in spec:
|
||||
options.extend(['-DENABLE_RAJA_PLUGIN=ON',
|
||||
'-DRAJA_DIR=' + spec['raja'].prefix])
|
||||
@@ -64,6 +82,13 @@ def cmake_args(self):
|
||||
options.append('-DENABLE_TESTS={0}'.format(
|
||||
'ON' if self.run_tests else 'OFF'))
|
||||
|
||||
# give clear error for conflict between self.run_tests and
|
||||
# benchmarks variant.
|
||||
if not self.run_tests and '+benchmarks' in spec:
|
||||
raise InstallError(
|
||||
'ENABLE_BENCHMARKS requires ENABLE_TESTS to be ON'
|
||||
)
|
||||
|
||||
options.append('-DENABLE_BENCHMARKS={0}'.format(
|
||||
'ON' if '+benchmarks' in spec else 'OFF'))
|
||||
|
||||
|
||||
@@ -17,11 +17,13 @@ class Charmpp(Package):
|
||||
allows programs to run portably from small multicore computers
|
||||
(your laptop) to the largest supercomputers."""
|
||||
|
||||
homepage = "http://charmplusplus.org"
|
||||
url = "http://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
|
||||
homepage = "https://charmplusplus.org"
|
||||
url = "https://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
|
||||
git = "https://github.com/UIUC-PPL/charm.git"
|
||||
|
||||
version("develop", branch="master")
|
||||
maintainers = ["matthiasdiener"]
|
||||
|
||||
version("master", branch="master")
|
||||
|
||||
version('6.10.2', sha256='7abb4cace8aebdfbb8006eac03eb766897c009cfb919da0d0a33f74c3b4e6deb')
|
||||
version('6.10.1', sha256='ab96198105daabbb8c8bdf370f87b0523521ce502c656cb6cd5b89f69a2c70a8')
|
||||
@@ -37,7 +39,7 @@ class Charmpp(Package):
|
||||
version("6.5.1", sha256="68aa43e2a6e476e116a7e80e385c25c6ac6497807348025505ba8bfa256ed34a")
|
||||
|
||||
# Support OpenMPI; see
|
||||
# <https://charm.cs.illinois.edu/redmine/issues/1206>
|
||||
# <https://github.com/UIUC-PPL/charm/issues/1206>
|
||||
# Patch is no longer needed in versions 6.8.0+
|
||||
patch("mpi.patch", when="@:6.7.1")
|
||||
|
||||
@@ -147,17 +149,12 @@ def charmarch(self):
|
||||
("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64",
|
||||
("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64",
|
||||
("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64",
|
||||
("linux", "i386", "mpi"): "mpi-linux",
|
||||
("linux", "i386", "multicore"): "multicore-linux",
|
||||
("linux", "i386", "netlrts"): "netlrts-linux",
|
||||
("linux", "i386", "uth"): "uth-linux",
|
||||
("linux", "x86_64", "mpi"): "mpi-linux-x86_64",
|
||||
("linux", "x86_64", "multicore"): "multicore-linux-x86_64",
|
||||
("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64",
|
||||
("linux", "x86_64", "verbs"): "verbs-linux-x86_64",
|
||||
("linux", "x86_64", "ofi"): "ofi-linux-x86_64",
|
||||
("linux", "x86_64", "ucx"): "ucx-linux-x86_64",
|
||||
("linux", "x86_64", "uth"): "uth-linux-x86_64",
|
||||
("linux", "ppc", "mpi"): "mpi-linux-ppc",
|
||||
("linux", "ppc", "multicore"): "multicore-linux-ppc",
|
||||
("linux", "ppc", "netlrts"): "netlrts-linux-ppc",
|
||||
@@ -173,6 +170,21 @@ def charmarch(self):
|
||||
("cnl", "x86_64", "gni"): "gni-crayxc",
|
||||
("cnl", "x86_64", "mpi"): "mpi-crayxc",
|
||||
}
|
||||
|
||||
# Some versions were renamed/removed in 6.11
|
||||
if self.spec.version < Version("6.11.0"):
|
||||
versions.update({("linux", "i386", "mpi"): "mpi-linux"})
|
||||
versions.update({("linux", "i386", "multicore"):
|
||||
"multicore-linux"})
|
||||
versions.update({("linux", "i386", "netlrts"): "netlrts-linux"})
|
||||
versions.update({("linux", "i386", "uth"): "uth-linux"})
|
||||
else:
|
||||
versions.update({("linux", "i386", "mpi"): "mpi-linux-i386"})
|
||||
versions.update({("linux", "i386", "multicore"):
|
||||
"multicore-linux-i386"})
|
||||
versions.update({("linux", "i386", "netlrts"):
|
||||
"netlrts-linux-i386"})
|
||||
|
||||
if (plat, mach, comm) not in versions:
|
||||
raise InstallError(
|
||||
"The communication mechanism %s is not supported "
|
||||
@@ -301,7 +313,10 @@ def install(self, spec, prefix):
|
||||
os.rename(tmppath, filepath)
|
||||
except (IOError, OSError):
|
||||
pass
|
||||
shutil.rmtree(join_path(builddir, "tmp"))
|
||||
|
||||
tmp_path = join_path(builddir, "tmp")
|
||||
if not os.path.islink(tmp_path):
|
||||
shutil.rmtree(tmp_path)
|
||||
|
||||
if self.spec.satisfies('@6.9.99'):
|
||||
# A broken 'doc' link in the prefix can break the build.
|
||||
@@ -315,8 +330,8 @@ def install(self, spec, prefix):
|
||||
@run_after('install')
|
||||
@on_package_attributes(run_tests=True)
|
||||
def check_build(self):
|
||||
make('-C', join_path(self.stage.source_path, 'charm/tests'),
|
||||
'test', parallel=False)
|
||||
make('-C', join_path(self.stage.source_path, 'tests'),
|
||||
'test', 'TESTOPTS=++local', parallel=False)
|
||||
|
||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||
env.set('MPICC', self.prefix.bin.ampicc)
|
||||
|
||||
@@ -14,8 +14,11 @@ class Clhep(CMakePackage):
|
||||
list_url = "https://proj-clhep.web.cern.ch/proj-clhep/"
|
||||
list_depth = 1
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
version('2.4.4.0', sha256='5df78c11733a091da9ae5a24ce31161d44034dd45f20455587db85f1ca1ba539')
|
||||
version('2.4.1.3', sha256='27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913')
|
||||
version('2.4.1.2', sha256='ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8')
|
||||
version('2.4.1.0', sha256='d14736eb5c3d21f86ce831dc1afcf03d423825b35c84deb6f8fd16773528c54d')
|
||||
|
||||
@@ -11,11 +11,12 @@ class Cmake(Package):
|
||||
tools designed to build, test and package software.
|
||||
"""
|
||||
homepage = 'https://www.cmake.org'
|
||||
url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz'
|
||||
url = 'https://github.com/Kitware/CMake/releases/download/v3.19.0/cmake-3.19.0.tar.gz'
|
||||
maintainers = ['chuckatkins']
|
||||
|
||||
executables = ['^cmake$']
|
||||
|
||||
version('3.19.0', sha256='fdda688155aa7e72b7c63ef6f559fca4b6c07382ea6dca0beb5f45aececaf493')
|
||||
version('3.18.4', sha256='597c61358e6a92ecbfad42a9b5321ddd801fc7e7eca08441307c9138382d4f77')
|
||||
version('3.18.3', sha256='2c89f4e30af4914fd6fb5d00f863629812ada848eee4e2d29ec7e456d7fa32e5')
|
||||
version('3.18.2', sha256='5d4e40fc775d3d828c72e5c45906b4d9b59003c9433ff1b36a1cb552bbd51d7e')
|
||||
|
||||
@@ -12,6 +12,8 @@ class Collier(CMakePackage):
|
||||
homepage = "https://collier.hepforge.org"
|
||||
url = "https://collier.hepforge.org/downloads/?f=collier-1.2.5.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('1.2.5', sha256='3ec58a975ff0c3b1ca870bc38973476c923ff78fd3dd5850e296037852b94a8b')
|
||||
version('1.2.4', sha256='92ae8f61461b232fbd47a6d8e832e1a726d504f9390b7edc49a68fceedff8857')
|
||||
version('1.2.3', sha256='e6f72df223654df59113b0067a4bebe9f8c20227bb81371d3193e1557bdf56fb')
|
||||
|
||||
@@ -37,7 +37,11 @@ class Conduit(Package):
|
||||
url = "https://github.com/LLNL/conduit/releases/download/v0.3.0/conduit-v0.3.0-src-with-blt.tar.gz"
|
||||
git = "https://github.com/LLNL/conduit.git"
|
||||
|
||||
version('master', branch='master', submodules=True, preferred=True)
|
||||
version('develop', branch='develop', submodules=True, preferred=True)
|
||||
# note: the main branch in conduit was renamed to develop, this next entry
|
||||
# is to bridge any spack dependencies that are still using the name master
|
||||
version('master', branch='develop', submodules=True)
|
||||
version('0.6.0', sha256='078f086a13b67a97e4ab6fe1063f2fef2356df297e45b43bb43d74635f80475d')
|
||||
version('0.5.1', sha256='68a3696d1ec6d3a4402b44a464d723e6529ec41016f9b44c053676affe516d44')
|
||||
version('0.5.0', sha256='7efac668763d02bd0a2c0c1b134d9f5ee27e99008183905bb0512e5502b8b4fe')
|
||||
version('0.4.0', sha256='c228e6f0ce5a9c0ffb98e0b3d886f2758ace1a4b40d00f3f118542c0747c1f52')
|
||||
|
||||
@@ -5,6 +5,137 @@
|
||||
|
||||
import os
|
||||
from spack import *
|
||||
import platform
|
||||
|
||||
_versions = {
|
||||
# cuDNN 8.0.4
|
||||
'8.0.4.30-11.1': {
|
||||
'Linux-x86_64': '8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab',
|
||||
'Linux-ppc64le': 'b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712'},
|
||||
'8.0.4.30-11.0': {
|
||||
'Linux-x86_64': '38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35',
|
||||
'Linux-ppc64le': '8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1'},
|
||||
'8.0.4.30-10.2': {
|
||||
'Linux-x86_64': 'c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e',
|
||||
'Linux-ppc64le': '32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e'},
|
||||
'8.0.4.30-10.1': {
|
||||
'Linux-x86_64': 'eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715',
|
||||
'Linux-ppc64le': '690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9'},
|
||||
|
||||
# cuDNN 8.0.3
|
||||
'8.0.3.33-11.0': {
|
||||
'Linux-x86_64': '8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a',
|
||||
'Linux-ppc64le': 'c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d'},
|
||||
'8.0.3.33-10.2': {
|
||||
'Linux-x86_64': 'b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc',
|
||||
'Linux-ppc64le': 'ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11'},
|
||||
'8.0.3.33-10.1': {
|
||||
'Linux-x86_64': '4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07',
|
||||
'Linux-ppc64le': 'c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3'},
|
||||
|
||||
# cuDNN 8.0.2
|
||||
'8.0.2.39-11.0': {
|
||||
'Linux-x86_64': '672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345',
|
||||
'Linux-ppc64le': 'b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057'},
|
||||
'8.0.2.39-10.2': {
|
||||
'Linux-x86_64': 'c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f',
|
||||
'Linux-ppc64le': 'c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262'},
|
||||
'8.0.2.39-10.1': {
|
||||
'Linux-x86_64': '82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d',
|
||||
'Linux-ppc64le': '8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9'},
|
||||
|
||||
# cuDNN 8.0
|
||||
'8.0.0.180-11.0': {
|
||||
'Linux-x86_64': '9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e',
|
||||
'Linux-ppc64le': '1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060'},
|
||||
'8.0.0.180-10.2': {
|
||||
'Linux-x86_64': '0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d',
|
||||
'Linux-ppc64le': '59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f'},
|
||||
|
||||
# cuDNN 7.6.5
|
||||
'7.6.5.32-10.2': {
|
||||
'Linux-x86_64': '600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20',
|
||||
'Linux-ppc64le': '7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b'},
|
||||
'7.6.5.32-10.1': {
|
||||
'Linux-x86_64': '7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3',
|
||||
'Darwin-x86_64': '8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff',
|
||||
'Linux-ppc64le': '97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56'},
|
||||
|
||||
'7.6.5.32-10.0': {
|
||||
'Linux-x86_64': '28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba',
|
||||
'Darwin-x86_64': '6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47',
|
||||
'Linux-ppc64le': 'b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b'},
|
||||
|
||||
'7.6.5.32-9.2': {
|
||||
'Linux-x86_64': 'a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4',
|
||||
'Linux-ppc64le': 'a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76'},
|
||||
|
||||
'7.6.5.32-9.0': {
|
||||
'Linux-x86_64': 'bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8'},
|
||||
|
||||
# cuDNN 7.6.4
|
||||
'7.6.4.38-10.1': {
|
||||
'Linux-x86_64': '32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099',
|
||||
'Darwin-x86_64': 'bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236',
|
||||
'Linux-ppc64le': 'f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce'},
|
||||
|
||||
'7.6.4.38-10.0': {
|
||||
'Linux-x86_64': '417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf',
|
||||
'Darwin-x86_64': 'af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1',
|
||||
'Linux-ppc64le': 'c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb'},
|
||||
|
||||
'7.6.4.38-9.2': {
|
||||
'Linux-x86_64': 'c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27',
|
||||
'Linux-ppc64le': '98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884'},
|
||||
|
||||
'7.6.4.38-9.0': {
|
||||
'Linux-x86_64': '8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d'},
|
||||
|
||||
# cuDNN 7.6.3
|
||||
'7.6.3.30-10.1': {
|
||||
'Linux-x86_64': '352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961',
|
||||
'Linux-ppc64le': 'f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee'},
|
||||
|
||||
# cuDNN 7.5.1
|
||||
'7.5.1.10-10.1': {
|
||||
'Linux-x86_64': '2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0',
|
||||
'Linux-ppc64le': 'a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663'},
|
||||
|
||||
'7.5.1.10-10.0': {
|
||||
'Linux-x86_64': 'c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985',
|
||||
'Linux-ppc64le': 'd9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70'},
|
||||
|
||||
# cuDNN 7.5.0
|
||||
'7.5.0.56-10.1': {
|
||||
'Linux-x86_64': 'c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8',
|
||||
'Linux-ppc64le': '15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638'},
|
||||
|
||||
'7.5.0.56-10.0': {
|
||||
'Linux-x86_64': '701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781',
|
||||
'Linux-ppc64le': 'f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a'},
|
||||
|
||||
# cuDNN 7.3.0
|
||||
'7.3.0.29-9.0': {
|
||||
'Linux-x86_64': '403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b'},
|
||||
|
||||
# cuDNN 7.2.1
|
||||
'7.2.1.38-9.0': {
|
||||
'Linux-x86_64': 'cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37'},
|
||||
|
||||
# cuDNN 7.1.3
|
||||
'7.1.3-9.1': {
|
||||
'Linux-x86_64': 'dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228',
|
||||
'Linux-ppc64le': 'e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931'},
|
||||
|
||||
# cuDNN 6.0
|
||||
'6.0-8.0': {
|
||||
'Linux-x86_64': '9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c'},
|
||||
|
||||
# cuDNN 5.1
|
||||
'5.1-8.0': {
|
||||
'Linux-x86_64': 'c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce'},
|
||||
|
||||
}
|
||||
|
||||
|
||||
class Cudnn(Package):
|
||||
@@ -20,214 +151,26 @@ class Cudnn(Package):
|
||||
# Note that download links don't work from command line,
|
||||
# need to use modified URLs like in url_for_version.
|
||||
|
||||
maintainers = ['adamjstewart']
|
||||
maintainers = ['adamjstewart', 'bvanessen']
|
||||
|
||||
# cudNN 8.0.4
|
||||
version('8.0.4.30-11.1-linux-x64',
|
||||
sha256='8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab')
|
||||
version('8.0.4.30-11.1-linux-ppc64le',
|
||||
sha256='b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712')
|
||||
version('8.0.4.30-11.0-linux-x64',
|
||||
sha256='38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35',
|
||||
preferred=True)
|
||||
version('8.0.4.30-11.0-linux-ppc64le',
|
||||
sha256='8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1')
|
||||
version('8.0.4.30-10.2-linux-x64',
|
||||
sha256='c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e')
|
||||
version('8.0.4.30-10.2-linux-ppc64le',
|
||||
sha256='32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e')
|
||||
version('8.0.4.30-10.1-linux-x64',
|
||||
sha256='eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715')
|
||||
version('8.0.4.30-10.1-linux-ppc64le',
|
||||
sha256='690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9')
|
||||
|
||||
# cuDNN 8.0.3
|
||||
version('8.0.3.33-11.0-linux-x64',
|
||||
sha256='8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a')
|
||||
version('8.0.3.33-11.0-linux-ppc64le',
|
||||
sha256='c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d')
|
||||
version('8.0.3.33-10.2-linux-x64',
|
||||
sha256='b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc')
|
||||
version('8.0.3.33-10.2-linux-ppc64le',
|
||||
sha256='ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11')
|
||||
version('8.0.3.33-10.1-linux-x64',
|
||||
sha256='4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07')
|
||||
version('8.0.3.33-10.1-linux-ppc64le',
|
||||
sha256='c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3')
|
||||
|
||||
# cuDNN 8.0.2
|
||||
version('8.0.2.39-11.0-linux-x64',
|
||||
sha256='672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345')
|
||||
version('8.0.2.39-11.0-linux-ppc64le',
|
||||
sha256='b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057')
|
||||
version('8.0.2.39-10.2-linux-x64',
|
||||
sha256='c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f')
|
||||
version('8.0.2.39-10.2-linux-ppc64le',
|
||||
sha256='c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262')
|
||||
version('8.0.2.39-10.1-linux-x64',
|
||||
sha256='82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d')
|
||||
version('8.0.2.39-10.1-linux-ppc64le',
|
||||
sha256='8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9')
|
||||
|
||||
# cuDNN 8.0
|
||||
version('8.0.0.180-11.0-linux-x64',
|
||||
sha256='9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e')
|
||||
version('8.0.0.180-11.0-linux-ppc64le',
|
||||
sha256='1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060')
|
||||
version('8.0.0.180-10.2-linux-x64',
|
||||
sha256='0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d')
|
||||
version('8.0.0.180-10.2-linux-ppc64le',
|
||||
sha256='59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f')
|
||||
|
||||
# cuDNN 7.6.5
|
||||
version('7.6.5.32-10.2-linux-x64',
|
||||
sha256='600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20')
|
||||
version('7.6.5.32-10.2-linux-ppc64le',
|
||||
sha256='7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b')
|
||||
version('7.6.5.32-10.1-linux-x64',
|
||||
sha256='7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3')
|
||||
version('7.6.5.32-10.1-osx-x64',
|
||||
sha256='8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff')
|
||||
version('7.6.5.32-10.1-linux-ppc64le',
|
||||
sha256='97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56')
|
||||
|
||||
version('7.6.5.32-10.0-linux-x64',
|
||||
sha256='28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba')
|
||||
version('7.6.5.32-10.0-osx-x64',
|
||||
sha256='6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47')
|
||||
version('7.6.5.32-10.0-linux-ppc64le',
|
||||
sha256='b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b')
|
||||
|
||||
version('7.6.5.32-9.2-linux-x64',
|
||||
sha256='a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4')
|
||||
version('7.6.5.32-9.2-linux-ppc64le',
|
||||
sha256='a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76')
|
||||
|
||||
version('7.6.5.32-9.0-linux-x64',
|
||||
sha256='bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8')
|
||||
|
||||
# cuDNN 7.6.4
|
||||
version('7.6.4.38-10.1-linux-x64',
|
||||
sha256='32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099')
|
||||
version('7.6.4.38-10.1-osx-x64',
|
||||
sha256='bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236')
|
||||
version('7.6.4.38-10.1-linux-ppc64le',
|
||||
sha256='f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce')
|
||||
|
||||
version('7.6.4.38-10.0-linux-x64',
|
||||
sha256='417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf')
|
||||
version('7.6.4.38-10.0-osx-x64',
|
||||
sha256='af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1')
|
||||
version('7.6.4.38-10.0-linux-ppc64le',
|
||||
sha256='c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb')
|
||||
|
||||
version('7.6.4.38-9.2-linux-x64',
|
||||
sha256='c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27')
|
||||
version('7.6.4.38-9.2-linux-ppc64le',
|
||||
sha256='98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884')
|
||||
|
||||
version('7.6.4.38-9.0-linux-x64',
|
||||
sha256='8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d')
|
||||
|
||||
# cuDNN 7.6.3
|
||||
version('7.6.3.30-10.1-linux-x64',
|
||||
sha256='352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961')
|
||||
version('7.6.3.30-10.1-linux-ppc64le',
|
||||
sha256='f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee')
|
||||
|
||||
# cuDNN 7.5.1
|
||||
version('7.5.1.10-10.1-linux-x64',
|
||||
sha256='2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0')
|
||||
version('7.5.1.10-10.1-linux-ppc64le',
|
||||
sha256='a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663')
|
||||
|
||||
version('7.5.1.10-10.0-linux-x64',
|
||||
sha256='c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985')
|
||||
version('7.5.1.10-10.0-linux-ppc64le',
|
||||
sha256='d9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70')
|
||||
|
||||
# cuDNN 7.5.0
|
||||
version('7.5.0.56-10.1-linux-x64',
|
||||
sha256='c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8')
|
||||
version('7.5.0.56-10.1-linux-ppc64le',
|
||||
sha256='15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638')
|
||||
|
||||
version('7.5.0.56-10.0-linux-x64',
|
||||
sha256='701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781')
|
||||
version('7.5.0.56-10.0-linux-ppc64le',
|
||||
sha256='f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a')
|
||||
|
||||
# cuDNN 7.3.0
|
||||
version('7.3.0.29-9.0-linux-x64',
|
||||
sha256='403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b')
|
||||
|
||||
# cuDNN 7.2.1
|
||||
version('7.2.1.38-9.0-linux-x64',
|
||||
sha256='cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37')
|
||||
|
||||
# cuDNN 7.1.3
|
||||
version('7.1.3-9.1-linux-x64',
|
||||
sha256='dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228')
|
||||
version('7.1.3-9.1-linux-ppc64le',
|
||||
sha256='e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931')
|
||||
|
||||
# cuDNN 6.0
|
||||
version('6.0-8.0-linux-x64',
|
||||
sha256='9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c')
|
||||
|
||||
# cuDNN 5.1
|
||||
version('5.1-8.0-linux-x64',
|
||||
sha256='c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce')
|
||||
|
||||
# CUDA 10.2
|
||||
depends_on('cuda@10.2.0:10.2.999', when='@7.6.5.32-10.2-linux-x64')
|
||||
|
||||
# CUDA 10.1
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-osx-x64')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-linux-x64')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.5.32-10.1-linux-ppc64le')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-osx-x64')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-linux-x64')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.4.38-10.1-linux-ppc64le')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.3.30-10.1-linux-x64')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.6.3.30-10.1-linux-ppc64le')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.5.0.56-10.1-linux-x64')
|
||||
depends_on('cuda@10.1.0:10.1.999', when='@7.5.0.56-10.1-linux-ppc64le')
|
||||
|
||||
# CUDA 10.0
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-osx-x64')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-linux-x64')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.6.5.32-10.0-linux-ppc64le')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-osx-x64')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-linux-x64')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.6.4.38-10.0-linux-ppc64le')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.5.1.10-10.0-linux-x64')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.5.1.10-10.0-linux-ppc64le')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.5.0.56-10.0-linux-x64')
|
||||
depends_on('cuda@10.0.0:10.0.999', when='@7.5.0.56-10.0-linux-ppc64le')
|
||||
|
||||
# CUDA 9.2
|
||||
depends_on('cuda@9.2.0:9.2.999', when='@7.6.5.32-9.2-linux-x64')
|
||||
depends_on('cuda@9.2.0:9.2.999', when='@7.6.5.32-9.2-linux-ppc64le')
|
||||
depends_on('cuda@9.2.0:9.2.999', when='@7.6.4.38-9.2-linux-x64')
|
||||
depends_on('cuda@9.2.0:9.2.999', when='@7.6.4.38-9.2-linux-ppc64le')
|
||||
|
||||
# CUDA 9.1
|
||||
depends_on('cuda@9.1.0:9.1.999', when='@7.1.3-9.1-linux-x64')
|
||||
depends_on('cuda@9.1.0:9.1.999', when='@7.1.3-9.1-linux-ppc64le')
|
||||
|
||||
# CUDA 9.0
|
||||
depends_on('cuda@9.0.0:9.0.999', when='@7.6.5.32-9.0-linux-x64')
|
||||
depends_on('cuda@9.0.0:9.0.999', when='@7.6.4.38-9.0-linux-x64')
|
||||
depends_on('cuda@9.0.0:9.0.999', when='@7.3.0.29-9.0-linux-x64')
|
||||
depends_on('cuda@9.0.0:9.0.999', when='@7.2.1.38-9.0-linux-x64')
|
||||
|
||||
# CUDA 8.0
|
||||
depends_on('cuda@8.0.0:8.0.999', when='@6.0-8.0-linux-x64')
|
||||
depends_on('cuda@8.0.0:8.0.999', when='@5.1-8.0-linux-x64')
|
||||
for ver, packages in _versions.items():
|
||||
key = "{0}-{1}".format(platform.system(), platform.machine())
|
||||
pkg = packages.get(key)
|
||||
cudnn_ver, cuda_ver = ver.split('-')
|
||||
long_ver = "{0}-{1}".format(cudnn_ver, cuda_ver)
|
||||
if pkg:
|
||||
version(long_ver, sha256=pkg)
|
||||
# Add constraints matching CUDA version to cuDNN version
|
||||
cuda_req = 'cuda@{0}.0:{0}.999'.format(cuda_ver)
|
||||
cudnn_ver_req = '@{0}'.format(long_ver)
|
||||
depends_on(cuda_req, when=cudnn_ver_req)
|
||||
|
||||
def url_for_version(self, version):
|
||||
url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-v{2}.tgz'
|
||||
url = 'https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}-v{3}.tgz'
|
||||
# Get the system and machine arch for building the file path
|
||||
sys = "{0}-{1}".format(platform.system(), platform.machine())
|
||||
# Munge it to match Nvidia's naming scheme
|
||||
sys_key = sys.lower().replace('x86_64', 'x64').replace('darwin', 'osx')
|
||||
|
||||
if version >= Version('7.2'):
|
||||
directory = version[:3]
|
||||
@@ -246,7 +189,7 @@ def url_for_version(self, version):
|
||||
ver = version[:2]
|
||||
cuda = version[2:]
|
||||
|
||||
return url.format(directory, cuda, ver)
|
||||
return url.format(directory, cuda, sys_key, ver)
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
if 'target=ppc64le: platform=linux' in self.spec:
|
||||
|
||||
@@ -21,6 +21,8 @@ class Dd4hep(CMakePackage):
|
||||
|
||||
maintainers = ['vvolkl', 'drbenmorgan']
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('master', branch='master')
|
||||
version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717')
|
||||
version('1.14.0', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895')
|
||||
|
||||
@@ -15,11 +15,12 @@ class Delphes(CMakePackage):
|
||||
git = "https://github.com/delphes/delphes.git"
|
||||
url = "http://cp3.irmp.ucl.ac.be/downloads/Delphes-3.4.2.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan', 'vvolkl', 'selvaggi']
|
||||
|
||||
version('master', branch='master')
|
||||
version('3.4.3pre05', tag='3.4.3pre05')
|
||||
version('3.4.3pre04', tag='3.4.3pre04')
|
||||
version('3.4.3pre06', tag='3.4.3pre06')
|
||||
version('3.4.2', sha256='d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b', preferred=True)
|
||||
version('3.4.1', sha256='4b5a2aeac326643f45b6d45c39ba2302e323eeb86d8cb58843c6e73949b1208a')
|
||||
version('3.4.0', sha256='c0f9500663a0c3a5c1eddcee598a67b5bcfc9318303195c6cacc0590b4023fa1')
|
||||
|
||||
@@ -16,6 +16,8 @@ class Dire(Package):
|
||||
git = "http://gitlab.com/dire/direforpythia"
|
||||
list_url = "http://dire.gitlab.io/Downloads.html"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainer = ['mdiefent']
|
||||
|
||||
version('2.004', sha256='8cc1213b58fec744fdaa50834560a14b141de99efb2c3e3d3d47f3d6d84b179f')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Evtgen(AutotoolsPackage):
|
||||
homepage = "https://evtgen.hepforge.org/"
|
||||
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/evtgen-R01-07-00.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['vvolkl']
|
||||
|
||||
version('02-00-00', sha256='02372308e1261b8369d10538a3aa65fe60728ab343fcb64b224dac7313deb719')
|
||||
|
||||
27
var/spack/repos/builtin/packages/exciting/dfgather.patch
Normal file
27
var/spack/repos/builtin/packages/exciting/dfgather.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
--- dfgather.F90_old 2020-09-16 17:19:18.000000000 -0600
|
||||
+++ dfgather.F90 2020-09-16 17:19:21.000000000 -0600
|
||||
@@ -27,6 +27,11 @@
|
||||
! loop over q-points
|
||||
Do iq = 1, nqpt
|
||||
tq0 = tqgamma (iq)
|
||||
+
|
||||
+ call genfilname(basename='X0', bzsampl=bzsampl,&
|
||||
+ & acont=input%xs%tddft%acont, nar= .not. input%xs%tddft%aresdf,&
|
||||
+ & tord=input%xs%tddft%torddf, markfxcbse=tfxcbse, iqmt=iq, filnam=fnchi0)
|
||||
+
|
||||
! calculate k+q and G+k+q related variables
|
||||
Call init1offs (qvkloff(1, iq))
|
||||
! size of local field effects
|
||||
@@ -54,6 +59,12 @@
|
||||
call mpi_bcast(chi0hd,3*3,MPI_DOUBLE_COMPLEX,iproc,mpi_comm_world,ierr)
|
||||
#endif
|
||||
if(rank.eq.0.or.(firstinnode.and. .not.input%sharedfs))then
|
||||
+ if (iw == wpari) then
|
||||
+ print *, 'procs=', procs
|
||||
+ print *, 'rank=', rank
|
||||
+ print *, 'iq=', iq, '/', nqpt
|
||||
+ print *, 'fnchi0=',trim(fnchi0)
|
||||
+ end if
|
||||
Call putx0 (tq0, iq, iw, trim(fnchi0), '', chi0, chi0wg, &
|
||||
& chi0hd)
|
||||
endif
|
||||
117
var/spack/repos/builtin/packages/exciting/package.py
Normal file
117
var/spack/repos/builtin/packages/exciting/package.py
Normal file
@@ -0,0 +1,117 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Exciting(MakefilePackage):
|
||||
"""
|
||||
exciting is a full-potential all-electron density-functional-theory package
|
||||
implementing the families of linearized augmented planewave methods. It can
|
||||
be applied to all kinds of materials, irrespective of the atomic species in
|
||||
volved, and also allows for exploring the physics of core electrons. A
|
||||
particular focus are excited states within many-body perturbation theory.
|
||||
"""
|
||||
|
||||
homepage = "http://exciting-code.org/"
|
||||
url = "http://exciting.wdfiles.com/local--files/nitrogen-14/exciting.nitrogen-14.tar.gz"
|
||||
|
||||
version('14', sha256='a7feaffdc23881d6c0737d2f79f94d9bf073e85ea358a57196d7f7618a0a3eff')
|
||||
|
||||
# as-of-yet unpublished fix to version 14
|
||||
patch('dfgather.patch', when='@14', working_dir='src/src_xs', level=0)
|
||||
variant('mpi', default=False, description='Use MPI')
|
||||
variant('mkl', default=False, description='Use MKL')
|
||||
variant('omp', default=True, description='Use OpenMP')
|
||||
variant('scalapack', default=False, description='Use ScaLAPACK')
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
depends_on('fftw', when='~mkl')
|
||||
depends_on('mkl', when='+mkl')
|
||||
depends_on('mpi', when='+mpi')
|
||||
depends_on('scalapack', when='+scalapack')
|
||||
conflicts('%gcc@10:', msg='exciting cannot be built with GCC 10')
|
||||
|
||||
for __compiler in spack.compilers.supported_compilers():
|
||||
if __compiler != 'intel':
|
||||
conflicts('%{0}'.format(__compiler), when='^mkl',
|
||||
msg='MKL only works with the Intel compiler')
|
||||
|
||||
def edit(self, spec, prefix):
|
||||
opts = {}
|
||||
opts['BUILDSMP'] = 'true'
|
||||
opts['F90_OPTS'] = '-cpp '
|
||||
opts['F77_OPTS'] = '-cpp -O3 '
|
||||
opts['CPP_ON_OPTS'] = '-cpp -DXS -DISO -DLIBXC'
|
||||
opts['LIB_ARP'] = 'libarpack.a'
|
||||
opts['F90'] = spack_fc
|
||||
opts['F77'] = spack_f77
|
||||
if '+omp' in spec:
|
||||
opts['LDFLAGS'] = self.compiler.openmp_flag + ' -DUSEOMP'
|
||||
opts['F90_OPTS'] += self.compiler.openmp_flag + ' -DUSEOMP'
|
||||
opts['F77_OPTS'] += self.compiler.openmp_flag + ' -DUSEOMP'
|
||||
if '%intel' in spec:
|
||||
opts['F90_OPTS'] += ' -O3 -cpp -ip -unroll -scalar_rep '
|
||||
opts['CPP_ON_OPTS'] += ' -DIFORT -DFFTW'
|
||||
if '%gcc' in spec:
|
||||
opts['F90_OPTS'] += '-O3 -march=native -ffree-line-length-0'
|
||||
filter_file('FCFLAGS = @FCFLAGS@',
|
||||
' '.join(['FCFLAGS = @FCFLAGS@', '-cpp',
|
||||
self.compiler.openmp_flag]),
|
||||
'src/libXC/src/Makefile.in')
|
||||
if '+mkl' in spec:
|
||||
if '%intel' in spec:
|
||||
opts['LIB_LPK'] = '-mkl=parallel'
|
||||
opts['INC_MKL'] = spec['mkl'].headers.include_flags
|
||||
opts['LIB_MKL'] = spec['mkl'].libs.ld_flags
|
||||
else:
|
||||
opts['LIB_LPK'] = ' '.join([spec['lapack'].libs.ld_flags,
|
||||
spec['blas'].libs.ld_flags,
|
||||
self.compiler.openmp_flag])
|
||||
if '+mpi' in spec:
|
||||
opts['BUILDMPI'] = 'true'
|
||||
opts['MPIF90'] = spec['mpi'].mpifc
|
||||
opts['MPIF90_CPP_OPTS'] = self.compiler.openmp_flag
|
||||
opts['MPIF90_CPP_OPTS'] += ' -DMPI -DMPIRHO -DMPISEC '
|
||||
opts['MPIF90_OPTS'] = ' '.join(['$(F90_OPTS)', '$(CPP_ON_OPTS) '
|
||||
'$(MPIF90_CPP_OPTS)'])
|
||||
opts['MPIF90MT'] = '$(MPIF90)'
|
||||
else:
|
||||
opts['BUILDMPI'] = 'false'
|
||||
|
||||
if '+scalapack' in spec:
|
||||
opts['LIB_SCLPK'] = spec['scalapack'].libs.ld_flags
|
||||
opts['LIB_SCLPK'] += ' ' + self.compiler.openmp_flag
|
||||
opts['CPP_SCLPK'] = ' -DSCAL '
|
||||
opts['LIBS_MPI'] = '$(LIB_SCLPK)'
|
||||
opts['MPIF90_CPP_OPTS'] += ' $(CPP_SCLPK) '
|
||||
|
||||
opts['USE_SYS_LAPACK'] = 'true'
|
||||
opts['LIB_FFT'] = 'fftlib.a'
|
||||
opts['LIB_BZINT'] = 'libbzint.a'
|
||||
opts['LIBS'] = '$(LIB_ARP) $(LIB_LPK) $(LIB_FFT) $(LIB_BZINT)'
|
||||
with open('build/make.inc', 'a') as inc:
|
||||
for key in opts:
|
||||
inc.write('{0} = {1}\n'.format(key, opts[key]))
|
||||
|
||||
def install(self, spec, prefix):
|
||||
install_tree('bin', prefix)
|
||||
install_tree('species', prefix.species)
|
||||
install_tree('tools', prefix.tools)
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set('WNHOME', self.prefix)
|
||||
env.set('EXCITINGROOT', self.prefix)
|
||||
env.set('EXCITINGBIN', self.prefix.bin)
|
||||
env.set('EXCITINGTOOLS', self.prefix.tools)
|
||||
env.set('EXCITINGSTM', self.prefix.tools.stm)
|
||||
env.set('EXCITINGVISUAL', self.prefix.xml.visualizationtemplates)
|
||||
env.set('EXCITINGCONVERT', self.prefix.xml.inputfileconverter)
|
||||
env.set('TIMEFORMAT', ' Elapsed time = %0lR')
|
||||
env.set('WRITEMINMAX', '1')
|
||||
env.append_path('PYTHONPATH', self.prefix.tools.stm)
|
||||
env.append_path('PATH', self.prefix.tools)
|
||||
env.append_path('PATH', self.prefix)
|
||||
env.append_path('PATH', self.prefix.tools.stm)
|
||||
@@ -39,7 +39,9 @@ def url_for_version(self, version):
|
||||
|
||||
def configure_args(self):
|
||||
spec = self.spec
|
||||
args = ['--without-docbook']
|
||||
args = ['--without-docbook',
|
||||
'--enable-static',
|
||||
]
|
||||
if '+libbsd' in spec and '@2.2.1:' in spec:
|
||||
args.append('--with-libbsd')
|
||||
return args
|
||||
|
||||
@@ -15,6 +15,8 @@ class Fastjet(AutotoolsPackage):
|
||||
homepage = "http://fastjet.fr/"
|
||||
url = "http://fastjet.fr/repo/fastjet-3.3.3.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan', 'vvolkl']
|
||||
|
||||
version('3.3.3', sha256='30b0a0282ce5aeac9e45862314f5966f0be941ce118a83ee4805d39b827d732b')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Fjcontrib(AutotoolsPackage):
|
||||
homepage = "https://fastjet.hepforge.org/contrib/"
|
||||
url = "http://fastjet.hepforge.org/contrib/downloads/fjcontrib-1.044.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('1.044', sha256='de3f45c2c1bed6d7567483e4a774575a504de8ddc214678bac7f64e9d2e7e7a7')
|
||||
version('1.043', sha256='ef0f586b19ffd12f392b7facc890a73d31fc11b9f5bb727cf3743d6eb59e9993')
|
||||
version('1.042', sha256='5b052e93a371c557557fa4a293cca4b08f88ccfb6c43a4df15b2a9f38c6d8831')
|
||||
|
||||
@@ -14,7 +14,7 @@ class Flibcpp(CMakePackage):
|
||||
git = "https://github.com/swig-fortran/flibcpp.git"
|
||||
url = "https://github.com/swig-fortran/flibcpp/archive/v0.3.1.tar.gz"
|
||||
|
||||
version('master', branch='master')
|
||||
version('0.5.2', sha256='b9b4eb6431d5b56a54c37f658df7455eafd3d204a5534903b127e0c8a1c9b827')
|
||||
version('0.5.1', sha256='76db24ce7893f19ab97ea7260c39490ae1bd1e08a4cc5111ad7e70525a916993')
|
||||
version('0.5.0', sha256='94204198304ba4187815431859e5958479fa651a6f06f460b099badbf50f16b2')
|
||||
version('0.4.1', sha256='5c9a11af391fcfc95dd11b95338cff19ed8104df66d42b00ae54f6cde4da5bdf')
|
||||
@@ -28,7 +28,7 @@ class Flibcpp(CMakePackage):
|
||||
variant('fstd', default='03', values=('none', '03', '08', '15', '18'),
|
||||
multi=False, description='Build with this Fortran standard')
|
||||
|
||||
depends_on('swig@fortran', type='build', when="+swig")
|
||||
depends_on('swig@4.0.2-fortran', type='build', when="+swig")
|
||||
depends_on('py-sphinx', type='build', when="+doc")
|
||||
|
||||
@run_before('cmake')
|
||||
@@ -44,6 +44,6 @@ def cmake_args(self):
|
||||
self.define_from_variant('BUILD_SHARED_LIBS', 'shared'),
|
||||
self.define_from_variant('FLIBCPP_BUILD_DOCS', 'doc'),
|
||||
self.define_from_variant('FLIBCPP_FORTRAN_STD', 'fstd'),
|
||||
self.define('BUILD_TESTING', bool(self.run_tests)),
|
||||
self.define('FLIBCPP_BUILD_TESTS', bool(self.run_tests)),
|
||||
self.define('FLIBCPP_BUILD_EXAMPLES', bool(self.run_tests)),
|
||||
]
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4abla(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4emlow(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4ensdfstate(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -13,6 +13,8 @@ class G4incl(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.1.0.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
@@ -31,4 +33,4 @@ def setup_dependent_run_environment(self, env, dependent_spec):
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle version string."""
|
||||
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.%s.tar.gz" % version)
|
||||
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4INCL.%s.tar.gz" % version)
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4ndl(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
version('4.6', sha256='9d287cf2ae0fb887a2adce801ee74fb9be21b0d166dab49bcbee9408a5145408')
|
||||
|
||||
@@ -13,6 +13,8 @@ class G4neutronxs(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -13,6 +13,8 @@ class G4particlexs(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.2.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
@@ -32,4 +34,4 @@ def setup_dependent_run_environment(self, env, dependent_spec):
|
||||
|
||||
def url_for_version(self, version):
|
||||
"""Handle version string."""
|
||||
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.%s.tar.gz" % version)
|
||||
return ("http://geant4-data.web.cern.ch/geant4-data/datasets/G4PARTICLEXS.%s.tar.gz" % version)
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4photonevaporation(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4pii(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4radioactivedecay(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4realsurface(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4saiddata(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -12,6 +12,8 @@ class G4tendl(Package):
|
||||
homepage = "http://geant4.web.cern.ch"
|
||||
url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
# Only versions relevant to Geant4 releases built by spack are added
|
||||
|
||||
@@ -13,6 +13,8 @@ class Gaudi(CMakePackage):
|
||||
git = "https://gitlab.cern.ch/gaudi/Gaudi.git"
|
||||
url = "https://gitlab.cern.ch/gaudi/Gaudi/-/archive/v33r1/Gaudi-v33r1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('master', branch='master')
|
||||
version('35.0', sha256='c01b822f9592a7bf875b9997cbeb3c94dea97cb13d523c12649dbbf5d69b5fa6')
|
||||
version('34.0', sha256='28fc4abb5a6b08da5a6b1300451c7e8487f918b055939877219d454abf7668ae')
|
||||
@@ -88,13 +90,14 @@ def cmake_args(self):
|
||||
args = [
|
||||
self.define_from_variant("BUILD_TESTING", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_AIDA", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_CLHEP", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_CPPUNIT", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_HEPPDT", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_JEMALLOC", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_UNWIND", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_XERCESC", "optional"),
|
||||
self.define_from_variant("GAUDI_USE_DOXYGEN", "docs"),
|
||||
# needed to build core services like rndmsvc
|
||||
self.define("GAUDI_USE_CLHEP", True),
|
||||
self.define("GAUDI_USE_PYTHON_MAJOR",
|
||||
str(self.spec['python'].version.up_to(1))),
|
||||
# todo:
|
||||
|
||||
@@ -15,6 +15,8 @@ class Geant4Data(BundlePackage):
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('10.6.2')
|
||||
version('10.6.1')
|
||||
version('10.6.0')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Geant4Vmc(CMakePackage):
|
||||
url = "http://github.com/vmc-project/geant4_vmc/archive/v5-1-p1.tar.gz"
|
||||
git = "http://github.com/vmc-project/geant4_vmc.git"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainer = ['wdconinc']
|
||||
|
||||
version('master', branch='master')
|
||||
|
||||
@@ -15,6 +15,8 @@ class Geant4(CMakePackage):
|
||||
homepage = "http://geant4.cern.ch/"
|
||||
url = "https://gitlab.cern.ch/geant4/geant4/-/archive/v10.6.0/geant4-v10.6.0.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['drbenmorgan']
|
||||
|
||||
version('10.6.2', sha256='e381e04c02aeade1ed8cdd9fdbe7dcf5d6f0f9b3837a417976b839318a005dbd')
|
||||
|
||||
@@ -2,20 +2,24 @@
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
import os.path
|
||||
|
||||
|
||||
class Globalarrays(AutotoolsPackage):
|
||||
"""Global Arrays (GA) is a Partitioned Global Address Space (PGAS)
|
||||
programming model. It provides primitives for one-sided communication
|
||||
(Get, Put, Accumulate) and Atomic Operations (read increment).
|
||||
It supports blocking and non-blocking primtives, and supports location
|
||||
consistency."""
|
||||
programming model.
|
||||
|
||||
It provides primitives for one-sided communication (Get, Put, Accumulate)
|
||||
and Atomic Operations (read increment). It supports blocking and
|
||||
non-blocking primtives, and supports location consistency.
|
||||
"""
|
||||
|
||||
homepage = "http://hpc.pnl.gov/globalarrays/"
|
||||
url = "https://github.com/GlobalArrays/ga/releases/download/v5.7/ga-5.7.tar.gz"
|
||||
|
||||
version('5.8', sha256='64df7d1ea4053d24d84ca361e67a6f51c7b17ed7d626cb18a9fbc759f4a078ac')
|
||||
version('5.7.2', sha256='8cd0fcfd85bc7f9c168c831616f66f1e8b9b2ca31dc7dd93cc55b27cc7fe7069')
|
||||
version('5.7.1', sha256='aa4c6038d792cabf1766e264320da58a555da81a3a36be32b7c4d3e71c08ffa9')
|
||||
version('5.7', sha256='3ed1ab47adfda7bceb7beca12fc05a2e1631732f0e55bbaf9036dad4e3da4774')
|
||||
version('5.6.5', sha256='17a7111dfe67d44cf0888c7b79abd48bf4968874f26b3f16cce9fd04e2c72bb9')
|
||||
version('5.6.4', sha256='3daf742053502755c0b581041a56f8f7086af05980c7146d194b0fd6526ee14f')
|
||||
@@ -24,39 +28,38 @@ class Globalarrays(AutotoolsPackage):
|
||||
version('5.6.1', sha256='b324deed49f930f55203e1d18294ce07dd02680b9ac0728ebc54f94a12557ebc')
|
||||
version('5.6', sha256='a228dfbae9a6cfaae34694d7e56f589ac758e959b58f4bc49e6ef44058096767')
|
||||
|
||||
variant('int64', default=False, description='Compile with 64 bit indices support')
|
||||
variant('blas', default=False, description='Enable BLAS')
|
||||
variant('lapack', default=False, description='Enable LAPACK')
|
||||
variant('scalapack', default=False, description='Enable SCALAPACK')
|
||||
variant('armci', values=('mpi-ts', 'mpi-pr', 'mpi3', 'openib', 'ofi'),
|
||||
default='mpi-ts', description='ARMCI runtime')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('blas', when='+blas')
|
||||
depends_on('lapack', when='+lapack')
|
||||
depends_on('blas')
|
||||
depends_on('lapack')
|
||||
|
||||
depends_on('scalapack', when='+scalapack')
|
||||
|
||||
conflicts('+lapack', when='~blas')
|
||||
conflicts('+scalapack', when='~blas')
|
||||
conflicts('+scalapack', when='~lapack')
|
||||
# See release https://github.com/GlobalArrays/ga/releases/tag/v5.7.1
|
||||
conflicts('%gcc@10:', when='@5.7')
|
||||
conflicts('%gcc@10:', when='@:5.6.5')
|
||||
|
||||
@property
|
||||
def build_directory(self):
|
||||
return os.path.join(str(self.stage.source_path), '..', 'spack-build')
|
||||
|
||||
def configure_args(self):
|
||||
args = ['--with-mpi']
|
||||
blas_flags = self.spec['blas'].libs.ld_flags
|
||||
lapack_libs = self.spec['lapack'].libs.ld_flags
|
||||
|
||||
if '+blas' in self.spec:
|
||||
if '+int64' in self.spec:
|
||||
args.append('--with-blas8')
|
||||
else:
|
||||
args.append('--with-blas')
|
||||
|
||||
if '+lapack' in self.spec:
|
||||
args.append('--with-lapack')
|
||||
args = [
|
||||
'--enable-shared',
|
||||
'--with-mpi',
|
||||
'--with-blas={0}'.format(blas_flags),
|
||||
'--with-lapack={0}'.format(lapack_libs),
|
||||
]
|
||||
|
||||
if '+scalapack' in self.spec:
|
||||
if '+int64' in self.spec:
|
||||
args.append('--with-scalapack8')
|
||||
else:
|
||||
args.append('--with-scalapack')
|
||||
scalapack_libs = self.spec['scalapack'].libs.ld_flags
|
||||
args.append('--with-scalapack={0}'.format(scalapack_libs))
|
||||
|
||||
args.append('--with-' + self.spec.variants['armci'].value)
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ class GosamContrib(AutotoolsPackage):
|
||||
homepage = "https://gosam.hepforge.org"
|
||||
url = "https://gosam.hepforge.org/downloads/?f=gosam-contrib-2.0.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.0', sha256='c05beceea74324eb51c1049773095e2cb0c09c8c909093ee913d8b0da659048d')
|
||||
version('1.0', sha256='a29d4232d9190710246abc2ed97fdcd8790ce83580f56a360f3456b0377c40ec')
|
||||
|
||||
|
||||
@@ -16,7 +16,8 @@ class H5cpp(CMakePackage):
|
||||
maintainers = ['eschnett']
|
||||
|
||||
version('master', branch='master')
|
||||
version('1.10.4-5', sha256='42d0ca1aaff1ead8998a26d892a51c12b1b89023382f191dc438bd0fa4513455')
|
||||
version('1.10.4-6', sha256='4fbc8e777dc78a37ec2fe8c7b6a47114080ffe587f083e83a2046b5e794aef93')
|
||||
version('1.10.4-5', sha256='661ccc4d76e081afc73df71ef11d027837d92dd1089185f3650afcaec9d418ec')
|
||||
|
||||
variant('mpi', default=True, description='Include MPI support')
|
||||
|
||||
@@ -26,4 +27,9 @@ class H5cpp(CMakePackage):
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def cmake_args(self):
|
||||
return ['-DH5CPP_BUILD_TESTS=OFF']
|
||||
return [
|
||||
'-DHDF5_INCLUDE_DIRS=%s' %
|
||||
self.spec['hdf5'].headers.directories[0],
|
||||
'-DHDF5_LIBRARIES=%s' % self.spec['hdf5'].libs.directories[0],
|
||||
'-DH5CPP_BUILD_TESTS=OFF',
|
||||
]
|
||||
|
||||
@@ -11,6 +11,8 @@ class Hepmc(CMakePackage):
|
||||
homepage = "http://hepmc.web.cern.ch/hepmc/"
|
||||
url = "http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.06.10', sha256='5adedd9e3f7447e1e5fc01b72f745ab87da2c1611df89208bb3d7c6ea94c11a4')
|
||||
version('2.06.09', sha256='e0f8fddd38472c5615210894444686ac5d72df3be682f7d151b562b236d9b422')
|
||||
version('2.06.08', sha256='8be6c1793e0a045f07ddb88bb64b46de7e66a52e75fb72b3f82f9a3e3ba8a8ce')
|
||||
|
||||
@@ -14,6 +14,8 @@ class Hepmc3(CMakePackage):
|
||||
url = "https://gitlab.cern.ch/hepmc/HepMC3/-/archive/3.2.1/HepMC3-3.2.1.tar.gz"
|
||||
git = "https://gitlab.cern.ch/hepmc/HepMC3.git"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['vvolkl']
|
||||
|
||||
version('3.2.2', sha256='0e8cb4f78f804e38f7d29875db66f65e4c77896749d723548cc70fb7965e2d41')
|
||||
|
||||
@@ -15,6 +15,8 @@ class Hepmcanalysis(MakefilePackage):
|
||||
|
||||
version('3.4.13', sha256='be9937c6de493a5671258919493b0caa0cecca77853a2075f5cecce1071e0029')
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
depends_on('hepmc')
|
||||
depends_on('fastjet')
|
||||
depends_on('root')
|
||||
|
||||
@@ -15,6 +15,8 @@ class Heppdt(AutotoolsPackage):
|
||||
homepage = "https://cdcvs.fnal.gov/redmine/projects/heppdt/wiki"
|
||||
url = "https://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/HepPDT-2.06.01.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('3.04.01', sha256='2c1c39eb91295d3ded69e0d3f1a38b1cb55bc3f0cde37b725ffd5d722f63c0f6')
|
||||
version('3.04.00', sha256='c5f0eefa19dbbae99f2b6a2ab1ad8fd5d5f844fbbbf96e62f0ddb68cc6a7d5f3')
|
||||
version('3.03.02', sha256='409d940badbec672c139cb8972c88847b3f9a2476a336f4f7ee6924f8d08426c')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Heputils(MakefilePackage):
|
||||
homepage = "https://bitbucket.org/andybuckley/heputils/src/default/"
|
||||
url = "https://bitbucket.org/andybuckley/heputils/get/heputils-1.3.2.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('1.3.2', sha256='be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0')
|
||||
version('1.3.1', sha256='7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b')
|
||||
version('1.3.0', sha256='1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Herwig3(AutotoolsPackage):
|
||||
homepage = "https://herwig.hepforge.org"
|
||||
url = "https://herwig.hepforge.org/downloads/Herwig-7.2.1.tar.bz2"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('7.2.1', sha256='d4fff32f21c5c08a4b2e563c476b079859c2c8e3b78d853a8a60da96d5eea686')
|
||||
|
||||
depends_on('autoconf', type='build')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Herwigpp(AutotoolsPackage):
|
||||
homepage = "https://herwig.hepforge.org/"
|
||||
url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/Herwig++-2.7.1.tar.bz2"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.7.1', '80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6')
|
||||
patch('herwig++-2.7.1.patch', when='@2.7.1', level=0)
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ def url_for_version(self, version):
|
||||
version('3.5.0', sha256='87c1ee9f02b8aa487b628c543f058198767c474cec3d21700596a73c028959e1')
|
||||
|
||||
depends_on('cmake@3:', type='build')
|
||||
depends_on('mesa~llvm@18.3: swr=none', type='link')
|
||||
depends_on('mesa18~llvm@18.3: swr=none', type='link')
|
||||
depends_on('libelf', type='link', when="@3.7.0:")
|
||||
depends_on('numactl', type='link', when="@3.7.0:")
|
||||
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
|
||||
|
||||
@@ -24,7 +24,7 @@ class Hip(CMakePackage):
|
||||
|
||||
depends_on('cmake@3:', type='build')
|
||||
depends_on('perl@5.10:', type=('build', 'run'))
|
||||
depends_on('mesa~llvm@18.3:')
|
||||
depends_on('mesa18~llvm@18.3:')
|
||||
|
||||
for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0']:
|
||||
depends_on('hip-rocclr@' + ver, type='build', when='@' + ver)
|
||||
@@ -50,17 +50,25 @@ class Hip(CMakePackage):
|
||||
patch('0002-Fix-detection-of-HIP_CLANG_ROOT.patch', when='@3.5.0:')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set('ROCM_PATH', '')
|
||||
# NOTE: DO NOT PUT LOGIC LIKE self.spec[name] in this function!!!!!
|
||||
# It DOES NOT WORK FOR EXTERNAL PACKAGES!!!! See get_rocm_prefix_info
|
||||
rocm_prefixes = self.get_rocm_prefix_info()
|
||||
|
||||
env.set('ROCM_PATH', rocm_prefixes['rocm-path'])
|
||||
env.set('HIP_COMPILER', 'clang')
|
||||
env.set('HIP_PLATFORM', 'hcc')
|
||||
env.set('HIP_CLANG_PATH', self.spec['llvm-amdgpu'].prefix.bin)
|
||||
env.set('HSA_PATH', self.spec['hsa-rocr-dev'].prefix)
|
||||
env.set('ROCMINFO_PATH', self.spec['rocminfo'].prefix)
|
||||
env.set('HIP_PATH', self.prefix)
|
||||
env.set('DEVICE_LIB_PATH',
|
||||
self.spec['rocm-device-libs'].prefix.amdgcn.bitcode)
|
||||
env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
|
||||
env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
|
||||
env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
|
||||
env.set('DEVICE_LIB_PATH', rocm_prefixes['rocm-device-libs'].lib)
|
||||
env.set('HIP_PATH', rocm_prefixes['rocm-path'])
|
||||
env.set('HIPCC_COMPILE_FLAGS_APPEND',
|
||||
'--rocm-path={0}'.format(self.prefix))
|
||||
'--rocm-path={0}'.format(rocm_prefixes['rocm-path']))
|
||||
|
||||
if 'amdgpu_target' in self.spec.variants:
|
||||
arch = self.spec.variants['amdgpu_target'].value
|
||||
if arch != 'none':
|
||||
env.set('HCC_AMDGPU_TARGET', arch)
|
||||
|
||||
def setup_dependent_run_environment(self, env, dependent_spec):
|
||||
self.setup_run_environment(env)
|
||||
@@ -85,31 +93,42 @@ def get_rocm_prefix_info(self):
|
||||
raise RuntimeError(msg)
|
||||
|
||||
return {
|
||||
'rocm-path': fallback_prefix,
|
||||
'llvm-amdgpu': fallback_prefix.llvm,
|
||||
'hsa-rocr-dev': fallback_prefix.hsa,
|
||||
'rocminfo': fallback_prefix.bin,
|
||||
'rocm-device-libs': fallback_prefix,
|
||||
}
|
||||
else:
|
||||
return dict((name, self.spec[name].prefix)
|
||||
for name in ('llvm-amdgpu', 'hsa-rocr-dev', 'rocminfo',
|
||||
'rocm-device-libs'))
|
||||
mydict = dict((name, self.spec[name].prefix)
|
||||
for name in ('llvm-amdgpu', 'hsa-rocr-dev',
|
||||
'rocminfo', 'rocm-device-libs'))
|
||||
mydict['rocm-path'] = os.path.dirname(self.spec.prefix)
|
||||
return mydict
|
||||
|
||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||
# Indirection for dependency paths because hip may be an external in
|
||||
# Spack. See block comment on get_rocm_prefix_info
|
||||
# Spack. See block comment on get_rocm_prefix_info .
|
||||
|
||||
# NOTE: DO NOT PUT LOGIC LIKE self.spec[name] in this function!!!!!
|
||||
# It DOES NOT WORK FOR EXTERNAL PACKAGES!!!! See get_rocm_prefix_info
|
||||
rocm_prefixes = self.get_rocm_prefix_info()
|
||||
|
||||
env.set('ROCM_PATH', '')
|
||||
env.set('ROCM_PATH', rocm_prefixes['rocm-path'])
|
||||
env.set('HIP_COMPILER', 'clang')
|
||||
env.set('HIP_PLATFORM', 'hcc')
|
||||
env.set('HIP_CLANG_PATH', rocm_prefixes['llvm-amdgpu'].bin)
|
||||
env.set('HSA_PATH', rocm_prefixes['hsa-rocr-dev'])
|
||||
env.set('ROCMINFO_PATH', rocm_prefixes['rocminfo'])
|
||||
env.set('DEVICE_LIB_PATH',
|
||||
self.spec['rocm-device-libs'].prefix.amdgcn.bitcode)
|
||||
env.set('DEVICE_LIB_PATH', rocm_prefixes['rocm-device-libs'].lib)
|
||||
env.set('HIP_PATH', rocm_prefixes['rocm-path'])
|
||||
env.set('HIPCC_COMPILE_FLAGS_APPEND',
|
||||
'--rocm-path={0}'.format(self.prefix))
|
||||
'--rocm-path={0}'.format(rocm_prefixes['rocm-path']))
|
||||
|
||||
if 'amdgpu_target' in dependent_spec.variants:
|
||||
arch = dependent_spec.variants['amdgpu_target'].value
|
||||
if arch != 'none':
|
||||
env.set('HCC_AMDGPU_TARGET', arch)
|
||||
|
||||
def setup_dependent_package(self, module, dependent_spec):
|
||||
self.spec.hipcc = join_path(self.prefix.bin, 'hipcc')
|
||||
|
||||
32
var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch
Normal file
32
var/spack/repos/builtin/packages/intel-tbb/macos-arm64.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
From 86f6dcdc17a8f5ef2382faaef860cfa5243984fe Mon Sep 17 00:00:00 2001
|
||||
From: Yining Karl Li <betajippity@gmail.com>
|
||||
Date: Fri, 3 Jul 2020 06:23:18 -0700
|
||||
Subject: [PATCH] Add detection of arm64 architecture for macos builds
|
||||
|
||||
This commit adds detection of arm64 for macos builds on arm64 hardware.
|
||||
The only change necessary is an additional case in the code where
|
||||
macos.inc queries and detects the system architecture.
|
||||
---
|
||||
build/macos.inc | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/build/macos.inc b/build/macos.inc
|
||||
index dde93216f5e7a9337dd83757df1ec734241d044e..2bdcde7e3042390b871fc601a930b3648ccaa124 100644
|
||||
--- a/build/macos.inc
|
||||
+++ b/build/macos.inc
|
||||
@@ -36,11 +36,15 @@ ifndef arch
|
||||
export arch:=ppc32
|
||||
endif
|
||||
else
|
||||
+ ifeq ($(shell /usr/sbin/sysctl -n hw.machine),arm64)
|
||||
+ export arch:=arm64
|
||||
+ else
|
||||
ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
|
||||
export arch:=intel64
|
||||
else
|
||||
export arch:=ia32
|
||||
endif
|
||||
+ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -103,15 +103,21 @@ class IntelTbb(Package):
|
||||
patch("gcc_generic-pedantic-4.4.patch", level=1, when='@:2019.0')
|
||||
|
||||
# Patch cmakeConfig.cmake.in to find the libraries where we install them.
|
||||
patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:')
|
||||
patch("tbb_cmakeConfig-2019.5.patch", level=0, when='@2019.5:2021.0')
|
||||
patch("tbb_cmakeConfig.patch", level=0, when='@2017.7:2019.4')
|
||||
|
||||
# Restore the debug targets.
|
||||
patch("makefile-debug.patch", when="@2020:")
|
||||
patch("makefile-debug.patch", when="@2020:2021.0")
|
||||
|
||||
# Some very old systems don't support transactional memory.
|
||||
patch("disable-tm.patch", when='~tm')
|
||||
|
||||
# Add support for building on arm64 macOS,
|
||||
# also included in hombrew and already available upstream:
|
||||
# https://github.com/oneapi-src/oneTBB/pull/258
|
||||
# https://github.com/oneapi-src/oneTBB/commit/86f6dcdc17a8f5ef2382faaef860cfa5243984fe.patch?full_index=1
|
||||
patch("macos-arm64.patch", when="@:2021.0")
|
||||
|
||||
# Version and tar file names:
|
||||
# 2020.0 --> v2020.0.tar.gz starting with 2020
|
||||
# 2017.1 --> 2017_U1.tar.gz starting with 2017
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
|
||||
from spack import *
|
||||
import re
|
||||
|
||||
|
||||
class Ispc(CMakePackage):
|
||||
@@ -18,8 +19,12 @@ class Ispc(CMakePackage):
|
||||
|
||||
homepage = "https://ispc.github.io"
|
||||
url = "https://github.com/ispc/ispc/tarball/v1.14.1"
|
||||
git = "https://github.com/ispc/ispc"
|
||||
maintainers = ['aumuell']
|
||||
|
||||
executables = ['^ispc$']
|
||||
|
||||
version('master', branch='master')
|
||||
version('1.14.1', sha256='ca12f26dafbc4ef9605487d03a2156331c1351a4ffefc9bab4d896a466880794')
|
||||
version('1.14.0', sha256='1ed72542f56738c632bb02fb0dd56ad8aec3e2487839ebbc0def8334f305a4c7')
|
||||
version('1.13.0', sha256='aca595508b51dd1ff065c406a3fd7c93822320c510077dd4d97a2b98a23f097a')
|
||||
@@ -34,6 +39,7 @@ class Ispc(CMakePackage):
|
||||
depends_on('llvm@10:10.999', when='@1.13:1.13.999')
|
||||
|
||||
patch('don-t-assume-that-ncurses-zlib-are-system-libraries.patch',
|
||||
when='@1.14:1.14.999',
|
||||
sha256='d3ccf547d3ba59779fd375e10417a436318f2200d160febb9f830a26f0daefdc')
|
||||
|
||||
patch('fix-linking-against-llvm-10.patch', when='@1.13:1.13.999',
|
||||
@@ -47,3 +53,10 @@ def cmake_args(self):
|
||||
args.append('-DISPC_INCLUDE_TESTS=OFF')
|
||||
args.append('-DISPC_INCLUDE_UTILS=OFF')
|
||||
return args
|
||||
|
||||
@classmethod
|
||||
def determine_version(cls, exe):
|
||||
output = Executable(exe)('--version', output=str, error=str)
|
||||
match = re.search(r'^Intel.*[iI][sS][pP][cC]\),\s+(\S+)\s+\(build.*\)',
|
||||
output)
|
||||
return match.group(1) if match else None
|
||||
|
||||
@@ -13,6 +13,8 @@ class Kassiopeia(CMakePackage):
|
||||
url = "https://github.com/KATRIN-Experiment/Kassiopeia/archive/v3.6.1.tar.gz"
|
||||
git = "https://github.com/KATRIN-Experiment/Kassiopeia.git"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['wdconinc']
|
||||
|
||||
version('3.7.5', sha256='8f28d08c7ef51e64221e0a4705f3cee3a5d738b8cdde5ce9fa58a3a0dd14ae05')
|
||||
|
||||
@@ -14,6 +14,8 @@ class Lcio(CMakePackage):
|
||||
git = "https://github.com/iLCSoft/LCIO.git"
|
||||
url = "https://github.com/iLCSoft/LCIO/archive/v02-13-03.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
maintainers = ['gaede', 'vvolkl']
|
||||
|
||||
version('master', branch='master')
|
||||
|
||||
@@ -13,6 +13,8 @@ class Lhapdf(AutotoolsPackage):
|
||||
homepage = "https://lhapdf.hepforge.org/"
|
||||
url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d')
|
||||
version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1')
|
||||
|
||||
|
||||
@@ -12,12 +12,14 @@ class Libx11(AutotoolsPackage, XorgPackage):
|
||||
homepage = "https://www.x.org/"
|
||||
xorg_mirror_path = "lib/libX11-1.6.7.tar.gz"
|
||||
|
||||
version('1.7.0', sha256='c48ec61785ec68fc6a9a6aca0a9578393414fe2562e3cc9cca30234345c7b6ac')
|
||||
version('1.6.7', sha256='f62ab88c2a87b55e1dc338726a55bb6ed8048084fe6a3294a7ae324ca45159d1')
|
||||
version('1.6.5', sha256='3abce972ba62620611fab5b404dafb852da3da54e7c287831c30863011d28fb3')
|
||||
version('1.6.3', sha256='0b03b9d22f4c9e59b4ba498f294e297f013cae27050dfa0f3496640200db5376')
|
||||
|
||||
depends_on('libxcb@1.1.92:')
|
||||
|
||||
depends_on('xproto@7.0.25:', type='build', when='@1.7.0:')
|
||||
depends_on('xproto@7.0.17:', type='build')
|
||||
depends_on('xextproto', type=('build', 'link'))
|
||||
depends_on('xtrans', type='build')
|
||||
|
||||
@@ -13,8 +13,9 @@ class Libxcb(AutotoolsPackage):
|
||||
extensibility."""
|
||||
|
||||
homepage = "https://xcb.freedesktop.org/"
|
||||
url = "https://xcb.freedesktop.org/dist/libxcb-1.13.tar.gz"
|
||||
url = "https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.14.tar.xz"
|
||||
|
||||
version('1.14', sha256='a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34')
|
||||
version('1.13', sha256='0bb3cfd46dbd90066bf4d7de3cad73ec1024c7325a4a0cbf5f4a0d4fa91155fb')
|
||||
version('1.12', sha256='092f147149d8a6410647a848378aaae749304d5b73e028ccb8306aa8a9e26f06')
|
||||
version('1.11.1', sha256='660312d5e64d0a5800262488042c1707a0261fa01a759bad265b1b75dd4844dd')
|
||||
@@ -26,6 +27,7 @@ class Libxcb(AutotoolsPackage):
|
||||
|
||||
# libxcb 1.X requires xcb-proto >= 1.X
|
||||
depends_on('xcb-proto', type='build')
|
||||
depends_on('xcb-proto@1.14:', when='@1.14:1.14.999', type='build')
|
||||
depends_on('xcb-proto@1.13:', when='@1.13:1.13.999', type='build')
|
||||
depends_on('xcb-proto@1.12:', when='@1.12:1.12.999', type='build')
|
||||
depends_on('xcb-proto@1.11:', when='@1.11:1.11.999', type='build')
|
||||
@@ -39,6 +41,14 @@ class Libxcb(AutotoolsPackage):
|
||||
depends_on('pkgconfig', type='build')
|
||||
depends_on('util-macros', type='build')
|
||||
|
||||
def url_for_version(self, version):
|
||||
if version >= Version('1.14'):
|
||||
url = 'https://xorg.freedesktop.org/archive/individual/lib/libxcb-{0}.tar.xz'
|
||||
else:
|
||||
url = 'https://xcb.freedesktop.org/dist/libxcb-{0}.tar.gz'
|
||||
|
||||
return url.format(version)
|
||||
|
||||
def configure_args(self):
|
||||
config_args = []
|
||||
|
||||
|
||||
@@ -16,11 +16,12 @@ class Likwid(Package):
|
||||
See https://github.com/RRZE-HPC/likwid/wiki/TutorialLikwidPerf#feature-limitations
|
||||
for information."""
|
||||
|
||||
homepage = "https://github.com/RRZE-HPC/likwid"
|
||||
homepage = "https://hpc.fau.de/research/tools/likwid/"
|
||||
url = "https://github.com/RRZE-HPC/likwid/archive/v5.0.0.tar.gz"
|
||||
git = "https://github.com/RRZE-HPC/likwid.git"
|
||||
maintainers = ['TomTheBear']
|
||||
|
||||
version('5.1.0', sha256='5a180702a1656c6315b861a85031ab4cb090424aec42cbbb326b849e29f55571')
|
||||
version('5.0.2', sha256='0a1c8984e4b43ea8b99d09456ef05035eb934594af1669432117585c638a2da4')
|
||||
version('5.0.1', sha256='3757b0cb66e8af0116f9288c7f90543acbd8e2af8f72f77aef447ca2b3e76453')
|
||||
version('5.0.0', sha256='26623f5a1a5fec19d798f0114774a5293d1c93a148538b9591a13e50930fa41e')
|
||||
|
||||
36
var/spack/repos/builtin/packages/linktest/package.py
Normal file
36
var/spack/repos/builtin/packages/linktest/package.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
|
||||
class Linktest(MakefilePackage):
|
||||
"""Performance tool to generate communication matrix using
|
||||
parallel ping-pong benchmark"""
|
||||
|
||||
homepage = "https://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/LinkTest/_node.html"
|
||||
url = "http://apps.fz-juelich.de/jsc/linktest/download.php?version=1.2p1"
|
||||
|
||||
maintainers = ['pramodk']
|
||||
|
||||
version('1.2p1', sha256='981b96da1d5bf214507b8e219a36e8d0183d8bd5c10539b26f660b2c83e5269d', extension='tar.gz')
|
||||
|
||||
depends_on('mpi')
|
||||
depends_on('sionlib')
|
||||
|
||||
def edit(self, spec, prefix):
|
||||
with working_dir('src'):
|
||||
makefile = FileFilter('Makefile')
|
||||
makefile.filter('= gcc', '= cc')
|
||||
makefile.filter('mpicc', spec['mpi'].mpicc)
|
||||
makefile.filter('#SIONLIB_INST=.*',
|
||||
'SIONLIB_INST=%s' % spec['sionlib'].prefix)
|
||||
|
||||
def build(self, spec, prefix):
|
||||
with working_dir('src'):
|
||||
make()
|
||||
|
||||
def install(self, spec, prefix):
|
||||
mkdir(prefix.bin)
|
||||
install('src/mpilinktest', prefix.bin)
|
||||
install('src/pingponganalysis', prefix.bin)
|
||||
@@ -140,6 +140,7 @@ class Llvm(CMakePackage, CudaPackage):
|
||||
depends_on("cmake@3.4.3:", type="build")
|
||||
depends_on("python@2.7:2.8", when="@:4.999 ~python", type="build")
|
||||
depends_on("python", when="@5: ~python", type="build")
|
||||
depends_on("pkgconfig", type="build")
|
||||
|
||||
# Universal dependency
|
||||
depends_on("python@2.7:2.8", when="@:4.999+python")
|
||||
@@ -242,11 +243,11 @@ def filter_detected_exes(cls, prefix, exes_in_prefix):
|
||||
def determine_version(cls, exe):
|
||||
version_regex = re.compile(
|
||||
# Normal clang compiler versions are left as-is
|
||||
r'clang version ([^ )]+)-svn[~.\w\d-]*|'
|
||||
r'clang version ([^ )\n]+)-svn[~.\w\d-]*|'
|
||||
# Don't include hyphenated patch numbers in the version
|
||||
# (see https://github.com/spack/spack/pull/14365 for details)
|
||||
r'clang version ([^ )]+?)-[~.\w\d-]*|'
|
||||
r'clang version ([^ )]+)|'
|
||||
r'clang version ([^ )\n]+?)-[~.\w\d-]*|'
|
||||
r'clang version ([^ )\n]+)|'
|
||||
# LLDB
|
||||
r'lldb version ([^ )\n]+)|'
|
||||
# LLD
|
||||
|
||||
@@ -18,6 +18,8 @@ class Madgraph5amc(Package):
|
||||
homepage = "https://launchpad.net/mg5amcnlo"
|
||||
url = "https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.8.1', sha256='acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c',
|
||||
url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz")
|
||||
version('2.8.0', sha256='e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
|
||||
|
||||
@@ -13,6 +13,8 @@ class Mcutils(MakefilePackage):
|
||||
homepage = "https://bitbucket.org/andybuckley/mcutils"
|
||||
url = "https://bitbucket.org/andybuckley/mcutils/get/mcutils-1.3.4.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('1.3.4', sha256='0bf9795cc248871ab2b663d2eef647311eacaea4982997950096de68747e65a3')
|
||||
version('1.3.3', sha256='bfb2f0e0e6de358928436f309f3f1b084d3d652073c440f262de878332116ecb')
|
||||
version('1.3.2', sha256='e17d417e8d4f8d17a6879ea18dcd2cd76e161d37eae08b84893504d1b08f9708')
|
||||
|
||||
@@ -47,45 +47,45 @@ class Mfem(Package):
|
||||
|
||||
version('4.2.0',
|
||||
'4352a225b55948d2e73a5ee88cece0e88bdbe7ba6726a23d68b2736d3221a86d',
|
||||
url='https://bit.ly/mfem-4-2', extension='.tar.gz',
|
||||
url='https://bit.ly/mfem-4-2', extension='tar.gz',
|
||||
preferred=True)
|
||||
|
||||
version('4.1.0',
|
||||
'4c83fdcf083f8e2f5b37200a755db843cdb858811e25a8486ad36b2cbec0e11d',
|
||||
url='https://bit.ly/mfem-4-1', extension='.tar.gz')
|
||||
url='https://bit.ly/mfem-4-1', extension='tar.gz')
|
||||
|
||||
# Tagged development version used by xSDK
|
||||
version('4.0.1-xsdk', commit='c55c80d17b82d80de04b849dd526e17044f8c99a')
|
||||
|
||||
version('4.0.0',
|
||||
'df5bdac798ea84a263979f6fbf79de9013e1c55562f95f98644c3edcacfbc727',
|
||||
url='https://bit.ly/mfem-4-0', extension='.tar.gz')
|
||||
url='https://bit.ly/mfem-4-0', extension='tar.gz')
|
||||
|
||||
# Tagged development version used by the laghos package:
|
||||
version('3.4.1-laghos-v2.0', tag='laghos-v2.0')
|
||||
|
||||
version('3.4.0',
|
||||
sha256='4e73e4fe0482636de3c5dc983cd395839a83cb16f6f509bd88b053e8b3858e05',
|
||||
url='https://bit.ly/mfem-3-4', extension='.tar.gz')
|
||||
url='https://bit.ly/mfem-3-4', extension='tar.gz')
|
||||
|
||||
version('3.3.2',
|
||||
sha256='b70fa3c5080b9ec514fc05f4a04ff74322b99ac4ecd6d99c229f0ed5188fc0ce',
|
||||
url='https://goo.gl/Kd7Jk8', extension='.tar.gz')
|
||||
url='https://goo.gl/Kd7Jk8', extension='tar.gz')
|
||||
|
||||
# Tagged development version used by the laghos package:
|
||||
version('3.3.1-laghos-v1.0', tag='laghos-v1.0')
|
||||
|
||||
version('3.3',
|
||||
sha256='b17bd452593aada93dc0fee748fcfbbf4f04ce3e7d77fdd0341cc9103bcacd0b',
|
||||
url='http://goo.gl/Vrpsns', extension='.tar.gz')
|
||||
url='http://goo.gl/Vrpsns', extension='tar.gz')
|
||||
|
||||
version('3.2',
|
||||
sha256='2938c3deed4ec4f7fd5b5f5cfe656845282e86e2dcd477d292390058b7b94340',
|
||||
url='http://goo.gl/Y9T75B', extension='.tar.gz')
|
||||
url='http://goo.gl/Y9T75B', extension='tar.gz')
|
||||
|
||||
version('3.1',
|
||||
sha256='841ea5cf58de6fae4de0f553b0e01ebaab9cd9c67fa821e8a715666ecf18fc57',
|
||||
url='http://goo.gl/xrScXn', extension='.tar.gz')
|
||||
url='http://goo.gl/xrScXn', extension='tar.gz')
|
||||
|
||||
variant('static', default=True,
|
||||
description='Build static library')
|
||||
@@ -105,6 +105,7 @@ class Mfem(Package):
|
||||
variant('raja', default=False, description='Enable RAJA backend')
|
||||
variant('libceed', default=False, description='Enable libCEED backend')
|
||||
variant('umpire', default=False, description='Enable Umpire support')
|
||||
variant('amgx', default=False, description='Enable NVIDIA AmgX solver support')
|
||||
|
||||
variant('threadsafe', default=False,
|
||||
description=('Enable thread safe features.'
|
||||
@@ -174,6 +175,8 @@ class Mfem(Package):
|
||||
conflicts('+raja', when='mfem@:3.99.99')
|
||||
conflicts('+libceed', when='mfem@:4.0.99')
|
||||
conflicts('+umpire', when='mfem@:4.0.99')
|
||||
conflicts('+amgx', when='mfem@:4.1.99')
|
||||
conflicts('+amgx', when='~cuda')
|
||||
|
||||
conflicts('+superlu-dist', when='~mpi')
|
||||
conflicts('+strumpack', when='~mpi')
|
||||
@@ -246,6 +249,13 @@ class Mfem(Package):
|
||||
depends_on('umpire@2.0.0:', when='+umpire')
|
||||
depends_on('umpire+cuda', when='+umpire+cuda')
|
||||
|
||||
depends_on('amgx', when='+amgx')
|
||||
# MPI is enabled by default
|
||||
depends_on('amgx~mpi', when='+amgx~mpi')
|
||||
for sm_ in CudaPackage.cuda_arch_values:
|
||||
depends_on('amgx cuda_arch={0}'.format(sm_),
|
||||
when='+amgx cuda_arch=sm_{0}'.format(sm_))
|
||||
|
||||
patch('mfem_ppc_build.patch', when='@3.2:3.3.0 arch=ppc64le')
|
||||
patch('mfem-3.4.patch', when='@3.4.0')
|
||||
patch('mfem-3.3-3.4-petsc-3.9.patch',
|
||||
@@ -363,6 +373,7 @@ def find_optional_library(name, prefix):
|
||||
'MFEM_USE_CUDA=%s' % yes_no('+cuda'),
|
||||
'MFEM_USE_OCCA=%s' % yes_no('+occa'),
|
||||
'MFEM_USE_RAJA=%s' % yes_no('+raja'),
|
||||
'MFEM_USE_AMGX=%s' % yes_no('+amgx'),
|
||||
'MFEM_USE_CEED=%s' % yes_no('+libceed'),
|
||||
'MFEM_USE_UMPIRE=%s' % yes_no('+umpire')]
|
||||
|
||||
@@ -569,6 +580,15 @@ def find_optional_library(name, prefix):
|
||||
ld_flags_from_dirs([spec['raja'].prefix.lib],
|
||||
['RAJA'])]
|
||||
|
||||
if '+amgx' in spec:
|
||||
amgx = spec['amgx']
|
||||
if '+shared' in amgx:
|
||||
options += ['AMGX_OPT=-I%s' % amgx.prefix.include,
|
||||
'AMGX_LIB=%s' %
|
||||
ld_flags_from_library_list(amgx.libs)]
|
||||
else:
|
||||
options += ['AMGX_DIR=%s' % amgx.prefix]
|
||||
|
||||
if '+libceed' in spec:
|
||||
options += ['CEED_OPT=-I%s' % spec['libceed'].prefix.include,
|
||||
'CEED_LIB=%s' %
|
||||
|
||||
@@ -20,10 +20,13 @@ class Moab(AutotoolsPackage):
|
||||
git = "https://bitbucket.org/fathomteam/moab.git"
|
||||
url = "http://ftp.mcs.anl.gov/pub/fathom/moab-5.0.0.tar.gz"
|
||||
|
||||
maintainers = ['vijaysm', 'iulian787']
|
||||
|
||||
version('develop', branch='develop')
|
||||
version('master', branch='master')
|
||||
# Version 5.0.2 disappeared from FTP server. Instead set temporary version
|
||||
# of MoAB to 5.0.2 set to current head of the master branch.
|
||||
version('5.2.1', sha256='60d31762be3f0e5c89416c764e844ec88dac294169b59a5ead3c316b50f85c29')
|
||||
version('5.2.0', sha256='805ed3546deff39e076be4d1f68aba1cf0dda8c34ce43e1fc179d1aff57c5d5d')
|
||||
version('5.1.0', sha256='0371fc25d2594589e95700739f01614f097b6157fb6023ed8995e582726ca658')
|
||||
version('5.0.2', commit='01d05b1805236ef44da36f67eb2701095f2e33c7')
|
||||
version('5.0.1', commit='6cc12bd4ae3fa7c9ad81c595e4d38fa84f0884be')
|
||||
version('5.0.0', sha256='df5d5eb8c0d0dbb046de2e60aa611f276cbf007c9226c44a24ed19c570244e64')
|
||||
|
||||
@@ -13,7 +13,7 @@ class Mvapich2(AutotoolsPackage):
|
||||
networks (InfiniBand, Omni-Path, Ethernet/iWARP, and RoCE) and computing
|
||||
platforms (x86 (Intel and AMD), ARM and OpenPOWER)"""
|
||||
|
||||
homepage = "http://mvapich.cse.ohio-state.edu/"
|
||||
homepage = "http://mvapich.cse.ohio-state.edu/userguide/userguide_spack/"
|
||||
url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.4.tar.gz"
|
||||
list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
|
||||
|
||||
@@ -83,7 +83,12 @@ class Mvapich2(AutotoolsPackage):
|
||||
|
||||
variant(
|
||||
'fabrics',
|
||||
description='The fabric enabled for this build',
|
||||
description='Select the fabric to be enabled for this build.'
|
||||
'If you have verbs (either from OFED or MOFED), PSM or PSM2 '
|
||||
'installed on the system already, you may need to setup external '
|
||||
'packages in the package.yaml file for rdma-core, psm or opa-psm2. '
|
||||
'This is recommended to avoid unexpected runtime failures. For '
|
||||
'more info, visit the homepage url.',
|
||||
default='mrail',
|
||||
values=(
|
||||
'psm', 'psm2', 'sock', 'nemesisib', 'nemesis', 'mrail',
|
||||
|
||||
@@ -117,6 +117,7 @@ class Mysql(CMakePackage):
|
||||
depends_on('perl', type=['build', 'test'], when='@:7.99.99')
|
||||
depends_on('bison@2.1:', type='build')
|
||||
depends_on('m4', type='build', when='@develop platform=solaris')
|
||||
depends_on('cyrus-sasl', when='@:5.7.999')
|
||||
|
||||
patch('fix-no-server-5.5.patch', level=1, when='@5.5.0:5.5.999')
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ class Njet(AutotoolsPackage):
|
||||
homepage = "https://bitbucket.org/njet/njet/wiki/Home"
|
||||
url = "https://bitbucket.org/njet/njet/downloads/njet-2.1.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.1.1', sha256='3858ad37e84f3652711aa033819a6566352ecff04a1cb0189d6590af75b7bb56')
|
||||
|
||||
depends_on('qd')
|
||||
|
||||
@@ -112,6 +112,9 @@ class Openblas(MakefilePackage):
|
||||
patch('openblas_fujitsu_v0.3.11.patch', when='@0.3.11: %fj')
|
||||
patch('openblas_fujitsu2.patch', when='@0.3.10: %fj')
|
||||
|
||||
# See https://github.com/spack/spack/issues/19932
|
||||
conflicts('%gcc@:8.2.99', when='@0.3.11:')
|
||||
|
||||
# See https://github.com/spack/spack/issues/3036
|
||||
conflicts('%intel@16', when='@0.2.15:0.2.19')
|
||||
conflicts('+consistent_fpcsr', when='threads=none',
|
||||
|
||||
@@ -47,7 +47,7 @@ class Openldap(AutotoolsPackage):
|
||||
@when('+client_only')
|
||||
def configure_args(self):
|
||||
return ['CPPFLAGS=-D_GNU_SOURCE',
|
||||
'--disable-static',
|
||||
'--enable-static',
|
||||
'--enable-dynamic',
|
||||
'--disable-debug',
|
||||
'--disable-slapd',
|
||||
@@ -57,7 +57,7 @@ def configure_args(self):
|
||||
def configure_args(self):
|
||||
# Ref: https://www.openldap.org/lists/openldap-technical/201009/msg00304.html
|
||||
args = ['CPPFLAGS=-D_GNU_SOURCE', # fixes a build error, see Ref above
|
||||
'--disable-static',
|
||||
'--enable-static',
|
||||
'--disable-debug',
|
||||
'--with-cyrus-sasl',
|
||||
'--enable-dynamic',
|
||||
|
||||
@@ -17,6 +17,8 @@ class Openloops(Package):
|
||||
homepage = "https://openloops.hepforge.org/"
|
||||
url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.1.1', sha256='f1c47ece812227eab584e2c695fef74423d2f212873f762b8658f728685bcb91')
|
||||
|
||||
all_processes = (
|
||||
@@ -97,7 +99,11 @@ def configure(self, spec, prefix):
|
||||
f.write('gfortran_f_flags = -ffree-line-length-none\n')
|
||||
if self.spec.satisfies('@2.1.1') and not is_intel:
|
||||
f.write('gfortran_f_flags = -ffree-line-length-none ' +
|
||||
'-fdollar-ok -mcmodel=medium\n')
|
||||
'-fdollar-ok ')
|
||||
if self.spec.target.family == 'aarch64':
|
||||
f.write('-mcmodel=small\n')
|
||||
else:
|
||||
f.write('-mcmodel=medium\n')
|
||||
|
||||
if self.spec.satisfies('@:1.999.999 processes=lcg.coll'):
|
||||
copy(join_path(os.path.dirname(__file__), 'sft1.coll'), 'lcg.coll')
|
||||
|
||||
@@ -27,7 +27,7 @@ class Openscenegraph(CMakePackage):
|
||||
depends_on('cmake@2.8.7:', type='build')
|
||||
depends_on('gl')
|
||||
depends_on('qt+opengl', when='@:3.5.4') # Qt windowing system was moved into separate osgQt project
|
||||
depends_on('qt@4:', when='@3.2:')
|
||||
depends_on('qt@4:', when='@3.2:3.5.4')
|
||||
depends_on('qt@:4', when='@:3.1')
|
||||
depends_on('libxinerama')
|
||||
depends_on('libxrandr')
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
|
||||
from spack import *
|
||||
import spack.hooks.sbang as sbang
|
||||
|
||||
|
||||
class Phist(CMakePackage):
|
||||
@@ -101,6 +102,8 @@ class Phist(CMakePackage):
|
||||
|
||||
patch('update_tpetra_gotypes.patch', when='@:1.8.99')
|
||||
|
||||
patch('sbang.patch', when='+fortran')
|
||||
|
||||
# ###################### Dependencies ##########################
|
||||
|
||||
depends_on('cmake@3.8:', type='build')
|
||||
@@ -132,6 +135,9 @@ class Phist(CMakePackage):
|
||||
# to compile some OpenMP statements
|
||||
conflicts('%gcc@:4.9.1')
|
||||
|
||||
def setup_build_environment(self, env):
|
||||
env.set('SPACK_SBANG', sbang.sbang_install_path())
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
||||
|
||||
8
var/spack/repos/builtin/packages/phist/sbang.patch
Normal file
8
var/spack/repos/builtin/packages/phist/sbang.patch
Normal file
@@ -0,0 +1,8 @@
|
||||
diff --git a/fortran_bindings/cfwrapper.py.in b/fortran_bindings/cfwrapper.py.in
|
||||
index 6eb9051..874ce48 100755
|
||||
--- a/fortran_bindings/cfwrapper.py.in
|
||||
+++ b/fortran_bindings/cfwrapper.py.in
|
||||
@@ -1,3 +1,4 @@
|
||||
+#!/bin/bash $ENV{SPACK_SBANG}
|
||||
#!${PYTHON_EXECUTABLE}
|
||||
# -*- coding: utf-8 -*-
|
||||
@@ -13,6 +13,8 @@ class Photos(AutotoolsPackage):
|
||||
homepage = "http://photospp.web.cern.ch/photospp/"
|
||||
url = "http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61-LHC.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('3.61', sha256='acd3bcb769ba2a3e263de399e9b89fd6296405c9cbc5045b83baba3e60db4b26')
|
||||
|
||||
maintainers = ['vvolkl']
|
||||
|
||||
@@ -16,6 +16,8 @@ class Podio(CMakePackage):
|
||||
|
||||
maintainers = ['vvolkl', 'drbenmorgan']
|
||||
|
||||
tags = ["hep", "key4hep"]
|
||||
|
||||
version('master', branch='master')
|
||||
version('0.12.0', sha256='1729a2ce21e8b307fc37dfb9a9f5ae031e9f4be4992385cf99dba3e5fdf5323a')
|
||||
version('0.11.0', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6')
|
||||
|
||||
@@ -16,6 +16,7 @@ class Powertop(AutotoolsPackage):
|
||||
version('2.9', sha256='aa7fb7d8e9a00f05e7d8a7a2866d85929741e0d03a5bf40cab22d2021c959250')
|
||||
|
||||
depends_on('libnl')
|
||||
depends_on('ncurses', type='link')
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.prepend_path('PATH', self.prefix.sbin)
|
||||
|
||||
@@ -22,7 +22,6 @@ class PyGitReview(PythonPackage):
|
||||
depends_on('py-pbr', type=('build', 'run'))
|
||||
depends_on('py-requests@1.1:', type=('build', 'run'))
|
||||
depends_on('git', type=('run'))
|
||||
depends_on('tk', type=('run'))
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set('PBR_VERSION', str(self.spec.version))
|
||||
|
||||
@@ -14,6 +14,8 @@ class PyGosam(PythonPackage):
|
||||
homepage = "https://gosam.hepforge.org"
|
||||
url = "https://gosam.hepforge.org/downloads/?f=gosam-2.0.4-6d9f1cba.tar.gz"
|
||||
|
||||
tags = ['hep']
|
||||
|
||||
version('2.0.4', sha256='faf621c70f66d9dffc16ac5cce66258067f39f686d722a4867eeb759fcde4f44')
|
||||
|
||||
depends_on('form', type='run')
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user