Uh oh!
There was an error while loading. Please reload this page.
REGRESSION - IMPROVEMENT - Run GPEC subprocesses with -t auto - #373
Merged
Conversation
Subprocesses previously launched with no --threads flag, so GPEC's threaded kernels (Riccati parallel FM, ballooning, field reconstruction, kinetic forces) ran single-threaded unless JULIA_NUM_THREADS happened to be set. Launch with --startup-file=no -t auto (override via GPEC_REGRESS_THREADS) for a ~35% diiid_n1 wall-time reduction. Tracked quantities verified bitwise thread-count independent; only runtime rows change meaning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
logan-nc
commented
Aug 14, 2026
CollaboratorAuthor
@d-burg@jhalpern30@matt-pharr do we want this? Or keep everything 1 thread for basic tests |
…formance/regression-harness-threading # Conflicts: # docs/development/regression-harness.md # regression-harness/regress.jl # regression-harness/src/runner.jl
Base automatically changed from
performance/regression-harness-worktree-reuse to
developAugust 14, 2026 18:32
d-burg
approved these changes
Aug 14, 2026
…sion-harness-threading
logan-nc
commented
Aug 15, 2026
CollaboratorAuthor
@matt-pharr this ran into your known issue in that it didn't edit enough to trigger the tests but the tests are required to merge. I am assigning you to this PR to either manual override or fix the testing/blocking logic |
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Summary
The regression harness spawned GPEC subprocesses with no
--threadsflag, so all of GPEC's threaded kernels (Riccati parallel FM, ballooning, field reconstruction, kinetic forces, vacuum kernels) ran single-threaded unlessJULIA_NUM_THREADShappened to be exported. Subprocesses now launch with--startup-file=no -t auto; override withGPEC_REGRESS_THREADS=1(documented in--helpand the harness docs).--startup-file=noalso removes the user'sstartup.jlas an uncontrolled variable in regression runs.Stacked on #369 (touches the same spawn sites in
runner.jl); this PR's diff shows only the threading change. Retargets to develop when #369 merges.Determinism
Riccati's parallel FM was reviewed for thread-count sensitivity: chunks integrate independently with per-chunk state and are assembled serially in chunk order; the only cross-thread reduction is an integer step count. Verified empirically: threaded local runs are bitwise identical to cached single-threaded baselines for every tracked quantity.
Regression report
solovev_n1: 21/21 unchanged (all diffs 0.0e+00), runtime 102.7s → 96.3sdiiid_n1: 48/48 unchanged (all diffs 0.0e+00), runtime 242.0s → 157.7s (−35%)Note:
Runtime (s)rows cached from single-threaded runs are not comparable to threaded ones — re-baseline with--forcewhere runtime tracking matters. A caveat for future decks: chunk decomposition depends onparallel_threads ≥ 3(EulerLagrange.jlbalance_integration_chunks), so decks raising that setting should re-verify; all current decks use ≤ 2.🤖 Generated with Claude Code