trixi-framework / trixi-framework/Trixi.jl

Improve `TreeMesh` MPI parallelization

Open
#956 0 comments 0 reactions 0 assignees View on GitHub
parallelization performance
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.