Skip to content

Commit

Permalink
Disable unused kokkos-kernel components & 5D collision operator (koli…
Browse files Browse the repository at this point in the history
…op) update v0.0.17 (all to all collisions)

- Update koliop to support collisions of all species against all species for a single operator instance. The Fortran version expect the code to process collisions against only one species as the work is parallelized on species across ranks.
- Until now, the only consumer of kk kernels is the 5D collision operator (koliop). This should change in the coming month. To anticipate the change and smooth outhe usage kk kernels, we are no longer pulling in through CMake's fetchcontent inside of koliop, instead we have a kk kernels submodule. Koliop uses the submodule kk kernels and future kk kernels users are expected to use that too.

NOTE: we probably want to keep kk kernels and kkos in sync.

See merge request gysela-developpers/gyselalibxx!437

--------------------------------------------

Co-authored-by: Etienne Malaboeuf <eti.malaboeuf@gmail.com>
  • Loading branch information
EmilyBourne and etiennemlb committed Apr 15, 2024
1 parent 044df67 commit a584354
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/build*/
*.pyc
/log.build.*
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@
[submodule "vendor/kokkos-tools"]
path = vendor/kokkos-tools
url = https://github.com/kokkos/kokkos-tools.git
[submodule "vendor/kokkos-kernels"]
path = vendor/kokkos-kernels
url = https://github.com/kokkos/kokkos-kernels.git
10 changes: 8 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,12 @@ if("${Kokkos_ENABLE_CUDA}")
endif()
add_subdirectory("vendor/kokkos/" "kokkos") # SYSTEM)

# NOTE: Do not forget to keep Kokkos and Kokkos-kernels in sync !
set(KokkosKernels_ENABLE_ALL_COMPONENTS OFF BOOL "")
set(KokkosKernels_ENABLE_COMPONENT_BATCHED ON BOOL "")
set(KokkosKernels_ENABLE_COMPONENT_BLAS ON BOOL "")
add_subdirectory("vendor/kokkos-kernels/" "kokkos-kernels") # SYSTEM)

find_package (Eigen3 3.3 NO_MODULE)

if (NOT EIGEN3_FOUND)
Expand All @@ -143,9 +149,9 @@ add_subdirectory("vendor/ddc/" "ddc") # SYSTEM)
## Use selalib's splines from `vendor/`
add_subdirectory("vendor/sll/" "sll") # SYSTEM)

# TODO(Etienne M): We may have to handle kokkos kernel in the same way.
set(koliop_ENABLE_Kokkos "SUBDIRECTORY" CACHE STRING "")
set(koliop_BUILD_TESTING OFF CACHE BOOL "")
set(koliop_ENABLE_Kokkos "SUBDIRECTORY" CACHE STRING "")
set(koliop_ENABLE_KokkosKernels "SUBDIRECTORY" CACHE STRING "")
add_subdirectory("vendor/koliop/" "koliop") # SYSTEM)

## Use the kokkos-tools for profiling purpose from `vendor/`
Expand Down
1 change: 1 addition & 0 deletions tests/geometry5D/collisions/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/D_INPUT*/
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Geometry:
q0 : 1.0 # safety factor on the magnetic axis (parabolic profile)
qa : 2.0 # safety factor at the edge (parabolic profile)
beta : 0.001 # beta = p*mu0 / B**2

SpeciesInfo:
- name: 'electron'
charge: -1
Expand All @@ -32,4 +32,4 @@ SpeciesInfo:
charge: 1
mass: 1.
N_min : 0.2 # minimum density, assuming a parabolic decreasing profile
T_min : 0.5 # minimum temperature, assuming a parabolic decreasing profile
T_min : 0.5 # minimum temperature, assuming a parabolic decreasing profile
1 change: 1 addition & 0 deletions vendor/kokkos-kernels
Submodule kokkos-kernels added at 1b0a15
2 changes: 1 addition & 1 deletion vendor/koliop
Submodule koliop updated from 4a4f44 to b2bf0c

0 comments on commit a584354

Please sign in to comment.