Help me explain cores and threads to my neighbor

JEDI

Lifer
Sep 25, 2001
29,391
2,736
126
he knows enuf about buzzwords to be dangerous.

he thinks the i3 and i5 are almost the same because they both have 4 threads.

i tried to explain to him that in the i5 each thread has it's own resources (ie: cache) whereas the 2 threads in each core of the i3 shares resources. went over his head. swoosh....

anyone for a simplier explaination?
 

masteryoda34

Golden Member
Dec 17, 2007
1,399
3
81
imagine a conduit carrying water.

1 core = 1 conduit
1 core with hypertheading = 1 conduit with 2 funnels on the input
 

dma0991

Platinum Member
Mar 17, 2011
2,723
1
0
Tell him that 4 persons can do any job(carrying boxes etc) faster than 2 persons each with 4 hands.
 

DominionSeraph

Diamond Member
Jul 22, 2009
8,386
32
91
Tell him that 4 persons can do any job(carrying boxes etc) faster than 2 persons each with 4 hands.

But 4 people with 1 hand each aren't necessarily faster than 2 with 2 hands.
A hand for a thread is a lousy analogy because each hand can do its own work, while a thread needs a core.

OP, ask him this: "If you put the airbox of a 300HP V8 onto a 150HP 4-cylinder, does the 4 cylinder now have 300HP?"
The bigger airbox removes some of the inefficiency of the 4-cylinder, but it still only has 4 cylinders!
 
Last edited:

bononos

Diamond Member
Aug 21, 2011
3,913
172
106
But 4 people with 1 hand each aren't necessarily faster than 2 with 2 hands.
A hand for a thread is a lousy analogy because each hand can do its own work, while a thread needs a core.

OP, ask him this: "If you put the airbox of a 300HP V8 onto a 150HP 4-cylinder, does the 4 cylinder now have 300HP?"
The bigger airbox removes some of the inefficiency of the 4-cylinder, but it still only has 4 cylinders!

He meant 4 people with 2 hands EACH can perform a job faster than 2 people with 4 hands EACH. Its a good analogy.
 

dma0991

Platinum Member
Mar 17, 2011
2,723
1
0
But 4 people with 1 hand each aren't necessarily faster than 2 with 2 hands.
A hand for a thread is a lousy analogy because each hand can do its own work, while a thread needs a core.
If it is true that each hand can perform its own work, I could change from carrying boxes to writing a 4 part essay. 4 persons with 1 hand can write the essay without any issues versus 2 persons who would have to write with both their hands to keep up. I can't write with both hands and I don't think I could find anybody within a 100m that could actually do that simultaneously.

We have yet to come to the other limitations like the brain and eyes.
 

DominionSeraph

Diamond Member
Jul 22, 2009
8,386
32
91
He meant 4 people with 2 hands EACH can perform a job faster than 2 people with 4 hands EACH. Its a good analogy.

2 people with 4 hands each can move 8 ping pong balls across a room just as fast as 4 people with 2 hands. Possibly even faster as they're not gonna be bumping into each other.
So it says the i3 is just as fast if not faster than the i5 at parallel tasks. Wow, what a great analogy. :rolleyes:
 
Last edited:

LOL_Wut_Axel

Diamond Member
Mar 26, 2011
4,310
8
81
Say to him that it is a dual-core with Hyper-Threading and explain to him that the i5 is a quad-core without Hyper-Threading. Tell him that Hyper-Threading takes those two cores on the i3 and virtually splits them into half, which is how it has four threads. The i5 has four cores but it doesn't split them into half.

The difference is that even they both have four threads, the ones on the i3 are simpler because they're split in half whereas the ones on the i5 are complete.

If he can't understand that then just give up and tell him the i5 is faster because it has 50% more real fairy dust.
 

LOL_Wut_Axel

Diamond Member
Mar 26, 2011
4,310
8
81
wat

Nothing about Hyperthreading makes threads "simpler."

You love to argue just for the hell of it, don't you?

Hyper-Threading essentially splits a single core into two so they can make more efficient use of the core's pipeline. Those four threads are simpler than the four threads in the i5 because the ones on the i5 not being "split".
 

VirtualLarry

No Lifer
Aug 25, 2001
56,570
10,196
126
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.
 

Belegost

Golden Member
Feb 20, 2001
1,807
19
81
I think a good analogy would be in painting a room.

You have 4 walls that need to be painted, with 4 people, each painting one wall. But, you can either have 4 brushes and 4 rollers and 4 cans of paint, or 2 brushes and 2 rollers and 2 cans of paint.

Now, if you have 2 of each, then the painters need to share brushes and rollers and buckets, if everything is good they share so that each one has either a brush or a roller when they need it, and the paint moves around efficiently. But, if the workload is not just right, then you're going to have 1 guy standing around waiting for a roller, or a guy sitting on his butt waiting to get more paint.

But if each painter has his own brush and roller and bucket, they can be working full out the whole time without having to worry about what the other people are doing.
 

Dufus

Senior member
Sep 20, 2010
675
119
101
Might be easier to show with an example. At the same clocks run Linpack Benchmark

  1. i3 Linpack 1 thread
  2. i3 Linpack 2 threads (different cores).
  3. i3 Linpack 2 threads (same core).
  4. i3 Linpack 4 threads.
  5. i5 Linpack 1 thread.
  6. i5 Linpack 2 threads.
  7. i5 Linpack 4 threads.
