Diva - Does multi-threaded == multi-core support on OS X

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

So I am new to Diva, and am thoroughly excited by the sound of this monster... however, I have noticed that nothing I do seems to allow it to make use of the multiple cores on my machine.

I am running the latest Mac OS 10.8.4
My machine is a Mac Pro with Dual Xeon Quad Core 2.8 GHz CPUs

I have tried Diva in both Logic Pro X and Logic Pro 9 - and get the same results with both - all processing seems to occur on a single core when used as a plugin instrument.

The good news is that I seem to be able to get a good 8 note polyphony on a single core - the bad news is that single core is usually totally maxed out.

So is this a Logic issue? Is this a Diva issue?

The problem could be a result in the ambiguity of threads vs processes - I know Logic will not naturally distribute "threads" to multiple cores - though it will distribute processes (that's getting kinda technical - but so be it). Is that the actual issue, or is it something much simpler that I am missing.

Here is a screen-cap:

Image

Post

I haven't noticed this with my installation- multithreading distributes just fine.

I'm not sure what you are on to about processes contra threads, Mac OS X doesn't have processes but uses a construct called mach tasks, however it's BSD server associates a PID to the tasks and represents it to the BSD land as a process.

A mach task is essentially a context containing atleast one memory layout and atleast one thread. Thus Mac OS X scheduler does no distinction between "processes" contra threads (Provided kernel threads are used).
The only thing I can think of is that logic of some reason would mark threads spawned from it's context with a processor affinity setting but that doesn't explain why it works fine for me though.
However I know that logic per default assigns each bus to a separate core and if I recall correctly there is a setting to specify the max amount of cores logic is allowed to use- but if a plugin creates it's own threads this should not apply.

Post

Logic shows only the CPU usage of its own threads. Diva however creates a thread per voice of her own. The CPU usage of those is best viewed in CPU Monitor :)

Post

Urs wrote:Logic shows only the CPU usage of its own threads. Diva however creates a thread per voice of her own. The CPU usage of those is best viewed in CPU Monitor :)
Thanks for the reply! I repeated the same test with the OS CPU meter displayed along side Logic's CPU meter, and as you stated, you can easily see the polyphony distribution using the OS CPU meter, but not with Logic's CPU meter.

I can only assume that Logic's CPU meter is somehow related to the core audio sample buffer fill-rate and how "close" it is to not being able to fill the sample buffer. Otherwise, I have no idea why the two CPU meters are so different.

Here is a snapshot for reference of the both Logic's CPU meter and the OS CPU meter:

Image

All technical mumbo jumbo aside... I still can not get over how amazing this synth sounds! :love:

Post Reply

Return to “u-he”