lbann: add aluminum dependency (#9523)

* Added support for the Aluminum library to LBANN and Hydrogen. Also
  fixed several bugs in the grouping of dependencies of both packages.
* Updated the conduit package to have the proper dependency on the
  python variant.
* Added new versions for NCCL
* Fixed a bug in how Hydrogen set the path for OpenBLAS.
* Added support for conduit in LBANN.
This commit is contained in:
Brian Van Essen
2018-10-18 11:22:17 -07:00
committed by Peter Scheibel
parent d1db12e153
commit 659d845185
5 changed files with 107 additions and 16 deletions

View File

@@ -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 @@ def cmake_args(self):
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 @@ def cmake_args(self):
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