[Cbc] Potential race hazard?
John Forrest
john.forrest at fastercoin.com
Mon Mar 24 10:28:01 EDT 2014
Hans,
Cbc has two parallel modes. The older and more mature method just passes
a subproblem to an available thread. This is efficient but is not
totally deterministic. It should always get the optimal solution if the
complete tree is searched, but may take a different number of nodes if
re-run. If the run is stopped on nodes or time, then the best solution
returned could be different. So if you are completing the search and
getting different solutions then that is a bug.
The second method, which is not used as often, involves giving each
thread a certain amount of work and waiting for all threads to complete
before continuing. As not enough effort has gone into measuring the
"work", this is not as efficient. This should give the same results when
re-run.
John Forrest
On 24/03/14 14:01, hmi21 at cantab.net wrote:
> Hi,
>
> First of all a big thanks to everyone developing and maintaining CBC. It’s
> an incredibly powerful tool.
> What I find extremely useful is that CBC has been parallelised and runs
> large problems utilising all cores on a multicore machine.
> The other day, however, I’ve come across a series of problems that when
> rerun on a parallelised version of CBC provide different results
> (objective values). When run in a single thread, CBC finds the same result
> consistently.
> I’ve posted one of the problems as well as a script to run it on CBC’s bug
> tracking system, but haven’t had a response
> (https://projects.coin-or.org/Cbc/ticket/147). Note that all heuristics
> and cuts are turned off when running the problem.
> I’d like to know whether a) this is indeed a bug or just me not using the
> library correctly and b) how mature the parallelised code of CBC is.
>
> Any help would be appreciated!
>
> Many thanks,
>
> Hans
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>
More information about the Cbc
mailing list