I have a large JuMP project developed on older versions of Julia (1.7.0) and JuMP (1.22.1) (because I was stuck on a corporate IT system and it was hard to update).
I’ve since moved my project to a new IT system, and used the Julia package system and my original Project.toml, Manifest.toml files to rebuild the same project / environment (Julia 1.7.0 and JuMP 1.22.1 etc.).
It produced identical results to begin with. But then I added some new packages to my project, which led to updates to some JuMP dependencies, including MathOptInterface from 1.3.0 to 1.3.5.
At this point the results changed (running a bounds constrained non-linear minimisation using NLopt/LBFGS solver and the final objective value was about twice what it was previously).
I’ve since realised that I need to include the ---preserve=all
option when I add packages to prevent unwanted upgrades, and this has fixed my problem for now.
But it still has me wondering: should we expect the performance of JuMP or related solvers to change this dramatically with different versions. And does anyone have any theories on what kind of changes to the packages might be contributing to these results.