-
Notifications
You must be signed in to change notification settings - Fork 3
RFC: Rename --threads
to --cores
?
#88
Comments
I don't like that idea. Quote: https://en.wikipedia.org/wiki/Hyper-threading
We are running 95% of our clusternodes hyper threaded.
I like threads used here or, if you intend to rename it: how about "slot" ? thatllbefinewithme. |
Although I like this distinction, I like to compare it to how something like that is called in languages a user might use: in But AFAIK a slot in mxq-speak means something else, because sometimes I have single threaded jobs occupying more than one slot because they need more memory. |
I think, "thread" in "hyper-threading" has a differnt meaning than "thread" in e.g. pthread_create. The first one is CPU execution context at the hardware level while the second is program execution context at the programmers level. Both are independent. But the fact, that "thread" is used with a yet another meaning by CPU manufacturers doesn't make it a better choice for "slots" is used by mxqd internally with its own definition, but again refers to something different, because these "slots" have a certain amount of memory, too, which differs from node to node. You might submit with "-j 1" but still get more than one "slot", because of memory requirements. You are right, when hyper-threading is taken into account, "cores" is wrong, too. So I take this suggestion back. In Linux the correct word would be "processor" (/proc/cpuinfo) or "cpu" (lscpu), these are the entities recognized Linux scheduler and this is what you actually get with On a system we have n1 hyperthreads per core, n2 cores per socket, n3 sockets and n1 * n2 * n3 cpus or processors in linux speak. Would "cpus" or "processors" be a better option? I'm not sure. |
What about |
That's my point. These are "threads" as seen by the programmer. And they are different from what is selected by
I think that's the same as "processors" or "cpus". The proc manpage say "processing units", which, of course, is the "PUS" from "cpus". And |
Any objections to make "--processors" and "number of hardware processors" the official term while, of course, keeping "--threads" as deprecated for compatibility? |
To me its a terrible misnomer that mxq globally refers to the term "threads" where in fact "cores" would be correct. This error is all over the place starting with mxqsub:
This option in fact sets the number of cores which are reserved for your job on the execution node, it does not limit the number of threads at all. I think it more difficult for users to select optimal options (or for us to explain) when we use wrong terms.
Should we rename that globally, leaving
--threads
only for compatibility?The text was updated successfully, but these errors were encountered: