• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Help me explain cores and threads to my neighbor

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.
Just tell him the truth, hyper threading is a means of keeping each cpu core as busy as possible by tricking operating systems into thinking one CPU core is 2.
 
If your neighbour is not technically oriented, then is he asking you to make a decision for him?

If so, you shouldn't be spending time explaining the technicalities of threading and cores to him, because he really doesn't actually need to care about them.

Instead, just find work out what will give them the best value for their money, and steer them towards that.

Be careful that you're not chasing the buzzwords. Just because you know what they mean doesn't mean that you need one.
 
A core is designed to handle one task at a time. That will inevitably lead to some of the processor resources not being used during a task. Hyperthreading allows those unused resources to start the next task rather than waiting for the current task to finish.
 
Woah this thread got complicated. nice posts guys. Here is my take on it, someone correct me if Im wrong.

Difference between a quad core with 4 core and 8 threads compared to just 4 threads quad.

What is it, do we need it ???

What are these extra threads. They are for 64 bit HT apps. Meaning he can use the extra threads. Do you do video editing or audio production or Photoshop, Vegas ? They are all 64bit HT apps meaning they will take advantage of the 8 threads. If you dont use these apps you dont need the HT processor l.. plain and simple. thx

It acts like a core and lifts up your cpu power by 20 to 30 percent. 🙂
 
Woah this thread got complicated. nice posts guys. Here is my take on it, someone correct me if Im wrong.

Difference between a quad core with 4 core and 8 threads compared to just 4 threads quad.

What is it, do we need it ???

What are these extra threads. They are for 64 bit HT apps. Meaning he can use the extra threads. Do you do video editing or audio production or Photoshop, Vegas ? They are all 64bit HT apps meaning they will take advantage of the 8 threads. If you dont use these apps you dont need the HT processor l.. plain and simple. thx

It acts like a core and lifts up your cpu power by 20 to 30 percent. 🙂

NO, just NO.

The HT simply allows more simultaneous tasks, but schedules them in the 4 cores.

It has nothing to do with 64 bit HT apps.
 
How about just saying that the second threads of each core of the i3 run at slower speed, while the i5 runs all four threads at full speed?
 
hyperthreading doesn't match up well with normal threading analogies.

in a normal situation explaining threading i like to use the Oracle T3 processor to explain, as it has 8 whole threads per core.
you basically have 8 workloads, waiting to be processed, and then one functional unit that can visit those threads and execute an instruction

so for a math comparison, imagine 8 math problems coming in (8+8, 2x3, 38+1, 2^30, etc) and just one mathematician to go back and forth completing them.
now at the face of this, this seems really counterproductive, letting 8 just sit there. but if your main slowdown is getting the math problems to his desk... then you may have made that significantly faster by having 8 slots on his desk.

with hyperthreading it's not the same comparison.
I would draw the comparison with highway lanes and motorcycles. if you have 4 lanes, and you don't permit motorcycles, you can fit 4 cars wide on the highway. In some states, lanes are 1.5 axles, so motorcycles can utilize the unoccupied space. So in that situation, 8 things might be able to get through, but it's not 8 lanes.
 
thread ~= to do list
core ~= worker

i3 ~= 4 to do lists at once for 2 workers
i5 ~= 4 to do lists at once for 4 workers + coffee (turbo)
 
Hyperthreading is not just "air", like it was back in 2003.

A case of ~30% increase in minimum framerate in an actually legitimate use:
http://www.sweclockers.com/image/diagram/2052?k=4ddc243fb5785a78d2c083cd11a81d3e

Another example of up to ~70%! increase from hyperthreading:
http://www.tomshardware.com/reviews/hp-z400-workstation,2718-8.html

edit Woops, misread your post... Ignore the first paragraph.

Hyperthreading wasn't "air" in 2003. In 2003, one of the biggest drawbacks was the lack of cache and slow memory speeds. The processors were starved for data to crunch.

Now, we have much faster data transfer speeds and larger caches. HT makes more sense.

Now, to the what it is. Each CPU has different parts. HT is an attempt to efficiently use all of those parts.

Think of it like a workshop in the US. It might have 2 hammers, 3 screwdrivers, and 1 bandsaw. One part could come through which needs only the 2 hammers to build. Hyperthreading is putting two parts requests through on the same workshop. So when the two hammers are being used, the workshop can say "Ok, what does the next plan need?" If the next plan doesn't need a hammer, then the workshop can start work on it.

Now, the downside is that if two plans come through needing the exact same parts to be completed, there is little to no benefit to doing it this way. However, if you have two plans that use completely different parts, they will see a significant speed increase.

Multiple cores is like having multiple workshops.
 
Tell him that the i5 is like grocery shopping with 4 people, and they open 4 checkout lanes, one for each person. Then tell him that the i3 is like four people grocery shopping, but they only have two checkout lanes open.

Ask him which way will the four shoppers finish their task faster.

Thats pretty good, id go with that.
:thumbsup:
 
The last time I made bread it took a two hours because I had to mix the ingredients and let them rise before I could bake. My oven held two loves and the actual baking time was one hour. If I was having a party that required 4 loaves, I could start the second batch/thread while the first was baking, so it only took 3 hours to make 4 loaves. If I had an identically talented clone with his own oven, the two of us could bake 4 loves in two hours rather than the 3 hours it takes me working alone. That is the difference between two threads with hyper-threading versus two cores.
 
I actually like the painting analogy the best, but with a tweak.

Comparing i3 versus i5:

i5 - four painters with four rollers. Each uses a roller and works on a separate wall. The room gets done quickly.

