What makes 1-cpu program un-deterministic?

Discussion of chess software programming and technical issues.

Moderator: Ras

Jouni
Posts: 3798
Joined: Wed Mar 08, 2006 8:15 pm
Full name: Jouni Uski

What makes 1-cpu program un-deterministic?

Post by Jouni »

Obviously all SMP software un-deterministic, but why are some 1-cpu programs also un-deterministic. Specially Critter is totally un-predictable even in single version! Has Richard added some randomness in search?

Jouni
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: What makes 1-cpu program un-deterministic?

Post by rvida »

Jouni wrote:Obviously all SMP software un-deterministic, but why are some 1-cpu programs also un-deterministic. Specially Critter is totally un-predictable even in single version! Has Richard added some randomness in search?

Jouni
It is supposed to be deterministic. If it is not you probably found a bug. With a freshly started engine, outputs should be identical even across different platforms.


Richard
User avatar
WinPooh
Posts: 276
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: What makes 1-cpu program un-deterministic?

Post by WinPooh »

Probably, cosmic rays?
User avatar
hgm
Posts: 28454
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What makes 1-cpu program un-deterministic?

Post by hgm »

Any program that uses the clock to make search decisions will be non-deterministic.
User avatar
WinPooh
Posts: 276
Joined: Fri Mar 17, 2006 8:01 am
Location: Russia
Full name: Vladimir Medvedev

Re: What makes 1-cpu program un-deterministic?

Post by WinPooh »

Not cleaning up hash space or killers/history datastuctures on startup can lead to nondeterministic behaviour too.
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: What makes 1-cpu program un-deterministic?

Post by rvida »

hgm wrote:Any program that uses the clock to make search decisions will be non-deterministic.
I assumed the question was about analysis, not gameplay.
User avatar
hgm
Posts: 28454
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: What makes 1-cpu program un-deterministic?

Post by hgm »

Well, waiting for user moves is even more unpredictable than waiting for the clock to tick. Or do you clear the hash table before each search?
ernest
Posts: 2053
Joined: Wed Mar 08, 2006 8:30 pm

Re: What makes 1-cpu program un-deterministic?

Post by ernest »

Jouni wrote:. Specially Critter is totally un-predictable even in single version!
I think something must be wrong with your tests...
(do you clear hash? :D :D :D )
Can you give an example?

In Fritz GUI,using 1 thread (512MB hash), I always get the same analysis from the start_position:

Code: Select all

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
Analysis by Critter 1.2 32-bit gtb:
...............
1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bc4 Bc5 5.0-0 0-0 6.d3 d6 7.Be3 Nd4 8.h3 Be6 9.Nxd4 exd4 
  =  (0.15 --)   Depth: 18/37   00:00:10  11730kN
1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bc4 Bc5 5.0-0 0-0 6.d3 d6 7.a3 h6 8.b4 Bd4 9.Nxd4 Nxd4 10.h3 Be6 
  =  (0.13)   Depth: 18/37   00:00:11  13682kN
1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bc4 Bc5 5.0-0 0-0 6.d3 d6 7.Na4 Be6 8.Nxc5 dxc5 9.Bxe6 fxe6 10.Be3 Qd6 11.c3 Rad8 12.h3 
  =  (0.14)   Depth: 19/40   00:00:21  24104kN
1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Bc4 Bc5 5.0-0 0-0 6.d3 d6 7.Na4 Be6 8.Nxc5 dxc5 9.Bxe6 fxe6 10.Be3 Qd6 11.c3 Rad8 12.h3 
  =  (0.14)   Depth: 20/40   00:00:33  38635kN
1.e4 e5 2.Nf3 Nc6 3.Nc3 Nf6 4.Be2 Bd6 5.0-0 0-0 6.d3 b6 7.a3 h6 8.Be3 Ng4 9.Qd2 Nxe3 10.fxe3 Bb7 11.Nd5 Ne7 
  =  (0.11)   Depth: 21/43   00:01:10  81550kN
1.d4 Nf6 2.Nc3 d5 3.Bf4 e6 4.e3 Be7 5.h3 0-0 6.Nf3 Ne4 7.Bd3 Nxc3 8.bxc3 c5 9.0-0 c4 10.Be2 Nc6 11.Ne5 Bd6 12.Rb1 Nxe5 13.Bxe5 Bxe5 14.dxe5 
  =  (0.12)   Depth: 21/43   00:02:14  154mN
Jouni
Posts: 3798
Joined: Wed Mar 08, 2006 8:15 pm
Full name: Jouni Uski

Re: What makes 1-cpu program un-deterministic?

Post by Jouni »

I used/wasted 3 hours to re-test everything. And yes 1-cpu Critter is clearly deterministic (sorry Richard), but Chessbase GUI (12) isn't :( When running testsuite in Arena You get same result in second run. In Chessbase GUI there is difference (hash clearing / engine loading thing?) and results vary a lot with Critter! But note: Rybka and Stockfish are totally deterministic even in Chessbase GUI = there is difference..

Jouni
ernest
Posts: 2053
Joined: Wed Mar 08, 2006 8:30 pm

Re: What makes 1-cpu program un-deterministic?

Post by ernest »

Don't know about Chessbase GUI (12). Do you mean Fritz 12 GUI?

I use Fritz 11 GUI.