2 ms·
Your processor has two P cores, and ten cores total, not twelve. The HyperThreading (SMT) does not make the two P cores into four cores. Your experiment with 4
by wtallis 2y ago
Your processor has two P cores, and ten cores total, not twelve. The HyperThreading (SMT) does not make the two P cores into four cores. Your experiment with 4 threads will most likely result in using both P cores and two E cores, as no sane OS would double up threads on the P cores before the E cores were full with one thread each.
- rwmj 2y agoThe hyperthreading should cover up memory latency, since the workload (compiling qemu) might not fit into L3 cache. Although I take your point that it doesn't magically create two core-equivalents.
- gonzo 2y ago“Hyperthreading” is a write pipe hack. If the core stalls on a write then the other thread gets run.
- atq2119 2y agoIt's much more than that. It also allows one thread to make progress while the other is waiting for memory loads, or filling in instruction slots while the other thread is recovering from a branch mispredict. Compilers tend to do a lot of pointer chasing and branching, so it's expected that they would benefit decently from hyperthreading.
- jeffbee 2y agoI am sure rwmj was smart enough to use `taskset` to make this experiment meaningful.
- rwmj 2y agoHehe, if only :-( However I do want to know what's best with the default Linux scheduler and just using 'make' rather than more complicated commands.