Summary
STRIDE's parallel-FM path fails ZVODE convergence at higher thread counts on a
near-separatrix DIII-D-like equilibrium, while serial and low thread counts converge. The
failed run STOPs (exit 0) and writes no output NetCDF.
Environment / case
- ifx/MKL 2026 build. DIII-D-like corrected geqdsk,
jac=hamada, grid_type=ldp,
mpsi=256, psihigh=0.995, n=1, bal_flag=f, tol_nr=tol_r=1e-8.
Symptom
At nThreads >= ~8:
Starting ODE integration...
ZVODE1-- At T (=R1) and step size H (=R2), the
corrector convergence failed repeatedly
or with abs(H) = HMIN
In above, R1 = 0.5183...D+00 R2 = 0.3815...D-12
PROGRAM STOP => STRIDE STOP: ZVODE1 integration failure.
No stride_output_n1.nc is produced. Serial (nThreads=1) converges to Normal termination
(~6 s); nThreads=2 and 4 also converge; failures appear at higher counts and are
intermittent (thread-schedule dependent).
Impact
- The parallel STRIDE FFS path is unusable at the thread counts one would actually run it at
on this class of equilibrium.
- The run STOPs with exit 0 but produces no NetCDF, so downstream tooling that assumes output
exists must guard on it (rather than trust the exit code).
Suggested investigation
- Look at how the parallel-FM chunk decomposition interacts with ZVODE corrector convergence
near the separatrix (q -> inf, dense rationals).
- Consider a graceful fallback (retry at fewer threads / serial) on ZVODE failure instead of
a hard STOP, and/or a nonzero exit code so callers can detect it.
Summary
STRIDE's parallel-FM path fails ZVODE convergence at higher thread counts on a
near-separatrix DIII-D-like equilibrium, while serial and low thread counts converge. The
failed run
STOPs (exit 0) and writes no output NetCDF.Environment / case
jac=hamada,grid_type=ldp,mpsi=256,psihigh=0.995,n=1,bal_flag=f,tol_nr=tol_r=1e-8.Symptom
At
nThreads>= ~8:No
stride_output_n1.ncis produced. Serial (nThreads=1) converges to Normal termination(~6 s);
nThreads=2and4also converge; failures appear at higher counts and areintermittent (thread-schedule dependent).
Impact
on this class of equilibrium.
exists must guard on it (rather than trust the exit code).
Suggested investigation
near the separatrix (q -> inf, dense rationals).
a hard STOP, and/or a nonzero exit code so callers can detect it.