From 2fd26be9889847b9bc75fde160e263e3b98448c3 Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Thu, 27 Jan 2022 23:08:15 -0500 Subject: Trilinos: minimize E4S CUDA build (#28591) * trilinos: update dependencies Use the tribits deps to clarify some dependencies, and group some together using `with` statements, eliminating some transitive conflict duplication. * trilinos: Restricit cuda incompatibility * e4s: vastly reduce number of packages in trilinos-cuda build Not clear who the customers of cuda-enabled trilinos are, or what options they need, or which sets of options conflict... * e4s: remove ~wrapper from trilinos+cuda --- .../gitlab/cloud_pipelines/stacks/e4s/spack.yaml | 4 +- .../repos/builtin/packages/trilinos/package.py | 47 ++++++++++------------ 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml index d2ed08d04d..fe054d3345 100644 --- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml +++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml @@ -77,7 +77,9 @@ spack: - sundials +cuda cuda_arch=70 - superlu-dist +cuda cuda_arch=70 - tasmanian +cuda cuda_arch=70 - - trilinos@13.2.0 +cuda cuda_arch=70 + # Trilinos: enable CUDA, Kokkos, and important Tpetra-era solver packages; + # disable Epetra; disable ETI to speed up CI; disable all other TPLs + - trilinos@13.2.0 +cuda cuda_arch=70 +wrapper +amesos2 +belos +ifpack2 +kokkos +muelu +nox +stratimikos +tpetra ~amesos ~anasazi ~aztec ~epetraext ~ifpack ~isorropia ~ml ~teko ~tempus ~zoltan ~zoltan2 ~explicit_template_instantiation ~adios2~basker~boost~chaco~complex~debug~dtk~epetraextbtf~epetraextexperimental~epetraextgraphreorderings~exodus~float~fortran~gtest~hypre~intrepid~intrepid2~ipo~mesquite~minitensor~mumps~openmp~phalanx~piro~rocm~rol~rythmos~sacado~scorec~shards~shared~shylu~stk~stokhos~strumpack~suite-sparse~superlu~superlu-dist~trilinoscouplings~x11 - umpire ~shared +cuda cuda_arch=70 - vtk-m +cuda cuda_arch=70 - zfp +cuda cuda_arch=70 diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 88c6714fc5..a130447979 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -174,7 +174,7 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): # ###################### Conflicts ########################## - # Epetra packages + # Epetra stack with when('~epetra'): conflicts('+amesos') conflicts('+aztec') @@ -188,8 +188,11 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts('+epetraextbtf') conflicts('+epetraextexperimental') conflicts('+epetraextgraphreorderings') + with when('+teko'): + conflicts('~stratimikos') + conflicts('@:12 gotype=long') - # Tpetra packages + # Tpetra stack with when('~kokkos'): conflicts('+cuda') conflicts('+rocm') @@ -204,31 +207,29 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): conflicts('+teko') conflicts('+zoltan2') - with when('+teko'): - conflicts('~amesos') - conflicts('~anasazi') - conflicts('~aztec') - conflicts('~ifpack') - conflicts('~ml') - conflicts('~stratimikos') - conflicts('@:12 gotype=long') + with when('~zoltan'): + conflicts('+isorropia') + conflicts('+scorec') + conflicts('+shylu') + conflicts('+zoltan2') + with when('~shards'): + conflicts('+intrepid') + conflicts('+intrepid2') + conflicts('+scorec') + conflicts('+stk') + with when('+scorec'): + conflicts('~mpi') + conflicts('~stk') # Known requirements from tribits dependencies conflicts('+aztec', when='~fortran') conflicts('+basker', when='~amesos2') - conflicts('+minitensor', when='~boost') conflicts('+ifpack2', when='~belos') conflicts('+intrepid', when='~sacado') - conflicts('+intrepid', when='~shards') - conflicts('+intrepid2', when='~shards') - conflicts('+isorropia', when='~zoltan') + conflicts('+minitensor', when='~boost') conflicts('+phalanx', when='~sacado') - conflicts('+scorec', when='~mpi') - conflicts('+scorec', when='~shards') - conflicts('+scorec', when='~stk') - conflicts('+scorec', when='~zoltan') + conflicts('+stokhos', when='~kokkos') conflicts('+tempus', when='~nox') - conflicts('+zoltan2', when='~zoltan') # Only allow DTK with Trilinos 12.14, 12.18 conflicts('+dtk', when='~boost') @@ -279,12 +280,8 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage): # Old trilinos fails with new CUDA (see #27180) conflicts('@:13.0.1 +cuda', when='^cuda@11:') - - # See discussion on the PR adding cuda@11.6 for details. - # - # https://github.com/spack/spack/pull/28439 - # - conflicts('+cuda', when='^cuda@11.6.0:') + # Build hangs with CUDA 11.6 (see #28439) + conflicts('+cuda +stokhos', when='^cuda@11.6:') # stokhos fails on xl/xl_r conflicts('+stokhos', when='%xl') -- cgit v1.2.3-70-g09d2