[Osi] How to change solve algorithm to Dual or Barrier with OsiClpSolverInterface ?

Sylvain R ross_dev at hotmail.com
Fri Sep 9 04:38:50 EDT 2011


Hello Matthew, thanks for caring about my question.
Funny, I started to write a small snippet from scratch (using ClpSolve and setSolveOptions), and this time it worked... Don't know what I was doing wrong before...
One mystery though: on Cplex, Primal is much slower than Dual, which is much slower than Barrier. With Clp, I get the exact opposite of performance... the best is Primal (which does not seem to be the default, i.e. reading "primal" in the Clp log does not mean the algorithm is using the Primal method... stupid assumptions I made there), and the worst is Barrier (way too slow).
It's hard to understand what could cause such a mismatch in the performance... (besides CPLEX taking advantage of multiple cores when in Barrier mode).
Well... in the end I improved my Clp solve time 3x :)
PS: Sorry Matthew I sent you this same email to your email only, it was a mistake.
----------------------------------------
> CC: osi at list.coin-or.org
> From: matthew.galati at gmail.com
> Subject: Re: [Osi] How to change solve algorithm to Dual or Barrier with OsiClpSolverInterface ?
> Date: Thu, 8 Sep 2011 09:12:56 -0400
> To: ross_dev at hotmail.com
>
> What function are you using to solve?
>
> Send the code snippet that sets the parameters and solves.
>
> Sent from my iPhone
>
> On Sep 8, 2011, at 5:00 AM, Sylvain R <ross_dev at hotmail.com> wrote:
>
> > Hello,
> >
> > I have been trying for quite a while to modify the algorithm that Clp uses to solve rather big linear problem. Clp says it is using Primal according to the solve-message I get (e.g. Clp0006I 6112 Obj 799905 Primal inf 50170.4 (1044)).
> >
> > But I would like to try to solve with the Dual method, and even the Barrier method. With CPLEX I have been able to do that and it considerably improved the run time (by x2 and x3).
> >
> > I have been trying different ways:
> >
> > 1) call setIntParam with OsiDoDualInInitial to true.
> > 2) call setSolveOptions(const ClpSolve & options) with the proper ClpSolve object with method set to Dual or Barrier.
> >
> > But it does not seem to change anything, it still goes at the same speed, nor does it display messages indicating it is doing anything differently.
> >
> >
> > Any idea? is it possible altogether?
> >
> >
> > Sylvain
> > _______________________________________________
> > Osi mailing list
> > Osi at list.coin-or.org
> > http://list.coin-or.org/mailman/listinfo/osi
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/osi/attachments/20110909/a52e5c0c/attachment.html>


More information about the Osi mailing list