List of bugfree, opensource Linux and MacOSX engines

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

Moderators: hgm, Rebel, chrisw

Ras
Posts: 2498
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: List of bugfree, opensource Linux and MacOSX engines

Post by Ras »

OliverBr wrote: Sun Nov 08, 2020 11:25 pmComputer is a Debian Linux, AMD EPYC 7502P 32-Core Processor.
Which means that it offers 64 threads, but you were only using 32 games. With less than 8 games in parallel on my 4C/8T CPU, I didn't see the issue either. Anyway, the patch is only minor and submitted to the author. With that, Zevra is rock stable also on my machine. :)
Rasmus Althoff
https://www.ct800.net
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: List of bugfree, opensource Linux and MacOSX engines

Post by OliverBr »

fabianVDW wrote: Sun Nov 08, 2020 8:32 pm FabChess will also meat your criterium, that is if you have a rustc and cargo installed.
It's true and this breaks my heart. FabChess is a very interesting engine and I had tested it's stability and strength:

Code: Select all

fabchess	uci	+130	-	https://github.com/fabianvdW/FabChess/releases
But (this is a very bad and sad "but") it isn't easy to compile (condition 2), because it needs extra installation of frameworks/compilers.
Quite a number of other engines failed this condition, too.
I am thinking about including all engines with this issue. When they describe perfectly what to do and when it works on both systems, they could be included.
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: List of bugfree, opensource Linux and MacOSX engines

Post by unserializable »

OliverBr wrote: Sun Nov 08, 2020 11:31 pm I think I have tested ChessPuter and GiuChess, but maybe it were the wrong versions. Please provide me a link to the source to every engine, including Monchester and I will retest it. Thank you very much.
Hey, Oliver!

These are the links I used for obtaining the sources of ChessPuter and GiuChess 1.0 (which, as I mentioned, did have a problem with illegal draw claims). I compiled and used them on Linux.
  • https://github.com/smilesbright/ChessPuter -- I used 'master' branch 16-th commit, revision a44153dd6b359bfb5edf13278636c19061ba3204 -- this one is UCI engine that never made illegal move in matches that I let it play, but now that I look at its README, it mentions it does not have threading implemented -- so results might be mixed.
  • GiuChess 1.0 version sources that I used are at: https://sourceforge.net/projects/giuche ... z/download -- for it to compile I have in my notes following "Distribution Makefile was changed to pass linker arguments to the compiler last, otherwise the project does not link correctly on newer systems." From 2019 there is also GiuChess repository on Github, but it did not contain any changes to SourceForge 1.0 as of 26.09.2020 when I compared them, except GitHub version disabled BMI2 in Makefile which does not sound like good or necessary. The Makefile change for linkage order that I made is below:

    Code: Select all

    $(PROG):	$(OBJECTS)
    -	$(CC) $(COMPIL_FLAGS) $(LIB) -o $(PROG) $(OBJECTS)
    +	$(CC) $(COMPIL_FLAGS) -o $(PROG) $(OBJECTS) $(LIB)
    
Monchester 1.0 release source code is available from GitHub: Note that Monchester is nearly insta-mover, using constant search depth 4 (you seem to have mentioned instant-movement as negative about e.g. MSCP but I think that itself is not unqualifying). If you happen to find on any bugs in Monchester, I would be glad to hear about them and squash them.

Thanks!
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: List of bugfree, opensource Linux and MacOSX engines

Post by OliverBr »

Ras wrote: Sun Nov 08, 2020 11:33 pm
OliverBr wrote: Sun Nov 08, 2020 11:25 pmComputer is a Debian Linux, AMD EPYC 7502P 32-Core Processor.
Which means that it offers 64 threads, but you were only using 32 games. With less than 8 games in parallel on my 4C/8T CPU, I didn't see the issue either. Anyway, the patch is only minor and submitted to the author. With that, Zevra is rock stable also on my machine. :)
This is true.
I thought, that many engines use already at least 2 threads, one for the calculation and the other one of the input handling, don't they? I may be wrong in this, please correct me, if I am.

PS: OliThink may be one of the last engines using only 1 thread, because CECP (xboard) protocol allows it. (OliThink Java needs 2 threads, too).
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: List of bugfree, opensource Linux and MacOSX engines

Post by OliverBr »

unserializable wrote: Mon Nov 09, 2020 12:01 am [*] https://github.com/smilesbright/ChessPuter -- I used 'master' branch 16-th commit, revision a44153dd6b359bfb5edf13278636c19061ba3204 -- this one is UCI engine that never made illegal move in matches that I let it play, but now that I look at its README, it mentions it does not have threading implemented -- so results might be mixed.
Hi!
Let's do it step by step. First: ChessPuter, which I had been testing before.

Unfortunately it seems to have a problem with opening moves forced by the GUI/Tourneymanager:

Code: Select all

Finished game 1 (ChessPuter vs OliThink 4.1.3): 0-1 {White makes an illegal move: d2d4}
Score of ChessPuter vs OliThink 4.1.3: 0 - 1 - 0  [0.000] 1
Started game 33 of 2000 (ChessPuter vs OliThink 4.1.3)
Finished game 5 (ChessPuter vs OliThink 4.1.3): 0-1 {White makes an illegal move: d2d4}
Score of ChessPuter vs OliThink 4.1.3: 0 - 2 - 0  [0.000] 2
Started game 34 of 2000 (OliThink 4.1.3 vs ChessPuter)
Finished game 11 (ChessPuter vs OliThink 4.1.3): 0-1 {White makes an illegal move: d2d4}
Score of ChessPuter vs OliThink 4.1.3: 0 - 3 - 0  [0.000] 3
Started game 35 of 2000 (ChessPuter vs OliThink 4.1.3)
Finished game 15 (ChessPuter vs OliThink 4.1.3): 0-1 {White makes an illegal move: d2d4}
Score of ChessPuter vs OliThink 4.1.3: 0 - 4 - 0  [0.000] 4
...
Starting from the chess start position, it seems to work fine.

As it is UCI I guess it should be implemented to understand this:

Code: Select all

position startpos moves e2e4 e7e5
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
Ras
Posts: 2498
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: List of bugfree, opensource Linux and MacOSX engines

Post by Ras »

OliverBr wrote: Mon Nov 09, 2020 12:03 amI thought, that many engines use already at least 2 threads, one for the calculation and the other one of the input handling, don't they?
Correct, that's the design I'm using, too, but with a FIFO queue to the engine thread so that messages other than isready/stop/quit will be buffered and not discarded during search. However, the input thread doesn't use much CPU time anyway so that the OS scheduler can easily deal with that. With your Epyc, you already have 32 games in parallel, but with my humble AMD 3400G quadcore, I really need to max it out to 100%. On the other hand, my machine stays completely inaudible even under full load. :)
Rasmus Althoff
https://www.ct800.net
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: ChessPuter

Post by unserializable »

OliverBr wrote: Mon Nov 09, 2020 12:13 am Let's do it step by step. First: ChessPuter, which I had been testing before.
...
Starting from the chess start position, it seems to work fine.

As it is UCI I guess it should be implemented to understand this:

Code: Select all

position startpos moves e2e4 e7e5
Ah, it certainly should! All I ever did with ChessPuter was in indeed was play games from start position via Polyglot/XBoard.
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: List of bugfree, opensource Linux and MacOSX engines

Post by OliverBr »

unserializable wrote: Mon Nov 09, 2020 12:01 am [*] GiuChess 1.0 version sources that I used are at: https://sourceforge.net/projects/giuche ... z/download -- for it to compile I have in my notes following "Distribution Makefile was changed to pass linker arguments to the compiler last, otherwise the project does not link correctly on newer systems." From 2019 there is also GiuChess repository on Github...
Unfortunately both sources, either from your link or from git (https://github.com/giuliano-ippoliti/GiuChess) make quite a number of illegal moves:

Code: Select all

Started game 61 of 2000 (GiuChess-1.0 vs OliThink 4.1.3)
Finished game 59 (GiuChess-1.0 vs OliThink 4.1.3): 0-1 {White makes an illegal move: e6e5}
Score of GiuChess-1.0 vs OliThink 4.1.3: 0 - 30 - 0  [0.000] 30
Started game 62 of 2000 (OliThink 4.1.3 vs GiuChess-1.0)
Finished game 61 (GiuChess-1.0 vs OliThink 4.1.3): 0-1 {White makes an illegal move: c7c6}
Score of GiuChess-1.0 vs OliThink 4.1.3: 0 - 31 - 0  [0.000] 31
Started game 63 of 2000 (GiuChess-1.0 vs OliThink 4.1.3)
Finished game 63 (GiuChess-1.0 vs OliThink 4.1.3): 0-1 {White makes an illegal move: d6d5}
Score of GiuChess-1.0 vs OliThink 4.1.3: 0 - 32 - 0  [0.000] 32
Started game 64 of 2000 (OliThink 4.1.3 vs GiuChess-1.0)
Finished game 28 (OliThink 4.1.3 vs GiuChess-1.0): 1-0 {White mates}
Score of GiuChess-1.0 vs OliThink 4.1.3: 0 - 33 - 0  [0.000] 33
Started game 65 of 2000 (GiuChess-1.0 vs OliThink 4.1.3)
Finished game 65 (GiuChess-1.0 vs OliThink 4.1.3): 0-1 {White makes an illegal move: f8g7}
Score of GiuChess-1.0 vs OliThink 4.1.3: 0 - 34 - 0  [0.000] 34
Started game 66 of 2000 (OliThink 4.1.3 vs GiuChess-1.0)
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: List of bugfree, opensource Linux and MacOSX engines

Post by OliverBr »

Ras wrote: Mon Nov 09, 2020 12:21 am Correct, that's the design I'm using, too, but with a FIFO queue to the engine thread so that messages other than isready/stop/quit will be buffered and not discarded during search. However, the input thread doesn't use much CPU time anyway so that the OS scheduler can easily deal with that.
This is interesting information. Maybe I should try once 64 concurrent games.
With your Epyc, you already have 32 games in parallel, but with my humble AMD 3400G quadcore, I really need to max it out to 100%. On the other hand, my machine stays completely inaudible even under full load. :)
"My" Epyc is also completely inaudible, as it is a rented server in a data center far away from my place :)
PS: I offer running a tournament for other engines, too, if someone is interested. :)
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
unserializable
Posts: 64
Joined: Sat Oct 24, 2020 6:39 pm
Full name: Taimo Peelo

Re: List of bugfree, opensource Linux and MacOSX engines

Post by unserializable »

OliverBr wrote: Mon Nov 09, 2020 12:34 am Unfortunately both sources, either from your link or from git (https://github.com/giuliano-ippoliti/GiuChess) make quite a number of illegal moves:
Right, thanks! I guess this is probably about setup start position again -- in 4500+ games from standard starting position that I have on log GiuChess never made illegal moves (but made illegal draw claims, as mentioned before...).

EDIT: or maybe OliThink just drives GiuChess to corners where Monchester never could :)
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester