Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/corona pipeline tpls #276

Merged
merged 139 commits into from
Jul 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
0de6c53
update radiuss-spack-config submodule
gardner48 Feb 6, 2023
84629d0
update uberenv submodule
gardner48 Feb 6, 2023
6377fc6
update spack to v0.19.0
gardner48 Feb 6, 2023
5a5a554
run spack clean
gardner48 Feb 6, 2023
f2a8845
Revert "run spack clean"
gardner48 Feb 6, 2023
6dd2a25
build pipeline with clang 13.0.0
yu-nix Feb 8, 2023
cf4e427
add corona files to gitlab-ci
yu-nix Feb 8, 2023
00f0931
add corona to proper stage
yu-nix Feb 8, 2023
4e29127
fix corona template
yu-nix Feb 8, 2023
9c417e8
build sundials without mpi
yu-nix Feb 8, 2023
f021bea
add brackets around amdgpu_target
yu-nix Feb 8, 2023
3e8a5a5
add target feature support to AMDGPU_TARGET
yu-nix Feb 8, 2023
c3e55e3
turn on verbose build
yu-nix Feb 8, 2023
dcccb4f
remove extra amd features
yu-nix Feb 8, 2023
02667cb
remove lassen, quartz jobs. Manually set amdgpu_target
yu-nix Feb 8, 2023
d2c1546
modify sundials package.py to have amdgpu_target addition mimic cuda_…
yu-nix Feb 8, 2023
221c373
update uberenv to v1.0.0
gardner48 Feb 9, 2023
bcf709e
update to latest radiuss-spack-configs
gardner48 Feb 9, 2023
2db41e3
update spack commit to v0.19.0
gardner48 Feb 9, 2023
4e281ba
fix typo, update permissions
gardner48 Feb 9, 2023
4941ea3
fix typo
gardner48 Feb 9, 2023
f0dce5f
disable some tests, remove chmod update
gardner48 Feb 9, 2023
2e755e0
remove chmod update
gardner48 Feb 9, 2023
2be344d
add spack-debug
gardner48 Feb 9, 2023
1e0fd82
remove chmod commands
gardner48 Feb 9, 2023
1eb78df
switch to lassen tests
gardner48 Feb 9, 2023
21c04b3
comment out chmods
gardner48 Feb 9, 2023
71708b7
comment out chmods
gardner48 Feb 9, 2023
cd4343c
get the first value in amdgpu_target
yu-nix Feb 9, 2023
1b3d338
remove commented out code, turn off verbose build
yu-nix Feb 9, 2023
8bd8c5c
use original concretizer
gardner48 Feb 9, 2023
ccdbac0
Revert "use original concretizer"
gardner48 Feb 9, 2023
0118048
use spack v0.18.1
gardner48 Feb 9, 2023
421dd62
swap clang version for 15.0.0
yu-nix Feb 28, 2023
83bb72f
update spack to v0.19.1 (latest release as of this commit)
balos1 Feb 28, 2023
fcc41ae
re-enable quartz
balos1 Feb 28, 2023
8f64282
revert build_and_test.sh to develop
balos1 Feb 28, 2023
f6aa871
make it easier to update gitlab ci Spack, document it more clearly
balos1 Feb 28, 2023
0c9ac8e
remove raja, camp
balos1 Mar 1, 2023
5d4bcc0
specify suite-sparse version due to spack bug
balos1 Mar 2, 2023
954da46
need clang 12.0.1 on quartz
balos1 Mar 2, 2023
2c7480d
need netlib-lapack from develop due to bug
balos1 Mar 2, 2023
360ee52
try openblas instead of netlib-lapack with clang
balos1 Mar 2, 2023
012c03e
sync sundials spack package
balos1 Mar 2, 2023
012bf28
try setting superlu_dist libraries direct
balos1 Mar 2, 2023
281bc27
re-enable gcc build on lassen
balos1 Mar 4, 2023
8ef3180
try old way of enabling superlu-dist
balos1 Mar 7, 2023
1898190
temporarily disable quartz and turn on shared spack
balos1 Mar 7, 2023
53d85c5
Revert "temporarily disable quartz and turn on shared spack"
balos1 Mar 8, 2023
7dd3d4f
disable superlu-dist on lassen for the moment
balos1 Mar 8, 2023
203c743
merge submodule update
yu-nix Mar 9, 2023
819c160
finish merge. update corona command to flux
yu-nix Mar 9, 2023
3ec6e07
add sundials+magma+raja job for corona
yu-nix Mar 9, 2023
6ca0d24
add precision to corona tpls job
yu-nix Mar 10, 2023
e523cbf
remove raja due to cuda error
yu-nix Mar 10, 2023
b7ce7f5
fix raja build issue
yu-nix Mar 10, 2023
bb20d20
switch conditional to check hostname
yu-nix Mar 13, 2023
41fc36e
add cmake variables to enable custom MPI executable prefix
yu-nix Mar 15, 2023
9278837
modify nvector cmake to include hip_runtime for kokkos
yu-nix Mar 17, 2023
543e366
add kokkos, kokkos-kernels to Corona CI
yu-nix Mar 17, 2023
9d22d91
fix not variant issue
yu-nix Mar 17, 2023
321103c
update package.py with kokkos and kokkos-kernels
yu-nix Mar 17, 2023
0c6b5d4
add gingko specs to corona-ci
yu-nix Mar 17, 2023
6493fac
separate corona ci tpls into two parts
yu-nix Mar 17, 2023
e7f98c2
add SUNDIALS_TEST_MPIRUN_COMMAND to cmake variables
yu-nix Mar 17, 2023
bc580e7
add scheduler variant to package.py
yu-nix Mar 20, 2023
7661fad
turn on mpi for base corona job
yu-nix Mar 20, 2023
5960d6e
adjust spacing
yu-nix Mar 20, 2023
fd1cd93
merge in scheduler variant changes
yu-nix Mar 20, 2023
3621bdf
add ginkgo, kokkos, kokkos-kernels to lassen_gcc_cuda_tpls ci job
yu-nix Mar 20, 2023
72ecee5
fix spacing of corona-jobs.yml
yu-nix Mar 20, 2023
b1ca546
comment out dense ginkgo tests
yu-nix Mar 20, 2023
66a6e47
install to spack upstream
yu-nix Mar 20, 2023
797e580
run only kokkos, kokkos-kernels pipeline
yu-nix Mar 20, 2023
50a1a13
install the ginkgo, raja, magma to shared spack in corona
yu-nix Mar 20, 2023
b932eb4
combine tpls into one pipeline
yu-nix Mar 20, 2023
397b895
add check for rocm version
yu-nix Mar 21, 2023
1f31be3
remove misleading echo
yu-nix Mar 21, 2023
c0370d1
merge in develop
yu-nix Apr 7, 2023
3fa5011
resolve merge conflicts
yu-nix Apr 7, 2023
3811b52
add default option to schedulers variant
yu-nix Apr 7, 2023
9c78ede
fix corona-jobs.yml syntax error
yu-nix Apr 7, 2023
d476ffe
fix ci job spec
yu-nix May 26, 2023
e58ba29
merge in develop
yu-nix May 26, 2023
25cc3a5
turn superlu-dist on for lassen ci job
yu-nix Jun 1, 2023
4df01db
shift tpls to 2nd corona ci job; update to rocmcc@5.5.0
yu-nix Jun 5, 2023
be7181f
load in rocm 5.5.0 for build_and_test.sh
yu-nix Jun 5, 2023
ffbd560
adjust 523 job
balos1 Jun 7, 2023
a79c911
remove python module load
balos1 Jun 7, 2023
dd82af0
add correct python module load
balos1 Jun 7, 2023
9a2623d
update for rhel8
balos1 Jun 7, 2023
fef87e9
Merge branch 'maintenance/fix-gitlab-quartz-ci' into feature/corona-p…
balos1 Jun 7, 2023
fc5bdfa
update compilers
balos1 Jun 7, 2023
80f248e
Merge branch 'maintenance/fix-gitlab-quartz-ci' into feature/corona-p…
balos1 Jun 7, 2023
77a604c
fix versions
balos1 Jun 7, 2023
c9c9032
Merge remote-tracking branch 'origin/maintenance/fix-gitlab-quartz-ci…
balos1 Jun 8, 2023
fc22474
update spec
balos1 Jun 8, 2023
a853a85
fix intel and gcc builds
balos1 Jun 8, 2023
476b703
Merge branch 'maintenance/fix-gitlab-quartz-ci' into feature/corona-p…
balos1 Jun 8, 2023
9f4bdc1
add rocm-version to 550 tpls
yu-nix Jun 8, 2023
efc6f9a
add rocprim@5.2.3 dependency
yu-nix Jun 8, 2023
c50c73c
update radiuss commit
yu-nix Jun 8, 2023
0d216bd
update radiuss
yu-nix Jun 8, 2023
bf153bb
turn off ginkgo for 550 tpls job
yu-nix Jun 8, 2023
da5595a
put ~ginkgo on correct spec
yu-nix Jun 8, 2023
3f2dad1
remove rocthrust dependency
yu-nix Jun 8, 2023
2ccca46
remove rocrand dependency
yu-nix Jun 8, 2023
7c859b4
remove rocm module load
balos1 Jun 8, 2023
217b1ba
merge
balos1 Jun 8, 2023
be71b70
bump radiuss
balos1 Jun 8, 2023
a11a4ed
update radiuss
yu-nix Jun 9, 2023
8eb67a5
complete merge
yu-nix Jun 9, 2023
05acf39
update radiuss
yu-nix Jun 12, 2023
5d3cb70
add allow-unsupported-compilers variant to cuda spec for Lassen
balos1 Jun 12, 2023
253f231
update lassen jobs
balos1 Jun 13, 2023
be8e4ce
do less jobs on lassen
balos1 Jun 13, 2023
4956d8b
fix spec petsc
balos1 Jun 13, 2023
defde8f
remove unsupported C++ versions from spack package
balos1 Jun 20, 2023
22cb51f
add cxx_std_14 to slu example
balos1 Jun 20, 2023
e502fb1
be specific about mpi spec
balos1 Jun 20, 2023
0c9936a
bump radiuss-spack-configs
balos1 Jun 20, 2023
1ec7211
Merge branch 'develop' into feature/corona-pipeline-tpls
balos1 Jun 27, 2023
1e10fa0
trim lassen cases
balos1 Jun 30, 2023
76d0f3b
Merge branch 'develop' into feature/corona-pipeline-tpls
yu-nix Jul 4, 2023
b8d32d9
Merge branch 'develop' into feature/corona-pipeline-tpls
gardner48 Jul 8, 2023
05cd64e
remove extra + in corona-job spec
yu-nix Jul 11, 2023
9f55581
complete merge
yu-nix Jul 11, 2023
b048514
try using MPI target for superludist
balos1 Jul 11, 2023
5492185
use new xl compiler
balos1 Jul 17, 2023
950342b
have cmake require C++14
gardner48 Jul 17, 2023
7e8cb7f
debugging
balos1 Jul 17, 2023
3969dbc
Merge branch 'feature/corona-pipeline-tpls' of ssh://github.com/LLNL/…
balos1 Jul 17, 2023
fb3f33f
use MPI target
balos1 Jul 18, 2023
964f958
Merge remote-tracking branch 'origin/feature/corona-pipeline-tpls' in…
balos1 Jul 18, 2023
952cc0d
use MPI::MPI_CXX
balos1 Jul 18, 2023
de17fd1
revert debugging values
balos1 Jul 18, 2023
f42ceed
re-enable superludist
balos1 Jul 18, 2023
c813e36
Merge branch 'develop' into feature/corona-pipeline-tpls
balos1 Jul 18, 2023
47ecd65
fixes
balos1 Jul 18, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .gitlab/build_and_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,15 @@ BUILD_JOBS=${BUILD_JOBS:-"1"}

