How We Evaluated Our Solvers on Three Numerical Experiments and Benchmarked Them

by Linearization TechnologyMarch 28th, 2025
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

We evaluate our solvers on three numerical experiments and benchmark them against other nonlinear equation solvers

Coin Mentioned

Mention Thumbnail
featured image - How We Evaluated Our Solvers on Three Numerical Experiments and Benchmarked Them
Linearization Technology HackerNoon profile picture
0-item

Abstract and 1. Introduction

2. Mathematical Description and 2.1. Numerical Algorithms for Nonlinear Equations

2.2. Globalization Strategies

2.3. Sensitivity Analysis

2.4. Matrix Coloring & Sparse Automatic Differentiation

3. Special Capabilities

3.1. Composable Building Blocks

3.2. Smart PolyAlgortihm Defaults

3.3. Non-Allocating Static Algorithms inside GPU Kernels

3.4. Automatic Sparsity Exploitation

3.5. Generalized Jacobian-Free Nonlinear Solvers using Krylov Methods

4. Results and 4.1. Robustness on 23 Test Problems

4.2. Initializing the Doyle-Fuller-Newman (DFN) Battery Model

4.3. Large Ill-Conditioned Nonlinear Brusselator System

5. Conclusion and References

4. Results

We evaluate our solvers on three numerical experiments and benchmark them against other nonlinear equation solvers – NLsolve.jl [20], Sundials [12, 13], and CMINPACK [15] (a modern C/C++ rewrite of MINPACK). We run all our benchmarks on Julia 1.10 on a cluster with 128 × AMD EPYC 7502 32-Core Processor with 128 Julia Threads. The code for our numerical experiments is publicly available on GitHub[12].


Fig. 9: Initializing the Doyle-Fuller-Newman (DFN) Battery DAE Model at a High Current: TrustRegion, NewtonRaphson, and LevenbergMarquardt from NonlinearSolve.jl reliably solve the DAE initialization problem and are faster than the corresponding NLsolve.jl equivalents. Sundials KINSOL and MINPACK fail to converge to the solution at any tolerance.

4.1. Robustness on 23 Test Problems

23 Test Problems[13] is a suite of 23 small nonlinear systems, each with 1 − 10 variables, that provides a valuable resource for testing and evaluating nonlinear equation solvers. The problems cover various difficulties, making them suitable for various solver testing scenarios. The FORTRAN90 version of this test suite “includes routines defining the initial approximation to the solution of the system, the 𝑁 function values at any point, and the 𝑁 by 𝑁 Jacobian matrix at any point.” We provide a pure Julia version of these problems in NonlinearProblemLibrary.jl[14]. In contrast to the FORTRAN90 version, we don’t implement the Jacobian functions and instead rely on the solvers using Automatic Differentiation or Finite Differencing to compute them.


For this experiment, we benchmark first-order solvers from various packages – Newton Raphson, Trust Region, and Levenberg Marquardt from NonlinearSolve.jl, Modified Powell and Levenberg Marquardt from CMINPACK, Newton Raphson, Trust Region and Anderson from NLsolve.jl, and Modified Newton Raphson from Sundials KINSOL. For NonlinearSolve.jl native solvers, we perform additional analysis with different line search strategies – HagerZhang, MoreThuente, and BackTracking with Newton Raphson; different radius update schemes – NLsolve, NocedalWright, Hei, Yuan, Bastin, and Fan with Trust Region; and Levenberg Marquardt with and without Geodesic Acceleration [57]. Figure 8 shows that our solvers outperform other software packages.


Fig. 10: Brusselator 2D Scaling of First-Order Nonlinear Solvers: NonlinearSolve.jl Newton-Raphson outperforms the implementation of the same algorithm from other frameworks. Notably, NonlinearSolve.jl is several orders of magnitude faster than MINPACK (written in C), which is widely used in software like SciPy and MATLAB. We show that Approximate Sparsity Detection accelerates moderately sized problems; however, at extremely large scale Symbolic Sparsity Detection outperforms all other methods by a margin.


This paper is available on arxiv under CC BY 4.0 DEED license.


[12] https://github.com/SciML/SciMLBenchmarks.jl/tree/master/benchmarks/NonlinearProblem


[13 https://people.sc.fsu.edu/~jburkardt/f_src/test_nonlin/test_nonlin.html


[14] https://github.com/SciML/DiffEqProblemLibrary.jl/blob/master/lib/ NonlinearProblemLibrary/src/NonlinearProblemLibrary.jl

Authors:

(1) AVIK PAL, CSAIL MIT, Cambridge, MA;

(2) FLEMMING HOLTORF;

(3) AXEL LARSSON;

(4) TORKEL LOMAN;

(5) UTKARSH;

(6) FRANK SCHÄFER;

(7) QINGYU QU;

(8) ALAN EDELMAN;

(9) CHRIS RACKAUCKAS, CSAIL MIT, Cambridge, MA.


Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks