ChessUSA.com TalkChess.com
Hosted by Your Move Chess & Games
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

New chess engine: Texel
Goto page 1, 2, 3, 4, 5  Next
 
Post new topic       TalkChess.com Forum Index -> Computer Chess Club: General Topics Threaded
View previous topic :: View next topic  
Author Message
Peter Österlund



Joined: 19 Apr 2010
Posts: 122
Location: Sweden

PostPosted: Sat Mar 24, 2012 1:43 pm    Post subject: New chess engine: Texel Reply to topic Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Martin Sedlak



Joined: 26 Nov 2010
Posts: 701

PostPosted: Sat Mar 24, 2012 1:59 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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
View user's profile Send private message
Peter Österlund



Joined: 19 Apr 2010
Posts: 122
Location: Sweden

PostPosted: Sat Mar 24, 2012 2:10 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Martin Sedlak



Joined: 26 Nov 2010
Posts: 701

PostPosted: Sat Mar 24, 2012 2:27 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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 Smile
So fingers crossed to surpass Fruit 2.1!
Back to top
View user's profile Send private message
Louis Zulli



Joined: 08 Jan 2007
Posts: 2147
Location: PA USA

PostPosted: Sat Mar 24, 2012 2:28 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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
View user's profile Send private message
Graham Banks



Joined: 26 Feb 2006
Posts: 19749
Location: Auckland, NZ

PostPosted: Sat Mar 24, 2012 2:45 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

petero2 wrote:
Hi,

My new UCI chess engine "Texel" is now available for download from http://web.comhem.se/petero2home/texel101.zip


Thanks Peter. Smile
_________________
My email addresses:
gbanksnz at gmail.com
gbanksnz at yahoo.co.nz
Back to top
View user's profile Send private message Send e-mail
Peter Österlund



Joined: 19 Apr 2010
Posts: 122
Location: Sweden

PostPosted: Sat Mar 24, 2012 4:09 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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?
_________________
Peter Osterlund - peterosterlund2@gmail.com
http://web.comhem.se/petero2home
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Adam Hair



Joined: 06 May 2009
Posts: 1639
Location: Fuquay-Varina, North Carolina

PostPosted: Sat Mar 24, 2012 5:36 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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 Smile
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
View user's profile Send private message Visit poster's website
Louis Zulli



Joined: 08 Jan 2007
Posts: 2147
Location: PA USA

PostPosted: Sat Mar 24, 2012 5:39 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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?


Thanks, Peter. Yes, I'll install a version of 4.7 and try again.
Back to top
View user's profile Send private message
Adam Hair



Joined: 06 May 2009
Posts: 1639
Location: Fuquay-Varina, North Carolina

PostPosted: Sat Mar 24, 2012 5:40 pm    Post subject: Re: New chess engine: Texel Reply to topic Reply with quote

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
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic       TalkChess.com Forum Index -> Computer Chess Club: General Topics All times are GMT
Goto page 1, 2, 3, 4, 5  Next
Threaded
Page 1 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Powered by phpBB © 2001, 2005 phpBB Group
Enhanced with Moby Threads