diff options
author | Kelly (KT) Thompson <KineticTheory@users.noreply.github.com> | 2020-10-10 20:02:00 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-10 21:02:00 -0500 |
commit | 933aacf7b6ad250fc4828be3dd3cf3d766daa2ab (patch) | |
tree | 840d51f5c49d33a09c5e1bdeaaa1516bae968c88 | |
parent | e8306e8f22a217ec8424fb126fcee63967293d3f (diff) | |
download | spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.tar.gz spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.tar.bz2 spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.tar.xz spack-933aacf7b6ad250fc4828be3dd3cf3d766daa2ab.zip |
Provide draco-7_8_0. (#18947)
* Provide draco-7_8_0.
+ Also provide a patchfile for draco-7_6_0 to support CrayPE builds.
+ Version 7.8.0 has a new variant `+caliper`.
+ Sort dependencies alphabetically after grouping by required and optional.
* Remove patchfile that is no longer needed.
+ Newer versions of draco do not require this patch.
+ Older versions of draco are not supported for spectrum-mpi.
* Change new variant +caliper to default to False.
-rw-r--r-- | var/spack/repos/builtin/packages/draco/d760-cray.patch | 107 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/draco/package.py | 38 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/draco/smpi.patch | 12 |
3 files changed, 128 insertions, 29 deletions
diff --git a/var/spack/repos/builtin/packages/draco/d760-cray.patch b/var/spack/repos/builtin/packages/draco/d760-cray.patch new file mode 100644 index 0000000000..dece924461 --- /dev/null +++ b/var/spack/repos/builtin/packages/draco/d760-cray.patch @@ -0,0 +1,107 @@ +diff --git a/config/platform_checks.cmake b/config/platform_checks.cmake +index d2ab4da9..4d3c14c2 100644 +--- a/config/platform_checks.cmake ++++ b/config/platform_checks.cmake +@@ -77,54 +77,54 @@ endif() + #------------------------------------------------------------------------------# + macro( query_craype ) + +- if( NOT DEFINED CRAY_PE ) +- +- # Is this a Cray machine? +- message( STATUS "Looking to see if we are building in a Cray Environment...") +- if( DEFINED ENV{CRAYPE_VERSION} ) +- set( CRAY_PE ON CACHE BOOL +- "Are we building in a Cray Programming Environment?") +- +- # We expect developers to use the Cray compiler wrappers (especially in +- # setupMPI.cmake). See also +- # https://cmake.org/cmake/help/latest/module/FindMPI.html +- if( NOT "$ENV{CXX}" MATCHES "$ENV{SPACK_ROOT}/lib/spack/env/" ) +- # skip this check if building from within spack. +- if( NOT "$ENV{CXX}" MATCHES "CC$" OR +- NOT "$ENV{CC}" MATCHES "cc$" OR +- NOT "$ENV{FC}" MATCHES "ftn$" OR +- NOT "$ENV{CRAYPE_LINK_TYPE}" MATCHES "dynamic$" ) +- message( FATAL_ERROR +- "The build system requires that the Cray compiler wrappers (CC, cc, ftn) be " +- " used when configuring this product on a Cray system (CRAY_PE=${CRAY_PE}). The" +- " development environment must also support dynamic linking. The build system " +- " thinks you are trying to use:\n" +- " CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}\n" +- " CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}\n" +- " CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}\n" +- " CRAYPE_LINK_TYPE = $ENV{CRAYPE_LINK_TYPE}\n" +- "If you are working on a system that runs the Cray Programming Environment, try" +- " setting the following variables and rerunning cmake from a clean build" +- " directory:\n" +- " export CXX=`which CC`\n" +- " export CC=`which cc`\n" +- " export FC=`which ftn`\n" +- " export CRAYPE_LINK_TYPE=dynamic\n" +- "Otherwise please email this error message and other related information to" +- " draco@lanl.gov.\n" ) +- endif() +- endif() +- message( STATUS +- "Looking to see if we are building in a Cray Environment..." +- "found version $ENV{CRAYPE_VERSION}.") +- else() +- set( CRAY_PE OFF CACHE BOOL +- "Are we building in a Cray Programming Environment?") +- message( STATUS +- "Looking to see if we are building in a Cray Environment...no.") +- endif() +- +- endif() ++ # if( NOT DEFINED CRAY_PE ) ++ ++ # # Is this a Cray machine? ++ # message( STATUS "Looking to see if we are building in a Cray Environment...") ++ # if( DEFINED ENV{CRAYPE_VERSION} ) ++ # set( CRAY_PE ON CACHE BOOL ++ # "Are we building in a Cray Programming Environment?") ++ ++ # # We expect developers to use the Cray compiler wrappers (especially in ++ # # setupMPI.cmake). See also ++ # # https://cmake.org/cmake/help/latest/module/FindMPI.html ++ # if( NOT "$ENV{CXX}" MATCHES "$ENV{SPACK_ROOT}/lib/spack/env/" ) ++ # # skip this check if building from within spack. ++ # if( NOT "$ENV{CXX}" MATCHES "CC$" OR ++ # NOT "$ENV{CC}" MATCHES "cc$" OR ++ # NOT "$ENV{FC}" MATCHES "ftn$" OR ++ # NOT "$ENV{CRAYPE_LINK_TYPE}" MATCHES "dynamic$" ) ++ # message( FATAL_ERROR ++ # "The build system requires that the Cray compiler wrappers (CC, cc, ftn) be " ++ # " used when configuring this product on a Cray system (CRAY_PE=${CRAY_PE}). The" ++ # " development environment must also support dynamic linking. The build system " ++ # " thinks you are trying to use:\n" ++ # " CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}\n" ++ # " CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}\n" ++ # " CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}\n" ++ # " CRAYPE_LINK_TYPE = $ENV{CRAYPE_LINK_TYPE}\n" ++ # "If you are working on a system that runs the Cray Programming Environment, try" ++ # " setting the following variables and rerunning cmake from a clean build" ++ # " directory:\n" ++ # " export CXX=`which CC`\n" ++ # " export CC=`which cc`\n" ++ # " export FC=`which ftn`\n" ++ # " export CRAYPE_LINK_TYPE=dynamic\n" ++ # "Otherwise please email this error message and other related information to" ++ # " draco@lanl.gov.\n" ) ++ # endif() ++ # endif() ++ # message( STATUS ++ # "Looking to see if we are building in a Cray Environment..." ++ # "found version $ENV{CRAYPE_VERSION}.") ++ # else() ++ # set( CRAY_PE OFF CACHE BOOL ++ # "Are we building in a Cray Programming Environment?") ++ # message( STATUS ++ # "Looking to see if we are building in a Cray Environment...no.") ++ # endif() ++ ++ # endif() + endmacro() + + ##---------------------------------------------------------------------------## diff --git a/var/spack/repos/builtin/packages/draco/package.py b/var/spack/repos/builtin/packages/draco/package.py index 6b3e2da72c..eed12b8e75 100644 --- a/var/spack/repos/builtin/packages/draco/package.py +++ b/var/spack/repos/builtin/packages/draco/package.py @@ -18,6 +18,7 @@ class Draco(CMakePackage): maintainers = ['KineticTheory'] version('develop', branch='develop') + version('7.8.0', sha256='f6de794457441f69025619be58810bca432f3e0dd773ea9b9a7977b1dc09530d') version('7.7.0', sha256='eb7fffbcba48e16524f619d261192ead129f968c59f3581f3217b89590812ddf') version('7.6.0', sha256='c2c6b329620d7bcb0f2fc14371f105dfb80a84e7c5adbb34620777034b15c7c9') version('7.5.0', sha256='0bb12b5f5ff60ba3087310c07da42e8d4f481ec4259daaa24ec240815a2e9dec') @@ -34,26 +35,29 @@ class Draco(CMakePackage): variant('build_type', default='Release', description='CMake build type', values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel')) + variant('caliper', default=False, description='Enable caliper timers support') variant('cuda', default=False, description='Enable Cuda/GPU support') - variant('eospac', default=True, description='Enable EOSPAC support') - variant('lapack', default=True, description='Enable LAPACK wrapper') - variant('libquo', default=True, description='Enable Quo wrapper') - variant('parmetis', default=True, description='Enable Parmetis support') + variant('eospac', default=True, description='Enable EOSPAC support') + variant('lapack', default=True, description='Enable LAPACK wrapper') + variant('libquo', default=True, description='Enable Quo wrapper') + variant('parmetis', default=True, description='Enable Parmetis support') variant('qt', default=False, description='Enable Qt support') variant('superlu_dist', default=True, description='Enable SuperLU-DIST support') - depends_on('gsl') - depends_on('mpi@3:', type=('build', 'link', 'run')) - depends_on('numdiff', type='build') - depends_on('python@2.7:', when='@:7.6.99', type=('build', 'run')) - depends_on('python@3.5:', when='@7.7.0:', type=('build', 'run', 'test')) - depends_on('random123@1.09', type='build') - depends_on('cmake@3.9:', when='@:6.99', type='build') depends_on('cmake@3.11:', when='@7.0.0:7.1.99', type='build') - depends_on('cmake@3.14:', when='@7.2:7.6.99', type='build') + depends_on('cmake@3.14:', when='@7.2.0:7.6.99', type='build') depends_on('cmake@3.17:', when='@7.7:', type='build') - depends_on('cuda@10.1:', when='+cuda') + depends_on('gsl') + depends_on('mpi@3:', type=('build', 'link', 'run')) + depends_on('numdiff', type='build') + depends_on('random123@1.09', type='build') + depends_on('python@2.7:', when='@7.7.0:', type=('build', 'run')) + depends_on('python@3.5:', when='@:7.6.99', type=('build', 'run', 'test')) + + # Optional dependencies + depends_on('caliper', when='+caliper') + depends_on('cuda@11.0:', when='+cuda') depends_on('eospac@6.3:', when='+eospac') depends_on('lapack', when='+lapack') depends_on('libquo@1.3.1:', when='@7.4.0:+libquo') @@ -64,13 +68,14 @@ class Draco(CMakePackage): depends_on('superlu-dist@:5.99', when='@:7.6.99+superlu_dist') conflicts('+cuda', when='@:7.6.99') + conflicts('+caliper', when='@:7.7.99') # Fix python discovery. patch('d710.patch', when='@7.1.0^python@3:') patch('d710-python2.patch', when='@7.1.0^python@2.7:2.99') patch('d730.patch', when='@7.3.0:7.3.99') patch('d740.patch', when='@7.4.0:7.4.99') - patch('smpi.patch', when='@:7.6.99') + patch('d760-cray.patch', when='@7.6.0') patch('d770-nocuda.patch', when='@7.7.0') def url_for_version(self, version): @@ -81,10 +86,9 @@ class Draco(CMakePackage): options = [] options.extend([ '-Wno-dev', - '-DBUILD_TESTING={0}'.format('ON' if self.run_tests else 'OFF') + '-DBUILD_TESTING={0}'.format('ON' if self.run_tests else 'OFF'), + '-DUSE_CUDA={0}'.format('ON' if '+cuda' in self.spec else 'OFF') ]) - if '~cuda' in self.spec: - options.extend(['-DUSE_CUDA=OFF']) return options def check(self): diff --git a/var/spack/repos/builtin/packages/draco/smpi.patch b/var/spack/repos/builtin/packages/draco/smpi.patch deleted file mode 100644 index 64b80d8e34..0000000000 --- a/var/spack/repos/builtin/packages/draco/smpi.patch +++ /dev/null @@ -1,12 +0,0 @@ -The LANL Darwin platform calls the IBM Spectrum modules "smpi". -diff -up config/setupMPI.cmake.smpi config/setupMPI.cmake ---- a/config/setupMPI.cmake.smpi 2020-05-28 11:54:17.851957957 -0600 -+++ b/config/setupMPI.cmake 2020-05-28 11:55:35.018332601 -0600 -@@ -46,6 +46,7 @@ function( setMPIflavorVer ) - elseif( "${MPIEXEC_EXECUTABLE}" MATCHES "mvapich2") - set( MPI_FLAVOR "mvapich2" ) - elseif( "${MPIEXEC_EXECUTABLE}" MATCHES "spectrum-mpi" OR -+ "${MPIEXEC_EXECUTABLE}" MATCHES "smpi" OR - "${MPIEXEC_EXECUTABLE}" MATCHES "jsrun" ) - set( MPI_FLAVOR "spectrum") - endif() |