michiguel wrote:bob wrote:michiguel wrote:mcostalba wrote:bob wrote: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...
Regarding Glaurung "Threads" is the correct one, CPU (or processor) is defenitly the wrong one.
I can set Glaurung to 10 threads also on a single core CPU and it will run with 10 threads.
When Glaurung speaks of threads it actually means threads that are not CPU, are not processors, are not cores and are not processes: are threads.
Interested people can easly google for definitions of the above terms in case of doubts.
IMHO an universal accepted name should asbtract the implementation detail that can (and do) change among programs and should focus on the function.
I think is less wrong something like
- Nr of parallel searchers
- Parallelism count
- You name them
Marco
EXACTLY!!
I mentioned this a little time ago. We should use an abstract name that is detached from the intricacies of hardware technicalities.
In fact, I can have two "parallel searchers" in a CPU with one core, in a quad, whatever. Sorry, but CPU, processor, cores, threads, processors, etc. is all GEEKY jargon.
Miguel
Sorry, but that is simply wrong. For parallel _computing_ we talk about threads and CPUs as being equal. Anything else makes absolutely no sense.
not true (not always CPUs == threads) because you can run an engine with two threads on a 4-CPU machine. In fact, you do that when you match it against another engine that uses 2 threads.
OK, if you don't want optimal performance, you can run with threads < CPUS. But, by any definition I can find, that program is going to use CPUS = threads processors. On a quad-core, if you want to use two threads, it makes far more sense to say "I want to use two processors rather than the full four." We are _still_ talking about cpus or processors, not threads. But you will _never_ with any chess program run more processes than you have processors. And I do mean _never_.
You want to pick a term that a user can understand. If you boot linux with 4 single-core chips, two dual-core chips, or one quad-core chip, Linux or windows reports "4 cpus". And that is the term you want to use to set the number of search threads you expect to execute in parallel...
There are other reasons to use threads, from making the program design simpler (a threaded server for example), to making the algorithm faster. But for chess, it is _only_ about being faster. And N threads on M cpus, where N > M is going to kill performance, not help. You don't want to leave that confusion laying around...
I insist, this is all geeky jargon that real chess players are not supposed to care about.
Miguel
PS: Nerds should not follow geeky nomenclature

This is not "geeky jargon". It is the standard "jargon" (vocabulary is a far better term) used in any parallel programming reference. We use "processes" and "processors". Where sometimes "processes" < "processors" (you don't want to use entire machine to play chess, for example. And sometimes, "processes" > processors, when the program is not the classic compute-bound process and is doing I/O, web services, database accesses, network accesses, etc. But for chess, optimal is, and always has been, "processes" == "cpus". No exceptions. And I think that either "processors" or "cpus" is a perfectly acceptable term. "threads" is not. That _is_ a geeky term that only a few will really understand (probably < 10% of the readers here actually understand the difference, less than 1% _really_ understand the technical differences.