trixi-framework / trixi-framework/Trixi.jl
Improve `TreeMesh` MPI parallelization
- Dominant language
- Julia
- Stars
- 731
- Forks
- 166
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 25
Description
Performance:
- [ ] Avoid allocations during `MPICache` initialization (came up in https://github.com/trixi-framework/Trixi.jl/pull/898#discussion_r737485962)
- [ ] Current way of storing MPI mortars might be problematic in 3D (see https://github.com/trixi-framework/Trixi.jl/pull/898#discussion_r729548386 and https://github.com/trixi-framework/Trixi.jl/pull/898#discussion_r729588551)
- [ ] Current way of storing MPI connectivity might not be efficient enough (for 3D) (see https://github.com/trixi-framework/Trixi.jl/pull/898#discussion_r729580943)
- [ ] MPI communication in load balancing may be iniefficient (see #402)
Other:
- [ ] Remove MPI specific parts from serial code (see e.g. https://github.com/trixi-framework/Trixi.jl/pull/898#discussion_r737465055)
- [ ] Use `uEltype` in MPI buffers (see issue #910)
Contributor guide
Research direction
Start by reviewing the TreeMesh MPI implementation and the MPICache initialization, then read the linked pull-request discussions and issues #402 and #910. The scope spans allocation, 3D mortar and connectivity storage, load-balancing communication, serial-code separation, and MPI buffer element types; done means resolving the relevant checklist items with performance and correctness evidence.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- distributed-systems, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100