[Cbc] Non Deterministic solution

Yves Touchard ytouchard at gopro.com
Tue Feb 9 09:05:08 EST 2016


Ted,

Thank you for your reply.

I have tried on an Intel(R) Core(TM) i7 CPU870  @ 2.93GHz which has not the AVX flag on. And the result is the same.
Furthermore, the INTEL_MKL definition is not set during the Cbc compilation.

At end, if I remove the multithread command-line argument, it seems that cbc is deterministic (4000 runs providing the same solution).

Yves

From: Ted Ralphs [mailto:ted at lehigh.edu]
Sent: Monday, February 08, 2016 7:27 PM
To: Yves Touchard <ytouchard at gopro.com>
Cc: John Forrest <john.forrest at fastercoin.com>; cbc at list.coin-or.org
Subject: Re: [Cbc] Non Deterministic solution

I don't know any details, but apparently non-determinism is a possibility on some Intel chipsets using AVX intructions, even for code that should be deterministic, due to alignment issues. For example, see this discussion:

https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/391364

I'm not sure if this could be the issue, but worth checking into. The above thread contains some ideas for what to try to make the code deterministic.

Cheers,

Ted

On Mon, Feb 8, 2016 at 12:21 PM, Yves Touchard <ytouchard at gopro.com<mailto:ytouchard at gopro.com>> wrote:
John,

Sure that this problem is very tricky.
I wrote a Python script launching cbc until the solution file is different from a reference solution.
According to these tests, cbc must be ran (on the same machine) between 1 and 200 times before failing (mean is around 50).

Yves

From: John Forrest [mailto:john.forrest at fastercoin.com<mailto:john.forrest at fastercoin.com>]
Sent: Monday, February 08, 2016 5:34 PM
To: Yves Touchard <ytouchard at gopro.com<mailto:ytouchard at gopro.com>>; cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>
Subject: Re: [Cbc] Non Deterministic solution

Yves,

Difficult to debug this.  I have run it a hundred times and got the same answer each time.

John

On 08/02/16 12:11, Yves Touchard wrote:
John,

I did the changes (two lines in ClpSimplex.cpp) and there is still determinism problems.

Yves

From: john.forrest at fastercoin.com<mailto:john.forrest at fastercoin.com> [mailto:john.forrest at fastercoin.com]
Sent: Friday, February 05, 2016 5:33 PM
To: Yves Touchard <ytouchard at gopro.com><mailto:ytouchard at gopro.com>; cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>
Subject: RE: [Cbc] Non Deterministic solution

Yves,

My guess is that it is because there are places where CoinDrand48 is used.

Most likely is in ClpSimplex.cpp - try changing

Coindrand48()

to

randomNumberGenerator_.randomDouble()

if that fixes I will check change in


John
-------- Original Message --------
Subject: [Cbc] Non Deterministic solution
From: Yves Touchard <ytouchard at gopro.com<mailto:ytouchard at gopro.com>>
Date: Thu, February 04, 2016 11:31 am
To: "cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>" <cbc at list.coin-or.org<mailto:cbc at list.coin-or.org>>
Hello,

I have just a got a determinism problem with a constraint file:

You will find at https://www.dropbox.com/s/uzbmgj48kvtd5yj/pb.tar.gz?dl=0, a tar file containing five files:
·        pb.lp is the constraint file.
·        pbTriv.sol is a solution file of the trivial problem (same problem with relaxed constraints) used for mipstart.
·        pb.prio is the priority file.
·        pbCmd1.sol is the most frequent solution provided by coin.
·        pbCmd1Alt.sol is the alternative solution (not easy to catch it…).

Command line is:
bin/cbc pb.lp threads 104 ratio 0.05 mipstart pbTriv.sol priority pb.prio divingP on divingV on divesolves 301 multiple 4 branch printingOptions normal solution pb.sol
Cbc coin is 2.9.7 rev:2232 compiled with gcc 4.9.0

Could you have a look on it, please?

Thanks

Yves

________________________________
_______________________________________________
Cbc mailing list
Cbc at list.coin-or.org<mailto:Cbc at list.coin-or.org>
http://list.coin-or.org/mailman/listinfo/cbc


_______________________________________________
Cbc mailing list
Cbc at list.coin-or.org<mailto:Cbc at list.coin-or.org>
http://list.coin-or.org/mailman/listinfo/cbc



--
Dr. Ted Ralphs
Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted<http://coral.ie.lehigh.edu/~ted>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20160209/a995f403/attachment-0001.html>


More information about the Cbc mailing list