Page 1 of 5

UCI protocol and SMP

Posted: Thu Nov 13, 2008 10:36 pm
by abik
Does the UCI protocol provide a standard way of informing the engine how many cpu's (cores if you want) it may use for an SMP implementation? If not, is there a de-facto standard other engines use?

The most recent UCI standard that I downloaded does not seem to address these details yet.

(I guess it is no secret what I am working on next :-))

Re: UCI protocol and SMP

Posted: Thu Nov 13, 2008 10:50 pm
by krazyken
Usually people just make it a UCI parameter.

What you call it is up to you.
Hiarcs uses "Core Threads"
Glaurung uses "Threads"
Rybka use "Max CPUs"

Re: UCI protocol and SMP

Posted: Thu Nov 13, 2008 10:55 pm
by abik
Thanks.

It seems the life of our esteemed tournament managers would be a little easier with an addition to the UCI standard, but until then I will come up with my own option name as you suggest.

Re: UCI protocol and SMP

Posted: Thu Nov 13, 2008 11:37 pm
by hgm
Try to pick one that is already in use, then we can have Polyglot use that one to translate the WinBoard ' cores' command into UCI.

Re: UCI protocol and SMP

Posted: Thu Nov 13, 2008 11:41 pm
by abik
That makes sense. I personally thought Glaurung's "Threads" was a good choice, so I am going with that one.....

Re: UCI protocol and SMP

Posted: Thu Nov 13, 2008 11:55 pm
by krazyken
Well if you are going to mess with Polyglot, it might just be simpler to make the cores command a configurable parameter in the polyglot section.

for glaurung you'd use cores = "Threads"
for Rybka, cores = "Max CPUs"

Probably be fine to use "Threads" as the default.

Re: UCI protocol and SMP

Posted: Fri Nov 14, 2008 1:22 am
by Zach Wegner
abik wrote:That makes sense. I personally thought Glaurung's "Threads" was a good choice, so I am going with that one.....
Nooo! What about the programs out there that use processes?

I don't like "cores" either. Really the only term that makes sense IMO is "CPUs".

Re: UCI protocol and SMP

Posted: Fri Nov 14, 2008 2:00 am
by abik
Yeah, I was going to use Windows threads and pthreads for Linux/MacOS, so I was quite content with that name :)

Okay, is there consensus on CPUs....?

Re: UCI protocol and SMP

Posted: Fri Nov 14, 2008 3:19 am
by bob
Zach Wegner wrote:
abik wrote:That makes sense. I personally thought Glaurung's "Threads" was a good choice, so I am going with that one.....
Nooo! What about the programs out there that use processes?

I don't like "cores" either. Really the only term that makes sense IMO is "CPUs".
Threads is wrong for some. Processes is wrong for others. CPUs or Processors is the appropriate term. Cores should be dropped from everyone's vocabulary in this context...

Re: UCI protocol and SMP

Posted: Fri Nov 14, 2008 9:16 am
by hgm
Would it be possible to get a consensus here?

If Glaurung, HIARCS and Rybka would all change to using 'Processors' in UCI, I don't think it is too late to change the 'cores' command I added to my alpha version of WinBoard into 'processors' as well, and have Polyglot translate one into the other.

Who is the de-facto authority on UCI protocol? SMK? The author of Arena?