Roland
Unfortunately, the terminology used in general is quite confusing. The fact that each CPU vendor, HPC system, and queueing software (!) come up with their own interpretation doesn't help. The fact that some installation describe their system in the wrong way (presumably to simplify things for new users) doesn't help.
I know of one place that defines things unambiguously, which is the hwloc library. It can also examine systems and output their configuration, which helps. Thus I (and, by implication, Simfactory) uses these definitions.
A "core" is thus a physical core. A "logical core" is called a processing unit (PU).
Hardware has nodes, sockets, cores, and pus. These are requested by Simfactory and allocated by the queuing system.
Software uses processes and threads. These are set up via mpirun, OpenMP, and similar mechanisms.
The file "processterminology.rst" in Simfactory is supposed to define these. I see that this file is incomplete -- it does not describe pus, nor does it describe the Simfactory machine database keys. The fact that pus are missing isn't that bad, since no queuing system I know of can allocate individual pus anyway. Also, using hyperthreads looks from a software side the same way as oversubscribing cores.
The various misconfigurations and misunderstandings are supposed to be "translated away" by Simfactory. Thus Stampede2's SKX nodes have 48 cores in Simfactory, and if the queueing system requires specifying this as 96, then Simfactory needs to multiply these numbers by 2 when calling sbatch or srun.
I would try with this description of Stampede2's SKX nodes:
max-num-smt = 2 # the system has hyperthreading
num-smt = 1 # ignore hyperthreading by default
ppn = 48 # physical cores
mpn = 2 # NUMA domains ("sockets")
max-num-threads = 96 # using more threads will oversubscribe the pus
num-threads = 24 # should probably change this
memory = 196608 # check this
nodes = 1736 # check this
min-ppn = 48 # the queueing system always allocates full nodes
-erik