# load newer python to try the clingo concretizer
# machine specific loads
if [[ "${hostname}" == "corona" ]]; then
if [[ "${hostname}" == "lassen" ]]; then
echo "module load python/3.8.2"
module load python/3.8.2
elif [[ "${hostname}" == "corona" ]]; then
echo "module load python/3.9.12"
module load python/3.9.12
echo "module load rocm/5.4.1"
module load rocm/5.4.1
else
echo "module load python/3.8.2"
module load python/3.8.2
echo "module load python"
module load python
fi

if [[ "${option}" != "--build-only" && "${option}" != "--test-only" ]]
Expand Down
23 changes: 17 additions & 6 deletions .gitlab/corona-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
# HIP
# ------------------------------------------------------------------------------

# Builds with Hip
corona_clang_hip:
# Builds with HIP
corona_rocmcc_550:
parallel:
matrix:
- COMPILER_SPEC: rocmcc@5.4.1
- COMPILER_SPEC: rocmcc@5.5.0
AMDGPU_TARGET: [gfx906]
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double amdgpu_target=${AMDGPU_TARGET} scheduler=flux +rocm+mpi"
Expand All @@ -27,11 +27,22 @@ corona_clang_hip:
# ------------------------------------------------------------------------------
# HIP + TPLs
# ------------------------------------------------------------------------------
corona_clang_hip_tpls:
corona_rocmcc_550_tpls:
balos1 marked this conversation as resolved.
Show resolved Hide resolved
parallel:
matrix:
- COMPILER_SPEC: rocmcc@5.4.1
- COMPILER_SPEC: rocmcc@5.5.0
AMDGPU_TARGET: [gfx906]
ROCM_VERSION: 5.5.0
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 amdgpu_target=${AMDGPU_TARGET} scheduler=flux +rocm+mpi+magma+raja ^magma+rocm amdgpu_target=${AMDGPU_TARGET} ^raja+rocm~openmp~examples~exercises amdgpu_target=${AMDGPU_TARGET}"
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 amdgpu_target=${AMDGPU_TARGET} scheduler=flux +rocm+mpi+magma+raja+kokkos+kokkos-kernels~ginkgo ^magma+rocm amdgpu_target=${AMDGPU_TARGET} ^raja+rocm~openmp~examples~exercises amdgpu_target=${AMDGPU_TARGET} ^kokkos+rocm~profiling amdgpu_target=${AMDGPU_TARGET} ^hipblas@${ROCM_VERSION} ^hipsparse@${ROCM_VERSION} ^hip@${ROCM_VERSION} ^hsa-rocr-dev@${ROCM_VERSION} ^llvm-amdgpu@${ROCM_VERSION}"
extends: .corona_build_and_test

corona_rocmcc_523_tpls:
balos1 marked this conversation as resolved.
Show resolved Hide resolved
parallel:
matrix:
- COMPILER_SPEC: rocmcc@5.2.3
AMDGPU_TARGET: [gfx906]
ROCM_VERSION: 5.2.3
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 amdgpu_target=${AMDGPU_TARGET} scheduler=flux +rocm+mpi+magma+raja+kokkos+kokkos-kernels+ginkgo ^magma+rocm amdgpu_target=${AMDGPU_TARGET} ^raja+rocm~openmp~examples~exercises amdgpu_target=${AMDGPU_TARGET} ^kokkos+rocm~profiling amdgpu_target=${AMDGPU_TARGET} ^ginkgo+rocm amdgpu_target=${AMDGPU_TARGET} ^hipblas@${ROCM_VERSION} ^hipsparse@${ROCM_VERSION} ^rocrand@${ROCM_VERSION} ^rocthrust@${ROCM_VERSION} ^hip@${ROCM_VERSION} ^hsa-rocr-dev@${ROCM_VERSION} ^llvm-amdgpu@${ROCM_VERSION} ^rocprim@${ROCM_VERSION}"
extends: .corona_build_and_test
64 changes: 6 additions & 58 deletions .gitlab/lassen-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,75 +10,23 @@
# SUNDIALS Copyright End
# ------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# CPU ONLY
# ------------------------------------------------------------------------------

