Skip to content

[Proof of Concept] Performance comparison with DualSPHysics - #167

Draft
efaulhaber wants to merge 55 commits into
mainfrom
ef/dualsphysics-comparison
Draft

[Proof of Concept] Performance comparison with DualSPHysics#167
efaulhaber wants to merge 55 commits into
mainfrom
ef/dualsphysics-comparison

Conversation

@efaulhaber

Copy link
Copy Markdown
Member

Based on #151, #166, and #120.

This PR adds

  • a faster (still not fast) GPU update for the CompactVectorOfVectors backend. It also completely removes the values array, which only works if the particles are all sorted according to cell index. This is also how DualSPHysics reach better performance. The CompactVectorOfVectors added in Compact Vector of Vectors #120 itself with the values array is not faster than the regular DynamicVectorOfVectors backend.
  • a specialized mapreduce_neighbor for this data structure to use the same neighborhood search algorithm as DualSPHysics.

Note that I did not implement the fast GPU sorting that they have, so that we can benchmark the interactions kernel but not the total runtime, as the sorting will now use most runtime.

To be used together with trixi-framework/TrixiParticles.jl#1265.

RubberLanding and others added 30 commits May 22, 2025 17:08
Move check_cell_bounds() and construct_backends() to separate cell_lists_util.jl to share functionality between different cell lists.
- Move functions from cell_lists_util.jl to cell_lists.jl
- Change dispatch in `supported_update_strategies()`
- Change doc string of SHCL (SpatialHashingCellList)
- Add `@inbounds` in `push_cell_atomic!`
- Improved type dispatch for `supported_update_strategies`
- Clarified and cleaned up cell list initialization and emptying,
- General code cleanup.
Add basic test for SVOV
WIP to adapt FullGridCellList and GridNHS to use SVOV
Add basic unit test and CVOV to `test/neighborhood_search.jl` (tests are succeeding)
Add update_grid!() and initialize_grid!()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants