Skip to content

ElCapitan and Kokkos 5 and C++20#126

Merged
adamdempsey90 merged 18 commits into
developfrom
dempsey/tuo
May 27, 2026
Merged

ElCapitan and Kokkos 5 and C++20#126
adamdempsey90 merged 18 commits into
developfrom
dempsey/tuo

Conversation

@adamdempsey90

@adamdempsey90 adamdempsey90 commented Apr 25, 2026

Copy link
Copy Markdown
Collaborator

Background

This updates the submodules to the latest versions and puts us on Kokkos 5 and C++20.

This was needed to get running on El Capitan systems. I've also refreshed / updated the modules/CMake stuff for ElCap.

This requires https://github.com/lanl/jaybenne/pulls

I'm still tracking down an issue where coming out of the pgen, the variables are being floored. That is now fixed.

There is what appears to be a memory leak when using GPU aware MPI. Still investigating that. This was a missing argument to flux run.

On the ElCap systems, you want to run in CPX mode, e.g. to get 2 nodes:

flux alloc -N 2 --amd-gpumode=CPX

and then when running artemis you want to use 6 times the number of tasks as GPUs, so in the 2 node example you would do,

flux run -N 2 -n 48 --exclusive artemis -i in.par

where 48 = 6 * 4 * 2 and --exclusive makes sure the task->gpu bindings are correct.

Running the binary problem with AMR in 2D cylindrical looks good.

Description of Changes

Checklist

  • New features are documented
  • Tests added for bug fixes and new features
  • (@lanl.gov employees) Update copyright on changed files
  • Any contribution that was created or modified with the assistance of generative AI must have a comment disclosing this such as // This file was created in part or in whole by generative AI

Comment thread CMakeLists.txt
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE ON CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE OFF CACHE BOOL "" FORCE)
set(Kokkos_ENABLE_IMPL_HIP_MALLOC_ASYNC OFF CACHE BOOL "" FORCE)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was needed to fix a segfault bug deep in kokkos

Comment thread CMakeLists.txt
"${REBOUND_BUILD_DIR}/src/*.h")
add_custom_command(OUTPUT ${REBOUND_BUILD_DIR}/librebound.so
COMMAND make
COMMAND make CC=${CMAKE_C_COMPILER}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rebound has always just been using cc as the C compiler, but when using amdclang that was not being set propertly. We probably should've always been doing this though.

Comment thread CMakePresets.json
Comment on lines +148 to +149
"name": "elcap-gpu-debug",
"cacheVariables": {

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GPU debug builds are actually compiling very fast on these systems

@adamdempsey90 adamdempsey90 changed the title Kokkos 5 and C++20 ElCapitan and Kokkos 5 and C++20 Apr 27, 2026
@adamdempsey90 adamdempsey90 requested a review from pdmullen May 12, 2026 19:24
@adamdempsey90

Copy link
Copy Markdown
Collaborator Author

Looks like the disk tests are failing on all GPU systems (incl. cuda ones). Must be the update of either parthenon or eos

Comment thread src/artemis.hpp Outdated
Comment thread src/gas/gas.cpp Outdated
@adamdempsey90 adamdempsey90 marked this pull request as ready for review May 20, 2026 13:10
@adamdempsey90 adamdempsey90 enabled auto-merge May 27, 2026 19:15
@adamdempsey90 adamdempsey90 merged commit b9a8946 into develop May 27, 2026
6 checks passed
@adamdempsey90 adamdempsey90 deleted the dempsey/tuo branch May 27, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants