[Cbc] cbc executable behaving very differently on different platforms (Linux and Moac OS X)

Kish Shen kisshen at cisco.com
Wed Jan 30 11:27:23 EST 2008


Hi,

I have been having this problem with using CBC (with CLP as the linear 
solver) that was reported by a user of our system. Initially, this was 
from using my own code that interfaces to CBC, but I have now managed to 
reproduce some of the problems with the cbc executable that comes with 
CBC, by feeding it MPS files representing my problems.

I have done this for two problems, both of which are (different) 
formulation of a `stable marriage problem', and both are solved to find 
a feasible solution to the problem (i.e. it has a dummy objective). Both 
problems should be feasible, and indeed when I ran them with CPLEX, 
solutions are given for both. However, when I use the cbc executable (as 
well as my own code interfacing to CBC/CLP), I get different results, 
depending on the platform I ran on.

I have tried this problem on a Linux (x86, 32 bit) box, and also on an 
Intel Mac OS X (also 32 bit). Each machine is able to find a feasible 
solution for one of the problem, i.e. one of the problem is feasible on 
the Intel Mac but is infeasible on the Linux box and vise versa for the 
other problem.

I have noticed from the log of the cbc execution that the problems seem 
to be treated very differently on the two platforms. For example, for 
the same problem, here is what CBC log shows after the processing:

Intel Mac:

mediaLab-MacPro:~/RR20080121 kish$ 
~/Coin-Cbc20071109/i386_macosx/bin/cbc gen.mps
Coin Cbc and Clp Solver version 2.00.00, build Nov 20 2007
command line - /Users/kish/Coin-Cbc20071109/i386_macosx/bin/cbc gen.mps
At line 1 NAME          BLANK     FREE
At line 2 ROWS
At line 1828 COLUMNS
At line 7733 RHS
At line 8518 BOUNDS
At line 11751 ENDATA
Problem BLANK has 1824 rows, 2848 columns and 9232 elements
Coin0008I BLANK read with 0 errors
...

and after processing:

Cgl0004I processed model has 1578 rows, 2354 columns (2354 integer) and 
8240 elements
...

and a solution is returned:

Result - Finished objective 0 after 4150 nodes and 667378 iterations - 
took 436.20 seconds (total time 436.24)

and for Linux:

kish at bodgerix:~/Bugs/RR20080121> ~/Coin-Cbc20071109/i386_linux/bin/cbc 
gen.mps
Coin Cbc and Clp Solver version 2.00.00, build Nov 30 2007
command line - /homes/kish/Coin-Cbc20071109/i386_linux/bin/cbc gen.mps
At line 1 NAME          BLANK     FREE
At line 2 ROWS
At line 1828 COLUMNS
At line 7733 RHS
At line 8518 BOUNDS
At line 11751 ENDATA
Problem BLANK has 1824 rows, 2848 columns and 9232 elements
Coin0008I BLANK read with 0 errors
....

but after processing, the model seem to have a lot more rows:

Cgl0004I processed model has 10094 rows, 2329 columns (2329 integer) and 
25161 elements

and the problem cannot be solved:

Result - Finished objective 1e+50 after 0 nodes and 0 iterations - took 
48.70 seconds (total time 48.81)
Total time 48.82

-----
with very different nodes and iteration for the MIP search...

Any idea if the runs of the same problem on different platform should be 
so different?

The same CBC source is used in both cases (downloaded 9 Nov 2007) from 
the trunk branch, and the same options were given to configure to 
configure the code for compilation. The gcc on the Mac is version 4.0.1, 
and on Linux is 3.3.5. The same MPS file is feed to both.

I can provide the two MPS files for the two problems I have tried.

Thanks in advance for any help/information!

Yours sincerely,

Kish Shen



More information about the Cbc mailing list