CGH0S7
42b9cf1ad9
Optimize MPI Sync with merged transfers, caching, and async overlap
...
Phase 1: Merge N+1 transfer() calls into a single transfer() per
Sync(PatchList), reducing N+1 MPI_Waitall barriers to 1 via new
Sync_merged() that collects all intra-patch and inter-patch grid
segment lists into combined per-rank arrays.
Phase 2: Cache grid segment lists and reuse grow-only communication
buffers across RK4 substeps via SyncCache struct. Caches are per-level
and per-variable-list (predictor/corrector), invalidated on regrid.
Eliminates redundant build_ghost_gsl/build_owned_gsl0/build_gstl
rebuilds and malloc/free cycles between regrids.
Phase 3: Split Sync into async Sync_start/Sync_finish to overlap
Cartesian ghost zone exchange (MPI_Isend/Irecv) with Shell patch
synchronization. Uses MPI tag 2 to avoid conflicts with SH->Synch()
which uses transfer() with tag 1.
Also updates makefile.inc paths and flags for local build environment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 21:03:37 +08:00
..
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-09 21:03:37 +08:00
2026-02-09 21:03:37 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-06 18:36:29 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-06 17:13:39 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-16 10:58:11 +08:00
2026-01-13 15:01:15 +08:00
2026-02-06 19:00:35 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-16 10:58:11 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-16 10:58:11 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-15 16:32:12 +08:00
2026-02-08 13:00:37 +08:00
2026-02-09 10:59:26 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-09 21:03:37 +08:00
2026-02-09 21:03:37 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-02-07 19:48:24 +08:00
2026-02-07 14:48:47 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00
2026-01-13 15:01:15 +08:00