Glaurung 2 - epsilon/3

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Glaurung 2 - epsilon/3

Post by Tord Romstad »

Glaurung 2 - ε/3, the latest development version of the program which will eventually be released as Glaurung 2, is now ready for download from my web site. At the moment, only the source code and executables for Mac OS X and Linux are included. 32-bit and 64-bit Windows executables will follow soon. The most important new feature is the addition of parallel search: Glaurung can now use up to 4 CPUs (or so I hope; I haven't tested it with more than 2).

On single-CPU computers, there is no significant difference between Glaurung 2 - ε/2 and Glaurung 2 - ε/3. There are a few very minor bug fixes and optimizations, but nothing which is likely to have a measurable impact on playing strength. I therefore advice those of you who spend lots of effort on making rating lists and have already started testing 2 - ε/2 to skip the new version, or to let it replace the old version and inherit its rating.

In more detail, the changes in this new version are (taken from the README file):
  • Parallel search, with support for 1-4 CPUs. The program currently always allocates a separate pawn hash table and material hash table for four threads, which is a pure waste of RAM if your computer has just a single CPU. This will be fixed in a future version.
  • Fixed a bug in book randomization. When using Polyglot books, the previous version would always select exactly the same move in the same position after a restart of the program. Thanks to Pavel Háse for pointing this out.
  • Fixed a UCI pondering bug: Glaurung no longer instantly prints its best move when the maximum depth is reached during a ponder search, as the previous version did. According to the UCI protocol, it is not allowed to print the best move before the engine has received the "stop" or "quit" command.
  • Additional search information: The new version displays hash saturation and the current line(s) of search.
  • Several minor bug fixes and optimizations in the search and evaluation.
Glaurung 2 - ε/3 is probably the version that will play in the OPCCC in the end of the month.

Tord
Shaun
Posts: 322
Joined: Wed Mar 08, 2006 9:55 pm
Location: Brighton - UK

Re: Glaurung 2 - epsilon/3

Post by Shaun »

Tord,

keep up the great work - I look forward to testing the new version.

Thanks again and good luck for OPCCC!

Shaun
BBauer
Posts: 658
Joined: Wed Mar 08, 2006 8:58 pm

Re: Glaurung 2 - epsilon/3

Post by BBauer »

Hi Tord,

I tried to compile Glaurung 2 - epsilon/3 and got an error.

g++ -O3 -g -DNDEBUG -funroll-loops -fomit-frame-pointer -fstrict-aliasing -fno-exceptions -fno-rtti -ftree-vectorize -Wall -c test.cpp -o .o/test.o
test.cpp: In static member function »static void Test::flip_position(Position&, const Position&)«:
test.cpp:277: interner Compiler-Fehler: in vect_update_ivs_after_vectorizer, bei tree-vect-transform.c:2376


Compiler is:
g++ -v
Es werden eingebaute Spezifikationen verwendet.
Ziel: x86_64-linux-gnu
Konfiguriert mit: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release x86_64-linux-gnu
Thread-Modell: posix
gcc-Version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

kind regards
Bernhard
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Glaurung 2 - epsilon/3

Post by Tord Romstad »

BBauer wrote:Hi Tord,

I tried to compile Glaurung 2 - epsilon/3 and got an error.

g++ -O3 -g -DNDEBUG -funroll-loops -fomit-frame-pointer -fstrict-aliasing -fno-exceptions -fno-rtti -ftree-vectorize -Wall -c test.cpp -o .o/test.o
test.cpp: In static member function »static void Test::flip_position(Position&, const Position&)«:
test.cpp:277: interner Compiler-Fehler: in vect_update_ivs_after_vectorizer, bei tree-vect-transform.c:2376
Hello Bernhard,

I am 99% certain that the error is in GCC (notice the "interner Compiler-Fehler"), and not in the source code. Try to compile without the -ftree-vectorize flag, and I think it should work. There is little point in using the -ftree-vectorize flag in any case, I doubt that it makes the program any faster (at least it does not on my Mac, using GCC 4.0.1).

Tord
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Glaurung 2 - epsilon/3

Post by Tord Romstad »

Shaun wrote:Tord,

keep up the great work - I look forward to testing the new version.

Thanks again and good luck for OPCCC!
Thanks, Shaun! :)

Tord
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Glaurung 2 - epsilon/3

Post by Tord Romstad »

Tord Romstad wrote: At the moment, only the source code and executables for Mac OS X and Linux are included. 32-bit and 64-bit Windows executables will follow soon.
The Windows executables are now ready for download. Thanks, Fritz Reul! :)

To testers with multi-CPU computers: Please remember to set the "Threads" UCI parameter to the correct value, otherwise Glaurung will use only a single CPU. Glaurung cannot detect the number of CPUs automatically.

Tord
BBauer
Posts: 658
Joined: Wed Mar 08, 2006 8:58 pm

Re: Glaurung 2 - epsilon/3

Post by BBauer »

Hi Tord,

you are right. Without this option it compiles fine.

Kind regards
Bernhard
User avatar
Rubinus
Posts: 1161
Joined: Thu Jan 18, 2007 4:05 pm
Location: Prague
Full name: Pavel Háse

Re: Glaurung 2 - epsilon/3

Post by Rubinus »

Hi Tord.
kbk.bin from 1.2.1 - not use?
Best wishes Pavel
Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Glaurung 2 - epsilon/3

Post by Tord Romstad »

Hello Pavel!
Rubinus wrote:Hi Tord.
kbk.bin from 1.2.1 - not use?
You are right, the kpk.bin bitbase which Glaurung 1.2.1 and earlier versions used is no longer needed in Glaurung 2. The new program computes this bitbase from scratch during program initialization instead of reading it from disk.

Tord
Marc Lacrosse
Posts: 511
Joined: Wed Mar 08, 2006 10:05 pm

Re: Glaurung 2E3 : win32 does not work on playchess server

Post by Marc Lacrosse »

Seems to have a time management bug here (or a problem while communicating with the GUI).
I tried the 32b win compile (2threads) from a WinXP pro box on the Playchess server.
In both games I tried, things began normally with book moves then with a few Glaurung moves and then Glaurung stopped playing and lost on time :

Example :

[Event "Rated game, 3m + 0s"]
[Site "Engine Room"]
[Date "2007.06.08"]
[Round "?"]
[White "TuttiFrutti, Glaurung 2-epsilon/"]
[Black "Gracz 19, Rybka 2.1c mp 32-bi"]
[Result "0-1"]
[ECO "C67"]
[WhiteElo "2684"]
[BlackElo "2278"]
[PlyCount "32"]
[EventDate "2007.06.08"]
[TimeControl "180"]

1. e4 {[%emt 0:00:00]} e5 {[%emt 0:00:00]} 2. Nf3 {[%emt 0:00:00]} Nc6 {
[%emt 0:00:00]} 3. Bb5 {[%emt 0:00:00]} Nf6 {[%emt 0:00:00]} 4. O-O {
[%emt 0:00:00]} Nxe4 {[%emt 0:00:00]} 5. d4 {[%emt 0:00:00]} Nd6 {
[%emt 0:00:00]} 6. Bxc6 {[%emt 0:00:00]} dxc6 {[%emt 0:00:00]} 7. dxe5 {
[%emt 0:00:00]} Nf5 {[%emt 0:00:00]} 8. Qxd8+ {[%emt 0:00:00]} Kxd8 {
[%emt 0:00:00]} 9. Nc3 {[%emt 0:00:00]} Ke8 {[%emt 0:00:00]} 10. h3 {
[%emt 0:00:00]} a5 {[%emt 0:00:00]} 11. Rd1 {[%emt 0:00:00]} a4 {[%emt 0:00:00]
} 12. a3 {[%emt 0:00:00]} Be6 {[%emt 0:00:06]} 13. Bf4 {
(g4) [%eval 23,10] [%emt 0:00:00]} Ne7 {[%emt 0:00:10]} 14. Bd2 {
(Se4) [%eval 20,11] [%emt 0:00:00]} Ng6 {[%eval 17,11] [%emt 0:00:06]} 15. Re1
{[%eval 80,15] [%emt 0:00:00]} Be7 {[%eval 21,11] [%emt 0:00:07]} 16. Rad1 {
[%eval 58,14] [%emt 0:00:04]} Ra5 {
Time (Lag: Av=0.42s, max=1.0s) [%eval 19,11] [%emt 0:00:03]} 0-1

Marc