| View previous topic :: View next topic |
| Author |
Message |
Peter Österlund
Joined: 19 Apr 2010 Posts: 122 Location: Sweden
|
Posted: Sat Mar 24, 2012 1:43 pm Post subject: New chess engine: Texel |
|
|
Hi,
My new UCI chess engine "Texel" is now available for download from http://web.comhem.se/petero2home/texel101.zip
Texel is derived from my old engine CuckooChess. In fact, Texel 1.00 was functionally equivalent to an unreleased version of CuckooChess. The main difference is that Texel is written in C++11 instead of java.
The program is licensed under GNU GPLv3. The zip archive contains source code and binaries for linux 64-bit and 32-bit (Fedora 16, untested on other distributions) and windows 64-bit and 32-bit (tested on Windows 7 64-bit and Windows Vista 32-bit.)
In theory it should be possible to compile the program on any platform that has a C++11 compiler, because the source code does not contain any platform-specific code. In practice it is still quite hard to find good C++11 compilers. I have used gcc 4.6.3 in linux and Visual Studio 2012 beta in Windows.
Changes compared to CuckooChess 1.12:
* Ported from Java to C++. About twice as fast as a result.
* Made node counters 64-bit to avoid overflow in long searches.
* Fixed handling of UCI "searchmoves" command.
* Added evaluation term to avoid walking into wrong corner in KRKB endings.
* Implemented reverse futility pruning.
* Implemented late move pruning.
* Made strength setting between 0% and 10% even weaker. 0% now plays random legal moves and 10% corresponds to the old 0% setting.
* Replaced cuckoo hashing with a more cache-friendly alternative.
* Try harder not to lose on time in really short time control games.
* Implemented passed pawn race evaluation.
* Increased passed pawn bonus for pawns on rank 6 and 7.
Texel scores about 70% (+140 elo) against CuckooChess 1.13a8 (unreleased) on my 64-bit linux computer at short time control (60 moves in 8 seconds), but I would be very surprised if the difference is that big at longer time controls against different engines. _________________ Peter Osterlund - peterosterlund2@gmail.com
http://web.comhem.se/petero2home |
|
| Back to top |
|
 |
Martin Sedlak
Joined: 26 Nov 2010 Posts: 701
|
Posted: Sat Mar 24, 2012 1:59 pm Post subject: Re: New chess engine: Texel |
|
|
Hi Peter, i already heard that you are writing a C++ engine based on Cuckoo, so congratulations and good luck!
Cuckoo was already amazing so i wonder how well it will do, +140 is more than impressive! |
|
| Back to top |
|
 |
Peter Österlund
Joined: 19 Apr 2010 Posts: 122 Location: Sweden
|
Posted: Sat Mar 24, 2012 2:10 pm Post subject: Re: New chess engine: Texel |
|
|
Thanks Martin
I know +140 sounds impressive, but I believe there is some unknown effect in the test setup that is responsible for this. A 2X speed increase should not be worth more than 70 elo max.
At first I suspected java startup time and time before the JIT compiler had optimized the java bytecode. However I use cutechess-cli to run the tests, and it doesn't restart the engines between games, so this effect should only exist for the first game. _________________ Peter Osterlund - peterosterlund2@gmail.com
http://web.comhem.se/petero2home |
|
| Back to top |
|
 |
Martin Sedlak
Joined: 26 Nov 2010 Posts: 701
|
Posted: Sat Mar 24, 2012 2:27 pm Post subject: Re: New chess engine: Texel |
|
|
| petero2 wrote: |
Thanks Martin
I know +140 sounds impressive, but I believe there is some unknown effect in the test setup that is responsible for this. A 2X speed increase should not be worth more than 70 elo max.
At first I suspected java startup time and time before the JIT compiler had optimized the java bytecode. However I use cutechess-cli to run the tests, and it doesn't restart the engines between games, so this effect should only exist for the first game. |
Yes some say it's 50 elo for doubling, most say 70 and some say it's about 100.
Anyway i think even if it's less than 140 at long TC, even 70, it's still impressive.
I recently fixed a couple of nasty bugs but could not improve more than 10
So fingers crossed to surpass Fruit 2.1! |
|
| Back to top |
|
 |
