[Scip] Same SCIP, same ILP on different machines -> "different" results

Timo Berthold berthold at zib.de
Thu Oct 27 11:21:26 MEST 2011


Hi Gordon.

> Is it some sort of floating point issue
Yes. This is an annoying, but nonetheless natural behavior which is due to
different implementations of arithmetic operations on different systems
that lead to different roundings of the last bit of a double number's
mantisse. This might lead to different decisions been taken because the
order of some numbers that are almost-equal changes, and one different
decision might lead to an arbitrarily large difference in the computation
path.

Of course, the objective function value of the optimal solution always has
to be the same, but the path leading to it might be different and also the
solution vector itself (if there are multiple optimal solutions, which
often is the case).

All solvers, commercial and non-commercial, suffer from this so-called
"performance variability". For a computational study of this phenomenon,
see , e.g., the MIPLIB2010 paper:
http://vs24.kobv.de/opus4-zib/frontdoor/index/index/docId/1295

Cheers,
Timo


> I am running SCIP both on a Linux machine and a MacOS machine.
>
> I am using the binaries
>
> scip-2.0.2.darwin.x86_64.gnu.opt.spx
> scip-2.0.2.linux.x86_64.gnu.opt.spx
>
> When I run the same LP file (which is a binary pure integer linear
> program) on the two platforms, I get different computation paths and hence
> solve times. (One machine is faster than the other so a difference is
> expected there, but I did not expect different outcomes).
>
> The values returned are correct - they are just different feasible
> solutions - but the variation can be quite large, which makes it different
> to perform comparative work.
>
> Here are examples of the solve nodes for 12 ILPs of similar "type" - all
> have 273 variables and 274 constraints.
>
> Each line has the format:  Nodes_on_mac ( Time_on_mac)  Nodes_on_linux (
> Time_on_linux )
>
> 40 ( 5.00 )     40 ( 7.92 )
> 728 ( 7.55 )    1098 ( 13.24 )
> 10 ( 3.82 )     10 ( 5.79 )
> 96 ( 5.37 )     1298 ( 15.57 )
> 12008 ( 32.50 ) 887 ( 18.30 )
> 510 ( 6.79 )    648 ( 11.25 )
> 1560 ( 9.77 )   1418 ( 14.50 )
> 654573 ( 1200.07 )      223861 ( 663.25 )
> 28295 ( 65.48 ) 321577 ( 1033.71 )
> 28204 ( 63.66 ) 14652 ( 83.94 )
> 84891 ( 163.91 )        1752 ( 16.07 )
> 248229 ( 426.26 )       13963 ( 50.55 )
>
> Why does this occur? Is it some sort of floating point issue or is there
> some arbitrariness in "tie-breaking" etc.
>
> (I do not have a deep knowledge of the internal process of solving a pure
> ILP.)
>
>
>
>
>
>
> Professor Gordon Royle
> School of Mathematics and Statistics
> University of Western Australia
> Gordon.Royle at uwa.edu.au<mailto:Gordon.Royle at uwa.edu.au>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
>



More information about the Scip mailing list