[ILUG] Hyperthreading and SMP testing

Brian Foster 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,
 including SMP.

cheers!
	-blf-
--
«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 mailing list