What is the difference between hyper-threading and multiple cores?
In a conversation with the network administator, I mentioned that my machine was a dual-core. He told me it was not. I brought up the task manager, went to the perfomance tab, and showed him that there are two separate CPU usage graphs. I have a quad-core machine at home and it has four graphs. He told there were two graphs on this particular machine because of hyper-threading. I used to have a hyper-thread pentium 4 processor back in the day, but I never fully understood what it meant. So what is the difference between hyper threading and dual-core? And how do you tell which one you have?
cpu multi-core hyper-threading
add a comment |
In a conversation with the network administator, I mentioned that my machine was a dual-core. He told me it was not. I brought up the task manager, went to the perfomance tab, and showed him that there are two separate CPU usage graphs. I have a quad-core machine at home and it has four graphs. He told there were two graphs on this particular machine because of hyper-threading. I used to have a hyper-thread pentium 4 processor back in the day, but I never fully understood what it meant. So what is the difference between hyper threading and dual-core? And how do you tell which one you have?
cpu multi-core hyper-threading
add a comment |
In a conversation with the network administator, I mentioned that my machine was a dual-core. He told me it was not. I brought up the task manager, went to the perfomance tab, and showed him that there are two separate CPU usage graphs. I have a quad-core machine at home and it has four graphs. He told there were two graphs on this particular machine because of hyper-threading. I used to have a hyper-thread pentium 4 processor back in the day, but I never fully understood what it meant. So what is the difference between hyper threading and dual-core? And how do you tell which one you have?
cpu multi-core hyper-threading
In a conversation with the network administator, I mentioned that my machine was a dual-core. He told me it was not. I brought up the task manager, went to the perfomance tab, and showed him that there are two separate CPU usage graphs. I have a quad-core machine at home and it has four graphs. He told there were two graphs on this particular machine because of hyper-threading. I used to have a hyper-thread pentium 4 processor back in the day, but I never fully understood what it meant. So what is the difference between hyper threading and dual-core? And how do you tell which one you have?
cpu multi-core hyper-threading
cpu multi-core hyper-threading
edited May 7 '18 at 8:18
Ciro Santilli 新疆改造中心 六四事件 法轮功
3,99622734
3,99622734
asked Apr 20 '10 at 19:22
Josh StodolaJosh Stodola
3503829
3503829
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
Hyper-threading exposes multiple logical cores for a single physical CPU core. In simple terms, hyper-threading makes context-switching more efficient for each CPU core.
Dual-core chips, on the other hand, actually have two physical CPU cores which can execute different processes simultaneously.
There are also other multi-core chips that have many more than two cores, and--as Svish mentioned--Intel's latest multi-core offerings also support Hyper-threading on all the cores.
You can use a CPU identification utility like CPU-Z to determine how many cores you have. As you can see near the bottom of the screenshot, the CPU in this case has 2 physical cores. If the number of threads is higher than the number of cores, Hyper-threading is enabled. To-date all consumer-oriented CPUs with Hyper-threading have 2 threads per core, so if HT is enabled, the number of threads will be 2x the number of cores.
If you have an Intel CPU, you can download Intel's CPU ID utility instead.
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
2
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
|
show 1 more comment
Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.
The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.
See also: This question
add a comment |
Hyperthreading is a cheaper and slower alternative to having dual-cores
TODO it is slower by how much percent in average in real applications?
Hyperthreading is possible because modern single CPUs cores already execute multiple instructions at once with the instruction pipeline https://en.wikipedia.org/wiki/Instruction_pipelining
The instruction pipeline is a separation of functions inside of a single core to ensure that each part of the circuit is used at any given time: reading memory, decoding instructions, executing instructions, etc.
Hyperthreading separates functions further by using:
a single backend, which actually runs the instructions with its pipeline.
Dual core has two backends, which explains the greater cost and performance.
two front-ends, which take two streams of instructions and order them in a way to maximize pipelining usage of the single backend by avoiding hazards.
Dual core would also have 2 front-ends, one for each backend.
There are edge cases where instruction reordering produces no benefit, making hyperthreading useless. But it produces a significant improvement in average.
Two hyperthreads in a single core share further cache levels (TODO how many? L1?) than two different cores, which share only L3, see:
- https://stackoverflow.com/questions/4802565/multiple-threads-and-cpu-cache/54018751#54018751
- hhttps://stackoverflow.com/questions/944966/how-are-cache-memories-shared-in-multicore-intel-cpus/33510874#33510874
The interface that each hyperthread exposes to the operating system is similar to that of an actual core, and both can be controlled separately. Thus cat /proc/cpuinfo
shows me 4 processors, even though I only have 2 cores with 2 hyperthreads each.
Operating systems can however take advantage of knowing which hyperthreads are on the same core to run multiple threads of a given program on a single core, which might improve cache usage.
This LinusTechTips video contains a light-hearted non-technical explanation: https://www.youtube.com/watch?v=wnS50lJicXc
The Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015 8.7 "INTEL HYPER-THREADING TECHNOLOGY ARCHITECTURE" describes HT briefly. It contains the following diagram:
1
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
1
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f133082%2fwhat-is-the-difference-between-hyper-threading-and-multiple-cores%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Hyper-threading exposes multiple logical cores for a single physical CPU core. In simple terms, hyper-threading makes context-switching more efficient for each CPU core.
Dual-core chips, on the other hand, actually have two physical CPU cores which can execute different processes simultaneously.
There are also other multi-core chips that have many more than two cores, and--as Svish mentioned--Intel's latest multi-core offerings also support Hyper-threading on all the cores.
You can use a CPU identification utility like CPU-Z to determine how many cores you have. As you can see near the bottom of the screenshot, the CPU in this case has 2 physical cores. If the number of threads is higher than the number of cores, Hyper-threading is enabled. To-date all consumer-oriented CPUs with Hyper-threading have 2 threads per core, so if HT is enabled, the number of threads will be 2x the number of cores.
If you have an Intel CPU, you can download Intel's CPU ID utility instead.
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
2
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
|
show 1 more comment
Hyper-threading exposes multiple logical cores for a single physical CPU core. In simple terms, hyper-threading makes context-switching more efficient for each CPU core.
Dual-core chips, on the other hand, actually have two physical CPU cores which can execute different processes simultaneously.
There are also other multi-core chips that have many more than two cores, and--as Svish mentioned--Intel's latest multi-core offerings also support Hyper-threading on all the cores.
You can use a CPU identification utility like CPU-Z to determine how many cores you have. As you can see near the bottom of the screenshot, the CPU in this case has 2 physical cores. If the number of threads is higher than the number of cores, Hyper-threading is enabled. To-date all consumer-oriented CPUs with Hyper-threading have 2 threads per core, so if HT is enabled, the number of threads will be 2x the number of cores.
If you have an Intel CPU, you can download Intel's CPU ID utility instead.
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
2
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
|
show 1 more comment
Hyper-threading exposes multiple logical cores for a single physical CPU core. In simple terms, hyper-threading makes context-switching more efficient for each CPU core.
Dual-core chips, on the other hand, actually have two physical CPU cores which can execute different processes simultaneously.
There are also other multi-core chips that have many more than two cores, and--as Svish mentioned--Intel's latest multi-core offerings also support Hyper-threading on all the cores.
You can use a CPU identification utility like CPU-Z to determine how many cores you have. As you can see near the bottom of the screenshot, the CPU in this case has 2 physical cores. If the number of threads is higher than the number of cores, Hyper-threading is enabled. To-date all consumer-oriented CPUs with Hyper-threading have 2 threads per core, so if HT is enabled, the number of threads will be 2x the number of cores.
If you have an Intel CPU, you can download Intel's CPU ID utility instead.
Hyper-threading exposes multiple logical cores for a single physical CPU core. In simple terms, hyper-threading makes context-switching more efficient for each CPU core.
Dual-core chips, on the other hand, actually have two physical CPU cores which can execute different processes simultaneously.
There are also other multi-core chips that have many more than two cores, and--as Svish mentioned--Intel's latest multi-core offerings also support Hyper-threading on all the cores.
You can use a CPU identification utility like CPU-Z to determine how many cores you have. As you can see near the bottom of the screenshot, the CPU in this case has 2 physical cores. If the number of threads is higher than the number of cores, Hyper-threading is enabled. To-date all consumer-oriented CPUs with Hyper-threading have 2 threads per core, so if HT is enabled, the number of threads will be 2x the number of cores.
If you have an Intel CPU, you can download Intel's CPU ID utility instead.
edited Feb 23 '12 at 21:21
answered Apr 20 '10 at 19:28
robrob
12.2k43979
12.2k43979
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
2
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
|
show 1 more comment
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
2
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
And multi-core chips that supports hyper-threading so you get twice the amount of logical cores.
– Svish
Apr 20 '10 at 19:40
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
Thank! How do I tell (from within the OS) which type of CPU I have?
– Josh Stodola
Apr 20 '10 at 19:56
2
2
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The UltraSparc T2+ has 8 Cores, each of which supporting 8 threads making it a 64 virtual CPUs on a single chip: en.wikipedia.org/wiki/UltraSPARC_T2
– jlliagre
Apr 20 '10 at 19:59
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
The way to know the CPU you have depends on the OS you are running.
– jlliagre
Apr 20 '10 at 20:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
@jilliagre: nice!
– rob
Apr 20 '10 at 21:00
|
show 1 more comment
Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.
The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.
See also: This question
add a comment |
Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.
The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.
See also: This question
add a comment |
Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.
The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.
See also: This question
Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.
The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.
See also: This question
edited Mar 20 '17 at 10:17
Community♦
1
1
answered Apr 20 '10 at 19:55
EarlzEarlz
2,390165178
2,390165178
add a comment |
add a comment |
Hyperthreading is a cheaper and slower alternative to having dual-cores
TODO it is slower by how much percent in average in real applications?
Hyperthreading is possible because modern single CPUs cores already execute multiple instructions at once with the instruction pipeline https://en.wikipedia.org/wiki/Instruction_pipelining
The instruction pipeline is a separation of functions inside of a single core to ensure that each part of the circuit is used at any given time: reading memory, decoding instructions, executing instructions, etc.
Hyperthreading separates functions further by using:
a single backend, which actually runs the instructions with its pipeline.
Dual core has two backends, which explains the greater cost and performance.
two front-ends, which take two streams of instructions and order them in a way to maximize pipelining usage of the single backend by avoiding hazards.
Dual core would also have 2 front-ends, one for each backend.
There are edge cases where instruction reordering produces no benefit, making hyperthreading useless. But it produces a significant improvement in average.
Two hyperthreads in a single core share further cache levels (TODO how many? L1?) than two different cores, which share only L3, see:
- https://stackoverflow.com/questions/4802565/multiple-threads-and-cpu-cache/54018751#54018751
- hhttps://stackoverflow.com/questions/944966/how-are-cache-memories-shared-in-multicore-intel-cpus/33510874#33510874
The interface that each hyperthread exposes to the operating system is similar to that of an actual core, and both can be controlled separately. Thus cat /proc/cpuinfo
shows me 4 processors, even though I only have 2 cores with 2 hyperthreads each.
Operating systems can however take advantage of knowing which hyperthreads are on the same core to run multiple threads of a given program on a single core, which might improve cache usage.
This LinusTechTips video contains a light-hearted non-technical explanation: https://www.youtube.com/watch?v=wnS50lJicXc
The Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015 8.7 "INTEL HYPER-THREADING TECHNOLOGY ARCHITECTURE" describes HT briefly. It contains the following diagram:
1
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
1
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
add a comment |
Hyperthreading is a cheaper and slower alternative to having dual-cores
TODO it is slower by how much percent in average in real applications?
Hyperthreading is possible because modern single CPUs cores already execute multiple instructions at once with the instruction pipeline https://en.wikipedia.org/wiki/Instruction_pipelining
The instruction pipeline is a separation of functions inside of a single core to ensure that each part of the circuit is used at any given time: reading memory, decoding instructions, executing instructions, etc.
Hyperthreading separates functions further by using:
a single backend, which actually runs the instructions with its pipeline.
Dual core has two backends, which explains the greater cost and performance.
two front-ends, which take two streams of instructions and order them in a way to maximize pipelining usage of the single backend by avoiding hazards.
Dual core would also have 2 front-ends, one for each backend.
There are edge cases where instruction reordering produces no benefit, making hyperthreading useless. But it produces a significant improvement in average.
Two hyperthreads in a single core share further cache levels (TODO how many? L1?) than two different cores, which share only L3, see:
- https://stackoverflow.com/questions/4802565/multiple-threads-and-cpu-cache/54018751#54018751
- hhttps://stackoverflow.com/questions/944966/how-are-cache-memories-shared-in-multicore-intel-cpus/33510874#33510874
The interface that each hyperthread exposes to the operating system is similar to that of an actual core, and both can be controlled separately. Thus cat /proc/cpuinfo
shows me 4 processors, even though I only have 2 cores with 2 hyperthreads each.
Operating systems can however take advantage of knowing which hyperthreads are on the same core to run multiple threads of a given program on a single core, which might improve cache usage.
This LinusTechTips video contains a light-hearted non-technical explanation: https://www.youtube.com/watch?v=wnS50lJicXc
The Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015 8.7 "INTEL HYPER-THREADING TECHNOLOGY ARCHITECTURE" describes HT briefly. It contains the following diagram:
1
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
1
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
add a comment |
Hyperthreading is a cheaper and slower alternative to having dual-cores
TODO it is slower by how much percent in average in real applications?
Hyperthreading is possible because modern single CPUs cores already execute multiple instructions at once with the instruction pipeline https://en.wikipedia.org/wiki/Instruction_pipelining
The instruction pipeline is a separation of functions inside of a single core to ensure that each part of the circuit is used at any given time: reading memory, decoding instructions, executing instructions, etc.
Hyperthreading separates functions further by using:
a single backend, which actually runs the instructions with its pipeline.
Dual core has two backends, which explains the greater cost and performance.
two front-ends, which take two streams of instructions and order them in a way to maximize pipelining usage of the single backend by avoiding hazards.
Dual core would also have 2 front-ends, one for each backend.
There are edge cases where instruction reordering produces no benefit, making hyperthreading useless. But it produces a significant improvement in average.
Two hyperthreads in a single core share further cache levels (TODO how many? L1?) than two different cores, which share only L3, see:
- https://stackoverflow.com/questions/4802565/multiple-threads-and-cpu-cache/54018751#54018751
- hhttps://stackoverflow.com/questions/944966/how-are-cache-memories-shared-in-multicore-intel-cpus/33510874#33510874
The interface that each hyperthread exposes to the operating system is similar to that of an actual core, and both can be controlled separately. Thus cat /proc/cpuinfo
shows me 4 processors, even though I only have 2 cores with 2 hyperthreads each.
Operating systems can however take advantage of knowing which hyperthreads are on the same core to run multiple threads of a given program on a single core, which might improve cache usage.
This LinusTechTips video contains a light-hearted non-technical explanation: https://www.youtube.com/watch?v=wnS50lJicXc
The Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015 8.7 "INTEL HYPER-THREADING TECHNOLOGY ARCHITECTURE" describes HT briefly. It contains the following diagram:
Hyperthreading is a cheaper and slower alternative to having dual-cores
TODO it is slower by how much percent in average in real applications?
Hyperthreading is possible because modern single CPUs cores already execute multiple instructions at once with the instruction pipeline https://en.wikipedia.org/wiki/Instruction_pipelining
The instruction pipeline is a separation of functions inside of a single core to ensure that each part of the circuit is used at any given time: reading memory, decoding instructions, executing instructions, etc.
Hyperthreading separates functions further by using:
a single backend, which actually runs the instructions with its pipeline.
Dual core has two backends, which explains the greater cost and performance.
two front-ends, which take two streams of instructions and order them in a way to maximize pipelining usage of the single backend by avoiding hazards.
Dual core would also have 2 front-ends, one for each backend.
There are edge cases where instruction reordering produces no benefit, making hyperthreading useless. But it produces a significant improvement in average.
Two hyperthreads in a single core share further cache levels (TODO how many? L1?) than two different cores, which share only L3, see:
- https://stackoverflow.com/questions/4802565/multiple-threads-and-cpu-cache/54018751#54018751
- hhttps://stackoverflow.com/questions/944966/how-are-cache-memories-shared-in-multicore-intel-cpus/33510874#33510874
The interface that each hyperthread exposes to the operating system is similar to that of an actual core, and both can be controlled separately. Thus cat /proc/cpuinfo
shows me 4 processors, even though I only have 2 cores with 2 hyperthreads each.
Operating systems can however take advantage of knowing which hyperthreads are on the same core to run multiple threads of a given program on a single core, which might improve cache usage.
This LinusTechTips video contains a light-hearted non-technical explanation: https://www.youtube.com/watch?v=wnS50lJicXc
The Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015 8.7 "INTEL HYPER-THREADING TECHNOLOGY ARCHITECTURE" describes HT briefly. It contains the following diagram:
edited Jan 3 at 8:34
answered Nov 4 '15 at 10:36
Ciro Santilli 新疆改造中心 六四事件 法轮功Ciro Santilli 新疆改造中心 六四事件 法轮功
3,99622734
3,99622734
1
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
1
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
add a comment |
1
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
1
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
1
1
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
Are you going to answer your "TODO" questions?
– pacoverflow
Aug 11 '17 at 17:29
1
1
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
@pacoverflow if I someday learn the answer, or if someone will edit the answer for me :-)
– Ciro Santilli 新疆改造中心 六四事件 法轮功
Aug 11 '17 at 19:14
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f133082%2fwhat-is-the-difference-between-hyper-threading-and-multiple-cores%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown