VCV Rack 2: Multithreaded CPU usage

Hi.

When increasing the number of threads in VCV Rack 2 to more than 1, the CPU load increases extremely, both on Linux and Windows.

My system is an i9-9900k, running Lubuntu 21.10 (jack) and Windows 11 (ASIO). The CPU-load with the default patch is around 1% when running a single thread and it increases to over 60% when I change the thread to 8, without playing any sound. Isn’t this a bit too high? Should I upgrade my system (which brings up another annoying question about VCV Rack 2 Pro tied to a machine ID, but that’s another topic)?

Thanks in advance :slight_smile:

mine perhaps doubles when I go from 1 thread to 6 on my six core machine. Don’t know what’s typical. (this is win 10, btw).

This has always been the case since multithreading was introduced and is expected behaviour. You will be able to have more modules in a patch but at the expense of heat and fans kicking in.

maybe wait until you have actual problems with a real patch?

2 Likes

As others point out, multithreading in itself has a significant overhead in VCV Rack, which is why you should only use it when you detect that you need it (audio crackling), and then only increase thread count by 1 until you reach stable audio.

How many physical (not logical/hyperthreaded) cores does your CPU have? I would only ever use 1 or 2 threads less than physical cores if I were you, unless you turn everything off on the machine and have it dedicated to only Rack.

2 Likes

Thanks for all answers :slight_smile:

I’ll use a single thread for now and check for a more silent cooling solution, it’s disturbing to make music with the fan running all the time.

1 Like

I want to address this issue too on OSX. I have a MacBook Pro (2019) with OSX 10.15.7 and when changing the from a single core to 4 course the CPU goes over 300% according to Activity Monitor while VCV rack claims 13% max.

I added two screenshots of a simple patch and the Activity Monitor.

as i understand it as soon as one adds the second thread (and for any further one) a worker thread is created, which is doing all the work and spinning idle when there is nothing to be done - as a result all worker threads are looking like at about 100% cpu usage, but as the idle spinning is done in a clever way, it should not result in any extra heat etc. … so only add extra threads when the current number of threads cannot handle the load anymore and don’t be surprised that any extra worker thread immediately seems to consume nearly 100% cpu (at least under linux it looks like this)

best wishes - hexdump

don’t many OS trace utils report CPU usage as 100% per core, so a 4 core CPU could go to 400%? At least seems true from the ones I have encountered, with a couple able to divide that by number of cores to make it seem sane

depends on os and tool maybe, but on linux with top this is the way it is counted (at least for the processes) - so a cpu load of 300%+ looks reasonable for 4 threads (3 extra workers at nearly 100% plus the main rack processes)