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.
New chess engine: Texel
Moderators: hgm, Rebel, chrisw
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
-
- Posts: 2555
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
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!
Cuckoo was already amazing so i wonder how well it will do, +140 is more than impressive!
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
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.
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.
-
- Posts: 2555
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: New chess engine: Texel
Yes some say it's 50 elo for doubling, most say 70 and some say it's about 100.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.
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!
-
- Posts: 6442
- Joined: Tue Jan 09, 2007 12:31 am
- Location: PA USA
- Full name: Louis Zulli
Re: New chess engine: Texel
Doesn't compile under Mac OS X 10.6.8 using gcc-4.6.3:
Code: Select all
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.
-
- Posts: 41435
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
Re: New chess engine: Texel
Thanks Peter.petero2 wrote:Hi,
My new UCI chess engine "Texel" is now available for download from http://web.comhem.se/petero2home/texel101.zip
gbanksnz at gmail.com
-
- Posts: 688
- Joined: Mon Apr 19, 2010 7:07 pm
- Location: Sweden
- Full name: Peter Osterlund
Re: New chess engine: Texel
Unfortunately std::thread is not supported by gcc 4.6 in Mac OS X. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50196.
That thread also says it should be fixed in 4.7. Any chance you could try that?
That thread also says it should be fixed in 4.7. Any chance you could try that?
-
- Posts: 3226
- Joined: Wed May 06, 2009 10:31 pm
- Location: Fuquay-Varina, North Carolina
Re: New chess engine: Texel
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.mar wrote:Yes some say it's 50 elo for doubling, most say 70 and some say it's about 100.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.
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!
-
- Posts: 6442
- Joined: Tue Jan 09, 2007 12:31 am
- Location: PA USA
- Full name: Louis Zulli
Re: New chess engine: Texel
Thanks, Peter. Yes, I'll install a version of 4.7 and try again.petero2 wrote:Unfortunately std::thread is not supported by gcc 4.6 in Mac OS X. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50196.
That thread also says it should be fixed in 4.7. Any chance you could try that?
-
- Posts: 3226
- Joined: Wed May 06, 2009 10:31 pm
- Location: Fuquay-Varina, North Carolina
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.