Something that throws the expected behaviors off further still is Intel’s turboboost (and whatever the AMD equivalent is) that scales up the clock frequency when running on fewer than max cores.
For example, the laptop on my desk (running on AC power) has a quad-core, hyperthreaded processor (shows as 8 CPUs to whichever OS is running). When doing some simple number crunching or encoding of media, you’d think that the fastest way to get work done would be to use all 8 cores, or maybe just 4, right?
The fastest CPU count is 2.
The second fastest? 1 out of 8.
Hmm. Which CPU? Some of the ulv models with their low tdp might be like that, but the performance of 4x “min” speed should be well over 1x “max” speed.
If your workload isn’t very efficient, that could also be a problem, spending more time locking than working. But a “good” program should be better, IMO.
To respond to the article, very cool. I hadn’t really considered the impact on asymmetric scheduling before. (I’m slowly transitioning from HT hater to advocate.)
$ sysctl -n machdep.cpu.brand_string
Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
I’ll need to go back and get some more repeatable results, it was a while ago and I don’t remember the specifics of which tools I was using and/or wrote.