# Builds without tpls
# lassen_gcc:
# parallel:
# matrix:
# - COMPILER_SPEC: gcc@8.3.1
# INDEX_SPEC: [~int64, +int64]
# PRECISION_SPEC: [double]
# variables:
# SPEC: "%${COMPILER_SPEC} ${INDEX_SPEC} precision=${PRECISION_SPEC} ~cuda"
# extends: .lassen_build_and_test

# lassen_xl:
# parallel:
# matrix:
# - COMPILER_SPEC: xl@16.1.1.10
# INDEX_SPEC: [~int64, +int64]
# PRECISION_SPEC: [double]
# variables:
# SPEC: "%${COMPILER_SPEC} ${INDEX_SPEC} precision=${PRECISION_SPEC} ~cuda"
# extends: .lassen_build_and_test

# ------------------------------------------------------------------------------
# CUDA
# ------------------------------------------------------------------------------

# # Builds with CUDA, RAJA and other TPLs
# lassen_xl_cuda:
# parallel:
# matrix:
# - COMPILER_SPEC: xl@16.1.1.10
# CUDA_SPEC: [cuda@10.2.89, cuda@11.2.0]
# variables:
# SPEC: "%${COMPILER_SPEC} ~int64 precision=double +cuda cuda_arch=70 ^${CUDA_SPEC}"
# extends: .lassen_build_and_test

