[SOLVED] Cores vs Threads Explained..

Status
Not open for further replies.

SkyRock1986

Prominent
Feb 28, 2019
264
17
695
My fellow PC friends,

This has sort of boggled my mind in recent time. I have always meant to ask, but didn't want to sound too noobish. I will admit though I really do not fully understand. I do think it would benefit me tremendously to finally get this answer from some of you more educated CPU experts. I have finally decided to "upgrade" from my intel i5 4690k to a Ryzen 2600x which required my to buy a new motherboard and switch to DDR4 ram also in the process... Anyways, I know my i5 4690k is a quad core. I also know the Ryzen is a six core. I sorta understand the benefits there. But I really do not understand the benefit of "threads" and what exactly it means. My Ryzen chip is 6 cores but 12 threads? Can someone please explain this in laymen terms starting with the meaning of cores vs threads. Are threads like multiple sections of each core? Sorry guys I just do not understand, and really want to. Also please explain the benefits to this for gaming rigs if any exist....
 
Solution
A processor with simultaneous multithreading (SMT, or what Intel calls Hyperthreading), has the ability to more efficiently run two things on a single core at once. Basically, the feature works by allowing each core to perform a second instruction while waiting for a first instruction in another thread to complete. So, it's primarily utilizing parts of the processor that would just be sitting around doing nothing at the time. The processor is only likely to run more than one thing on a single core if all other physical cores are already in use. The alternative when presented with a many-threaded task would be to have a core switch back and forth between more than one task, which has more of an impact on performance.

The OS sees the...
Thank you, but I already understand that. I am looking for someone to educate me on the difference between a core and a thread, that way I can explain it to someone else. As far as I understand is a core is the meat and potatoes. A thread is more or less the number of applications the core can handle? But Wouldn't a low core amount actually hinder having too many threads? Feel like it would be a lot of stress to do multiple computations on a core and have so many threads acting at once. another words, wouldn't not enough cores to keep up with the number of active threads in a workstation basically cause a CPU bottleneck?
 
A processor with simultaneous multithreading (SMT, or what Intel calls Hyperthreading), has the ability to more efficiently run two things on a single core at once. Basically, the feature works by allowing each core to perform a second instruction while waiting for a first instruction in another thread to complete. So, it's primarily utilizing parts of the processor that would just be sitting around doing nothing at the time. The processor is only likely to run more than one thing on a single core if all other physical cores are already in use. The alternative when presented with a many-threaded task would be to have a core switch back and forth between more than one task, which has more of an impact on performance.

The OS sees the processor as having twice as many cores, but performance-wise, these extra hardware threads only provide around 50% more performance compared to an actual physical core in a best-case scenario, when running software that can evenly divide a task among all available cores. Some examples of software that can see a big uplift in performance include video encoding or rendering software, where individual frames or sections of an image can each be rendered in their own thread.

Most software can't divide tasks that evenly though, so in those cases, having tons of cores (or hardware threads) available may not help as much. Most current games make only limited use of high thread-count processors, for example, since developers want to make sure their games run alright on a quad-core, but they are becoming more multithreaded. A game might split up various tasks to each be performed in their own thread, such as things like sound processing, physics, AI for NPCs, loading content in the background and performing general game logic, and frame rates will be limited by whichever task takes the longest to complete. Graphics drivers and background tasks will also be processing things at the same time, and having more hardware threads available can allow them to not fight for CPU cycles with the game's threads as much. If one is streaming or recording their games, having more cores/threads available to handle those demanding tasks can definitely help performance. Otherwise, the benefits of having SMT on a 6-core processor will tend to be subtle in most current games, though I expect game thread counts to continue to increase over time as higher thread-count processors become more common.
 
Solution
Actually, the simplest analogy is probably you. You are one person, but you have two hands. So you are a single core, but able to simultaneously handle two threads (one task in each hand). Due to limitations in how well your brain can control both hands, it's better than using one hand, but is nowhere near effective as two persons using one hand each (two core w/ 1 thread each for a total of 2 threads is better than one core w/ 2 threads).

