Skip to content

Document the long-HDF5-path segfault and the Gadi MatMult placement findings (#645, #635) - #650

Open
lmoresi wants to merge 1 commit into
developmentfrom
docs/hpc-output-and-placement
Open

Document the long-HDF5-path segfault and the Gadi MatMult placement findings (#645, #635)#650
lmoresi wants to merge 1 commit into
developmentfrom
docs/hpc-output-and-placement

Conversation

@lmoresi

@lmoresi lmoresi commented Aug 26, 2026

Copy link
Copy Markdown
Member

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 under NAME_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 in MatMult, 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

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
Copilot AI lite review requested due to automatic review settings August 26, 2026 06:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants