<br><font size=2 face="sans-serif">We have a Cbc application that has been
doing quite well for us, but as we foray into more and more complicated
problems we are always interested in improving performance. So we
were pleased to learn that parallelization had been added to Cbc, and we
decided to test it out.</font>
<br>
<br><font size=2 face="sans-serif">For this test we built Cbc with
the --enable-cbc-parallel-flag on a quad-core Linux box, and used the bin/cbc
executable. We downloaded a few test problems from MIPLIB2003 from
the archive site miplib.zib.de. We ran these problems with different
values of the -threads parameter, and were surprised to discover that adding
threads did not improve performance; instead, performance was almost unchanged
for one problem (miu.mps), and degraded slightly with additional threads
for some others (aflow30a.mps, aflow40b.mps, misc07.mps).</font>
<br>
<br><font size=2 face="sans-serif">We used the following command structure:</font>
<br>
<br><font size=2 face="sans-serif">cbc -threads <n> -import <mps
file> -solve</font>
<br>
<br><font size=2 face="sans-serif">We varied n from 0 (though we don't
know what 0 means!) through 5 (even though we didn't have five cores!),
and never saw a case where increasing n improved performance more than
marginally, and many cases where it hurt.</font>
<br>
<br><font size=2 face="sans-serif">We must be doing it wrong. Is
anyone else having success improving performance with parallelized Cbc?</font>