summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/hydrogen/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/hydrogen/package.py')
-rw-r--r--var/spack/repos/builtin/packages/hydrogen/package.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py
index ce2621f34c..9a65ea4fe3 100644
--- a/var/spack/repos/builtin/packages/hydrogen/package.py
+++ b/var/spack/repos/builtin/packages/hydrogen/package.py
@@ -17,6 +17,7 @@ class Hydrogen(CMakePackage):
git = "https://github.com/LLNL/Elemental.git"
version('develop', branch='hydrogen')
+ version('1.0', sha256='d8a97de3133f2c6b6bb4b80d32b4a4cc25eb25e0df4f0cec0f8cb19bf34ece98')
version('0.99', 'b678433ab1d498da47acf3dc5e056c23')
variant('shared', default=True,
@@ -45,6 +46,10 @@ class Hydrogen(CMakePackage):
description='Builds with support for GPUs via CUDA and cuDNN')
variant('test', default=False,
description='Builds test suite')
+ variant('al', default=False,
+ description='Builds with Aluminum communication library')
+ variant('omp_taskloops', default=False,
+ description='Use OpenMP taskloops instead of parallel for loops.')
# Note that #1712 forces us to enumerate the different blas variants
depends_on('openblas', when='blas=openblas ~openmp_blas ~int64_blas')
@@ -66,6 +71,10 @@ class Hydrogen(CMakePackage):
depends_on('essl threads=openmp +ilp64', when='blas=essl +openmp_blas +int64_blas')
depends_on('netlib-lapack +external-blas', when='blas=essl')
+ depends_on('aluminum@master', when='+al ~cuda')
+ depends_on('aluminum@master +gpu +mpi-cuda', when='+al +cuda ~nccl')
+ depends_on('aluminum@master +gpu +nccl +mpi_cuda', when='+al +cuda +nccl')
+
# Note that this forces us to use OpenBLAS until #1712 is fixed
depends_on('lapack', when='blas=openblas ~openmp_blas')
@@ -123,7 +132,7 @@ class Hydrogen(CMakePackage):
args.extend([
'-DHydrogen_USE_OpenBLAS:BOOL=%s' % ('blas=openblas' in spec),
'-DOpenBLAS_DIR:STRING={0}'.format(
- spec['hydrogen'].prefix)])
+ spec['openblas'].prefix)])
elif 'blas=mkl' in spec:
args.extend([
'-DHydrogen_USE_MKL:BOOL=%s' % ('blas=mkl' in spec)])
@@ -133,4 +142,15 @@ class Hydrogen(CMakePackage):
args.extend([
'-DHydrogen_USE_ESSL:BOOL=%s' % ('blas=essl' in spec)])
+ if '+omp_taskloops' in spec:
+ args.extend([
+ '-DHydrogen_ENABLE_OMP_TASKLOOP:BOOL=%s' %
+ ('+omp_taskloops' in spec)])
+
+ if '+al' in spec:
+ args.extend([
+ '-DHydrogen_ENABLE_ALUMINUM:BOOL=%s' % ('+al' in spec),
+ '-DHYDROGEN_Aluminum_DIR={0}'.format(
+ spec['aluminum'].prefix)])
+
return args