Louis Zulli
Joined: 08 Jan 2007 Posts: 2147 Location: PA USA
|
Posted: Sat Mar 24, 2012 2:28 pm Post subject: Re: New chess engine: Texel |
|
|
Doesn't compile under Mac OS X 10.6.8 using gcc-4.6.3:
| Code: |
LZsMacPro-OSX6: ~/Downloads/texel101] make texel64
mkdir -p obj64
g++-mp-4.6 -O3 -Wall -std=c++0x -m64 -c -o obj64/bitBoard.o src/bitBoard.cpp
mkdir -p obj64
g++-mp-4.6 -O3 -Wall -std=c++0x -m64 -c -o obj64/book.o src/book.cpp
mkdir -p obj64
g++-mp-4.6 -O3 -Wall -std=c++0x -m64 -c -o obj64/computerPlayer.o src/computerPlayer.cpp
mkdir -p obj64
g++-mp-4.6 -O3 -Wall -std=c++0x -m64 -c -o obj64/enginecontrol.o src/enginecontrol.cpp
In file included from src/enginecontrol.cpp:28:0:
src/enginecontrol.hpp:50:21: error: 'thread' is not a member of 'std'
src/enginecontrol.hpp:50:21: error: 'thread' is not a member of 'std'
src/enginecontrol.hpp:50:32: error: template argument 1 is invalid
src/enginecontrol.hpp:51:5: error: 'mutex' in namespace 'std' does not name a type
src/enginecontrol.cpp: In member function 'void EngineControl::ponderHit()':
src/enginecontrol.cpp:119:9: error: 'lock_guard' is not a member of 'std'
src/enginecontrol.cpp:119:25: error: 'mutex' is not a member of 'std'
src/enginecontrol.cpp:119:39: error: 'threadMutex' was not declared in this scope
src/enginecontrol.cpp:119:50: error: 'L' was not declared in this scope
src/enginecontrol.cpp: In lambda function:
src/enginecontrol.cpp:228:18: error: 'std::this_thread' has not been declared
src/enginecontrol.cpp:231:9: error: 'lock_guard' is not a member of 'std'
src/enginecontrol.cpp:231:25: error: 'mutex' is not a member of 'std'
src/enginecontrol.cpp:231:39: error: 'threadMutex' was not declared in this scope
src/enginecontrol.cpp:231:50: error: 'L' was not declared in this scope
src/enginecontrol.cpp:237:25: error: base operand of '->' is not a pointer
src/enginecontrol.cpp:238:22: error: request for member 'reset' in '((const EngineControl::startThread(int, int, int, int)::<lambda()>*)this)->EngineControl::startThread(int, int, int, int)::<lambda()>::__this->EngineControl::engineThread', which is of non-class type 'int'
src/enginecontrol.cpp: In member function 'void EngineControl::startThread(int, int, int, int)':
src/enginecontrol.cpp:243:9: error: 'lock_guard' is not a member of 'std'
src/enginecontrol.cpp:243:25: error: 'mutex' is not a member of 'std'
src/enginecontrol.cpp:243:39: error: 'threadMutex' was not declared in this scope
src/enginecontrol.cpp:243:50: error: 'L' was not declared in this scope
src/enginecontrol.cpp:244:22: error: request for member 'reset' in '((EngineControl*)this)->EngineControl::engineThread', which is of non-class type 'int'
src/enginecontrol.cpp:244:32: error: expected type-specifier
src/enginecontrol.cpp:244:32: error: expected ')'
src/enginecontrol.cpp: In member function 'void EngineControl::stopThread()':
src/enginecontrol.cpp:250:21: error: 'thread' is not a member of 'std'
src/enginecontrol.cpp:250:21: error: 'thread' is not a member of 'std'
src/enginecontrol.cpp:250:32: error: template argument 1 is invalid
src/enginecontrol.cpp:250:42: error: invalid type in declaration before ';' token
src/enginecontrol.cpp:252:9: error: 'lock_guard' is not a member of 'std'
src/enginecontrol.cpp:252:25: error: 'mutex' is not a member of 'std'
src/enginecontrol.cpp:252:39: error: 'threadMutex' was not declared in this scope
src/enginecontrol.cpp:252:50: error: 'L' was not declared in this scope
src/enginecontrol.cpp:262:17: error: base operand of '->' is not a pointer
make: *** [obj64/enginecontrol.o] Error 1
LZsMacPro-OSX6: ~/Downloads/texel101] g++-mp-4.6 --version
g++-mp-4.6 (GCC) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
| Back to top |
|
 |
Graham Banks

Joined: 26 Feb 2006 Posts: 19749 Location: Auckland, NZ
|
Posted: Sat Mar 24, 2012 2:45 pm Post subject: Re: New chess engine: Texel |
|
|
Thanks Peter.  _________________ My email addresses:
gbanksnz at gmail.com
gbanksnz at yahoo.co.nz |
|
| Back to top |
|
 |
Peter Österlund
Joined: 19 Apr 2010 Posts: 122 Location: Sweden
|
|
| Back to top |
|
 |
Adam Hair
Joined: 06 May 2009 Posts: 1639 Location: Fuquay-Varina, North Carolina
|
Posted: Sat Mar 24, 2012 5:36 pm Post subject: Re: New chess engine: Texel |
|
|
| mar wrote: |
| petero2 wrote: |
Thanks Martin
I know +140 sounds impressive, but I believe there is some unknown effect in the test setup that is responsible for this. A 2X speed increase should not be worth more than 70 elo max.
At first I suspected java startup time and time before the JIT compiler had optimized the java bytecode. However I use cutechess-cli to run the tests, and it doesn't restart the engines between games, so this effect should only exist for the first game. |
Yes some say it's 50 elo for doubling, most say 70 and some say it's about 100.
Anyway i think even if it's less than 140 at long TC, even 70, it's still impressive.
I recently fixed a couple of nasty bugs but could not improve more than 10
So fingers crossed to surpass Fruit 2.1! |
The general effect that has been noticed, but not confirmed, is that the gain in Elo is larger for shorter time controls and decreases as the time control increases. |
|
| Back to top |
|
 |
Louis Zulli
Joined: 08 Jan 2007 Posts: 2147 Location: PA USA
|
Posted: Sat Mar 24, 2012 5:39 pm Post subject: Re: New chess engine: Texel |
|
|
Thanks, Peter. Yes, I'll install a version of 4.7 and try again. |
|
| Back to top |
|
 |
Adam Hair
Joined: 06 May 2009 Posts: 1639 Location: Fuquay-Varina, North Carolina
|
Posted: Sat Mar 24, 2012 5:40 pm Post subject: Re: New chess engine: Texel |
|
|
| Thanks Peter. I take interest in the work that you, Martin, and several other authors have done. It is interesting to watch the progression you guys are making. |
|
| Back to top |
|
 |
|