NUCLEUS

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

Moderators: hgm, Rebel, chrisw

User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: NUCLEUS

Post by Rebel »

peter wrote: Tue May 15, 2018 6:51 am
Rebel wrote: Mon May 14, 2018 3:01 pm I am sorry, but I don't have an explanation either. Maybe Ferdinand when he reads this.
I found out the reason for not succeeding by myself:
I renamed the engines master.exe and slave1(2).exe, should have let the.exe- ending away, Windows does add it automatically when renaming an already existing .exe- file, so obviously the files were internally named .exe.exe.
:)

Thanks again!
:D
90% of coding is debugging, the other 10% is writing bugs.
peter
Posts: 3186
Joined: Sat Feb 16, 2008 7:38 am
Full name: Peter Martan

Re: NUCLEUS

Post by peter »

Rebel wrote: Tue May 15, 2018 4:07 pm :D
Really nice toy.
To make it a great tool, only a few things are missing to me:

You should be able to load settings of engines as slaves too (or be able to change UCI- parameters inside of Nucleus- mask, more than nr. of threads and hash only) and more than 2G hash for each engine to be used would be fine too.

Analysis- mode is missing too of course, but I don't need this one so much at the moment, sitting infront of monitor watching, isn't the thing to do with Nucleus, you could otherwise easier find out which one engine is right, just going Forward- Backward with two or three of them running simultaneously.

Yet the idea of letting a third engine decide between the moves of two others by minimum- form of Forward-Backward, with single ply only, is a really good one. Reminds me of something, Marco Costalba called "Double Blind Test" once. Guess he then wrote a little script to let SF play out first ply of test positions automatically too.

Shared hash is still an aim, but of course a matter of engines like ProDeo and their settings or a matter of co-work of at least two programmers.
Peter.
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: NUCLEUS

Post by carldaman »

This project has a lot of potential and there's definite room for improvement.
I wonder if it's possible to use polyglot as a slave engine to configure the UCI parameters.
Otherwise, only default settings would be used and that can be a drawback.

Another question is why the master engine is not the strongest engine.
It would be appear that a stronger master could benefit the most from the input of less strong slaves,
which are however capable of feeding original ideas that the master may normally miss.

I may have misunderstood something here, but I don't get the idea of the master being a weaker engine
(than the slaves).

CL
jd1
Posts: 269
Joined: Wed Oct 24, 2012 2:07 am

Re: NUCLEUS

Post by jd1 »

I'm really glad this is getting more attention.

There is much scope for research here, and different schemes could also be tried.

One option which would be most useful IMHO would be to divide the resources by CPU, i.e. run the slaves concurrently on different CPUs. There is potentially more to gain as many engines scale poorly to very large number of CPUs.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: NUCLEUS

Post by Ferdy »

carldaman wrote: Tue May 15, 2018 10:45 pm This project has a lot of potential and there's definite room for improvement.
I wonder if it's possible to use polyglot as a slave engine to configure the UCI parameters.
I believe this is possible, althought I have not tested it.
Another question is why the master engine is not the strongest engine.
It would be appear that a stronger master could benefit the most from the input of less strong slaves,
which are however capable of feeding original ideas that the master may normally miss.

I may have misunderstood something here, but I don't get the idea of the master being a weaker engine
(than the slaves).
In this scheme, stronger slaves are preferable, because the master does not analyze the root position. It only analyzes positions after making the slaves' moves.

Example from start position.
Slave1: 1. e4 {10cp}
slave2: 1. d4 {15cp}
Master: startpos + e4 would result to 1... c5 {-15cp}
Master: startpos + d4 would result to 1... d5 {-10cp}

Which move from slaves master will select?
Master will choose e4 because the c5 has a bad score than d5.

Code: Select all

-15cp < -10cp
Master's job is limited to the slaves' moves. Its power is only utilized when slaves' moves are different as in the example above. Engines with extreme styles [very aggressive attacker, very positional] could be a good candidate for master, LC0 would probably be good here too.

Idea is from Ovyron at,
viewtopic.php?f=2&t=66853&start=10
peter
Posts: 3186
Joined: Sat Feb 16, 2008 7:38 am
Full name: Peter Martan

Re: NUCLEUS

Post by peter »

Ferdy wrote: Wed May 16, 2018 2:22 pm
carldaman wrote: Tue May 15, 2018 10:45 pm This project has a lot of potential and there's definite room for improvement.
I wonder if it's possible to use polyglot as a slave engine to configure the UCI parameters.
I believe this is possible, althought I have not tested it.
Another question is why the master engine is not the strongest engine.
It would be appear that a stronger master could benefit the most from the input of less strong slaves,
which are however capable of feeding original ideas that the master may normally miss.

