[Cbc] Running Cbc/Clp in parallel

Bitar Fadi Fadi.Bitar at sweco.se
Wed Dec 4 06:23:21 EST 2013


Hi,

I'm using Clp as a library in a C++ program to solve very large problems (number of variables ~ 42M ). While in the past I have decomposed the problem into smaller problems that get solved separately in parallel, I have lately been wondering if there was a way to configure clp to make use of multi-threading so that I can solve the entire problem in one go, which would potentially lead to a better solution since I'm making some assumptions while decomposing that I would very much rather not make.

The reason I went with the decomposition in the first place is that the problem, when divided into 52 smaller problems, takes about an hour to solve on an Intel i7-powered laptop, and takes forever to solve as a single problem on a single thread (in fact, I've never waited long enough for it to finish).

The Cbc documentation says that Cbc can be built to run in parallel, and I've found a few mentions of the CBC_THREAD flag in the Clp code, so I figured I could build a Cbc model instead of a Clp model and solve that with the added benefit of concurrency, however when I built Cbc with the -enable-cbc-parallel and ran it on both Windows 7 and Mac OS X, it didn't seem to make use of multi-threading, since the CPU usage was capped at 25% (while with my decomposition method it would go up to 100% throughout the optimization, as it would run four solves at a time).

What am I missing here ? Has anybody had a successful experience in getting such a scenario running in parallel on a windows machine ?

Thanks a lot for the help.

/ Fadi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20131204/35fe9763/attachment.html>


More information about the Cbc mailing list