hgm wrote:WinBoard protocol will be extended with a new command to facilitate controlling of SMP engines:
cores N
will be sent by future WinBoard versions at the start of every game (just after the ponder-control commands "hard" and "easy", and the new "memory" command). N specifies the number of CPU cores (search threads) the engine is allowed to use, maximally. The engine should be prepared to handle the "cores" command also during te game, just as the ponder state can be changed during the game. Deferring the effect of a "cores" command until after completion of the current search is allowed, though.
The usage of the "cores" command has to be explicitly enabed by the engine, by sending "feature smp=1" to xboard amongst the other features at startup. Authors of SMP engines are encouaged to implement this feature, and make their engine receptive to the "cores" command, so that it becomes easier for users to control the number of cores used by the engine, even during a game.
My only thought is that I don't like the term "cores". Better would be "processors" or "cpus" or "threads" or "processes" or something. "core" is an intel term and is related to a single CPU chip and how many physical processors are in it.
"Cores" is not a good name, but "cpus" and "processors" are not better. IMHO, the name should not be linked to a particular hardware structure. "Threads" and "processes" are better in that respect, but they have a flaw: it is a technical term that chessplayers are not going to identify quickly. In other words, it is jargon. I would prefer an "english" term rather than a "comp. sci." term. Something like "brains", "parallelism" etc.
For instance,
parallelism=2
is clear for the user and the engine author will decide if 2 is going to be processes, threads etc. which may not be related to the number of cores, cpus, processors that the machine has.
IMHO, names should help the user more than the author.
The user will not really be exposed to the term: it is what goes on between the GUI and engine. Engine authors can be expected to know what it means.
I don't undertand the objection: of all terms you mention, the term "cores" will be by far the most familiar to the adigibetic user. The number of cores will be the advertizing hype of the near future, and the single-most characteristic on which people will decide which PC to buy. dual-cores, quad-core, hex-cores, octal-cores, you name it.
hgm wrote:The user will not really be exposed to the term: it is what goes on between the GUI and engine. Engine authors can be expected to know what it means.
I don't undertand the objection: of all terms you mention, the term "cores" will be by far the most familiar to the adigibetic user. The number of cores will be the advertizing hype of the near future, and the single-most characteristic on which people will decide which PC to buy. dual-cores, quad-core, hex-cores, octal-cores, you name it.
The problem is this: Most SMP systems advertise number of processors. Core was a term coined by intel to indicate that a single chip contained two physical processors. If you stray away from Intel boxes, off to Crays, Suns, SGIs, etc, the term "core" is never seen. Even my linux box reports my core-2 duo as having "2 processors" and also says "allowing 2 cpus". Both of which are descriptive to me. I do not equate "CPU" or "processor" with "chip"... which seems to be where this discussion is coming from.
BTW I don't choose to buy a "quad core" I choose to buy an 8 processor system which could be dual quads...
hgm wrote:Well, it does not matter what you or I do. It matters what 9% of the people do.
In your estimate, which percentage of the users of Deep Fritz, HIARCS SMP, Deep Ryka are running on a Cray or Sun?
The point was about "terminology" more than anything else. I can deal with any xboard command provided to tell me how many threads to use. But I have learned to not like the term "thread" since some think it is OK to use 2 threads on a single-processor box, which is an extremely bad idea. Using the term "cores" would likely cause someone with a dual quad-core box to use "4" (because my processors have 4 cores) which would be wrong as well. Most operating systems would report such a system as "8 processors" which is why I like that term better than anything else, since that is the "terminology" the user is going to be given when the thing is booted up...
But it isn't that big a deal since the term "core" is now common and is leading to some confusion, unfortunately.
BOINC (Berkeley distributed computing) dropped the "cores" business a while ago. Instead, the software preferences allow the user to set the *percentage* of available CPU resources.
well, for what it is worth, I like the term processor better than core. It is less confusing to me. But should I ever start supporting winboard, I will adapt to whatever terminology you want to use .
BubbaTough wrote:well, for what it is worth, I like the term processor better than core. It is less confusing to me. But should I ever start supporting winboard, I will adapt to whatever terminology you want to use .
-Sam
If only intel would conform to standard terminology, we'd already be set and not having this conversation. They had to crucify a well-known term "processor" rather than using the proper term "chip". Then a multi-processor chip would be perfectly rational and not open to confusion at all. And multi-chip boxes would be just as clear. All anybody really cares about is "how many processors are on the box", whether 2x4, 4x2 or 8x1 is really not so interesting...
Hi,
Is there any way multi-variation can be displayed with Winboard, of course for engines allowing it?
(for instance Rybka + Polyglot multi-variation).
I ask that for a friend who is devoted to Winboard and refuses any other GUI...
As I wrote above, WinBoard displays any variation the engine produces as thinking output, in the engine-output window. That would automatically include multi-variation.