You are here

Single core versus Multicore CPU

For everything after the recording stage: hardware/software and how you use it.

Single core versus Multicore CPU

Postby JacoVanDuijn » Tue Nov 26, 2019 8:22 pm

Hello Everyone,

I am a long time lurker but have been banging my head, cause I can't seem to find an answer.

I have always thought that Multi-core CPU's where better (for Video editing, etc everything non-gaming related) for audio production. But I read that single core performance is better.

Which one is true?

And are their DAWS out there that make use of multi-core? (I read that in the new studio one 4.5 they support multi-core, but not how many. I wanted to ask this on the presonus forums, but I don't have Studio one to register).

I am about to buy a new pc and really don't know what to get. I was first going for the Ryzen 3950x, untill I read about the importance of single core performance.

I hope you people can help me out.

With Kind regards,
Jaco
JacoVanDuijn
New here
Posts: 4
Joined: Tue Nov 26, 2019 8:16 pm

Re: Single core versus Multicore CPU

Postby Eddy Deegan » Wed Nov 27, 2019 12:24 am

JacoVanDuijn wrote:I am a long time lurker

Welcome to the glare above the parapet ;)

I have always thought that Multi-core CPU's where better (for Video editing, etc everything non-gaming related) for audio production. But I read that single core performance is better.

Are you sure you read that right? There may be advice out there to disable hyper-threading on certain Intel CPUs due to the issues associated with the various CPU hardware bugs that surfaced a while back but generally speaking more cores is better when it comes to video editing.

And are their DAWS out there that make use of multi-core? (I read that in the new studio one 4.5 they support multi-core, but not how many.

All DAWs should support multiple cores, but I would be surprised if any of them have a specific number of cores they support. What happens is that they use threads and/or processes which can run simultaneously. The OS that the DAW runs on, as well as the CPU itself, will handle the allocation of resources accordingly.

It's perfectly normal for hundreds, or even thousands, of threads to be present on the system although deep down at the hardware level the CPU is only paying attention to a few of them at a time.

The number of threads it can actually execute simultaneously depends on the number of cores and whether or not hardware support for threading is disabled on the chip. If the chip supports threading in hardware (AMD and Intel use different terminology but the effect is much the same) and it is enabled, then it will typically be able to pay attention to twice as many threads as there are cores at any given instant in time. If threading is disabled then you'll get one thread per core.

This is of little concern to most people for most purposes because the specific threads that are being executed at any instant constantly change as the scheduler in the OS executes a bit of a small number of threads, then suspends them to execute a bit of some other threads, and so on. All this happens so quickly (hundreds or thousands of times a second depending on the CPU and the OS) that the illusion of many things happening at once is achieved almost seamlessly, even though only a small number of threads are active at any one moment.

Here, for example is some of the workload that my laptop is performing right now:

Image

You'll see it's showing a lot of CPUs on the right (specifically 8), but this is only a quad core i7 CPU. When threading is enabled (Intel call it "hyper-threading") the CPU appears to have twice as many cores as it really has, which is why there are 8 of them on mine.

Note the number of threads listed against each process. Although only 8 of them are actually executing at any given instant, all of them appear to be executing to me much like there are no actual moving images in a film; it's just a rapid succession of static frames that deceive the eye.

I am about to buy a new pc and really don't know what to get. I was first going for the Ryzen 3950x, untill I read about the importance of single core performance.

I'm still semi-convinced that you've misunderstood the article a little bit, and that it's recommending that hardware support for threads is disabled due to the performance-related issues associated with the security patches for the hardware bugs found mainly in the Intel chips. AMDs are (as far as I know, I've not been paying much attention lately) less affected, and new hardware should be unaffected altogether.

In short, I'd not worry about the 'single core' business at all. I promise you you do not want a PC with a single core in it (not that you could probably find one anyway). Just get a modern PC with an up-to-date multiple-core CPU in it and have fun using it :-)
User avatar
Eddy Deegan
Frequent Poster (Level2)
Posts: 2836
Joined: Wed Sep 01, 2004 12:00 am
Location: Brighton & Hove, UK
Please consider supporting the SOS Forum Album project, helping charities via music created by forum members.
 

