1

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

Am I correct in assuming that I have 1 Physical processor with 4 actual physical cores, and each physical core has 2 virtual 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. Thanks for your time...

Community
  • 1
  • 1
XMarshall
  • 953
  • 3
  • 11
  • 23
  • I think you should add at least one tag for a language/framework, so that a concise answer can be given. [`OpenMP`](https://stackoverflow.com/questions/tagged/openmp) or [`C++`](https://stackoverflow.com/questions/tagged/c%2b%2b) perhaps? – John Weisz Jan 30 '17 at 12:20
  • Does it actually says "Physical Processors" in your task manager? Mine says "Logical Processors", rest is similar to mine. Just checking.. – Isuru H Jan 30 '17 at 12:22
  • Thanks @John..have added C++ as language – XMarshall Jan 30 '17 at 12:22
  • @Isure...yes it is "Logical processors" only ..sorry. – XMarshall Jan 30 '17 at 12:24
  • 1
    So I guess that answers your question then :-) – Isuru H Jan 30 '17 at 12:30

1 Answers1

0

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.

Jonathon Reinhart
  • 132,704
  • 33
  • 254
  • 328
  • Thanks @Jonathon. Your comment - "Run benchmarks and determine for your application what the appropriate settings are, regarding HT being enabled or not". I am guessing HT stands for Hyper Threading. If so how to check it is enabled or not? I am using C++ – XMarshall Jan 30 '17 at 12:41
  • Check your BIOS settings. If you have have 4 cores and 8 logical processors though, Hyper Threading is enabled. My speculation is that your application will run best when the number of threads is equal to the number of physical cores, not the number of logical processors. – Jonathon Reinhart Jan 30 '17 at 13:34
  • Thanks @Jonathon. I guess the CPU section of the Windows Task Manager mirrors the BIOS settings. Though I am not sure. Also after my current readings, I have also come to the conclusion that best app performance is when number of threads is equal to the number of physical cores – XMarshall Jan 30 '17 at 13:40
  • Marking this as answer, also sharing this nice link for HT, for possible reference for others: https://en.wikipedia.org/wiki/Hyper-threading – XMarshall Jan 30 '17 at 13:41
  • *"I guess the CPU section of the Windows Task Manager mirrors the BIOS settings. Though I am not sure."* Not directly. During boot, the firmware configures the CPU, enabling/disabling features like Hyper Threading. The Windows kernel queries the CPU topology when it is starting up. – Jonathon Reinhart Jan 30 '17 at 13:43