Closed lassepe closed 1 month ago
Finally got around to running the benchmarks on this. It looks like there is no easy win here. At least for the random sparse problems generated in the benchmark suite, this actually is worse than the matrix-based version:
julia> SolverBenchmarks.summary_statistics(data) (ip = (success_rate = 0.995, μ = 0.12741949022311558, σ = 0.014758518520687141), path = (success_rate = 0.995, μ = 0.00662610475075377, σ = 0.0014909815289010772)
In general, however, I am confused that such a small problem (with only 100 decision variables + 100 slacks) would take that long to solve. The fact that it also compiles forever makes me wonder whether there is something wrong with how the test problem is generated.
Now that we have #35, I will close this for now. I may re-open once we have a better abstraction in SymbolicTracingUtils.jl
. Ideally, there should just be flag in the build_function
of the Jacobian which toggles between eager and lazy jacobian computation.
Resolves #26