# lassen_gcc_cuda:
# parallel:
# matrix:
# - COMPILER_SPEC: gcc@8.3.1
# CUDA_SPEC: [cuda@10.2.89, cuda@11.2.0]
# variables:
# SPEC: "%${COMPILER_SPEC} ~int64 precision=double +cuda cuda_arch=70 ^${CUDA_SPEC}"
# extends: .lassen_build_and_test

# ------------------------------------------------------------------------------
# CUDA + Extras
# ------------------------------------------------------------------------------

# Builds with CUDA, RAJA and other TPLs
lassen_xl_cuda_tpls:
lassen_cuda_no_tpls:
parallel:
matrix:
- COMPILER_SPEC: xl@16.1.1.10
- COMPILER_SPEC: [xl@16.1.1.14]
CUDA_SPEC: [cuda@10.1.243]
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 +mpi+openmp+cuda~raja+magma+superlu-dist cuda_arch=70 ^superlu-dist+cuda cuda_arch=70 ^magma+cuda cuda_arch=70 ^${CUDA_SPEC}"
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 +mpi+openmp+cuda~raja~magma~superlu-dist~petsc~hypre~ginkgo cuda_arch=70 ^${CUDA_SPEC}+allow-unsupported-compilers"
extends: .lassen_build_and_test

lassen_gcc_cuda_tpls:
parallel:
matrix:
- COMPILER_SPEC: gcc@8.3.1
CUDA_SPEC: [cuda@11.5.0]
CUDA_SPEC: [cuda@11.8.0]
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 +mpi+openmp+cuda+raja+magma+superlu-dist+petsc+hypre+ginkgo cuda_arch=70 ^ginkgo+cuda cuda_arch=70 ^hypre ^petsc+cuda cuda_arch=70 ^superlu-dist+cuda cuda_arch=70 ^magma+cuda cuda_arch=70 ^raja+cuda~openmp~examples~exercises cuda_arch=70 ^${CUDA_SPEC}"
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 precision=double ~int64 +mpi+openmp+cuda+raja+magma+superlu-dist+petsc+hypre+ginkgo cuda_arch=70 ^ginkgo+cuda cuda_arch=70 ^hypre~cuda ^petsc~cuda ^superlu-dist+cuda cuda_arch=70 ^magma+cuda cuda_arch=70 ^raja+cuda~openmp~examples~exercises cuda_arch=70 ^${CUDA_SPEC}+allow-unsupported-compilers"
balos1 marked this conversation as resolved.
Show resolved Hide resolved
extends: .lassen_build_and_test