I may have misunderstood something here, but I don't get the idea of the master being a weaker engine
(than the slaves).
In this scheme, stronger slaves are preferable, because the master does not analyze the root position. It only analyzes positions after making the slaves' moves.

Example from start position.
Slave1: 1. e4 {10cp}
slave2: 1. d4 {15cp}
Master: startpos + e4 would result to 1... c5 {-15cp}
Master: startpos + d4 would result to 1... d5 {-10cp}

Which move from slaves master will select?
Master will choose e4 because the c5 has a bad score than d5.

Code: Select all

-15cp < -10cp
Master's job is limited to the slaves' moves. Its power is only utilized when slaves' moves are different as in the example above. Engines with extreme styles [very aggressive attacker, very positional] could be a good candidate for master, LC0 would probably be good here too.

Idea is from Ovyron at,
viewtopic.php?f=2&t=66853&start=10
Thanks a lot for the tool, Ferdinand!

More than 2 G Hash for the engines and making their own UCI- parameters fully adjustable, and everything would be some better even, as for my pov too.
Peter.
mesilikas
Posts: 39
Joined: Mon Jan 01, 2018 12:54 pm

Re: NUCLEUS

Post by mesilikas »

I have LC0 version 0.7 is there a way to put it as master? Please explain..☺
User avatar
Tibono
Posts: 79
Joined: Sat Aug 01, 2015 6:16 pm
Location: France

Re: NUCLEUS

Post by Tibono »

Hi Mesilikas,
it is a promising idea; such as using two powerful tactical slaves and letting LCO as master choose the best move (if not same) with its positional skills.

Nucleus requires 'time per move' time control which lc0 0.7 will not manage correctly if I remember well.
You will need to upgrade to v0.8 at least (v0.8 main changes log includes:go movetime N works now) - why not get 0.10?

Then just rename the lczero.exe as master.exe and rename your expected network as weights.txt (to avoid having to provide any parameter Nucleus does not expect). Both files copied in the Nucleus directory of course. Tested OK with Arena 3.0

Hope this helps,
Tibono
peter
Posts: 3186
Joined: Sat Feb 16, 2008 7:38 am
Full name: Peter Martan

Re: NUCLEUS

Post by peter »

Tibono wrote: Wed May 16, 2018 9:22 pm Hi Mesilikas,
it is a promising idea; such as using two powerful tactical slaves and letting LCO as master choose the best move (if not same) with its positional skills.
Problem could be only, that LC0 maybe wouldn't evaluate the one or the other or both tactically clever moves from the in this respect powerful slaves and chose the wrong one, being not able to see the tactical points behind the better one well enough.

If I'd take LC0 as one of the engines, then rather as one of the slaves hoping for a good positional move from her.
If a tactical more clever second slave would make a better choice in a tactical position, an overall good master would be maybe able to see both, after one more ply, clearer as for tactical and or positional meanings.

Anyhow the tool as such has many possibilities to build combinations. One could have several Nucleus-setups and give them some tries one after another or simultaneously.
:)
My biggest wish still would be possibility to use parameter- settings of engines too (not only default versions) and have more than 2G hash to be used by each one.
Peter.
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: NUCLEUS

Post by carldaman »

peter wrote: Wed May 16, 2018 9:44 pm
Tibono wrote: Wed May 16, 2018 9:22 pm Hi Mesilikas,
it is a promising idea; such as using two powerful tactical slaves and letting LCO as master choose the best move (if not same) with its positional skills.
Problem could be only, that LC0 maybe wouldn't evaluate the one or the other or both tactically clever moves from the in this respect powerful slaves and chose the wrong one, being not able to see the tactical points behind the better one well enough.

If I'd take LC0 as one of the engines, then rather as one of the slaves hoping for a good positional move from her.
If a tactical more clever second slave would make a better choice in a tactical position, an overall good master would be maybe able to see both, after one more ply, clearer as for tactical and or positional meanings.

Anyhow the tool as such has many possibilities to build combinations. One could have several Nucleus-setups and give them some tries one after another or simultaneously.
:)
My biggest wish still would be possibility to use parameter- settings of engines too (not only default versions) and have more than 2G hash to be used by each one.
I'm with you on this, Peter. To me, it makes little sense to have a master engine that's not that strong as the final arbiter of what move gets selected. What makes more sense to me is having a top engine, maybe one that possibly prunes too much, like SF, as the master, and two slaves, at least one of which is imaginative and speculative, that can feed some juicy ideas that the master may not consider on its own. Then the master can have the final say -- for this a weaker master would be counterproductive, imo.