-
-
Notifications
You must be signed in to change notification settings - Fork 90
Cleanup BBO and MOI #899
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup BBO and MOI #899
Conversation
The MOI failure looks legit. |
yep, let me see what I can do about that... |
Looking at https://github.com/jump-dev/NLopt.jl/blob/master/ext/NLoptMathOptInterfaceExt.jl it seems that we don't have
But I can't find a way to programmatically check if this is applicable for a given solver outside of something like ms = methods(MOI.get, [typeof(opt_setup), MOI.BarrierIterations])
only(ms).module === MOI Would this be too horrible to consider? |
It's even worse than I thought, we have solvers like Juniper.jl which don't implement something for the number of iterations (https://github.com/lanl-ansi/Juniper.jl/blob/master/src/MOI_wrapper/results.jl), but they do intercept all the So we can't really know just from the module of the method :( |
Something weird is happening in the BBO test. I can see the hang locally too, but only if I run with the testset 🤔 |
Hmm Edit: I separated the |
9e77c04
to
17a1d72
Compare
17a1d72
to
1a3ddb6
Compare
I also found a fix for OptimizationNOMAD, it seems that it was using a very old version (2.0) due to the latest one (2.4) not being yet compatible with the latest LinearSolve due to Krylov.jl compat (see ds4dm/Tulip.jl#156, on which NOMAD depends on). |
the loss function returns a vector or tuple in the multi-objective case and a scalar in the single objective case. no need for global variables
unfortunatelly there's no API for determining this
d03a60b
to
6fbbe5a
Compare
@ChrisRackauckas is this good to go? |
bump versions so a release can be triggered after merging |
Checklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
The callback implementation for BBO was not reporting the objective correctly during callbacks. I think that's related to the improper use of global variables to communicate between the objective and the callback.
I've also adapted the BBO wrapper to use the BBO API for elapsed time and I fixed the stats for MOI (the stats didn't report anything).