Computer Chess Club Archives


Search

Terms

Messages

Subject: hyperthreading is not really designed for chess programs ;)

Author: Anthony Cozzie

Date: 10:30:05 03/05/03

Go up one level in this thread


Suppose you are running a database like Oracle or DB/2.  Most of the time what
you do is this:

load word from some random place in memory
compare
jump

In otherwords, databases spend a *large* amount of time in the memory subsystem.
 Their instruction footprints are usually several MB (unlike chess programs
which are maybe 200-300KB) and they process GB of data.  Hyperthreading is great
for this kind of application; while one thread is waiting on a cache miss, the
other can continue to do useful work.  Another example is Nalimov's TB gen.
Lots of semi-random memory accesses, and not surprisingly he gets a great HT
speedup.  Speaking of Nalimov, I could use a job Eugene :)

This is not the case for a chess program though, which does lots of bit flipping
and computation.  A chess engine is going to do only one realy semi-random
memory access per node - the transposition table.  The result is that HT gives a
some speedup, but nothing exceptional.  Quite frankly I am suprised Hyatt gets
25% in crafty.

I think in the future we will see true single chip multiprocessors.  With 90nm
and smaller processes, it should be cost effective to put two PIV cores on one
die.

anthony



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.