[ILUG] Hyperthreading and SMP testing
blf at utvinternet.ie
Wed Apr 14 21:09:36 IST 2004
| Date: Wed, 14 Apr 2004 11:27:55 +0100
| From: "Kenn Humborg" <kenn at bluetree.ie>
| It's always a very good idea to test multi-threaded
| code on an SMP machine, since it increases the chances
| of race conditions, deadlocks, etc, occurring.
a tool you might want to take a very close look at is
`valgrind'. (sorry, I don't have the URL at hand,
try http://valgrind.kde.org or use Google™.) it has
a number of useful sub-tools, including:
• Memcheck detects memory-management problems ‥
• Cachegrind is a cache profiler ‥
• Helgrind is an (experimental) data-race checker ‥
I use “memcheck‟ extensively at work, and It Rocks!
I have had no occasion to use “helgrind‟ yet, but
it could be quite useful in multi-threaded testing?
| However, is it good enough to test on a Pentium with
| hyperthreading, rather than a real SMP machine?
| How close is hyperthreading to real SMP?
assuming “hyperthreading‟ is Intel(?)'s marketoid
newspeak for “overlapped instruction execution‟
(a form of “(memory) latency hiding‟), it is not
a adequate subsistute for testing on The Real Thing
(but won't hurt): overlapped instructions are about
reducing latency within a single CPU by fine-grained
scheduling of the pipeline stages, so there is a
considerable amount of intra-CPU contention logic
which is noticeably absent in multi-CPU systems,
«How many surrealists does it take to | Brian Foster Montpellier,
change a lightbulb? Three. One calms | blf at utvinternet.ie France
the warthog, and two fill the bathtub | Stop E$$o (ExxonMobile)!
with brightly-colored machine tools.» | http://www.stopesso.com
More information about the ILUG