Re: Single core versus Multicore CPU

Postby miN2 » Wed Nov 27, 2019 8:07 am

That said, high frequency is beneficial for audio in respect of DSP and voices, so whilst you don't want to consider a single-core CPU as it'll just be all over bad in comparison to modern day alternatives, you also don't want to sacrifice too much speed for additional cores. High frequency and lots of cores/threads is generally the best bet for many things audio. As such, it's more of a balance you're looking for. It would be beneficial to look at Scan's benchmark graphs for audio work.

Re Studio One: it supports multi-core, but they took serious time implementing it to a half-way decent standard in my view, and it still doesn't really hold a candle to the likes of Cakewalk and Cubase. No idea what their problem is, although i do wonder if maybe it's due to not being written in C and C++ so they're having trouble? I've got a feeling it's written in Crystal, but i don't know so don't quote me it :headbang:
miN2
Poster
Posts: 43
Joined: Tue Mar 26, 2019 9:24 am

Re: Single core versus Multicore CPU

Postby merlyn » Wed Nov 27, 2019 10:46 am

The Ryzen 3950x looks like a powerful chip.

I would interpret your question to mean : "Should I go for a chip with a higher base clock and less cores?"

It depends what you want to do. The DAW I use -- Ardour can definitely use multiple cores. To use all available cores there needs to be more independent tracks than cores meaning the output of one track doesn't depend on any other track.

A signal flow of Input > PluginA > PluginB > ... > PluginZ > Output will be processed on one thread and that's where single-thread performance will be a factor because the input of the next plugin in the chain depends on the output of the previous plugin.

Multiple tracks can be processed on multiple threads.

So for an application like using a computer live as an effects processor where low latency with several plugins on one track is the goal single-thread performance will be important. For an application like mixing a large project with many tracks all with plugins multiple cores will help.
merlyn
Poster
Posts: 18
Joined: Thu Nov 07, 2019 3:15 am

Re: Single core versus Multicore CPU

Postby Folderol » Wed Nov 27, 2019 11:35 am

Don't worry about it!
I'm using a 1st Gen 4 core Ryzen (bought from Scan) with a soft-synth that can put a serious load on it, yet I haven't even found the sides yet, let alone hitting them :lol:

The problem with benchmark tests is that they tell you how well something performs... on benchmarks!
User avatar
Folderol
Jedi Poster
Posts: 9152
Joined: Sat Nov 15, 2008 1:00 am
Location: The Mudway Towns, UK
Yes. I am that Linux nut.
Onwards and... err... sideways!

Re: Single core versus Multicore CPU

Postby CS70 » Wed Nov 27, 2019 11:58 am

There are a cases where having more cores might hinder performance, since when running multiple threads competition for shared resources increases... but generally that's either a software design flaw, a side effect of naive programming or a little too eager application consolidation on server nodes in a cluster. An easy example would be multiple threads doing blocking I/O instead of non-blocking, where increasing the number of threads that can run concurrently can cause so much more overhead in the OS that things actually slow down. I've seen that kind of stuff recently in some big data applications running on high performance clusters.

DAWs and NLEs, if well coded, shouldn't really suffer from this kind of things.
User avatar
CS70
Jedi Poster
Posts: 4448
Joined: Mon Nov 26, 2012 1:00 am
Location: Oslo, Norway
Silver Spoon - Check out our latest video  and the FB page

Re: Single core versus Multicore CPU

Postby JacoVanDuijn » Fri Nov 29, 2019 1:24 am


Welcome to the glare above the parapet ;)


Thank you very much and thank you for taking the time to write all of that very important info.

merlyn wrote:The Ryzen 3950x looks like a powerful chip.
I would interpret your question to mean : "Should I go for a chip with a higher base clock and less cores?"

