[Clp] Abc vs Clp

John Forrest john.forrest at fastercoin.com
Thu Nov 27 04:38:55 EST 2014


Abc is short for Aboca, which stands for A Bit Of Clp Accelerated.

In 2012 I decided to see if Simplex could be made faster by using new 
instructions and by going parallel.  I had some success going parallel 
using an extension to C - cilk, which was originally from MIT and 
eventually taken on by Intel.  It is now in gcc 4.9.  Abc uses cilk to 
go parallel in classic sense (e.g. pricing matrix), but also by doing 
part of factorization update at the same time as the pricing.  This 
leads to an interesting re-write of the dual simplex method.

This worked well and I gave a talk on it in 2012 at ISMP Berlin. I still 
use it on some of my projects, but it's advantage over Clp has 
diminished (and now can be negative on some problems).

So clp model -abc four -dualsolve would use Abc to solve and then hand 
back to Clp solve.  This is only activated if Clp is configured with 
--enable-aboca=4 and using -fcilkplus in compiler options.

I have recently realized that I have made some mistakes with #if #else 
#endif constructs which I am going to fix this year.  The --enable-aboca 
version of Clp should behave in an identical fashion to the ordinary 
version if aboca not switched on - but it didn't.  That should be easy 
to fix.

I am in the process of revisiting Clp anyway - so I need to make sure 
that Abc regains some of its former zing.

If you need more information, do not hesitate to ask awkward questions.

John Forrest




On 26/11/14 04:00, Babak Moazzez wrote:
> Hi
>
> What is the relation/difference between AbcSimplex and ClpSimplex?
>
> Thanks
>
> B. M.
>
>
> _______________________________________________
> Clp mailing list
> Clp at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/clp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20141127/652b33ae/attachment.html>


More information about the Clp mailing list