[Coin-discuss] cbc vs. cbc-generic
Lou Hafer
lou at cs.sfu.ca
Thu Jun 22 11:57:30 EDT 2006
Folks,
The basic problem, in terms of using other solvers with cbc, is that
there is sufficient ambiguity in the OSI specification so that `conforming'
solvers will not necessarily work in cbc. The de facto OSI specification, if
you want your solver to work in cbc, is OsiClp. It's an ongoing struggle to
keep things working with OsiDylp, and I generally expect that when I return to
working with cbc after any sort of extended break, I'll have to spend a week or
so getting the combination to work together again. I would be (pleasantly)
surprised if any OSI except for OsiClp and OsiDylp (and maybe OsiOsl) actually
work in cbc-generic. Hell, I'll be pleasantly surprised if cbc-generic builds
and runs with OsiDylp, since I've been submerged in teaching through this last
bit of upheaval and haven't been able to contribute as much as I should to
testing.
There are all sorts of issues to be addressed here. One question is
whether this sort of interoperability is important to the general COIN user
community. Another question is whether we as developers see it as important.
The next issue is efficient integration of a solver into cbc. Speaking
from experience with my own previous work (bonsaiG) and with cbc, it's waaaaay
easier to do any of several important MIP operations efficiently by bypassing
the OSI layer. Much of this needs to be addressed through extension of OSI, and
this is a long discussion on its own. In cbc, the result has been a number of
chunks of code that work only with OsiClp and/or direct calls to clp.
If I were to draw an analogy, the situation (for those of you old enough
to remember :-) is similar to the early days of graphics programming. In order
to achieve acceptable performance, developers bypassed standard OS and graphics
APIs and went directly to the hardware. Not unexpectedly, there were
portability issues.
When the question came around, ``What would you like to see at the
DIMACS workshop?'', top of my list was a session or two to try and develop
answers to some of these broad strategic questions. I think it would be a great
thing for COIN to have some organisation-level projects, and working to keep
cbc(generic) on a par with cbc(clp) would be a really good one. But it will
require serious commitment from quite a few of us to make it work.
Lou
More information about the Coin-discuss
mailing list