Repository navigation
Add opt-in action-level diagnostics for non-finite values - #1469
Open
Zhang-pchao wants to merge 5 commits into
Open
Zhang-pchao wants to merge 5 commits into
Zhang-pchao wants to merge 5 commits into
Conversation
…plumed#1473) (cherry picked from commit a7654be)
(cherry picked from commit 4fe6e11)
(cherry picked from commit 7185d0c)
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.
Summary
Add PLUMED_NONFINITE_ACTION_TRACE, an opt-in diagnostic selecting action labels (or
*). Identify the first non-finite value, scalar derivative, propagated action force, atomic force or cell force, including step, phase, action and element.All spatial MPI ranks must use the same selection and action graph. A local failure is reduced to the first reporting rank, broadcast, and raised on every participant before the next action. Separate replica communicators are not synchronized by this diagnostic; the MD host must terminate other replicas on an exception. The default is disabled; enabled tracing can be expensive. Grid derivative layouts and arbitrary internal action state are outside its coverage.
Validation
Independent current-master MPI build passed. Six serial cases cover singular CV/custom derivatives, atomic/cell force overflow, backward scalar-force overflow and a finite boundary control. A four-rank test-only action injects an infinite derivative on rank three: all ranks receive the diagnostic and terminate normally; a finite control passes. Existing rt74 also passes. Native astyle and whitespace checks pass.
The regression uses identical action graphs on every rank. An earlier test using divergent expressions hung during setup and was replaced, without relaxing the timeout. This feature diagnoses numerical failures; a finite result is not scientific validation.
Documentation
The native current-master
new-manualgenerator and MkDocs build completed, and the DEBUG examples have empty stderr and no broken-example entry. The full manual reports 36 failing example pages outside DEBUG and existing/missing optional-module link warnings in this build environment; this is not a claim that the entire upstream manual is warning-free.Python/OpenMP CI follow-up
Includes the separately reviewable regression-process lifetime fix #1470, which retains the dynamically loaded kernel during Python shutdown. It preserves two-thread execution and the original numerical reference. This addresses the rt-symfunc shutdown failure observed on the debug runner.
Regression follow-up
Included the accepted
rt-proteinshutdown fix #1473, thert-gridfollow-up #1477, and the timestep-test initialization fix accepted in #1464. The Python configs pass three direct two-thread runs per case with byte-identical reference output; the existing build reports Python unavailable to the native runner. The timestep regression passes through the native runner with poisoned automatic-variable initialization against both v2.10 and master kernels. No reference values, tolerances or thread counts were changed. The Autoconf download failure has a separate upstream CI proposal in #1474.