summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorBrian Van Essen <vanessen1@llnl.gov>2018-01-23 18:05:54 -0700
committerbecker33 <becker33@llnl.gov>2018-01-23 17:05:54 -0800
commita62e1a0451d81241e730d0e93dcb113d31041ebf (patch)
tree61269677b232ff68a4a25eeec4f3f8dd8140f7b4 /var
parent8bdf7e6baab4ce682d0e779bf3c1b18b0f10425f (diff)
downloadspack-a62e1a0451d81241e730d0e93dcb113d31041ebf.tar.gz
spack-a62e1a0451d81241e730d0e93dcb113d31041ebf.tar.bz2
spack-a62e1a0451d81241e730d0e93dcb113d31041ebf.tar.xz
spack-a62e1a0451d81241e730d0e93dcb113d31041ebf.zip
Lbann update (#6987)
* Added new link line flag * Refactored some of the common components out of the different version's build commands. Also corrected the when commands to properly capture non-numeric names such as local. * Added support to the Elemental package for the Hydrogen branch.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/elemental/package.py37
-rw-r--r--var/spack/repos/builtin/packages/lbann/package.py38
2 files changed, 57 insertions, 18 deletions
diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py
index 14e376628c..19ab7583ab 100644
--- a/var/spack/repos/builtin/packages/elemental/package.py
+++ b/var/spack/repos/builtin/packages/elemental/package.py
@@ -34,6 +34,8 @@ class Elemental(CMakePackage):
homepage = "http://libelemental.org"
url = "https://github.com/elemental/Elemental/archive/v0.87.6.tar.gz"
+ version('hydrogen-develop', git='https://github.com/LLNL/Elemental.git', branch='hydrogen')
+
version('develop', git='https://github.com/elemental/Elemental.git', branch='master')
version('0.87.7', '6c1e7442021c59a36049e37ea69b8075')
version('0.87.6', '9fd29783d45b0a0e27c0df85f548abe9')
@@ -105,6 +107,7 @@ class Elemental(CMakePackage):
'libEl', root=self.prefix, shared=shared, recurse=True
)
+ @when('@0.87.6:')
def cmake_args(self):
spec = self.spec
@@ -170,3 +173,37 @@ class Elemental(CMakePackage):
'-DPYTHON_SITE_PACKAGES:STRING={0}'.format(site_packages_dir)])
return args
+
+ @when('@:0.87.6')
+ def cmake_args(self):
+ spec = self.spec
+
+ if '@:0.87.7' in spec and '%intel@:17.0.2' in spec:
+ raise UnsupportedCompilerError(
+ "Elemental {0} has a known bug with compiler: {1} {2}".format(
+ spec.version, spec.compiler.name, spec.compiler.version))
+
+ args = [
+ '-DCMAKE_INSTALL_MESSAGE:STRING=LAZY',
+ '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc,
+ '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx,
+ '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc,
+ '-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec),
+ '-DHydrogen_ENABLE_OPENMP:BOOL=%s' % ('+hybrid' in spec),
+ '-DHydrogen_ENABLE_QUADMATH:BOOL=%s' % ('+quad' in spec),
+ '-DHydrogen_USE_64BIT_INTS:BOOL=%s' % ('+int64' in spec),
+ '-DHydrogen_USE_64BIT_BLAS_INTS:BOOL=%s' % ('+int64_blas' in spec),
+ '-DHydrogen_ENABLE_MPC:BOOL=%s' % ('+mpfr' in spec),
+ '-DHydrogen_GENERAL_LAPACK_FALLBACK=ON',
+ ]
+
+ if 'blas=openblas' in spec:
+ args.extend([
+ '-DHydrogen_USE_OpenBLAS:BOOL=%s' % ('blas=openblas' in spec),
+ '-DOpenBLAS_DIR:STRING={0}'.format(
+ spec['elemental'].prefix)])
+ elif 'blas=mkl' in spec:
+ args.extend([
+ '-DHydrogen_USE_MKL:BOOL=%s' % ('blas=mkl' in spec)])
+
+ return args
diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py
index 8cfd6e4c62..6cc53ae2df 100644
--- a/var/spack/repos/builtin/packages/lbann/package.py
+++ b/var/spack/repos/builtin/packages/lbann/package.py
@@ -62,16 +62,27 @@ class Lbann(CMakePackage):
depends_on('cnpy')
depends_on('nccl', when='+gpu +nccl')
- @when('@0.94:')
- def cmake_args(self):
+ @property
+ def common_config_args(self):
spec = self.spec
# Environment variables
CPPFLAGS = []
- CPPFLAGS.append('-DLBANN_SET_EL_RNG')
+ CPPFLAGS.append('-DLBANN_SET_EL_RNG -ldl')
- args = [
+ return [
'-DCMAKE_INSTALL_MESSAGE=LAZY',
'-DCMAKE_CXX_FLAGS=%s' % ' '.join(CPPFLAGS),
+ '-DLBANN_VERSION=spack',
+ '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
+ ]
+
+ # Get any recent versions or non-numeric version
+ # Note that develop > numeric and non-develop < numeric
+ @when('@:0.91' or '@0.94:')
+ def cmake_args(self):
+ spec = self.spec
+ args = self.common_config_args
+ args.extend([
'-DLBANN_WITH_TOPO_AWARE:BOOL=%s' % ('+gpu +nccl' in spec),
'-DLBANN_SEQUENTIAL_INITIALIZATION:BOOL=%s' %
('+seq_init' in spec),
@@ -79,10 +90,8 @@ class Lbann(CMakePackage):
'-DLBANN_WITH_VTUNE=OFF',
'-DElemental_DIR={0}/CMake/elemental'.format(
spec['elemental'].prefix),
- '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
'-DLBANN_DATATYPE={0}'.format(spec.variants['dtype'].value),
- '-DLBANN_VERBOSE=0',
- '-DLBANN_VERSION=spack']
+ '-DLBANN_VERBOSE=0'])
if '+opencv' in spec:
args.extend(['-DOpenCV_DIR:STRING={0}'.format(
@@ -108,16 +117,11 @@ class Lbann(CMakePackage):
return args
- @when('@:0.93')
+ @when('@0.91:0.93')
def cmake_args(self):
spec = self.spec
- # Environment variables
- CPPFLAGS = []
- CPPFLAGS.append('-DLBANN_SET_EL_RNG')
-
- args = [
- '-DCMAKE_INSTALL_MESSAGE=LAZY',
- '-DCMAKE_CXX_FLAGS=%s' % ' '.join(CPPFLAGS),
+ args = self.common_config_args
+ args.extend([
'-DWITH_CUDA:BOOL=%s' % ('+gpu' in spec),
'-DWITH_CUDNN:BOOL=%s' % ('+gpu' in spec),
'-DELEMENTAL_USE_CUBLAS:BOOL=%s' % (
@@ -125,13 +129,11 @@ class Lbann(CMakePackage):
'-DWITH_TBINF=OFF',
'-DWITH_VTUNE=OFF',
'-DElemental_DIR={0}'.format(spec['elemental'].prefix),
- '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix),
'-DELEMENTAL_MATH_LIBS={0}'.format(
spec['elemental'].libs),
'-DSEQ_INIT:BOOL=%s' % ('+seq_init' in spec),
'-DVERBOSE=0',
- '-DLBANN_HOME=.',
- '-DLBANN_VER=spack']
+ '-DLBANN_HOME=.'])
if spec.variants['dtype'].value == 'float':
args.extend(['-DDATATYPE=4'])