Repository navigation
Conversation
|
Claude Code Review Head SHA: 14fbd9a Files changed:
Findings:
|
./mfc.sh format, as the lint gate requires: one MPI_FILE_WRITE_ALL line exceeded the line limit with the section, and the original patch had dropped the spaces in an unrelated GPU_UPDATE line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lines of Code
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #2085 +/- ##
=======================================
Coverage 61.90% 61.90%
=======================================
Files 86 86
Lines 22885 22885
Branches 3369 3369
=======================================
Hits 14166 14166
Misses 6220 6220
Partials 2499 2499 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@Tix3Dev, your results table isn't very clear. The |
|
@wilfonba, when running Error (3D_TaylorGreenVortex)Environment to reproduce
Minimal working example output (+env info) |
|
May I ask why you built OpenMPI from scratch with the NVHPC compilers rather than using the bundled MPI? This seems more like an issue with your custom OpenMPI build than with how MFC writes data. |
Description
When using parallel I/O in MFC (e.g., when parallel I/O is enabled in
case.py), reading and writing operations via MPI-IO can fail, suffer from severe performance overhead, or exhibit incorrect behavior. Specifically, passing whole array pointers (%sf) directly intoMPI_FILE_READ/MPI_WRITEcalls can lead to unoptimized data layouts, triggering inefficient memory handling or incorrect byte streaming.Changes
This patch updates the MPI-IO read and write calls across
post_process,pre_process, andsimulationmodules to pass full array sections (%sf(:,:,:)) instead of the base pointers (%sf).(:,:,:)) force the compiler to ensure the array data is properly continuous or packed according to the expected bounds before handing it over to the MPI library.Performance & Storage Impact
Tested with the
3D_IGR_jetand3D_TaylorGreenVortex(N = 128) cases on 4 NVIDIA A100 GPUs across 4 MPI ranks.Step Size: 50
Step Size: 10
D/folderrestart_data/Step size: 300
D/folderrestart_data/Since the fix doesn't change any numerical code, accuracy and convergence remain unchanged.
Acknowledgments
This fix was developed by Team RACKlette (ETH Zürich) as part of the Student Cluster Competition (SCC) at SC26.