STEllAR-GROUP / octotiger

Astrophysics program simulating the evolution of star systems based on the fast multipole method on adaptive Octrees
http://octotiger.stellar-group.org/
Boost Software License 1.0
48 stars 17 forks source link

Add MultiGPU Support #450

Closed G-071 closed 11 months ago

G-071 commented 1 year ago

This PR adds experimental multi-GPU support for all CUDA/KOKKOS kernels in Octo-Tiger.

To do so, it mostly uses the additions in STEllAR-GROUP/hpx/pull/6284 and SC-SGS/CPPuddle/pull/22. Accordingly, this PR uses the new functionality defined in those PRs. To work correctly, it also

Overall, it seems to work well on the machines I tested it on. I will probably re-structure the MultiGPU part of the gravity solver a bit in the future, but I think that is a subject for another PR. This one gives us the basic functionality for now!

G-071 commented 11 months ago

I reworked this PR (and CPPuddle) as I did not quite like the way the previous MultiGPU support was working! However, it is ready for review now!

New Features/Fixes:

Interface changes:

Renamed existing parameters (to make clearer that they are not CUDA specific anymore):

Add new parameters for new features: