That's the terminology problem Intel has created. A "cpu" can't have "cores". A cpu "chip" can and does have multiple CPUS (aka cores unfortunately). Again, a "CPU" is "Central Processing Unit". Which includes registers, program counter, etc. The proper term here would be "chip" where a single chip actually has multiple cpus (cores)...trojanfoe wrote:What even when that physical CPU has 2 or more cores? My opinion is that the setting should direct the operation of the engine; if it creates threads for its multi-CPU operation then it makes sense to call the parameter 'Threads'. If it spawns/forks processes then call it 'SpawnCPU' or whatever. I don't understand why so much fuss.bob wrote:Come on guys. It is most _certainly "here or there". In chess, you use threads for parallel search. You might have another thread for input/output but it does not execute 100% of the time. This discussion has gone so far out into left field it is completely out of the stadium. For _any_ chess program that is currently in existence, you want _exactly_ one parallel search thread per physical CPU... Nothing else works.trojanfoe wrote:I agree (for what that's worth). The parameter relates to what the chess engine does to utilitize the machine it's running on; create threads. Whether each thread runs on a dedicated CPU or not is neither here nor there.mcostalba wrote:Regarding Glaurung "Threads" is the correct one, CPU (or processor) is defenitly the wrong one.bob wrote: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...Zach Wegner wrote:Nooo! What about the programs out there that use processes?abik wrote:That makes sense. I personally thought Glaurung's "Threads" was a good choice, so I am going with that one.....
I don't like "cores" either. Really the only term that makes sense IMO is "CPUs".
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
Also isn't this the tip of the iceberg when it comes to how parameters are defined with different chess engines? If the UCI is too 'thin' to specify such things then authors have free reign and all authors have chosen different names for every parameter haven't they - apart from the one or two mentioned in the UCI spec. What's the biggy?
Cheers,
Andy
Cheers,
Andy
The reason for the "fuss" is "common vocabulary". If we have N different meanings for the same word, or N different words with the same meaning, then confusion is unavoidable... The typical user has no clue about what the difference between threads and procecsses really is. And they shouldn't care nor have to go look it up. If they have a 4 cpu system and they want to use the whole thing, they would probably understand telling the chess program to use 4 cpus or 4 processors...