# ------------------------------------------------------------------------------
Expand All @@ -89,7 +37,7 @@ lassen_gcc_cuda_bench:
parallel:
matrix:
- COMPILER_SPEC: gcc@8.3.1
CUDA_SPEC: [cuda@11.5.0]
CUDA_SPEC: [cuda@11.8.0]
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 build_type=Release precision=double ~int64 +benchmarks+profiling+caliper +mpi+openmp+cuda+raja cuda_arch=70 ^raja+cuda~openmp~examples~exercises cuda_arch=70 ^caliper+cuda cuda_arch=70 ^${CUDA_SPEC}"
extends: .lassen_build_and_bench
Expand Down
16 changes: 9 additions & 7 deletions .gitlab/quartz-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
# quartz_gcc:
# parallel:
# matrix:
# - COMPILER_SPEC: gcc@10.2.1
# - COMPILER_SPEC: gcc@10.3.1
# INDEX_SPEC: [~int64, +int64]
# PRECISION_SPEC: [double]
# variables:
Expand All @@ -39,7 +39,7 @@
# quartz_intel:
# parallel:
# matrix:
# - COMPILER_SPEC: intel@19.0.4
# - COMPILER_SPEC: intel@19.1.2
# INDEX_SPEC: [~int64, +int64]
# PRECISION_SPEC: [double]
# variables:
Expand All @@ -55,7 +55,7 @@
quartz_clang_tpls:
parallel:
matrix:
- COMPILER_SPEC: clang@12.0.1
- COMPILER_SPEC: clang@14.0.6
INDEX_SPEC: [~int64]
PRECISION_SPEC: [double]
variables:
Expand All @@ -65,19 +65,21 @@ quartz_clang_tpls:
quartz_gcc_tpls:
parallel:
matrix:
- COMPILER_SPEC: gcc@10.2.1
- COMPILER_SPEC: gcc@10.3.1
INDEX_SPEC: [~int64]
PRECISION_SPEC: [double]
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 ${INDEX_SPEC} precision=${PRECISION_SPEC} +mpi +openmp +hypre +superlu-dist +lapack +klu +petsc ^suite-sparse@5.13.0"
# For some reason nvhpc gets picked up for lapack w/o ^openblas
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 ${INDEX_SPEC} precision=${PRECISION_SPEC} +mpi +openmp +hypre +superlu-dist +lapack +klu +petsc ^suite-sparse@5.13.0 ^openblas"
extends: .quartz_build_and_test

quartz_intel_tpls:
parallel:
matrix:
- COMPILER_SPEC: intel@19.0.4
- COMPILER_SPEC: intel@19.1.2
INDEX_SPEC: [~int64]
PRECISION_SPEC: [double]
variables:
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 ${INDEX_SPEC} precision=${PRECISION_SPEC} +mpi +openmp +hypre ~superlu-dist +lapack +klu ^suite-sparse@5.13.0"
# perl@5.32.0 needed until spack v0.20.0: https://github.com/spack/spack/pull/35666
SPEC: "%${COMPILER_SPEC} cstd=99 cxxstd=14 ${INDEX_SPEC} precision=${PRECISION_SPEC} +mpi +openmp +hypre ~superlu-dist +lapack +klu ^suite-sparse@5.13.0 ^perl@5.32.0"
extends: .quartz_build_and_test
17 changes: 12 additions & 5 deletions .gitlab/spack_packages/sundials/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class Sundials(CachedCMakePackage, CudaPackage, ROCmPackage):
"cxxstd",
default="14",
description="C++ language standard",
values=("99", "11", "14", "17"),
values=("14", "17"),
)

# Logging
Expand Down Expand Up @@ -181,7 +181,7 @@ class Sundials(CachedCMakePackage, CudaPackage, ROCmPackage):
)

