This package implements a set of benchmarks for the nonlinear solver MadNLP.
The main entry point is provided as a Makefile.
By default, MadNLP is benchmarked against Ipopt.
Both Ipopt and MadNLP requires a proper installation of the library HSL (here provided by HSL_jll).
To install all the dependencies, run in your shell:
make install
By default, MadNLPBenchmark.jl is set up to use the master branch of MadNLP and its dependencies (MadNLPHSL, MadNLPGPU).
To udpate all the dependencies, run:
make update
For solver={madnlp|ipopt} and benchmark={cops|mittelmann|cutest|acopf|acopf-rect}, you can
run the benchmark in parallel using NPROCS processes using
julia -p $NPROCS --project=. --solver=$solver --benchmark=$benchmark
Alternatively, you can run all the benchmarks with:
make all
The results are stored as a text file in the folder
results/*.
- CUTEst: uses the instances provided in CUTEst.jl
- ACOPF: uses the ACOPF instances from the PGLIB benchmark, formulated using ExaModelsPower.jl
- COPS: uses the instances from the COPS benchmark, formulated using ExaModels.jl
The directory plots/ stores various scripts to plot the results of the different benchmark,
including performance profiles. The performance profiles are plotted
using the BenchmarkProfiles.jl package, kindly provided by JuliaSmoothOptimizers.