How to analyze processor specification? - cpu

What does it mean when they say processor is -
Core i3, i5 or i7?
Core 2 Duo or Dual Core?
CPU # 3.20 GHz or similar GHz?

You mixed up everything a bit :
Core i3, i5, i7, 2 Duo are brand names used by Intel for families of processors it builds.
A dual core processor (or more generally multi-core) is a processor which features multiple processing units. This allows to have multiple threads (i.e. somehow a list of consecutive instructions to be executed), so that 2 or more instruction can be executed at a time.
3.20 GHz is the frequency of the clock of the processor. It is in Hertz (Hz). A higher frequency for a processor with the exact same components while make the processor execute instructions faster (most of the time). However, a processor with a high frequency will not necessarly be faster than a processor with a lower frequency.
See :
Multi-core processor
Clock rate
Intel core

These are names and types of different processors. The vary in the number of cores and clock rate.
The number of the cores is the number of unites which do actually add values. (See ALU)
The clock rate shows how many additions the CPU can make in a specified time.
Help yourself and read:
http://en.wikipedia.org/wiki/Central_processing_unit
http://en.wikipedia.org/wiki/Arithmetic_logic_unit
http://en.wikipedia.org/wiki/Comparison_of_Intel_processors
http://en.wikipedia.org/wiki/Comparison_of_AMD_processors

Related

PAPI: what does Clock reference cycles mean?

i am using PAPI liberary to tune and profile my application.
I want to know what (PAPI_REF_CYC : Reference clock cycles ) means actually?
Thanks in advance,
Some modern CPUs, including the Intel's and AMD's ones, are throttled.
This means that their clocks are not fixed but vary depending on the power management active - even if the CPU's brand frequency is X Ghz, more often than not, it is not running at that frequency.
For a couple of real example technology see the Intel Turbo boost technology/AMD Turbo core and Intel Enhanced Speedstep technology/AMD Quiet'n'Cool technology.
Since the core clock can slow down or speed up, comparing two different measures makes no sense.
Having a snippet A to run in 100 core clocks and a snippet B in 200 core clocks means that B is slower in general (it takes double the work), but not necessarily that B took more time than A since the units are different.
That's where the reference clock comes into play - it is uniform.
If snippet A runs in 100 ref clocks and snippet B runs in 200 ref clocks then B really took more time than A.
Converting ref clock ticks into time (e.g. seconds) is not that easy, each processor uses a difference reference frequency, even among processor with the same brand name.

Problems about "cycles/byte" change to "MB/s" when measuring AES speed

I am reading the AES (Advanced Encryption Standard) article (see http://cr.yp.to/aes-speed/aesspeed-20080926.pdf)
They measure the encryption speed using "Cycles/byte", as I know, if the CPU is known, I can calculate this "Cycles/byte" to "MB/s" by "(number of processors × processor_utilization × processor clock frequency) / Throughput rate in bytes per second or transaction per second = cycles per Byte"
My question is what if I am using a four core Intel CPU, how should I calculate how many processors I am using or these four cores are treated as "one CPU". It seems like they cannot be treated as one CPU because a old CPU with 3.0 GHz will run faster than 2.2GHz dual core CPU then.
Thanks in advance.

How to bind an specific processor core to specific RAM DIMM

I would like to bind a specific processor core to a specific RAM DIMM.
Example:
CPU-> Intel i7 2600K (Quadcore) where each core is listed as 0,1,2,3
RAM-> 2 * 2GB DDR3 (Specifics not necessary) listed as 0,1
I would like to execute a program that runs on CPU core 2, and use only RAM DIMM 0.
The closest tool to use would be numactl, but numactl (as far as I have read) controls the memory of a node as a whole not per DIMM.
Your help would be much appreciated...

How system is calculating to get the NumberOfLogicalProcessors in VB

For a Intel(R) Core(TM)2 Quad CPU Q8400 # 2.66GHz model cpu I am getting both the NumberOfCores and NumberOfLogicalProcessors as 4 .
I want to know how system is calculating NumberOfLogicalProcessors ?
What i should use to get the actual number of cpus ?
OS: win2k8 R2
That depends on what you meant by actual CPU.
Win32_Processor\NumberOfCores specifies the total number of physical CPU cores. A chip can contain one or more CPU cores.
Win32_Processor\NumberOfLogicalProcessors specifies the total number of virtual CPU cores. There can be two or more virtual CPU cores in one physical CPU core. On x86 compatible computers, this is only available in Intel's Hyper-Threading capable CPUs.
On the other hand, the Win32_ComputerSystem\NumberOfProcessors specifies the total number of physical processor chips installed on a multi processor motherboard.
The Win32_ComputerSystem\NumberOfLogicalProcessors is same as Win32_Processor\NumberOfLogicalProcessors.

Mapping logical processors to physical processors

On a dual quad-core GetProcessAffinityMask (or the dialog from "Set affinity" in taskman.exe) will report eight logical processors. How do I find out which logical processor is on which physical processor? Especially: which logical processors are on the same physical processor?
EDIT: If it is not possible to do this programmatically, do anyone just know what the normal mapping is? Are the first four on the first processor and the second four on the second or are the odd numbered on the first and the even numbered on the second?
You can use Win32_Processor WMI class to query the number of cores, number of logical processors, architecture, cache memory and other information about the CPUs on the system.
To query information about the relationship between the logical processors in a system, you can use GetLogicalProcessorInformation API function.
In case you don't want to write the code yourself, SysInternal's handy coreinfo utility comes closest to answering your questions. It implements GetLogicalProcessorInformation as Mehrdad recommends. For a Xeon E5640 (quad core, 8 threads), you get from coreinfo:
c:\App\SysInternals>Coreinfo.exe -c
Coreinfo v3.0 - Dump information on system CPU and memory topology
Copyright (C) 2008-2011 Mark Russinovich
Sysinternals - www.sysinternals.com
Logical to Physical Processor Map:
**------ Physical Processor 0 (Hyperthreaded)
--**---- Physical Processor 1 (Hyperthreaded)
----**-- Physical Processor 2 (Hyperthreaded)
------** Physical Processor 3 (Hyperthreaded)
There are 8 * for the 8 hyperthreads, two per core, as expected for this chip. What's not clear, though, is how the arrangement of * matches up with the list of logical processors as Windows presents them. For instance, Task Manager gives me a dialog for assigning the processor affinity, labeled CPU 0 through CPU 7, for any process. It's fair (but not necessary) to assume that you can take coreinfo's output and number the logical processors left-to-right. So "CPU 5" would be the second hyperthread running on physical processor 2.
The numbering is done in a sequential manner: first all physical cores followed by the logical cores [1] .
[1] CPU Numbering on a hypertheading enabled system

Resources