Build New System - Dual or Quad Core?

i would like to buy new computer with quadcore or dualcore
but it seems what the main performance depends on core speed in mhz not on num of cores
maybe some one could explain how multicore support eorks in renoise, how mathematic is routed , why multicore cant significaly change results?maybe is way to optimize som how efects in tracks and send tracks to enhance performance?

https://forum.renoise.com/t/multicore-faq/19732

very thin info, what i already knew
but whole model would be very wellcome
by model and my workflow i could chose witch is best for me, mor hz or more core

i just tried test xrns (10 tracks havy ef and synths, 4 sendtracks light effected) on brand new but different systems
with 2 3 4 cores , intel amd , and Hz vs Core wins Hz

first off, a quote from another post by taktik:

so let’s take a look at two example scenarios on a quad CPU for an assumed song:

b the ideal situation[/b]
amount of tracks: 12
amount of send tracks: 0
routing: n/a

→ all tracks are evenly spread across the cores.
1 core will handle 3 tracks each.

b the unfavorable situation[/b]
amount of tracks: 12
amount of send tracks: 1
routing: all tracks are routed to send 1

→ all tracks are no longer spread across the cores.
1 core is forced to handle all tracks, or more precisely, 1 core is forced to handle one track, which is the send.

of course it doesn’t make any sense to route all tracks to one send, but i think you get the idea.
if audio streams from individual tracks are bundled into one send track, the respective source tracks can no longer be spread across multiple cores and therefore hinder performance on multi-CPU platforms.

another aspect which hinders multicore performance is the amount of DSPs / VST FX you use per track. if the average ratio between this amount is very uneven from track to track, then multithreading is not very helpful either.
example: 12 tracks, no sends, no routing, but track 1 holds 40 effect plugins and tracks 2-12 house no effects at all. in this case, track 1 is likely to produce such a high CPU load, that your song will halt during playback, because it’s no longer possible to calculate it in realtime.
the reason for this is, that all 40 effects of track1 cannot be spread across the cores, as each track represents one self-contained audio unit / stream.

so the degree of positive impact a multicore has on your songs, is heavily depending on how you structure them. if you’re working with a lot of tracks and little amount of send tracks but high amount of routing, then you’ll end up with only a marginal performance gain.
same applies to the amount of FX per track ratio.

Its unfortunately even more complex. There are two models on how Renoise splits the song to also handle your (2) scenario:

  1. SendTracks are processed with the tracks that feed them
  2. SendTracks are processed afterwards by only one core (the “main” core). This allows separate processing of the feeding tracks even though they are connected to a send.

The second model allows in your “(2) the unfavorable situation” that the 12 tracks are splited among the cores, but the send is then calced by the main core only.
Renoise tries to decide on the fly which is the best model. It will even switch the mode while playing: If one track uses 80 percent of CPU and the other ones are using 5, it will calc the CPU heavy track alone by one core and calc all others together.

Also take care when using SynthEdit plugs. Renoise will schedule all tracks which play any synthedit plug on only one core, because of a multi CPU bug in SynthEdit (they tend to crash when processed in parallel). This heavily limits the scheduling capabilities!

oh my…
and i thought i’d have understood it a while ago.

i always thought the sends i am using (usually compression sends) are guilty for the situation that 2 of my 4 cores ain’t doing anything at all (cpu usage at around 60%, whereas changing from 2 to 4 cores doesn’t change anything about that).

now i’m quite puzzled tbh.
when i went for the quadcore, i made a little xrns for performance checking purposes… it holds about 60 tracks playing the korg polysix in 8x unision and i see a great difference between 2 and 4 core modes… but this is a very unrealistic scenario, because i’m not using any FX and sends at all.
as soon as i do that, there usually is no difference between 2 and 4 cores.
the above was my explanation based upon this observation and some snippets here and there caught on the forums.

so just to make sure i understand things right now:
renoise dynamically decides wether it should process the sample/instrument tracks together with the sends, based on some evaluation data that gives information about what’s more efficient?

isn’t it generally better to always process the tracks individually and not together with the send(s) ?

besides that, would it be possible to spread everything (means: not track-bound) across the cores, no matter how the routing situation looks like ?
like for example, track 1 is holding 40 effects which are all spread across the cores?

i feel renoise is currently lacking efficiency when it comes to anything greater than dualcore.
quadcores already give only little to no benefit in “realworld song scenarios”… this leads to the assumption, that octacores might already become totally superflous.
that said, i can ofc understand that parallelization will somewhen come to an end (for example when the amount of cores is greater than the used amount of instruments/effects ;) ).

During the alpha stage we discussed this, remember?

You will limit all sendtracks to only one core then. Some people use many and intensive sendtracks. That’s why there is an alternative distribution system. This might not be a problem for 2-3 cores. But it’s starts to be very limiting with 4 or more cores…