This is exactly what I mean. Thank you for clarifying.

this is more of a personal thick, but when I get something I want it to be as good as possible within my budget and it to last for 10 years. My previous build has now come to an end.

There is for example a intel Core i9-9900KS that has 5.0ghz. So if single core is more important I would go for that. If multi-cores are better for performance I would go for the Ryzen 3950x.

CS70 wrote:There are a cases where having more cores might hinder performance, since when running multiple threads competition for shared resources increases... but generally that's either a software design flaw, a side effect of naive programming or a little too eager application consolidation on server nodes in a cluster.

Software design is of course a major factor. I don't yet own studio one, but I tried it and I want to get that DAW, and am glad there is a new update that will support multi-core.

So I should go for the Ryzen 3950x?

Thank you CS70, Folderol, Merlyn, Min2 and Eddy Deegan,
JacoVanDuijn
New here
Posts: 4
Joined: Tue Nov 26, 2019 8:16 pm

Re: Single core versus Multicore CPU

Postby merlyn » Fri Nov 29, 2019 2:41 pm

The R9 3900x looks good with a slightly faster base clock of 3.8 GHz versus the 3.5 GHz of the 3950x.

The base clock is more relevant for audio. It's a big sneaky of manufacturers and retailers to use the boost clock as the headline figure.

It depends how you define performance, but clock speed and number of cores are relevant.
merlyn
Poster
Posts: 18
Joined: Thu Nov 07, 2019 3:15 am

Re: Single core versus Multicore CPU

Postby JacoVanDuijn » Sat Nov 30, 2019 12:10 am

merlyn wrote:The R9 3900x looks good with a slightly faster base clock of 3.8 GHz versus the 3.5 GHz of the 3950x.

The base clock is more relevant for audio. It's a big sneaky of manufacturers and retailers to use the boost clock as the headline figure.

It depends how you define performance, but clock speed and number of cores are relevant.

Thank you again.

What is the reason that base clock is more important?

Jaco
JacoVanDuijn
New here
Posts: 4
Joined: Tue Nov 26, 2019 8:16 pm

Re: Single core versus Multicore CPU

Postby Eddy Deegan » Sat Nov 30, 2019 1:08 am

JacoVanDuijn wrote:What is the reason that base clock is more important?

Some things require a single core to process, even though in the wider sense the computer can do a lot more with multiple cores.

Higher clock speed gets more done in a single core than woud otherwise be possible. Under the hood, the CPU will transfer single-core workloads between physical cores on the chip because when working the CPU heats up, which leads to performance degradation.

Even if you are running a task that requires only a single core, the CPU will pick the coolest/least busy core to do that work, and then when it inevitably heats up it will transfer that work, while the job is running, to a cooler core to maintain best performance.

Thus, even for single core tasks a higher base clock will allow you to get more done in a multi-core CPU than would otherwise be possible as it can transfer the work to a cooler core now and again. Much like a relay race is run by one person at a time, but when they get tired they pass the baton to the next team member to continue.
User avatar
Eddy Deegan
Frequent Poster (Level2)
Posts: 2836
Joined: Wed Sep 01, 2004 12:00 am
Location: Brighton & Hove, UK
Please consider supporting the SOS Forum Album project, helping charities via music created by forum members.
 

Re: Single core versus Multicore CPU

Postby merlyn » Sat Nov 30, 2019 1:55 am

Adding to what Eddy said --

Turbo Boost can't be sustained indefinitely. The base clock is what can be sustained indefinitely.

The i9 9900KS looks like a chip aimed at gamers. In gaming Turbo Boost makes sense because the load goes up and down. For audio I have found the sustained performance more important. That's why e.g. CPU power management is disabled and the computer is run at full tilt all the time.

If you've had your present system a while I think, as Folderol pointed out, that you'll be stunned at how powerful these new chips are. :)
merlyn
Poster
Posts: 18
Joined: Thu Nov 07, 2019 3:15 am

Re: Single core versus Multicore CPU

Postby miN2 » Sat Nov 30, 2019 9:10 am

merlyn wrote:Turbo Boost can't be sustained indefinitely.

Turbo boost requires sufficient power and cooling available to maintain the boost. If the system has this is can be maintained indefinitely.
miN2
Poster
Posts: 43
Joined: Tue Mar 26, 2019 9:24 am

Re: Single core versus Multicore CPU

Postby merlyn » Sat Nov 30, 2019 1:06 pm

miN2 wrote:Turbo boost requires sufficient power and cooling available to maintain the boost. If the system has this is can be maintained indefinitely.

Would a stock cooler do that?

What chip would you go for? Out of the high end choices on this thread I'd go for a Ryzen 3900x because it has speed and cores.

@JacoVanDujin Put simply clock speed gives low latency and more plugins on one track. More cores gives more tracks or virtual instruments.
merlyn
Poster
Posts: 18
Joined: Thu Nov 07, 2019 3:15 am

Re: Single core versus Multicore CPU

Postby wireman » Sun Dec 01, 2019 12:36 pm

Eddy Deegan wrote:Higher clock speed gets more done in a single core than woud otherwise be possible. Under the hood, the CPU will transfer single-core workloads between physical cores on the chip because when working the CPU heats up, which leads to performance degradation.

Even if you are running a task that requires only a single core, the CPU will pick the coolest/least busy core to do that work, and then when it inevitably heats up it will transfer that work, while the job is running, to a cooler core to maintain best performance.

Could you provide a reference for this please? Older CPUs had thermal control that affected all cores at once and I would have thought core binding was under control of the OS and thermal considerations would not be part of the scheduling decision.
wireman
Regular
Posts: 302
Joined: Fri Dec 17, 2004 1:00 am

Re: Single core versus Multicore CPU

Postby Folderol » Sun Dec 01, 2019 1:14 pm

wireman wrote:
Eddy Deegan wrote:Higher clock speed gets more done in a single core than woud otherwise be possible. Under the hood, the CPU will transfer single-core workloads between physical cores on the chip because when working the CPU heats up, which leads to performance degradation.

Even if you are running a task that requires only a single core, the CPU will pick the coolest/least busy core to do that work, and then when it inevitably heats up it will transfer that work, while the job is running, to a cooler core to maintain best performance.

Could you provide a reference for this please? Older CPUs had thermal control that affected all cores at once and I would have thought core binding was under control of the OS and thermal considerations would not be part of the scheduling decision.

I can't give you a reference, but I have seen this core swapping in action. I have a bit of software that monitors individual cores, and you can watch the work load being swapped around between them. It's definitely under firmware control. There is nothing in the OS that does this.
User avatar
Folderol
Jedi Poster
Posts: 9152
Joined: Sat Nov 15, 2008 1:00 am
Location: The Mudway Towns, UK
Yes. I am that Linux nut.
Onwards and... err... sideways!

Re: Single core versus Multicore CPU

Postby Eddy Deegan » Sun Dec 01, 2019 2:30 pm

Folderol wrote:
wireman wrote:
Eddy Deegan wrote:Higher clock speed gets more done in a single core than woud otherwise be possible. Under the hood, the CPU will transfer single-core workloads between physical cores on the chip because when working the CPU heats up, which leads to performance degradation.

Even if you are running a task that requires only a single core, the CPU will pick the coolest/least busy core to do that work, and then when it inevitably heats up it will transfer that work, while the job is running, to a cooler core to maintain best performance.

Could you provide a reference for this please? Older CPUs had thermal control that affected all cores at once and I would have thought core binding was under control of the OS and thermal considerations would not be part of the scheduling decision.

I can't give you a reference, but I have seen this core swapping in action. I have a bit of software that monitors individual cores, and you can watch the work load being swapped around between them. It's definitely under firmware control. There is nothing in the OS that does this.

I don't know when multi-core thermal management was introduced, but there are sensors per core in contemporary chips (before this, it was common for the CPU operating temperature to be reported incorrectly by the BIOS). I read about the dynamic load management some years ago in some technical reference for the Xeon family, but as I'm no longer involved in the kind of work that I was at the time I've not kept up to date to be honest.

I had a quick search through some of the programmers reference material available online today but I couldn't find anything either. That said, there is a huge amount of stuff out there to look through. It's possible this is not commonly done these days due to better thermal management technology in general, or perhaps it's not something that's detailed in public docs much.

I don't know, so I'm happy to retract my suggestion that all modern chips do it as they may achieve the same result (optimum performance) in easier ways.

You can associate threads with specific cores using core affinity in software, and the OS scheduler has a lot of freedom to influence the load distribution so the behaviour of the system as the user sees it is influenced by quite a lot of variable factors.
User avatar
Eddy Deegan
Frequent Poster (Level2)
Posts: 2836
Joined: Wed Sep 01, 2004 12:00 am
Location: Brighton & Hove, UK
Please consider supporting the SOS Forum Album project, helping charities via music created by forum members.
 

Re: Single core versus Multicore CPU

Postby wireman » Sun Dec 01, 2019 10:30 pm

Eddy Deegan wrote:You can associate threads with specific cores using core affinity in software, and the OS scheduler has a lot of freedom to influence the load distribution so the behaviour of the system as the user sees it is influenced by quite a lot of variable factors.

That's right and a hardware feature getting in the way would be a real problem for some people which is why I'm so doubtful, but interested if someone does find information on such a feature.

I'm not surprised that if you observe the location of processes/threads you see them 'wander' around the cores as those software threads are getting interrupted and rescheduled all the time for various reasons and on short timescales.
wireman
Regular
Posts: 302
Joined: Fri Dec 17, 2004 1:00 am

Re: Single core versus Multicore CPU

Postby Eddy Deegan » Mon Dec 02, 2019 3:41 am

wireman wrote:
Eddy Deegan wrote:You can associate threads with specific cores using core affinity in software, and the OS scheduler has a lot of freedom to influence the load distribution so the behaviour of the system as the user sees it is influenced by quite a lot of variable factors.

That's right and a hardware feature getting in the way would be a real problem for some people which is why I'm so doubtful, but interested if someone does find information on such a feature.

I'm not surprised that if you observe the location of processes/threads you see them 'wander' around the cores as those software threads are getting interrupted and rescheduled all the time for various reasons and on short timescales.

I've looked around a bit more and I can now shed some light. Not related to the original subject of the thread and possibly not quite what you were hoping for but here's the rundown.

When I was involved in work involving this kind of thing (2005-2011) we were doing research on the potential for general purpose CPUs to take on some (and ideally all) of the work done by the Intel IXP2800 network processor. The IXP2800 was a piece of silicon specifically engineered to process network traffic but it was not a general purpose chip and thus came with unusual challenges.

It had 16 cores and the hardware I was involved with was a line-speed, negligable-latency (usually microseconds) Deep Packet Inspection/Modification platform called the CS2000, a little-known (outside of governments, telcos and ISPs) platform which had six IXP2800s on the data processing plane, providing the programmer with a 96-core system. Optionally, you could install two DPPM (Deep Packet Processing Module) blades in a single CS2000 to give 192 cores in 3U of rackspace.

As the hardware was running flat out most of the time (it was usually installed in data centers, peering nodes and the like, often in racks containing sets of multiple CS2000s connected together via dedicated FPGA-based switching fabric) it ran hot by design. Although it was amazing technology it was also controversial and in the end I left that sector of the industry for ethical reasons.

I wrote a lot of code for the CS2000 over a period of about 5 years and thermal management was a big challenge. The fans in those chassis were insane. As the company I was working for was heavily backed financially by US federal sources, we got to experiment with all sorts of things under NDA (I'm choosing my words carefully so as not to breach it) and this was part of that. IBM even offered an optional part with that technology in it for their blade-centres to a restricted market.

Experiments were being done with 'smart' thermal management in schedulers, but also in hardware. I have found some docs relating to the latter but I can't share them I'm afraid.

I still can't find the Xeon-related connection but there was a version of the Xeon that got creative with thermals. However, given the lack of public information about it, I believe with hindsight that it didn't make it into the mainstream.

Had the CS2000 been created today, the chances are that the work could be done by something along the lines of the Xeon w-3175 processors but at the time the research concluded that there was no suitable general purpose CPU that could match the speed of multiple IXP2800s with supporting silicon (custom chips for regular expression pattern matching, and a high-speed Ternary CAM-based database-on-a-chip for handling things like session management).

Anyway, the bottom line is that I did make a mistake in saying that the advanced thermal management so described was present in consumer chips (even though I still believe some form of it was/is present in some Xeons) so thanks for asking for clarification on that else I'd have continued to conflate some of the things I saw at that time with 'normal' computing today!
User avatar
Eddy Deegan
Frequent Poster (Level2)
Posts: 2836
Joined: Wed Sep 01, 2004 12:00 am
Location: Brighton & Hove, UK
Please consider supporting the SOS Forum Album project, helping charities via music created by forum members.
 

Re: Single core versus Multicore CPU

Postby Eddy Deegan » Mon Dec 02, 2019 3:59 am

PS: Nerdy side-note. The CS2000 (and I suspect the IXP processors) did not support threads. Furthermore, the application you deployed to it would be spawned on a per-packet basis, run to process a single packet and then die.

There was shared memory between the cores in the form of a chunk of 320Mb or so of RAM and the silicon database which was Ternary-CAM with custom silicon to do extremely fast (about 133 million queries/sec) simple database-like operations on 128-bit or 256-bit records. We used it for rulesets and flow management (in ipv4 that meant source IP, dest IP, source port, dest port, protocol and a few spare bits for custom state).

Therefore an N-core system, (where N is the number of cores in total across all IXP2800s involved) required your software to be something akin to a finite state machine. It would spawn, query the shared resources to figure out what state the system was in and then branch to the appropriate handler for that state, knowing that N-1 siblings were doing the same thing.

It was proper fun. I joined the company when it was a start-up and we were doing some really cool things with it, but sadly it got darker and was deployed for dubious purposes at which point I left.

I have a couple of C-based hobby projects on the go where I'm distilling the nice parts of that to emulate the system in a virtual CPU of my own design, but in my case the ultimate objective is to create a fun system that uses colourful vector-based graphics to play things like pong and space invadors, with an emulation of a heavily restricted subset of the cloak-and-dagger technology driving it underneath.

I have been accused in the past of being an 'Intel fanboy'. This is not the case. I think AMD are doing some incredible things and I would love to see them take a chunk out of Intel. It's just that my professional life took me down some Intel-based paths and I've been able to see some of the things that Intel do that the public don't so I'm able to speak on that more than AMD stuff. The same may well be true of AMD but as I've not seen that personally, I can only speculate.

These days I'm doing something completely unrelated, non-controversial and mostly loving it :-)
User avatar
Eddy Deegan
Frequent Poster (Level2)
Posts: 2836
Joined: Wed Sep 01, 2004 12:00 am
Location: Brighton & Hove, UK
Please consider supporting the SOS Forum Album project, helping charities via music created by forum members.
 

Re: Single core versus Multicore CPU

Postby Eddy Deegan » Tue Dec 03, 2019 1:51 am

Eddy Deegan wrote:The CS2000 (and I suspect the IXP processors) did not support threads.

The IXPs do support threads but this was not exposed to the programmer in the CS2000, although under the hood the operating system may have used them.
User avatar
Eddy Deegan
Frequent Poster (Level2)
Posts: 2836
Joined: Wed Sep 01, 2004 12:00 am
Location: Brighton & Hove, UK
Please consider supporting the SOS Forum Album project, helping charities via music created by forum members.
 

Next

Who is online

Users browsing this forum: No registered users