1 May 2006 04:16
Measuring hyperthreading slowdown?
Ben Pearre <bwpearre <at> alumni.princeton.edu>
2006-05-01 02:16:03 GMT
2006-05-01 02:16:03 GMT
Hi!
On a Xeon processor, how much does running A slow down B if A and
B run simultaneously on the two hyperthreaded cores?
I'm working on a hack to the scheduler that tries to figure this out,
and then to choose tasks that cooperate reasonably nicely. This means
that I need to get some (very rough) measure of slowdown of one task
when another runs on the other htcore.
The part that's stumping me is measuring the performance hit. It
should be sufficient for me to measure, say, resource stalls; it
should not even matter if I counted resource stalls for both processes
in the same register (enough data would identify asymmetries). If I
can get the numbers per hthread, of course such things as instructions
retired wouldn't be a bad addition, but that is inessential.
I was just playing with papi/perfctr, and found that it is really not
suited to this: it disables hyperthreading since it can't share the
HPCs between simultaneous tasks. They suggested I check out oprofile.
Can oprofile do what I describe? The manual (section 3.4) says that
ht is not supported under 2.4; will 2.6 let me do what I want? I'm
currently working on 2.6.16, but that is not set in stone.
Any other suggestions?
Many thanks for reading!!
-Ben
(Continue reading)
RSS Feed