The performance values should speak for themselves.
 
Last edited:

podspi

Golden Member
Jan 11, 2011
1,982
102
106
He knows what a core is, right? Tell him this: i3 has two cores that can multitask, while the i5 has 4 cores that can't. If you had four things to get done at once, which would you prefer? Two cores multitasking, or 4 focusing on what they're doing?
 

Matt1970

Lifer
Mar 19, 2007
12,320
3
0
I think a good analogy would be in painting a room.

You have 4 walls that need to be painted, with 4 people, each painting one wall. But, you can either have 4 brushes and 4 rollers and 4 cans of paint, or 2 brushes and 2 rollers and 2 cans of paint.

Now, if you have 2 of each, then the painters need to share brushes and rollers and buckets, if everything is good they share so that each one has either a brush or a roller when they need it, and the paint moves around efficiently. But, if the workload is not just right, then you're going to have 1 guy standing around waiting for a roller, or a guy sitting on his butt waiting to get more paint.

But if each painter has his own brush and roller and bucket, they can be working full out the whole time without having to worry about what the other people are doing.

I like the painting refrence but let me spin it this way. Each person painting a wall represents a core. However long it takes to paint that wall is measured in cycles but nobody can start a new wall to paint untill a cycle is over. Hyperthreading allows them to start the next wall without waiting for the current cycle to end.
 

HutchinsonJC

Senior member
Apr 15, 2007
466
205
126
I kinda liked the writing example by dma0991, though I feel it was too brief.

A normal single person can write one essay at a time. You can try to write two separate essays with each hand, but you're not going to do it well. Alternatively, you can probably more easily bounce two balls at the same time with your two hands. This lines up with a single core with hyperthreading: Two simpler tasks can be done on a single core with hyperthreading without too much of a problem.

If you increase the difficulty of the tasks you want done simultaneously, then you'd benefit more from having another person helping you... AKA: another core/brain that has its own separate resources (its own hands).

If the tasks are simple enough, hyperthreading is good enough; it's like using both of your hands instead of acting like you've got one hand tied behind your back.
 
Last edited:

Concillian

Diamond Member
May 26, 2004
3,751
8
81
Each core is a Chinese prison worker farming WoW gold.

Would you collect gold faster by having:
- 4 Chinese prison workers each with one instance of WoW running full screen
or
- 2 Chinese prison workers, each with two instances of WoW running full screen and alt-tabbing back and forth.

Assume for this example that all workers have the same waking and sleeping hours. Also that all Chinese prison workers are of equal capability (which is not really the case, since the i5 Chinese prison workers with names ending in k can be overclocked, while the someone has clock-blocked us from all of the i3 Chinese prison workers)
 

IntelUser2000

Elite Member
Oct 14, 2003
8,686
3,786
136
The car analogy doesn't make sense because having a V8 engine doesn't make it more efficient than a V4 engine. It's like 2 cores vs 1 core.

Try this one.

Imagine several people are tasked with sorting Apples. The Apples given are random(there are lots of them like Red Delicious, Lady Apple, Baldwin Apple, etc), its up to the person receiving them to sort it out. Now let's say 1 thread equals 1 Apple/second.

Person sorting the Apples = Cores
1 Apple/second = 1 thread

4 cores without Hyperthreading is like having 4 people sorting Apples and each of them receiving it 1 Apple/second.

But certainly, sorting it faster than 1 Apple/second is possible. Say now you double the rate to 2 Apples/second. Imagine that's Hyperthreading.

2 cores with Hyperthreading = 2 people, each receiving Apples at a rate of 2 Apples/second.

Most people should be able to sort Apples at faster than 1 Apple/second right? But can they do it at twice the rate? Maybe because its too fast they need to think in between and they won't do it at twice the rate.

If you have double the people sorting it though, they should be able to do it twice as fast. The speed isn't so fast that they get confused.
 
Last edited:

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
Cores are people and hyperthreading is just a person who has said he/she can do 2 things at once instead of 1 thing. Sometimes doing 2 things at once is more efficient, sometimes its less efficient but it doesn't change the amount of resources available.
 

yours truly

Golden Member
Aug 19, 2006
1,026
1
81
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.

I think you've used this analogy before and it makes sense to me. The people scanning the goods are the cores and hyperthreading could be the people packing the groceries.
 

Gryz

Golden Member
Aug 28, 2010
1,551
204
106
2 Craftsmen at 1 workbench.

A craftsman does not constantly use his workbench. He sometimes has to go get materials, or use large tools not at the workbench. He sometimes takes a small break, takes a piss, goes get a drink. During the times he is not using his workbench, the other blacksmith can use it. It they are lucky they need the workbench about 50% of the time, then they can both work full speed. But if they use the workbench a lot, then the other craftsman is standing there waiting most of the time. It depends on the application (what the craftsman is building/doing).

Threads are the craftsman.
Cores are the workbenches.
Multicore is having more than 1 workbench (and more than 1 craftsman).
Bad multicore-performance of an application means you have many workbenches laying idle, but only 1 blacksmith working.
Hyperthreading is having more than 1 craftsman per workbench.

On average, having hyperthreading increases performance of an application by 10-20% at most. That is because a craftsman spends 80-90% of its time at the workbench. So the workbench can be utilized only 10-20% more efficient.
 
Last edited: