Noel Borthwick [Cakewalk]
Keep in mind that load balancing is not a cpu saver. Its actually the opposite,
Absolutely. And at the deeper levels of the CPU architecture, "balanced" utilization may REDUCE the effective CPU speed. I know this may sound like heresy. However, modern CPU architectures are highly dependent on the shared memory system. When workloads migrate from one core to another, this may cause the core's instruction pipeline to go idle for one or more cycles as the memory system responds to get the data where it is needed.
For example, let's say you have 4 cores. Without aggressive load balancing, this might look like
Core O: 35%
Core 1: 19%
Core 2: 65%
Core 3: 43%
That is to say , aggregate CPU busy of 162% / 4 = 40.5%
With aggressive load balancing, this same workload might run:
Core O: 49%
Core 1: 53%
Core 2: 51%
Core 3: 54%
or about 52% busy. (This is probably an exaggeration for example. In the real world, the "load balancing penalty" is typically under 5%.)
If you aren't actually developing dispatching queues, balancing can be counter-productive. The alternative is referred to as "CPU affinity." It is a real thing.
Of course, the proof of the pudding is in the eating. If the balancing technique allows more VSTs to run more smoothly, then it is a good thing. But don't make the mistake of surmising that it is inherently a good thing for the cores all to be running at the same utilization. it is not.
And to make matters worse, the memory architectures do vary from one chip (and especially from one manufacturer) to another. So what works dandy on one chip may not actually be so helpful on another chip. From what I have seen of this release so far, it looks like their is a decent amount of affinity happening, so my guess is it will be a good thing for just about everybody.