Gurobi Technical Workshop
It goes without saying that these statements are my individual views of the workshops, and are not the official word from either the companies or INFORMS.
The world of optimization software has been turned upside down in the last year. Dash Optimization (makers of XPRESS-MP) was bought by FairIsaac (or FICO, as it is now called). ILOG, makers of CPLEX, was bought by IBM. And three key people from ILOG, Gu Rothberg and Bixby, split off to form Gurobi (no prizes for guessing how the name was formed). Gurobi held its first (I believe) technical workshop at an INFORMS Practice Conference, and had tons of interesting news. Since “Operation Clone Michael Trick so He Can Attend All Interesting Workshops” failed, I spent the first half hour of the 3pm workshop session at the Gurobi sesssion before moving onto another session. Here are a few things presented.
Bob Bixby presented an overview of the history of Gurobi. Their main goal over the last year has been to create a top-notch linear and mixed integer programming code. I was surprised that they were able to do this in the March 2008-November 2008 period. Since then, the optimization code has been essentially static while the firm works on things like documentation, bug fixes, user interfaces and so on.
The business model of Gurobi has three main parts:
- Focus on math programming solvers
- Flexible partnerships
- Technology leadership
The partnership aspect was quite interesting. They very much value the relationship they have with Microsoft Solver Foundation (whose presentation I attended this morning), along with the partnerships they have with AIMMS, Frontline, GAMS, Maximal, and other groups.
Ed Rothberg presented the stand-alone user interface (to be released May 6), which has been implemented as a customization of the Python shell. Some of my colleagues (in particularly those at the University of Auckland) have been pushing Python, but this is the first full scale system I have seen, and it is very impressive.
Beyond that, I can only go by the handouts, since I did some session jumping, but a few things are clear:
- As an optimization code, Gurobi is competitive with the best codes out there, being better than all on some instances, and worse than some on others.
- Gurobi is taking parallel optimization very seriously, stating that single-core optimization is nothing but a special case of its multi-core approach.
- Python is a powerful way of accessing more complicated features of the system.
Gurobi is already available as an add-in to other systems. It will be available in a stand-alone system in a week or so. Further versions are planned to come out at six month intervals.