* strange CPU speedups with SMP on Athlon 64 X2
@ 2005-08-30 19:16 Nathan Becker
2005-08-31 4:51 ` Willy Tarreau
2005-08-31 11:59 ` Nick Piggin
0 siblings, 2 replies; 3+ messages in thread
From: Nathan Becker @ 2005-08-30 19:16 UTC (permalink / raw)
To: linux-kernel
Hi,
I'm having a strange problem when I benchmark some of my physics
simulation code on my new Athlon 64 X2 4800 machine. It occurs on all
current kernels that I have tested including 2.6.12.5 and 2.6.13.
If I run my benchmark single threaded, so that one of the two CPU cores is
just idling then the calculation goes pretty fast. But if I load both CPU
cores simultaneously but with INDEPENDENT calculations, then each
calculation runs about 12-15% faster than when running alone. I have
found this to be always reproducible. There is no disk access involved in
the calculation and RAM usage is fairly minimal so this is not caused by
caching. Also, if I compile the kernel to disable SMP then the machine
runs a single calculation at the same speed as when running alone when SMP
is enabled.
I am aware of the timing issues on these machines (especially since I
reported the bug http://bugzilla.kernel.org/show_bug.cgi?id=5105 ).
However, I double-checked my benchmark with a stop-watch, so this is
independent of something strange happening in the timer.
I also checked the cpufreq governor and according to the logs, my CPU is
holding steady at the maximum setting of 2.4GHz. I set the governor to
"performance" mode which should prevent unintended downclocking.
I would be happy to post my exact C source that I use to do the benchmark,
but I wanted to get some feedback first in case I'm just doing something
stupid. Also, since I'm not subscribed to this list, please cc me
directly regarding this topic.
Thanks very much,
Nathan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: strange CPU speedups with SMP on Athlon 64 X2
2005-08-30 19:16 strange CPU speedups with SMP on Athlon 64 X2 Nathan Becker
@ 2005-08-31 4:51 ` Willy Tarreau
2005-08-31 11:59 ` Nick Piggin
1 sibling, 0 replies; 3+ messages in thread
From: Willy Tarreau @ 2005-08-31 4:51 UTC (permalink / raw)
To: Nathan Becker; +Cc: linux-kernel
Hi,
stupid question : isn't it possible that your motherboard does some sort of
overclocking when it detects high cpu usage (bus activity, etc...) ? It
should not be easy to check (rdtsc every second ?), but you might want to
explore such a possibility.
Regards,
willy
On Tue, Aug 30, 2005 at 12:16:04PM -0700, Nathan Becker wrote:
> Hi,
>
> I'm having a strange problem when I benchmark some of my physics
> simulation code on my new Athlon 64 X2 4800 machine. It occurs on all
> current kernels that I have tested including 2.6.12.5 and 2.6.13.
>
> If I run my benchmark single threaded, so that one of the two CPU cores
> is just idling then the calculation goes pretty fast. But if I load both
> CPU cores simultaneously but with INDEPENDENT calculations, then each
> calculation runs about 12-15% faster than when running alone. I have
> found this to be always reproducible. There is no disk access involved
> in the calculation and RAM usage is fairly minimal so this is not caused
> by caching. Also, if I compile the kernel to disable SMP then the machine
> runs a single calculation at the same speed as when running alone when
> SMP is enabled.
>
> I am aware of the timing issues on these machines (especially since I
> reported the bug http://bugzilla.kernel.org/show_bug.cgi?id=5105 ).
> However, I double-checked my benchmark with a stop-watch, so this is
> independent of something strange happening in the timer.
>
> I also checked the cpufreq governor and according to the logs, my CPU is
> holding steady at the maximum setting of 2.4GHz. I set the governor to
> "performance" mode which should prevent unintended downclocking.
>
> I would be happy to post my exact C source that I use to do the
> benchmark, but I wanted to get some feedback first in case I'm just doing
> something stupid. Also, since I'm not subscribed to this list, please cc
> me directly regarding this topic.
>
> Thanks very much,
>
> Nathan
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: strange CPU speedups with SMP on Athlon 64 X2
2005-08-30 19:16 strange CPU speedups with SMP on Athlon 64 X2 Nathan Becker
2005-08-31 4:51 ` Willy Tarreau
@ 2005-08-31 11:59 ` Nick Piggin
1 sibling, 0 replies; 3+ messages in thread
From: Nick Piggin @ 2005-08-31 11:59 UTC (permalink / raw)
To: Nathan Becker; +Cc: linux-kernel
Nathan Becker wrote:
>
> I would be happy to post my exact C source that I use to do the
> benchmark, but I wanted to get some feedback first in case I'm just
> doing something stupid. Also, since I'm not subscribed to this list,
> please cc me directly regarding this topic.
>
Hi Nathan,
Cache issues may explain this. When 2 processes are allocating
memory in parallel they'll be given different interleavings of
pages which could explain the speedup.
Start one process, get it to memset all its memory, then pause
it and do the same thing. Then set them both running at the same
time (ie. after they've each touched their memory in turn), what
do you see?
(By memset()ing the memory, you'll cause the kernel to actually
allocate a physical page. By doing that one after the other, we
hope to eliminate interleaving issues.)
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-08-31 11:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-30 19:16 strange CPU speedups with SMP on Athlon 64 X2 Nathan Becker
2005-08-31 4:51 ` Willy Tarreau
2005-08-31 11:59 ` Nick Piggin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox