MCEC anyone?

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: MCEC anyone?

Post by hgm »

On Linux you can use XBoard. I also have a newer broadcasting system, based on piping the debug file to a separate application, which extracts the moves and engine PVs, and uploads these to a server as soon as these arrive to my turn-based server. The latter can then be used to select and view the games, both the on-going game in real time, and those played earlier.

I only tested the broadcaster on Windows, but it should be platform independent.
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MCEC anyone?

Post by amanjpro »

lithander wrote: Wed May 26, 2021 10:52 pm
amanjpro wrote: Wed May 26, 2021 9:55 pm having enough engines that run on Linux, unfortunately that puts C# engines at disadvantage.
Why is that? C# engines could just as well target .Net Core instead of whatever Windows-exclusive .Net Framework they are currently using and become instantly compatible with Windows, Mac, Linux and even the Raspberry Pi. You don't even need these OS's to provide releases for them. Just use crosscompile deployment from Visual Studio on Windows with just a click.

(let me know if my Linux compiles don't work for you. Never tested it because I don't have linux^^)
Last I tried .NET was rather slower on Linux than on Windows, granted it was F# and with lots of IO.
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MCEC anyone?

Post by amanjpro »

hgm wrote: Wed May 26, 2021 11:12 pm On Linux you can use XBoard.
I actually was planning to use `cutechess-cli`, as this is the one that I usually use, and it is really flexible.
hgm wrote: Wed May 26, 2021 11:12 pm I also have a newer broadcasting system, based on piping the debug file to a separate application, which extracts the moves and engine PVs, and uploads these to a server as soon as these arrive to my turn-based server. The latter can then be used to select and view the games, both the on-going game in real time, and those played earlier.
Oh, that is interesting, would love to have a look at it
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MCEC anyone?

Post by amanjpro »

As for the tournament format, input is welcome, I am not sure if we should go with a few leagues, or a giant knockout. The knockout has the advantage of putting lots of unexpected encounters, early clashes, and lucky runs, which should make the tourney interesting. But it will also make the rating list that comes out of the tourney meaningless.

And I suggest, we will open the door only for actively developed engines, say at least a release in the past 12 months, and we expect the developer to send the binary himself, so that he will have all the flags enabled for optimum performance
User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: MCEC anyone?

Post by hgm »

amanjpro wrote: Wed May 26, 2021 11:26 pmOh, that is interesting, would love to have a look at it
This new system uses a generic server program that manages storage of games and users/passwords for controlling write access to those games (as long as these are unfinished). This 'tbserver.cgi' utility runs in a general http server like Apache or tpdlight. A HTML page can then be set up on the same server that contains a generic chessboard interface powered by JavaScript (the 'interactive diagram'). This JavaScript accesses the tbserver.cgi (through a http GET method) to retrieve the games selected by the user, and show those on the HTML page. An example of this can be seen at http://hgm.nubati.net/variants/elven .

The tbserver.cgi also supports GET commands to add text to an existing game file. These are used in human play to deposit the latest move played by the user in the board of the HTML page. But a broadcasting program can also access the server with these commands from the machine where the games are played, to add moves for both players.
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MCEC anyone?

Post by amanjpro »

hgm wrote: Thu May 27, 2021 9:46 am
amanjpro wrote: Wed May 26, 2021 11:26 pmOh, that is interesting, would love to have a look at it
This new system uses a generic server program that manages storage of games and users/passwords for controlling write access to those games (as long as these are unfinished). This 'tbserver.cgi' utility runs in a general http server like Apache or tpdlight. A HTML page can then be set up on the same server that contains a generic chessboard interface powered by JavaScript (the 'interactive diagram'). This JavaScript accesses the tbserver.cgi (through a http GET method) to retrieve the games selected by the user, and show those on the HTML page. An example of this can be seen at http://hgm.nubati.net/variants/elven .

The tbserver.cgi also supports GET commands to add text to an existing game file. These are used in human play to deposit the latest move played by the user in the board of the HTML page. But a broadcasting program can also access the server with these commands from the machine where the games are played, to add moves for both players.

Oh, I'll definitely have a look and probably steal it ;) thanks a lot
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MCEC anyone?

Post by amanjpro »

Quick update, I found a used desktop:

Code: Select all

CPU: i5 9400
MB: Intel B360
RAM: 8GB 2666Mhz
It is not fancy one, but it will make a good start, I will get it on Sunday hopefully.
I'll soon create a basic homepage, that will most likely live as a subdomain of my personal website.
And create a way to submit engines to participate in the tournament. I still lean towards a giant knockout
tournament at least at first, then we will see. Any suggestions?

Here is the technical specification of the CPU: https://ark.intel.com/content/www/us/en ... 0-ghz.html
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: MCEC anyone?

Post by mvanthoor »

amanjpro wrote: Fri May 28, 2021 2:31 am Quick update, I found a used desktop:

Code: Select all

CPU: i5 9400
MB: Intel B360
RAM: 8GB 2666Mhz
It is not fancy one, but it will make a good start, I will get it on Sunday hopefully.
I'll soon create a basic homepage, that will most likely live as a subdomain of my personal website.
And create a way to submit engines to participate in the tournament. I still lean towards a giant knockout
tournament at least at first, then we will see. Any suggestions?

Here is the technical specification of the CPU: https://ark.intel.com/content/www/us/en ... 0-ghz.html
It's about 10 percent faster than my current desktop and lapto (i7-6700K and i7-6820HQ; they're both about the same speed).

It has 6 cores, so you can run 6 matches at the same time, loading 12 engines. If you set a 256 MB hash table (like CCRL), you'd need 3 GB RAM, which leaves about 5 for the OS. That should be enough, especially if you run Linux. A knockout will have an almost certain winner if you play enough games, and the engines that are knocked out in the beginning won't play many games. Personally I'd start off with a massive round-robin, where each engine plays 50 games x2 (reversed openings) against any other engine.

Then any new version of an engine, or an entirely new engine, can just run a gauntlet.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: MCEC anyone?

Post by amanjpro »

mvanthoor wrote: Fri May 28, 2021 10:40 am It has 6 cores, so you can run 6 matches at the same time, loading 12 engines.
I only do that, if I can broadcast them all side by side
mvanthoor wrote: Fri May 28, 2021 10:40 am Personally I'd start off with a massive round-robin, where each engine plays 50 games x2 (reversed openings) against any other engine.
I thought about that, thing is the results will be very expected. Where if I do knockout, who knows a lucky run might let Rustic reach quarter finals, while Loki loses in the first round. It will all depend on the initial draw and each engine's path
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: MCEC anyone?

Post by mvanthoor »

amanjpro wrote: Fri May 28, 2021 2:59 pm
mvanthoor wrote: Fri May 28, 2021 10:40 am It has 6 cores, so you can run 6 matches at the same time, loading 12 engines.
I only do that, if I can broadcast them all side by side
mvanthoor wrote: Fri May 28, 2021 10:40 am Personally I'd start off with a massive round-robin, where each engine plays 50 games x2 (reversed openings) against any other engine.
I thought about that, thing is the results will be very expected. Where if I do knockout, who knows a lucky run might let Rustic reach quarter finals, while Loki loses in the first round. It will all depend on the initial draw and each engine's path
If you make the knockout matches long enough between the engines, the result will also be expected. Even though Loki (or even Zahak 1.0.0) may lose a two-game match against Rustic Alpha 2, they will both certainly win a 50 or probably even a 20 game match.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL