Test Brown bad-Broyden convergence on Linux x86_64 - #1077
ChrisRackauckas-Claude wants to merge 2 commits into
Conversation
The unglobalized solve is roundoff-sensitive, and only the supported Linux x86_64 lanes consistently meet the robustness tolerance. Retain the broken expectation on every other platform. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Downgrade CI and exact local reproduction show that identical Linux x86_64 environments diverge across EPYC microarchitectures. Keep the existing broken expectation because no stable test-visible condition exists. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Withdrawing this draft: downgrade CI disproved the proposed Linux x86_64 expectation. Official downgrade job 87345863358 used Julia 1.10.11 and the action-generated graph (LinearSolve 5.0.0, NonlinearProblemLibrary 0.1.7, SciMLBase 3.34.0, SciMLOperators 1.24.0, SciMLJacobianOperators 0.1.15) on Linux x86_64/EPYC 9354. Brown alg #4 produced residual An exact clean-depot reproduction of the action SHA/mode, merge commit, Pkg.test flags, and package versions on Linux x86_64/EPYC 7502 instead made Brown pass; the summary was Changing only SciMLJacobianOperators to the in-tree 0.1.16 source did not change the local result. Its runtime source is byte-identical to registered 0.1.15; only version/compat metadata differs, and the tested SciMLOperators 1.24.0 already satisfies that metadata. Therefore there is no stable OS/architecture/package condition for this expectation. The solve is ULP/hardware-sensitive. Robustness requires a broader globalization behavior change, not test bookkeeping. Commit |
Important
Please ignore this draft until it has been reviewed by @ChrisRackauckas.
Summary
Root cause
The exact-base failure is an unexpected pass, not a new loss of convergence. A frozen-dependency bisect identified 6a7687f (#1039) as the first commit where this unglobalized solve enters the convergent basin. The inverse-workspace change is at roundoff scale, but the Brown start is ULP-sensitive: adjacent floating-point starts switch between a residual of about
7.31e-13and anUnstablereturn with residual5.5.The supported CI matrix consistently splits by platform across Julia 1.10.11, 1.12.6, and 1.13.0-rc1: Ubuntu 24.04 x86_64 converges, while macOS 26 arm64 remains above the
1e-3tolerance. Current and downgrade-floor dependency graphs both converge locally on Linux x86_64. Detailed reproduction, dependency, CI, bisect, and perturbation evidence is recorded in #1056.Li–Fukushima globalization makes representative adjacent-float starts converge, but changing Broyden's default globalization would be a broad algorithm behavior change. This PR therefore scopes the stronger test expectation only to the platform proven by the supported matrix. Unlike #1069, it does not alter the unrelated Rosenbrock expectation or require Brown to converge on macOS arm64.
Validation
7.314149286230531e-13every run.95 passed, 1 failed, 19 broken; Brown alg Make iip a compile-time constant #4 passed normally. The sole failure is the pre-existing generalized Rosenbrock alg Make iip a compile-time constant #4 result (4.4 > 1e-3), which is being investigated separately.95 passed, 1 failed, 19 brokenresult and the same sole pre-existing Rosenbrock failure.--check .passed.git diff --checkpassed.The official downgrade workflow at the investigated base stopped during package resolution before Core tests ran; the floor graph above was therefore reproduced in a pinned local environment.