c++x86cpu-architecturecpu-coreshyperthreading

Detecting CPU and Core information from my Intel System


I am currently using Windows 8 Pro OS, along with the Processor: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, with RAM 8 GB. I wanted to know how many Physical processors and how many actual Cores my System has. With my very basic understanding for Hardware and this discussion here, when I am searching Intel Information for this processor at this Intel site here, it says:

# of Cores 4 
# of Threads 8

In the Task Manager of my System for CPU, it says:

Maximum Speed:      3.60 GHz
Sockets:        1
Cores:          4
Physical processors:    8

(Editor's note: the text above has an error, the actual dialog box says "Logical processors" not "Physical", as discussed in comments.)


Am I correct in assuming that I have 1 Physical processor with 4 actual physical cores, and each physical core has 2 virtual aka logical cores (= 2 threads). As such the total physical processors are 8, as mentioned in my Task Manager. But, if my assumption is correct, then why say physical processors =8, and not virtual processors?

I need to know the core details of my machine as I need to write Low Latency programs, using maybe OpenMP.


Solution

  • From the perspective of your operating system, even HyperThreaded processors are "real" processors - they exist in the CPU. They use real, physical resources like instruction decoders and ALUs. Just because those resources are shared between HT cores doesn't mean they're not "real".

    General computing will see a speedup by using Hyper Threading, because the various threads are doing different kinds of things, leveraging the shared resources. A CPU-intensive task running in parallel may not see as high of performance however, due to the strain on the shared resources. For example, if there's only one ALU, it doesn't make sense to have two threads competing for it.

    Run benchmarks and determine for your application what the appropriate settings are, regarding HT being enabled or not. With a question this broad, we can't give you a definitive answer.