# Scheduler
variant("scheduler", default="slurm", description="Specify which scheduler the system runs on.", values=("flux", "lsf", "slurm"))
variant("scheduler", default="default", description="Specify which scheduler the system runs on.", values=("flux", "lsf", "slurm", "default"))

# ==========================================================================
# Dependencies
Expand Down Expand Up @@ -764,7 +764,9 @@ def initconfig_package_entries(self):
self.cache_option_from_variant("RAJA_ENABLE", "raja"),
self.cache_option_from_variant("SUPERLUDIST_ENABLE", "superlu-dist"),
self.cache_option_from_variant("SUPERLUMT_ENABLE", "superlu-mt"),
self.cache_option_from_variant("Trilinos_ENABLE", "trilinos")
self.cache_option_from_variant("Trilinos_ENABLE", "trilinos"),
self.cache_option_from_variant("ENABLE_KOKKOS", "kokkos"),
self.cache_option_from_variant("ENABLE_KOKKOS_KERNELS", "kokkos-kernels")
]
)

Expand Down Expand Up @@ -805,9 +807,9 @@ def initconfig_package_entries(self):

# Building with Kokkos and KokkosKernels
if "+kokkos" in spec:
entries.extend([self.cache_option_from_variant("Kokkos_DIR", spec["kokkos"].prefix)])
entries.extend([cmake_cache_path("Kokkos_DIR", spec["kokkos"].prefix)])
if "+kokkos-kernels" in spec:
entries.extend([self.cache_option_from_variant("KokkosKernels_DIR", spec["kokkos-kernels"].prefix)])
entries.extend([cmake_cache_path("KokkosKernels_DIR", spec["kokkos-kernels"].prefix)])

