Hello everyone,
The discussion I want to start involves two computers, one with an
Intel(R) Core(TM) i3 CPU 550 @ 3.20GHz
the other with an
Intel(R) Xeon(R) CPU E5606 @ 2.13GHz
and one program of mine, serial, meaning it has no parallelization features, that is, makes no use of the multi-threading capabilities of the two processors.
First of, I don't understand why running lscpu will not give me always the same number for cpu MHz, and why if I do
"cat /proc/cpuinfo" I get info for all the threads, some of them reading the right cpu clock speed, others giving a reduced (by much) value.
For example, for the Xeon, I get this output (one part of it)
And for the i3 I getmodel name : Intel(R) Xeon(R) CPU E5606 @ 2.13GHz
stepping : 2
cpu MHz : 1200.000
cache size : 8192 KB
physical id : 1
siblings : 4
The main question is:model name : Intel(R) Core(TM) i3 CPU 550 @ 3.20GHz
stepping : 5
cpu MHz : 1197.000
cache size : 4096 KB
physical id : 0
Which one is the processor that theoretically will execute my program faster? The i3 because of the better clock speed? Or the cache size and stepping of the Xeon should make it the best choice???
The second question is:
Running multiple versions of my program at the same time will reduce the speed of execution for every individual version of the program? Let's assume that the number of the programs that I'm running in parallel is smaller than the number of threads residing with the processor. Is the cache memory shared in between threads? or it's dedicated so the execution in one thread is not affected at all from what the others do?
Thank you for any input.
Bookmarks