Where the analogy starts to fall apart is in the types of task. For you, it's easier to do two similar things with both hands simultaneously (e.g. shampooing your hair). For a CPU, the second thread tries to use parts of the core which aren't being used by the first thread. So it works best when the two threads are doing very different tasks.

Also, your terminology is a bit off. Technically a thread is a single software process - a program or sub-program; a set of sequential instructions. A thread runs on a core. So a core does not have threads, it handles or runs threads.
  • Your i5 has 4 cores and can run a total of 4 threads simultaneously. Because each thread has its own physical core all to itself, each thread runs at full speed.
  • The Ryzen 2600x has 6 cores and can run a total of 12 threads simultaneously. Because each core is supporting 2 threads, it doesn't run as well as having 12 physical cores. How effective it is depends on the type of threads (programs, sub-programs) you're running.
For most common tasks, a single core can support about 1.1 to 1.2 threads (i.e. it runs as fast as 1.1 or 1.2 cores). A few specialized tasks can push this up to about 1.4 to 1.6 cores. But they're pretty rare - the common ones are video encoding, encryption, and data compression. So for most tasks your 6-core Ryzen will perform about the same as a 6.6 to 7.2 core processor (assuming you're actually trying to run that many threads). Best case in the tasks which can best take advantage hyperthreading, it'll act like about a 10 core processor.