no? did i take part in this discussion? cannot recall any talk concerning this.
so i either missed it or have a severe memory problem.

yeah… now i finally understood the true difference between the two approaches:
renoise can either process the sends or the instrument tracks individually, but not both at the same time.

that means the higher the amount of send tracks, the more likely it is that renoise will process them individually, bundled with the feeding tracks, which are not spread across the cores.

too bad it’s not possible to refrain from making groups or units but process every single track, send and effect as a unique “unit”.

bah… gaymers! ;)
but seriously… i really doubt your GPU will handle gears of war and crysis at the same time g

You probably missed it then, but I remember taktik did explained this in detail somewhere.
I don’t remember exactly HOW the system decide when to use which. I think I suggested that it might be an idea to make it optional. But that could be superfluous after all.

Each tracks CPUs usage is measured all the time, so the model is selected by simply precalculating each models CPU usage. Tracks also have some kind of “virtual base CPU usage” (more FX per track = more possible CPU usage - playing or not) which also influences the model and core distribution. This avoids that you get CPU peaks when tracks start playing in the middle of a song.

There is a lot of logging / debugging stuff for this, but thats disabled by default. If someones interested in this, I could enable this again.

sory i am not good at english

but send tracks calculated on one core always? why?

can be related to calculation?

on 4100 cpu usage 25%
switched to 48000 40%
switched back on 41000 40%
why it could be ?

Send tracks are not always, but may be calculated on one core only, depending on if that results into a better overall performance or not.

Due to adaptive CPU throttling (CPU energy saving) maybe. Have you tried turning it off? When its enabled the system will slow down the CPU depending on how much of it is currently used.

Altogether: If you have the money to get a 4 core CPU. Get it. No one can promise that its running faster than a dual core at the same price class, but Renoise tries to use as many cores as possible. So the 3 extra cores are not completely wasted…

If you have a track, that sends to a send track that sends to a send track that sends to a send track etc. Then I guess they are indeed calculated on the same core. Because this is a sort of calculation that’s basically impossible (or pointless) to parallelize. You see, all the tracks wait behind eachother. If you have one track with two send tracks, then one of them may be run in parallel because both send tracks can get the data at the same time.

i want to ask
does the code route data to cores proportionaly (as posible) even then cpu usage is low?

for example i have tried the same hz and cash cpu but with 2 and 4 cores and result was the same (25%), so maybe diference shoul be on high cpu usage? maybe with low cpu usage some core are absent at some times, becouse some other cores are not full loaded ?

What would be advice how to test system more eficient?

im just checked, on only 32 tracks without sendtracks and master effects.
with 2 cpus 98% (tried to ger close to 99%), with 4 cpu 98%
no difference with 2 or 4 cpus.
so i cant understand anthing now

so what about 4 and 2 cores? i have no difference in cpu usage

Could you provide a small demo song which shows this problem?

The 98 % and 99 % CPU usage is from the taskmanager, not Renoise, right? You have to use Renoises CPU indicator to compare this stuff. Renoises GUI and the other threads will use whats “left” so you could in theory always end up in 99% of CPU. Also, as said above, make sure that CPU throttling (energy saving for the CPU) is disabled.

i just checked on lots of systems (with demo adn no asio)
i took 20 tracks with exactly same stuf (sample and integraited effects , no eff on master, no send tracks)
in all systems result differs only changing from 1 to 2 cpus
from 2 to 4 cpus no difference in cpu usage shown in renoise program (nbot task manager)

and buffer taken 100 mls shows more cpu usage than 5 mls :)
its about calkulation interval?

Buy a quadcore, it’s fast anyway. And you have a modern processor, otherwise you may want to buy one in a year or two.

First I had an AMD Athlon 64 3000+ 2.0ghz with 1gb ram, 2 weeks ago I bought a new system with a core2quad q9300 with 4gb ddr2 800mhz ram, and I really don’t know how to get this processor overloaded with Renoise.

Vst’s like Massive raised my cpu load to 30% and didn’t work in polyphonic modes on my old AMD processor, my soundcard would start to stutter with a buffersize of 256. When I open the same plugin on the quadcore it gets to 3% and the buffersize of my Delta1010 is set to 64!

With no VSTs this should not happen. Could someone else with a quad please verify this?

Please note that you of course have to use more than 2 tracks (at least 4 for 4 cores) to be able to use all the cores in Renoise.

Serumas: To make things easier to test & compare, could you please upload the song you’ve used for testing?
Which quad CPU have you used in your test?

Could you please try to rephrase this? I don’t understand you here.

then i switch to 100 (directx) mls shows for example 40% (STABLE) cpu
then i switch to 5 % (directx) shows about 15-25% (VERY JUMPY)(as i remember), but not to 40%

as i am a computer service technition i have tried on lots of amd and intel cpus amd 3core 8450,4q9500,4q 9600, intel e7300,e800 and etc