Multicore Processing: What is it, and why do you care?

With the release of PatchWork 2.5, and in the latest previews of Axiom, MB-7 Mixer and Late Replies, a new multicore processing feature has been introduced to get the best real time performance out of modern CPUs.

Let’s see what’s hidden behind this new feature, how it works and why you care about it for your audio effects and instruments!

Single Core vs Multi-Core

Modern processors all have multiple cores, which let them process several instructions in parallel at the same time, as if they were composed of multiple processors.

However by default, if nothing specific is done by developers, in an audio application or plug-in all processing will be performed on a single core at a time, so you can quickly reach the limits of the CPU even if not used entirely:

There are many CPU resources left to perform more computations and load more plug-ins / process more audio, but they are not used by the software! That’s why you may sometimes see a process using only 25% of the CPU and yet max out its processing capabilities.

It is however (sometimes) possible to distribute operations on multiple cores with some extra work, so that (almost) all possible CPU resources are used for audio processing:

In the example above, the program is using almost 8 times more CPU than in the previous single core example!

Can Everything Be Parallelized?

Not all operations can be performed in parallel. With audio effects typically, when they are placed in series (one after the other), the next effect has to wait for the output of the previous effect, so there is no benefit using multiple cores:

When effects (or virtual instruments) are used in parallel, they can however be processed in parallel too, so multiple cores can be involved to process them faster:

In the example above, up to 4 cores can be used to process the 4 chains simultaneously, virtually giving access to 4 times the processing power.

Wait… Is There Any Catch?

It’s not really a catch, but distributing computation on multiple cores involves a bit of overhead (the software may need more memory, synchronize some operations between cores, and the operating system has its own overhead too).

So if you are using effects that do not need much CPU like in the example below, this small overhead might actually be higher than the benefit of using multiple cores:

So it’s usually worth checking the CPU meter and see if the multicore implementation has actually any benefit.

What About DAWs?

Digital Audio Workstation (DAW) software usually have their own multicore implementation. Most of the time, it consists in processing tracks in parallel on different cores if possible.

But there is a problem: if you use instruments or effects that consume a lot of CPU on a track, it can become a bottleneck for CPU usage: while all other tracks have been processed already, this track is still being processed (on a single core), wasting resources, despite the multicore DAW…

So in most cases where parallel chains and high CPU usage are involved, you may want to activate the multicore feature of our plug-ins, as they may process faster than in single core mode. Again, the CPU meter can help determine the benefits!

Conclusion

Benefits of multicore processing may vary, depending on your hardware configuration and the effects / instruments you want to use. But in many cases it will let you use more effects and instruments at lower latencies, using as much CPU power as your machine may have!

Enjoy!

>discuss this topic in the forum

Leave a Reply

Your email address will not be published. Required fields are marked *