[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