Document the long-HDF5-path segfault and the Gadi MatMult placement findings (#645, #635) - #650
Open
lmoresi wants to merge 1 commit into
Open
Document the long-HDF5-path segfault and the Gadi MatMult placement findings (#645, #635)#650lmoresi wants to merge 1 commit into
lmoresi wants to merge 1 commit into
Conversation
Both were carefully measured reports that had nowhere to live except the issue tracker, so the next person to hit either would rediscover it. #645 -- a long output path segfaults parallel HDF5 output. The failure tracks the length of the full GENERATED filename, including the suffixes UW3 appends (output.mesh.U.00000.h5), and it fires well below the advertised limits: every component under NAME_MAX, PATH_MAX=4096, PETSC_MAX_PATH_LEN=4096, and a 286-character name still crashed. Written into the troubleshooting guide with the reported thresholds marked as observations on one stack rather than a portable limit, since the first unsafe length was never established. #635 -- Gadi rank placement for a MatMult-bound Stokes solve. ~97% of solve time inside MatMult with the solver path held fixed (four SNES, 24 KSP, same mesh hash), so runtime tracks throughput rather than convergence. The table goes into the performance guide. The binding result is deliberately NOT written as a recommendation. Explicit core binding was slower at 8 ranks, but the runs were concurrent on different nodes and a repeat of the same configuration varied by 8.6% on its own -- the node-to-node noise is the size of the effect. The doc says that outright rather than letting a reader take the table as advice. Neither issue is closed by this: #635 asks for an investigation we cannot run from here, and both keep their open questions listed in the text. Underworld development team with AI support from Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two carefully measured reports were sitting in the tracker with nowhere to live, so the next person to hit either would have rediscovered it. This writes both up.
#645 — a long output path segfaults parallel HDF5 output. Into
docs/advanced/troubleshooting.md. The failure tracks the length of the full generated filename, including the suffixes UW3 appends (output.mesh.U.00000.h5), and it fires well below the advertised limits: every path component underNAME_MAX,PATH_MAX=4096,PETSC_MAX_PATH_LEN=4096— and a 286-character name still crashed. The reported thresholds are written as observations on one stack, not a portable limit, because the first unsafe length was never established and macOS did not reproduce it.#635 — Gadi rank placement for a MatMult-bound Stokes solve. Into
docs/advanced/performance.md. With the solver path held fixed (four SNES solves, 24 KSP solves, identical mesh SHA-256) ~97% of time sits inMatMult, so runtime tracks throughput rather than convergence. The table is reproduced with the memory/wall-time trade made explicit.The binding result is deliberately not written as a recommendation. Explicit core binding was slower at 8 ranks (5751 s vs 4932 s), but the configurations ran concurrently on different nodes and a repeat of the same default-placement case varied by 8.6% on its own. The node-to-node noise is the same size as the effect, so the doc says that outright in a warning rather than letting a reader take the table as advice against binding.
Neither issue is closed by this. #635 asks for an investigation that needs Gadi access; both keep their open questions listed in the text. This is the documentation half only.
Underworld development team with AI support from Claude Code