Ras wrote: ↑Tue May 25, 2021 11:26 am
OliverBr wrote: ↑Mon May 24, 2021 11:01 amThis is a simple performance issue, it's somewhat slower even though it's hardy measurable.
If it's hardly measurable, the Elo loss might rather be the usual tournament noise because +/- sqrt(N) is what you should expect as error margin. If you start from the initial position...
I never start from the initial position. I am using pre-defined opening books with thousand of openings and let play ten-thousands of games.
I got a couple of tourneys with small negative ELOs with the dynamic allocation, then I changed to to malloc instead of calloc. It got better, this may be just accident. Of course those numbers are always within the error margin, the last one (c has dynamic allocation, I decided to keep it for 5.9.6) looks ok:
Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%) W D L D(%) CFS(%)
1 OliThink 5.9.5c : 3 6 4326.5 8581 50.4 2430 3793 2358 44.2 86
2 OliThink 5.9.5b : 0 ---- 4254.5 8581 49.6 2358 3793 2430 44.2 ---
White advantage = 71.22 +/- 2.81
Draw rate (equal opponents) = 45.92 % +/- 0.56
On the other site, combining "generateNoisy" and "generateQuiet" on Version d didn't do any good for the perfomance. In each tourney I get an 7-8 points loss of ELO:
Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%) W D L D(%) CFS(%)
1 OliThink 5.9.5c : 0 ---- 5102.0 10000 51.0 3028 4148 2824 41.5 100
2 OliThink 5.9.5d : -7 5 4898.0 10000 49.0 2824 4148 3028 41.5 ---
White advantage = 70.21 +/- 2.65
Draw rate (equal opponents) = 42.97 % +/- 0.51
OliThink 5.9.5d is over 50 lines smaller and it is more elegant, but is this worth -7 ELO?
What do you think?
If you are interested, here is the commit, that I haven't included in 5.9.6:
https://github.com/olithink/OliThink/co ... c39904c6bc