summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorNichols A. Romero <naromero77@users.noreply.github.com>2020-12-02 04:07:46 -0600
committerGitHub <noreply@github.com>2020-12-02 11:07:46 +0100
commit0d988700ba9dde3acf40d7c942d02f8961f67088 (patch)
tree90e2c4df48fcb4b76253a9777d3c97f728b173b2 /var
parenta3005d4a7c67426dd2c27b5851ae49ef7926ab60 (diff)
downloadspack-0d988700ba9dde3acf40d7c942d02f8961f67088.tar.gz
spack-0d988700ba9dde3acf40d7c942d02f8961f67088.tar.bz2
spack-0d988700ba9dde3acf40d7c942d02f8961f67088.tar.xz
spack-0d988700ba9dde3acf40d7c942d02f8961f67088.zip
QMCPACK: added v3.10.0 and updates to package recipe (#20199)
* cuda_arch value must be explictly set. * QMCPACK LaTeX manual now converted to reStructuredText and directory no longer exists.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/qmcpack/package.py48
1 files changed, 30 insertions, 18 deletions
diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py
index 07724f63fe..c1cd86e1d0 100644
--- a/var/spack/repos/builtin/packages/qmcpack/package.py
+++ b/var/spack/repos/builtin/packages/qmcpack/package.py
@@ -22,6 +22,7 @@ class Qmcpack(CMakePackage, CudaPackage):
# can occasionally change.
# NOTE: 12/19/2017 QMCPACK 3.0.0 does not build properly with Spack.
version('develop')
+ version('3.10.0', tag='v3.10.0')
version('3.9.2', tag='v3.9.2')
version('3.9.1', tag='v3.9.1')
version('3.9.0', tag='v3.9.0')
@@ -47,9 +48,11 @@ class Qmcpack(CMakePackage, CudaPackage):
description='Build the mixed precision (mixture of single and '
'double precision) version')
variant('soa', default=True,
- description='Build with Structure-of-Array instead of '
- 'Array-of-Structure code. Only for CPU code')
- variant('timers', default=False,
+ description='Build with Structure-of-Array (SoA) instead of '
+ 'Array-of-Structure code (AoS). This is a legacy '
+ 'option and the AoS code is not available after '
+ 'v3.10.0. Only affected performance, not results.')
+ variant('timers', default=True,
description='Build with support for timers')
variant('da', default=False,
description='Install with support for basic data analysis tools')
@@ -74,6 +77,11 @@ class Qmcpack(CMakePackage, CudaPackage):
# high-level variant conflicts
conflicts(
+ '~soa',
+ when='@3.10.0:',
+ msg='AoS code path is not available after QMCPACK v3.10.0')
+
+ conflicts(
'+phdf5',
when='~mpi',
msg='Parallel collective I/O requires MPI-enabled QMCPACK. '
@@ -87,17 +95,28 @@ class Qmcpack(CMakePackage, CudaPackage):
conflicts('^openblas+ilp64',
msg='QMCPACK does not support OpenBLAS 64-bit integer variant')
+ conflicts('cuda_arch=none',
+ when='+cuda',
+ msg='A value for cuda_arch must be specified. Add cuda_arch=XX')
+
# Omitted for now due to concretizer bug
# conflicts('^intel-mkl+ilp64',
# msg='QMCPACK does not support MKL 64-bit integer variant')
+ # QMCPACK 3.10.0 increased the minimum requirements for compiler versions
+ newer_compiler_warning = 'QMCPACK v3.10.0 or later requires a newer ' \
+ 'version of this compiler'
+ conflicts('%gcc@:6', when='@3.10.0:', msg=newer_compiler_warning)
+ conflicts('%intel@:18', when='@3.10.0:', msg=newer_compiler_warning)
+ conflicts('%clang@:6', when='@3.10.0:', msg=newer_compiler_warning)
+
# QMCPACK 3.6.0 or later requires support for C++14
- compiler_warning = 'QMCPACK 3.6.0 or later requires a ' \
- 'compiler with support for C++14'
- conflicts('%gcc@:4', when='@3.6.0:', msg=compiler_warning)
- conflicts('%intel@:17', when='@3.6.0:', msg=compiler_warning)
- conflicts('%pgi@:17', when='@3.6.0:', msg=compiler_warning)
- conflicts('%llvm@:3.4', when='@3.6.0:', msg=compiler_warning)
+ cpp14_warning = 'QMCPACK v3.6.0 or later requires a ' \
+ 'compiler with support for C++14'
+ conflicts('%gcc@:4', when='@3.6.0:', msg=cpp14_warning)
+ conflicts('%intel@:17', when='@3.6.0:', msg=cpp14_warning)
+ conflicts('%pgi@:17', when='@3.6.0:', msg=cpp14_warning)
+ conflicts('%clang@:3.4', when='@3.6.0:', msg=cpp14_warning)
conflicts('+afqmc', when='@:3.6.0', msg='AFQMC not recommended before v3.7')
conflicts('+afqmc', when='~mpi', msg='AFQMC requires building with +mpi')
@@ -125,6 +144,7 @@ class Qmcpack(CMakePackage, CudaPackage):
# Essential libraries
depends_on('cmake@3.4.3:', when='@:3.5.0', type='build')
depends_on('cmake@3.6.0:', when='@3.6.0:', type='build')
+ depends_on('cmake@3.14.0:', when='@3.10.0:', type='build')
depends_on('boost')
depends_on('boost@1.61.0:', when='@3.6.0:')
depends_on('libxml2')
@@ -265,14 +285,7 @@ class Qmcpack(CMakePackage, CudaPackage):
'QMCPACK only supports compilation for a single '
'GPU architecture at a time'
)
- if cuda_arch != 'none':
- args.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch))
- else:
- # This is the default value set in QMCPACK's CMake
- # Not possible to set default value for cuda_arch,
- # thus this won't be stored in the spec, which is
- # a problem.
- args.append('-DCUDA_ARCH=sm_35')
+ args.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch))
else:
args.append('-DQMC_CUDA=0')
@@ -352,7 +365,6 @@ class Qmcpack(CMakePackage, CudaPackage):
# We assume cwd is self.stage.source_path, then
# install manual, labs, and nexus
- install_tree('manual', prefix.manual)
install_tree('labs', prefix.labs)
install_tree('nexus', prefix.nexus)