UCI protocol and SMP

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

User avatar
abik
Posts: 621
Joined: Fri Dec 01, 2006 9:46 pm
Location: Mountain View, CA, USA
Contact:

UCI protocol and SMP

Post by abik » Thu Nov 13, 2008 10:36 pm

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 :-))

krazyken

Re: UCI protocol and SMP

Post by krazyken » Thu Nov 13, 2008 10:50 pm

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"

User avatar
abik
Posts: 621
Joined: Fri Dec 01, 2006 9:46 pm
Location: Mountain View, CA, USA
Contact:

Re: UCI protocol and SMP

Post by abik » Thu Nov 13, 2008 10:55 pm

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.

User avatar
hgm
Posts: 22080
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Contact:

Re: UCI protocol and SMP

Post by hgm » Thu Nov 13, 2008 11:37 pm

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.

User avatar
abik
Posts: 621
Joined: Fri Dec 01, 2006 9:46 pm
Location: Mountain View, CA, USA
Contact:

Re: UCI protocol and SMP

Post by abik » Thu Nov 13, 2008 11:41 pm

That makes sense. I personally thought Glaurung's "Threads" was a good choice, so I am going with that one.....

krazyken

Re: UCI protocol and SMP

Post by krazyken » Thu Nov 13, 2008 11:55 pm

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.

User avatar
Zach Wegner
Posts: 1922
Joined: Wed Mar 08, 2006 11:51 pm
Location: Earth
Contact:

Re: UCI protocol and SMP

Post by Zach Wegner » Fri Nov 14, 2008 1:22 am

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".

User avatar
abik
Posts: 621
Joined: Fri Dec 01, 2006 9:46 pm
Location: Mountain View, CA, USA
Contact:

Re: UCI protocol and SMP

Post by abik » Fri Nov 14, 2008 2:00 am

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....?

bob
Posts: 20340
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: UCI protocol and SMP

Post by bob » Fri Nov 14, 2008 3:19 am

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...

User avatar
hgm
Posts: 22080
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Contact:

Re: UCI protocol and SMP

Post by hgm » Fri Nov 14, 2008 9:16 am

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?

Post Reply