# Building with KLU
if "+klu" in spec:
Expand Down Expand Up @@ -837,6 +839,11 @@ def initconfig_package_entries(self):
if "+petsc" in spec:
if spec.version >= Version("5"):
entries.append(cmake_cache_path("PETSC_DIR", spec["petsc"].prefix))
if "+kokkos" in spec["petsc"]:
entries.extend([
cmake_cache_path("Kokkos_DIR", spec["kokkos"].prefix),
cmake_cache_path("KokkosKernels_DIR", spec["kokkos-kernels"].prefix)
])
else:
entries.extend(
[
Expand Down
5 changes: 5 additions & 0 deletions cmake/SundialsSetupCXX.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ set(CXX_FOUND TRUE)
# compiler and related options.
# ---------------------------------------------------------------

# Do not allow decaying to previous standards -- generates error if the standard
# is not supported
sundials_option(CMAKE_CXX_STANDARD_REQUIRED BOOL
"Require C++ standard version" ON)

if(ENABLE_SYCL)
set(DOCSTR "The C++ standard to use if C++ is enabled (17, 20)")
sundials_option(CMAKE_CXX_STANDARD STRING "${DOCSTR}" "17"
Expand Down
5 changes: 5 additions & 0 deletions cmake/SundialsSetupCuda.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ endif()
# Configure the CUDA flags
# ===============================================================

# Do not allow decaying to previous standards -- generates error if the standard
# is not supported
sundials_option(CMAKE_CUDA_STANDARD_REQUIRED BOOL
"Require C++ standard version" ON)

set(DOCSTR "The CUDA standard to use if CUDA is enabled (14, 17, 20)")
sundials_option(CMAKE_CUDA_STANDARD STRING "${DOCSTR}" "${CMAKE_CXX_STANDARD}"
OPTIONS "14;17;20")
Expand Down
18 changes: 2 additions & 16 deletions examples/arkode/CXX_parhyp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,6 @@ set(ARKODE_extras
plot_heat2D_p.py
)

if(MPI_CXX_COMPILER)
# use MPI wrapper as the compiler
set(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER})

# disable C++ extensions (for known wrappers)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX -DLAM_BUILDING")
else()
# add MPI_INCLUDE_PATH to include directories
include_directories(${MPI_INCLUDE_PATH})
endif()

# Specify libraries to link against
set(ARKODE_LIB sundials_arkode)
set(NVECP_LIB sundials_nvecparallel)
Expand Down Expand Up @@ -69,11 +58,8 @@ foreach(example_tuple ${ARKODE_examples})
set_target_properties(${example} PROPERTIES FOLDER "Examples")

# libraries to link against
target_link_libraries(${example} ${SUNDIALS_LIBS} SUNDIALS::HYPRE)

if(NOT MPI_CXX_COMPILER)
target_link_libraries(${example} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARIES})
endif()
target_link_libraries(${example} PRIVATE
MPI::MPI_CXX ${SUNDIALS_LIBS} SUNDIALS::HYPRE)
endif()

# check if example args are provided and set the test name
Expand Down
2 changes: 0 additions & 2 deletions examples/arkode/CXX_serial/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@ foreach(example_tuple ${ARKODE_examples})

set_target_properties(${example_target} PROPERTIES FOLDER "Examples")

target_compile_features(${example_target} PRIVATE cxx_std_14)

# directories to include
target_include_directories(${example_target}
PRIVATE
Expand Down
11 changes: 1 addition & 10 deletions examples/arkode/CXX_superludist/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,6 @@ list(APPEND ARKODE_examples "ark_brusselator1D_FEM_sludist.cpp\;1\;1\;develop")
set(ARKODE_extras
)

if(MPI_CXX_COMPILER)
# use MPI wrapper as the compiler
set(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER})
# disable C++ extensions (for known wrappers)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX -DLAM_BUILDING")
else()
# add MPI_INCLUDE_PATH to include directories
include_directories(${MPI_INCLUDE_PATH})
endif()

# Add the build and install targets for each example
foreach(example_tuple ${ARKODE_examples})

Expand All @@ -59,6 +49,7 @@ foreach(example_tuple ${ARKODE_examples})

# libraries to link against
target_link_libraries(${example_target} PRIVATE
MPI::MPI_CXX
sundials_arkode
sundials_sunlinsolsuperludist)

Expand Down
9 changes: 2 additions & 7 deletions examples/arkode/CXX_xbraid/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,8 @@ if(ENABLE_HYPRE AND HYPRE_FOUND)
set_target_properties(${example} PROPERTIES FOLDER "Examples")

# libraries to link against
target_link_libraries(${example} ${SUNDIALS_LIBS})
target_link_libraries(${example} SUNDIALS::HYPRE)
target_link_libraries(${example} SUNDIALS::XBRAID)

if(NOT MPI_CXX_COMPILER)
target_link_libraries(${example} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARIES})
endif()
target_link_libraries(${example} PRIVATE
MPI::MPI_CXX ${SUNDIALS_LIBS} SUNDIALS::HYPRE SUNDIALS::XBRAID)

endif()

Expand Down
17 changes: 1 addition & 16 deletions examples/cvode/CXX_parallel/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,6 @@ set(CVODE_extras
plot_heat2D_p.py
)

if(MPI_CXX_COMPILER)
# use MPI wrapper as the compiler
set(CMAKE_CXX_COMPILER ${MPI_CXX_COMPILER})

# disable C++ extensions (for known wrappers)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX -DLAM_BUILDING")
else()
# add MPI_INCLUDE_PATH to include directories
include_directories(${MPI_INCLUDE_PATH})
endif()

# Specify libraries to link against
set(CVODE_LIB sundials_cvode)
set(NVECP_LIB sundials_nvecparallel)
Expand Down Expand Up @@ -69,11 +58,7 @@ foreach(example_tuple ${CVODE_examples})
set_target_properties(${example} PROPERTIES FOLDER "Examples")

# libraries to link against
target_link_libraries(${example} ${SUNDIALS_LIBS})

if(NOT MPI_CXX_COMPILER)
target_link_libraries(${example} ${MPI_LIBRARY} ${MPI_EXTRA_LIBRARIES})
endif()
target_link_libraries(${example} PRIVATE MPI::MPI_CXX ${SUNDIALS_LIBS})
endif()

# check if example args are provided and set the test name
Expand Down
Loading