As you're probably aware the current implementation of the MTL supports 32 cores and 64 threads, this means that the MTL server is Hyperthreaded or Simultaneous Multithreaded (SMT) aware.
So the obvious question is; how does one specify, saywhen an application is executed, if thread(s) should bescheduledon physical or logical core(s)?
This is easily accomplished by using the Linux* taskset command, e.g.
$ taskset c 0-15
This will specify that the application should run only on the first 16 CPUs, i.e. CPU/thread affinity. This means (on a 64 thread SMT system) that the will be scheduled on ONLY the physical cores.
$ taskset c 0,32
This will specify (on a 64 thread SMT system), that the application should run on both the 1st physical andthe 1st logical core.
Please see: man taskset for more details