-
Notifications
You must be signed in to change notification settings - Fork 86
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
Solver wrappers tracker #70
Comments
Do you agree with that? |
I can do Gurobi also, it is pretty similar to Xpress |
This is a good place to keep track of progress and who's working on what. I'd also mention that this is a good time to look at the low-level wrappers themselves, don't feel like you can only touch the MOI code. A lot of these wrappers were written a long time ago and don't necessarily have good documentation or follow the latest Julia conventions. Please take some time to consider if it would be useful to reorganize the low-level wrapper before or while writing the MOI wrapper. |
Any if any part of the implementation is unclear, open an issue here so we can document it! Hopefully the guide on "how to write a solver wrapper" can be easily compiled from the experience with these wrappers. |
I can do CPLEX |
A question on the low-level wrappers: should these support a full range of low-level features (i.e. adding variables with bounds at the same time), or just the MOI features (add a variable, and a function to set bounds). Consider that CPLEX has I'm kind of in favour of restricting the functionality of the low-level wrappers because it will encourage people to go through MOI and make it simpler to maintain. |
I was thinking about something similar, maybe having the C api .h file converted just to eliminate tedious ccalling and then just do MOI. |
@joaquimg CSDP is passing the |
Have anybody tried to use any .h to .jl converter such as the one in Clang.jl |
@odow a smart MOI wrapper might decide to call |
We tried a long time ago for SCIP and it wasn't successful because the SCIP API was too complicated. |
@joaquimg never tried it but I am planning to give it a try for DSDP |
CSDP is passing all |
SDPA too now :) |
Xpress is passing linearXtest, |
My plan is finish intlinear soon and go to gurobi |
@joaquimg I'm just targeting LP this week, but if we have a MIP solver working I may have time to try it out. |
CPLEX is now passing tests 1 to 6. |
CPLEX is now passing all contlinear, intlinear, and contquadratic tests in this PR #103 |
EDIT: found it at #27: |
MOSEK is now passing linear, conic and integer tests (minus SOS tests). I have not implemented quadratic objective or constraints. I have also disabled |
Same for Xpress using LinQuadOptInterface |
I am tagging Xpress.jl v0.5.0 now and it contains the basic functions to support MathOptInterfaceXpress which depends on LinQuadOptInterface. @mlubin I'd like to transfer these two to JuliaOpt. I will start working on MathOptInterfaceGurobi @odow should I also create |
@joaquimg, you have permission to transfer those two repos. Does the Xpress v0.5 release have any changes visible to current JuMP users on Julia 0.6? We should be careful not to break existing setups. |
It passes all the current JuMP (and MathProgBase) tests on 0.5 and 0.6 smoothly. The only change is that the user needs to use Xpress.XpressSolver instead of XpressSolver, which is not exported anymore. |
@joaquimg, could you make sure all solver tables are updated for the un-exported name? |
Yes to CPLEX |
GurobiMathOptInterface is passing almost all linear and integer tests - just needs status and ranged constraints. Since Gurobi.jl exports Suggestions? |
We can't release a 0.6-compatible version of Gurobi.jl without |
Now we have GurobiMathOptInterface.jl in JuliaOpt. It should be working as soon as jump-dev/Gurobi.jl#106 gets merged and we tag a new version. Currently we have It passes most tests, does not passes ranged constraints because gurobi creates extra variables and some QCP tests fails due to problems with quadratic duals, which are not well posed in MOI anyway. |
MathOptInterfaceCPLEX is passing all tests, but it needs: jump-dev/CPLEX.jl#146. |
@IssamT any news on Clp? Have you considered using LinQuadOptInterface? |
@joaquimg, sorry for not replying quickly to your message. For some reason I stopped getting emails on comments of issues and pull requests despite I don't remember modifying my notification settings. I have enabled all the notifications on my settings and I hope this will fix it. About your question. I was a bit busy and only got some advance in the past week. Still a couple of tests and all will be passing. However It seems I also missed LinQuadOptInterface. I wasn't aware of its existence. So no, I haven't used it. |
MathOptInterfaceGLPK is alive: https://github.com/JuliaOpt/MathOptInterfaceGLPK.jl It is passing most tests (the ones in MOI), there is still some important work to do: improving solution status mappings. |
I will take care of updating CDD. Still no one working on MathOptInterfaceSCS.jl ? |
I will start the SCS wrapper then :) |
How can we proceed with CBC and SCIP? I noticed SCIP's MPB interface is pretty simple, porting that to LQOI would be easy - once I have SCIP installed ;) - I just don't know if there is plan to do something special. Should we extend CBC the same as CLP? |
CC @leethargo and @fserra for SCIP. There was talk at some point of writing a direct SCIP wrapper instead of using CSIP (which was written to provide a Gurobi-like C interface for SCIP). It would be easier to continue to use CSIP for now, but that may not be the long-term solution. |
True, a direct wrapper of the SCIP C-API would be more general. But I won't have time to attempt a rewrite in the next couple of months... |
SCS is passing all the tests it can pass without bridge ! :) |
@joaquimg it would be nice to have CBC in the same style as CLP , but I haven't tried to use LQOI yet. |
I can take care of ECOS, the interface is very similar to SCS so it should be quick :) |
ECOS is now working :) |
Closing as I believe this issue has served its purpose. |
CDD is done in JuliaPolyhedra/CDDLib.jl#37 |
List of LP and conic solver wrappers to be implemented.
We can mark whoever is currently working on it and which ones are basically done.
The text was updated successfully, but these errors were encountered: