[Coin-lpsolver] OsiClp/ClpSimplex/clp performance disparity
Jan-Willem Goossens
j.goossens at t75.nl
Tue May 2 09:23:07 EDT 2006
Hi,
Wouldnt it be a good idea to make the logic of "being clever about
algorithms and initial solutions" identical across
ClpSimplex::initialSolve and OsiClpSolverInterface::initialSolve (possible
even also the clp executable)? Similarly, for ::resolve.
Or is this not possible/desirable?
Regards,
Jan-Willem Goossens
> Ojas,
>
> I will have to run those problems to check but it is probable that the
> clp executable is being clever about algorithms and initial solutions.
> You should be able to get same results with ClpSimplex::initialSolve by
> setting parameters.
>
> Would it be useful if I worked on the interface and documentation for
> part of my DIMACS presentation?
>
> John Forrest
>
>
>
> Ojas Parekh <ojas at mathcs.emory.edu>
> Sent by: coin-lpsolver-bounces at list.coin-or.org
>
> 05/01/2006 10:07 PM
>
> To
> coin-lpsolver at list.coin-or.org
> cc
> Sebastien Siva <ssiva at emory.edu>, Cynthia A Phillips
> <caphill at sandia.gov>
> Subject
> [Coin-lpsolver] OsiClp/ClpSimplex/clp performance disparity
>
>
>
>
>
>
> Hi,
>
> We've observed appreciable disparities in the performance of
> OsiClpSolverInterface->initialSolve(), ClpSimplex->initialSolve(),
> and the clp executable program. In particular here are some of our
> observed running times on instances from well-known collections:
>
> collection/file clp exec. ClpSimplex OsiClp
> ----------------------------- --------- ---------- ------
> Linderoth-MIP/dano3_4.mps 57.78 151.99 145.44
> Linderoth-MIP/neos-520729.mps 7.70 20.46 20.50
> Linedroth-MIP/qap10.mps 4.00 3.90 51.51
> COIN/Mps/Big/mkc7.mps 21.15 169.08 165.12
>
> All numbers represent seconds on a 2.2Ghz dual core Opteron running a
> SUSE x86_64 Linux distribution using a CVS build of COIN-OR no older
> than a few weeks. We've also observed comparable ratios on Solaris
> and PPC Mac OS X machines. We passed no parameters to the clp
> executable other than the file name and used the following code for
> the object oriented interfaces:
>
> ClpSimplex model;
> model.readMps(argv[1]);
> model.initialSolve();
>
> and
>
> OsiClpSolverInterface si;
> si.readMps(argv[1]);
> si.initialSolve();
>
> We have larger instances particular to our application (Sandia Labs'
> PICO combinatorial optimization engine) that have exhibited similar
> behavior: the clp executable performs an order of magnitude better.
> We have tried experimenting with ClpSolve parameters and writing a
> simple heuristic to mimic the clp executable but have been
> unsuccessful in consistently obtaining comparable performance.
> Before proceeding any further I thought it would be a good idea to
> ask the following questions here:
>
> (1) Does the clp executable do any extra preprocessing or
> presolving? Do you think the gap is explained only by the way in
> which the three interfaces each set their parameters? If so, which
> parameters are especially critical for the problems above?
>
> (2) I have explored the source code; however, I was wondering if
> there was any documentation that speaks specifically to the
> differences in (in philosophy of) the three interfaces.
>
> (3) PICO currently exclusively relies on the OsiClp interface. I
> understand that I can use the getModelPtr() method to call
> ClpSimplex's version of initialSolve(). Is there callable access to
> the code that the clp executable uses?
>
> Thanks!
> -Ojas
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-lpsolver
>
>
>
More information about the Clp
mailing list