i3 - two painters with four rollers. Each has two hands so technically they can each use two rollers simultaneously. However, for obvious reasons this doesn't work out too well and they are nowhere even close to equal to four painters.
 
All these allegories explain multi-threading. How having 4 cores is better when running software that has 4 threads, than having only 2 cores. However, none of them touch the issue of hyper-threading itself. Why is 4 cores/8 hw-threads better than 4 cores/4 hw-threads, but not a lot better ?
 
All these allegories explain multi-threading. How having 4 cores is better when running software that has 4 threads, than having only 2 cores. However, none of them touch the issue of hyper-threading itself. Why is 4 cores/8 hw-threads better than 4 cores/4 hw-threads, but not a lot better ?

I thought almost all did since the analogies used examples of shared resources. like the painters with 4 arms(shared head-torso-legs) just above your post and the shared workbenches.
 
Tell him that the i5 is like grocery shopping with 4 people, and they open 4 checkout lanes, one for each person. Then tell him that the i3 is like four people grocery shopping, but they only have two checkout lanes open.

Ask him which way will the four shoppers finish their task faster.

The Hyperthreading portion is like an express lane- 10 items or less only; sometimes it's very effective, sometimes not much at all, and sometimes somewhere in between.
 
I guess the best examples would be those that include different resources.

A Single Core non-hyperthreaded chip (x1 Thread - one person) can only do one of the following at a time: Shuffle cards (hands), juggle (hands), run (legs), skip (legs).

A Single Core hyperthreaded chip (x2 Threads - a single talented person) can do two tasks at the same time that require different resources: shuffle & run, shuffle & skip, juggle & run, or juggle & skip. The end result here is that the two tasks requiring different resources are typically only done at about 55 to 70% efficiency (running at 55% speed and shuffling at 55% speed for example). Doing two things at 55 to 70% efficiency brings your total efficiency on a single core up to 110 to 140%. Not a significant improvement over doing one thing at a time, but a welcome improvement regardless.

A Dual Core chip with no hyperthreading (x2 Threads - two separate people) can do two things even if they would typically require the same resources on a single core chip: Shuffle Cards & Juggle at the same time, or run and skip at the same time. Efficiency here is about 200%; each task done at 100% efficiency on two separate cores.
 
Last edited:
1 Core = One delicious Cupcake
2 Cores = Two Delicious Cupcakes
4 Cores = Four Delicious Cupcakes
and so on

Now, your mouth can comfortably eat one cupcake, you can shove more in there forcibly but that doesn't mean your going to eat all those cupcakes quicker unless you have a large mouth(Software) to handle them.
 
And if you want the real explanation, instead of analogies, here it is in a nutshell.

Your computer has X number of jobs/tasks it is working on at any given time (these jobs/tasks are also commonly referred to as threads). It also has Y physical cores and potentially Z 'software' cores if Hyper Threading is enabled. Z always = 2*Y (two software cores per physical core).

Now, when your operating system sends a request to the CPU to have a task worked on, the next available core is assigned to the task. If the core assigned to is a true physical core, it goes to work right away (meaning job will be done promptly). If the core is a software core, the task goes into a queue - if the physical core associated with that software core isn't already working on something else, it will begin work immediately. If not though, the task will have to wait in line until the core frees up.

Your computer typically has many more tasks running than it has cores available (X bigger than Y or Z). The tasks are prioritized based on your software settings (if you're encoding a movie and have set the program to run at high priority, its requests will be scheduled ahead of other random stuff running in the background) and tasks are assigned to cores as they free up. More physical cores means stuff gets done faster. More software cores means tasks get scheduled more efficiently and the physical cores stay busy a higher percentage of the time. As soon as a core finishes what it's working on there is already another task scheduled on its secondary software core. (Compare that to a non-HT cpu where a core finishes up work and then has to wait for some length of time for a new task to be assigned.)

What all this means is that HT allows your physical cores to operate more efficiently but does not yield the kind of gains seen from additional physical cores. HT typically adds somewhere between 25-40% in efficiency gains per core being used, so a dual core with HT will function like 2.5-3 cores, a quad core like 5-6 cores when under heavy load and running software that takes advantage of that many cores.

And there's the real grind - much of the consumer software out there takes advantage of two cores or maybe even four cores but very little goes above that point. So if your particular software doesn't support as many physical cores than you have, they will not help at all in your work, other than simply to run other tasks in the background.

An example of this is the game Starcraft 2, which only supports two physical cores. There's essentially no difference between 2/4/6 physical cores in this game, the only thing that matters is providing two very, very fast cores. So Intel's Turbo Boost helps here, as it shuts down unused cores and pushes the working cores faster.

Hope this helps.
🙂
 
The car analogy doesn't make sense because having a V8 engine doesn't make it more efficient than a V4 engine.

Who is saying that the i5 is more efficient? We're putting the bigger airbox on the 4-cylinder, not the 8. The cores themselves are the same.

Just tell him the truth

Or just forget about him. Who cares if he gets an i3?
Conservatards gonna 'tard. Only way they learn is by faceplanting.

What all this means is that HT allows your physical cores to operate more efficiently but does not yield the kind of gains seen from additional physical cores. HT typically adds somewhere between 25-40% in efficiency gains per core being used, so a dual core with HT will function like 2.5-3 cores, a quad core like 5-6 cores when under heavy load and running software that takes advantage of that many cores.

Even Intel's marketing only claims 30%.
"Typical" is going to be more in the -2%-+10% range.
 
Last edited:
Back
Top