help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] different executions on different platforms


From: Andrew Makhorin
Subject: Re: [Help-glpk] different executions on different platforms
Date: Thu, 14 Feb 2008 16:57:01 +0300

> We have noticed that executing the glpsol command-line solver on
> different machines with the same input data could lead to different 
> execution. The number of simplex iterations / branch-and-bound nodes may 
> differ, which leads to different performance.

> We have done our testings on three different platforms :
> - cygwin on top of Windows XP (i386 processor)
> - Debian GNU/Linux (i386)
> - Debian GNU/Linux (amd64)

> All testings were done using GLPK 4.25.

> The three attached execution logs correspong the resolution of the 
> pp08a.mps instance from MIPLIB 2003, using the --cuts option of glpsol.
> In summary :
> - on cygwin : 66 simplex iterations at root, 10059 total, 981 b&b nodes.
> - i386 Linux : the values are 66, 16377, 1449.
> - amd64 Linux : 67, 13155, 1445.

> The execution times cannot be compared, as the executions were performed 
> on different machines.

> Does anybody have an explanation why there are such differencies ? I 
> have started looking into the internal random number generator, but it 
> seems to behave the same way on the different platforms.

This is normal, because glpk routines use floating-point arithmetic,
and different compilers, as a rule, produce different object code, which
leads to different results. For example, one compiler may produce the
code, which keeps a temporary floating-point value in a register having
more significant bits than in the double type while other compiler may
always round such value to the double type; it is understood that the
floating-point representation of, say, 1/3 will be different in these
two cases. To obtain identical floating-point results you have to run
identical object codes on identical machines provided with identical
data.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]