JohnWoe wrote: ↑Sat Sep 19, 2020 9:41 pm
2 more engines. Both are 100% Sapeli clones.
Mayhem 0.1:
Sapeli in C++14. Got rid of C ugliness. No more strcpy/strncmp/etc stupidity.
This uses huge databases.
Those are automically generated by Stockfish 12.
Mayhem scans the database with extra thread while searching.
If Mayhem plays some position badly. Just add the correct move to the list.
Do it for all moves and Mayhem plays perfect chess
Release: https://github.com/SamuraiDangyo/mayhem ... s/tag/v0.1
Using more than the expected number of threads (1, unless Threads is set to something else) for heavy work can negatively impact testing by taking thinking time away from other engines (or itself) when multiple testing games are run simultaneously on the same machine.
I understand it perfectly. I'm experimenting with this. But Mayhem will be my main engine from now on. I will archive Sapeli at some point. And that project is done.
But scanning this huge database takes time in serial searching. The database is atm only 50,000 positions / 1MB (Stockfish12 - 3 seconds/move). In 1 seconds games Mayhem loses all games with 1 thread. With 2 threads it doesn't lose on time any games.
The idea is that Mayhem is scanning the huge database while it's searching. If it finds a SF12 move it plays it.
JohnWoe wrote: ↑Sat Sep 19, 2020 9:41 pm
2 more engines. Both are 100% Sapeli clones.
Mayhem 0.1:
Sapeli in C++14. Got rid of C ugliness. No more strcpy/strncmp/etc stupidity.
This uses huge databases.
Those are automically generated by Stockfish 12.
Mayhem scans the database with extra thread while searching.
If Mayhem plays some position badly. Just add the correct move to the list.
Do it for all moves and Mayhem plays perfect chess
Release: https://github.com/SamuraiDangyo/mayhem ... s/tag/v0.1
Using more than the expected number of threads (1, unless Threads is set to something else) for heavy work can negatively impact testing by taking thinking time away from other engines (or itself) when multiple testing games are run simultaneously on the same machine.
I understand it perfectly. I'm experimenting with this. But Mayhem will be my main engine from now on. I will archive Sapeli at some point. And that project is done.
But scanning this huge database takes time in serial searching. The database is atm only 50,000 positions / 1MB (Stockfish12 - 3 seconds/move). In 1 seconds games Mayhem loses all games with 1 thread. With 2 threads it doesn't lose on time any games.
The idea is that Mayhem is scanning the huge database while it's searching. If it finds a SF12 move it plays it.
Just meant as a notice to any testers that might test this, if you do concurrent testing with number of concurrent games equal to number of logical cores (x2 if hyperthreading) on the machine, then the results can be messed up as someone might not get the cpu time they should be getting.
How long does the database thread take to finish searching?
JohnWoe wrote: ↑Sat Sep 19, 2020 9:41 pm
2 more engines. Both are 100% Sapeli clones.
Mayhem 0.1:
Sapeli in C++14. Got rid of C ugliness. No more strcpy/strncmp/etc stupidity.
This uses huge databases.
Those are automically generated by Stockfish 12.
Mayhem scans the database with extra thread while searching.
If Mayhem plays some position badly. Just add the correct move to the list.
Do it for all moves and Mayhem plays perfect chess
Release: https://github.com/SamuraiDangyo/mayhem ... s/tag/v0.1
JohnWoe wrote: ↑Sat Sep 19, 2020 9:41 pm
2 more engines. Both are 100% Sapeli clones.
Mayhem 0.1:
Sapeli in C++14. Got rid of C ugliness. No more strcpy/strncmp/etc stupidity.
This uses huge databases.
Those are automically generated by Stockfish 12.
Mayhem scans the database with extra thread while searching.
If Mayhem plays some position badly. Just add the correct move to the list.
Do it for all moves and Mayhem plays perfect chess
Release: https://github.com/SamuraiDangyo/mayhem ... s/tag/v0.1
Gabor Szots wrote: ↑Sun Sep 20, 2020 9:01 amDoes not compile here, issues a lot of declaration error messages.
0.11 is better. Now there is only this one:
mayhem.cpp3: error: unknown type name 'fd_set'
fd_set fd;
^
1 error generated.
mingw32-make: *** [Makefile:17: all] Error 1
EDIT: Including winsock.h has made that disappear but now I have:
e:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\cicus\AppData\Local\Temp\cc3pZ6ag.o:mayhem.cpp:(.text+0x74b2): undefined reference to `__imp_select'
e:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\cicus\AppData\Local\Temp\cc3pZ6ag.o:mayhem.cpp:(.text+0x74bc): undefined reference to `__WSAFDIsSet'
collect2.exe: error: ld returned 1 exit status
JohnWoe wrote: ↑Sat Sep 19, 2020 9:41 pm
2 more engines. Both are 100% Sapeli clones.
Mayhem 0.1:
Sapeli in C++14. Got rid of C ugliness. No more strcpy/strncmp/etc stupidity.
This uses huge databases.
Those are automically generated by Stockfish 12.
Mayhem scans the database with extra thread while searching.
If Mayhem plays some position badly. Just add the correct move to the list.
Do it for all moves and Mayhem plays perfect chess
Release: https://github.com/SamuraiDangyo/mayhem ... s/tag/v0.1
It seems like a big opening book/advisor to me.
Yes.
I'm using python-chess and SF12 to generate these things.
good-moves.nn contains SF12 moves with pieces more or equal than 20. A lot of chess960 positions.
white/black-wins.nn contain SF12 verified mates with 10 or less pieces.
These files can be as big as possible. There's no limit.
I have Python scripts that loop forever and add more and more moves to the list.
In theory making Mayhem stronger and stronger.
Mayhem currently works only under Linux.
Once I release 0.12 it should work under Windows too.
I released Mayhem 0.12.
This one should work under Windows. There was some nasty Random() bug in Sapeli.
Release: https://github.com/SamuraiDangyo/mayhem ... /tag/v0.12
All Chess960 opening moves were added. + more endgame/opening moves were generated. In Chess960 it seems to be beat Sapeli.
JohnWoe wrote: ↑Mon Sep 21, 2020 12:11 am
I released Mayhem 0.12.
This one should work under Windows. There was some nasty Random() bug in Sapeli.
Release: https://github.com/SamuraiDangyo/mayhem ... /tag/v0.12
All Chess960 opening moves were added. + more endgame/opening moves were generated. In Chess960 it seems to be beat Sapeli.
Is it possible to turn off the database? Most if not all rating lists and tournaments disallow engines using their own books as far as I know.
JohnWoe wrote: ↑Mon Sep 21, 2020 12:11 am
I released Mayhem 0.12.
This one should work under Windows. There was some nasty Random() bug in Sapeli.
Release: https://github.com/SamuraiDangyo/mayhem ... /tag/v0.12
All Chess960 opening moves were added. + more endgame/opening moves were generated. In Chess960 it seems to be beat Sapeli.
Is it possible to turn off the database? Most if not all rating lists and tournaments disallow engines using their own books as far as I know.
Yes.
Just remove all the content from good-moves.nn.
But then there's no difference to Sapeli and not even worth testing.
Except Mayhem is written in C++14 and more compact code.
My goal is not to cheat. Just curious how much Elo can a huge database gain.
JohnWoe wrote: ↑Mon Sep 21, 2020 12:11 am
I released Mayhem 0.12.
This one should work under Windows. There was some nasty Random() bug in Sapeli.
Release: https://github.com/SamuraiDangyo/mayhem ... /tag/v0.12
All Chess960 opening moves were added. + more endgame/opening moves were generated. In Chess960 it seems to be beat Sapeli.
Is it possible to turn off the database? Most if not all rating lists and tournaments disallow engines using their own books as far as I know.
Yes.
Just remove all the content from good-moves.nn.
But then there's no difference to Sapeli and not even worth testing.
Except Mayhem is written in C++14 and more compact code.
My goal is not to cheat. Just curious how much Elo can a huge database gain.
I'd recommend adding a UCI option for turning it on/off to make it easy for testers