How does Cubase utilize multiple cores?

Only the developers know, and they probably want to keep it secret

Multi-threaded programming is hard, really hard, and there are limited tools available to make it easy. It’s a hard problem that has been studied by programmers and computer scientists since the 70s

Some things are easy. If you have several totally independent programs running at the same time, it’s easy to efficiently use multiple cores. The key word here is independent. Even programs that appear to be independent share the disk, the screen, the network connection…etc

Processor makers hit a wall years ago when they couldn’t make a single processor run any faster, so they introduced multiple cores. The marketing department advertised them as a step forward. Programmers knew that it wasn’t that simple

If I had to guess, Cubase handles multi-core/multi-thread in an imperfect way, using best effort and a lot of secret tricks. It seems easy to imagine handing one virtual instrument in this core, one effect in another, etc. Unfortunately, the real world is a bit more messy, and unexpected timing constraints pop up all the time

I would love to read a paper by the Cubase chief software architect, clearly explaining how threads and cores are used. Methinks this will never happen

BTW, I’ve been programming since 1972, and have done a lot of work in multi-threaded realtime systems

3 Likes