Also note that the newer 8th gen Coffee Lake desktop i5s (i5-8xxxx and i5-9xxx) have 6 cores, not 4. Each core still runs only 1 thread though. You need to move up to the i7 to get hyperthreading. (The mobile i5s are quad core able to run 8 threads. I really hate that Intel doesn't make this consistent across products.)
 
The OS sees the processor as having twice as many cores, but performance-wise, these extra hardware threads only provide around 50% more performance compared to an actual physical core in a best-case scenario, when running software that can evenly divide a task among all available cores. Some examples of software that can see a big uplift in performance include video encoding or rendering software, where individual frames or sections of an image can each be rendered in their own thread.
That is very wrong,the best case scenario is with apps that only run few instructions/calculations per thread,as you said yourself "So, it's primarily utilizing parts of the processor that would just be sitting around doing nothing at the time. " that means if a app only uses few instructions per thread the hyperthread has more instructions left over to run at full speed.
Example here, HTT adds 100% FPS.
Video encoding or rendering software are actually the worst case scenario,benchmarking software is benchmarking software because it uses as many instructions per threads as is possible by software,meaning that far less instructions are left over for the hyperthread.
 
Thank you, but I already understand that. I am looking for someone to educate me on the difference between a core and a thread, that way I can explain it to someone else. As far as I understand is a core is the meat and potatoes. A thread is more or less the number of applications the core can handle? But Wouldn't a low core amount actually hinder having too many threads? Feel like it would be a lot of stress to do multiple computations on a core and have so many threads acting at once. another words, wouldn't not enough cores to keep up with the number of active threads in a workstation basically cause a CPU bottleneck?
This is a very complicated matter,basically each core is made differently and has different strengths,intel CPUs have cores that are very good at switching between threads and are very fast at executing them as well,amd's CPUs are slower at switching between threads especially between threads that are on separate ccxs and they are also slower at executing threats but you can buy more cores for less money.

As a very simple example if you have one core at 1Ghz and one core with SMT at 0.5Ghz the 1Ghz core can execute the same thread in half the time as the 0.5Ghz one and execute the second thread afterwards and still be done at the same time as the 0.5Ghz core that ran both threads at the same time.
 
That is very wrong,the best case scenario is with apps that only run few instructions/calculations per thread,as you said yourself "So, it's primarily utilizing parts of the processor that would just be sitting around doing nothing at the time. " that means if a app only uses few instructions per thread the hyperthread has more instructions left over to run at full speed.
Example here, HTT adds 100% FPS.
Video encoding or rendering software are actually the worst case scenario,benchmarking software is benchmarking software because it uses as many instructions per threads as is possible by software,meaning that far less instructions are left over for the hyperthread.
I don't think limiting a modern game to a single core is necessarily a good example. The game is undoubtedly using a number of software threads at different priority levels that are fighting one another for CPU cycles. A higher-priority thread could be choking out lower-priority ones, leading to major performance issues when on a single core. In a realistic scenario on modern hardware, at least two physical cores would be active though, and once you get to six physical cores, it would likely be really hard to find a similar scenario that can choke performance as seen there, so the potential benefits of SMT would be lower. So while it might have had a significant effect on performance in that example, that's not a very realistic example. The only kind of realistic workload likely to fully saturate 12 hardware threads would be something that can split up a task into many similar pieces, like video encoding, rendering or compression software.
 
How interesting... I am glad I asked. So as a gaming rig do you guys think I would ever really have to worry about 12 threads and six cores not being sufficient? Sounds like to me unless I am doing extensive workstation type stuff like video editing I shouldn't ever need to worry? I mean do any of the CPU intensive games today even use full load of my Ryzen 5 2600x?
 
I don't think limiting a modern game to a single core is necessarily a good example. The game is undoubtedly using a number of software threads at different priority levels that are fighting one another for CPU cycles. A higher-priority thread could be choking out lower-priority ones, leading to major performance issues when on a single core.
Yes and this happens in a lot of games even on manycored CPUs.
This game though is hitting very high FPS and not only that but stable FPS with a single core/1t.
The place is chosen so that It's not choked at all.
In a realistic scenario on modern hardware, at least two physical cores would be active though, and once you get to six physical cores, it would likely be really hard to find a similar scenario that can choke performance as seen there, so the potential benefits of SMT would be lower. So while it might have had a significant effect on performance in that example, that's not a very realistic example.
Yes I completely agree with what you say,still words like best case scenario have a specific meaning...and in a best case scenario HTT adds 100% performance,if you (someone) already has way too many cores for this to apply in real life that's a completely different topic,HTT can still add 100% .
Of course adding 6 additional threads to 6 already available cores is going to be underwhelming for anything else except for what you already mentioned,3d and video.
Also multitasking becomes more and more a big thing so if you constrict a game to one single core(or two depending on the game) so that the rest of the cores can be used for something else HTT can make a huge difference there because the percentage of CPU that the game will take up will be considerably smaller.
The only kind of realistic workload likely to fully saturate 12 hardware threads would be something that can split up a task into many similar pieces, like video encoding, rendering or compression software.
Yes or a number of different softwares and if you never going to run this kind of workload that many threads will be complete overkill and a waste of money.
 
How interesting... I am glad I asked. So as a gaming rig do you guys think I would ever really have to worry about 12 threads and six cores not being sufficient? Sounds like to me unless I am doing extensive workstation type stuff like video editing I shouldn't ever need to worry? I mean do any of the CPU intensive games today even use full load of my Ryzen 5 2600x?
That's a different story altogether,there are some games that use up all available cores/threads but without giving you any more performance...the new assassins creed titles or ashes of the singularity for example they use up a 2600 pretty much completely but are still not running any faster then on a intel quad core+htt.
 
How interesting... I am glad I asked. So as a gaming rig do you guys think I would ever really have to worry about 12 threads and six cores not being sufficient? Sounds like to me unless I am doing extensive workstation type stuff like video editing I shouldn't ever need to worry? I mean do any of the CPU intensive games today even use full load of my Ryzen 5 2600x?

I guess it comes down to how games are being designed years down the line, which is difficult to say right now. Currently, I don't see much benefit to going with more than 6 cores / 12 threads for existing games, and I doubt games will benefit much from higher core counts within the next couple years, at least if one isn't recording or streaming their gameplay on the same system. A new generation of consoles will likely be coming out in a year or two though, and they will have faster processors than the current ones do, so it's possible that CPU demands could increase for some upcoming PC releases as well. Overall, six cores with SMT seems like a good option for the near-future though.

As for CPU-intensive games, I don't think any will fully utilize the resources of all available cores on such a processor, at least not in a meaningful way. More likely, one demanding software thread will be limited by the performance of the core that it's running on, and the other cores will only be partially utilized.
 
Interesting, so in terms of gaming, would it be fair to say some games are optimized to use the available threads and split processes if they are made available, but at the same time will show no advantage over a intel quad core chip that does all the work on its 4 cores. @TerryLaze I will never run that kind of workload myself, but I guess I didn't see it as a waste of money when the Ryzen 5 2600x is cheaper than most intel based cpus but can handle same or sometimes better performance.
 
For example my current i5 4690k processor from Haswell is still more expensive than my recent purchase of Ryzen 5 2600x infact it avgs out to be about $72 more, yet the Ryzen outperforms the i5 in nearly every aspect except single core OC
 
The i5 4690k has a +292% hugely higher market share than your i7 8086k, its also +12% more popular, and has much more value and sentiment, and with that all said your current cpu is WAY more recent. Therefore the i5 4690k is def not suffering from scarcity. There is not short supply of i5 haswells.
 
I dont know what my processor (that was part of the 40th anniversary event btw) has to do with this conversation.
The scarcity comes from the 4690k being discontinued nearly 2 years ago.
Intel does not set pricing, hence the MSRP is the same. Its retailers with dwindling stocks charging more because someone will buy it.
 
The i5 4690k has a +292% hugely higher market share than your i7 8086k, its also +12% more popular, and has much more value and sentiment, and with that all said your current cpu is WAY more recent. Therefore the i5 4690k is def not suffering from scarcity. There is not short supply of i5 haswells.

Um where do you get those numbers, userbenchmark? You do realize that "marketshare" is unique CPUs in the wild that have tested in userbenchmark. Go to any major retailer and try to buy a "new" 4690k right now. If they even have them its with 3rd party sellers who set the price, often far beyond what the CPU is worth (many times because they don't even have it in stock but want to keep the listing open). Newegg, Amazon, Microcenter, etc do not have new stock of this processor and haven't for years.

Aside from the fact what in the world does marketshare between what he owns and the 4690k have to do with anything?
 
I made the comparison because it justified the false statement that i5 4690k is scarce. What does the CPU being new, used, refurb, have to do with it? It's my forum. It will be about whatever I make of it. If you dont like what I posted in my own forum you do not need to comment
 
I made the comparison because it justified the false statement that i5 4690k is scarce. What does the CPU being new, used, refurb, have to do with it? It's my forum. It will be about whatever I make of it. If you dont like what I posted in my own forum you do not need to comment

I think you misunderstood his comment, by scarce he means Its hard to go out and purchase, which is completely true, thats why the price you are seeing is so high, because there are very few out there available to purchase new.

The reality is in terms of "value" the 4690k is not worth the prices being asked for the scarce few remaining new ones out there.
 
I didn't misunderstand , I'm not here to argue on my own post. I can easily pick up a i5 4690k. Just searched it on Amazon. Many 3rd party retailers selling it both new and used. Like I said though I'm not going to sit here and argue about something so stupid. Just forget about it and move on please.
 
I didn't misunderstand , I'm not here to argue on my own post. I can easily pick up a i5 4690k. Just searched it on Amazon. Many 3rd party retailers selling it both new and used. Like I said though I'm not going to sit here and argue about something so stupid. Just forget about it and move on please.

Its on Amazon from 3rd party sellers, at $303 because its scarce, a processor that MSRP was $240 and often sold for $199, thats the point. There are 2 in stock at that price, there are a total of 11 new ones available for increasing prices. You can get them still because nobody is buying them anymore. There is no warehouse full of 4690k's like there was say 5 years ago. Again walk into any retailer you WILL NOT find one on the shelf.

If you don't want to talk about something don't make a statement on a public forum and then throw a tantrum when you are called on about it.
 
  • Like
Reactions: TJ Hooker
Status
Not open for further replies.