peter wrote: ↑Tue May 15, 2018 6:51 amI 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!
NUCLEUS
Moderators: hgm, Rebel, chrisw
-
- Posts: 6991
- Joined: Thu Aug 18, 2011 12:04 pm
Re: NUCLEUS
90% of coding is debugging, the other 10% is writing bugs.
-
- Posts: 3186
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: NUCLEUS
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.
-
- Posts: 2283
- Joined: Sat Jun 02, 2012 2:13 am
Re: NUCLEUS
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
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
-
- Posts: 269
- Joined: Wed Oct 24, 2012 2:07 am
Re: NUCLEUS
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.
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.
-
- Posts: 4833
- Joined: Sun Aug 10, 2008 3:15 pm
- Location: Philippines
Re: NUCLEUS
I believe this is possible, althought I have not tested it.
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.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).
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
Idea is from Ovyron at,
viewtopic.php?f=2&t=66853&start=10
-
- Posts: 3186
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: NUCLEUS
Thanks a lot for the tool, Ferdinand!Ferdy wrote: ↑Wed May 16, 2018 2:22 pmI believe this is possible, althought I have not tested it.
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.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).
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.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.Code: Select all
-15cp < -10cp
Idea is from Ovyron at,
viewtopic.php?f=2&t=66853&start=10
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.
-
- Posts: 39
- Joined: Mon Jan 01, 2018 12:54 pm
Re: NUCLEUS
I have LC0 version 0.7 is there a way to put it as master? Please explain..☺
-
- Posts: 79
- Joined: Sat Aug 01, 2015 6:16 pm
- Location: France
Re: NUCLEUS
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
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
-
- Posts: 3186
- Joined: Sat Feb 16, 2008 7:38 am
- Full name: Peter Martan
Re: NUCLEUS
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.
-
- Posts: 2283
- Joined: Sat Jun 02, 2012 2:13 am
Re: NUCLEUS
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.peter wrote: ↑Wed May 16, 2018 9:44 pmProblem 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.