comp.lang.ada
 help / color / mirror / Atom feed
From: keld_nielsen_4nulspam@yahoo.it
Subject: Re: puzzled re hyperthreaded performance
Date: 15 Sep 2005 05:13:51 -0700
Date: 2005-09-15T05:13:51-07:00	[thread overview]
Message-ID: <1126786431.160444.235930@g14g2000cwa.googlegroups.com> (raw)
In-Reply-To: dgb2sj$krc$1@news.task.gda.pl

jtg ha scritto:

> There may be several reasons, more or less obvious.
> I guess the most important may be inefficient cache usage.
>

We have done some testing on the topic too, and our view is that speed
differences are due to "memory access" in hyperthreading mode compared
to conventional cpu's.

Her is a brief version of what we did. We were working on linear
algebra systems, i.e. the classical A*x=b matrix system, and for
testing it was solved with both Jacobi and Gauss_Seidel. Jacobi is
banal to parallelize, and a multithread program in Ada was tested => No
apparent difference in speed.

My friend Orazio then wrote a Jacobi version (in f77 - sorry for that
;-) with "manual loop unrolling" or two statements for i and i+1 inside
the loop => Speed was doubled!

In the end, to check for classical parallel race/timing conditions, the
Gauss-Seidel was implemented. => Again double speed and no race/timing
conditions observed.

Our conclusion is, that the single cpu works just as one, but the "bus
is boosted" with a factor two.

Now coming back to the threading and speed improvements above, in my
view it is a matter of which trick to use for getting the bus to work
in a boosted mode. We obtained it with simple loop unrolling, you
report threading. Are there other experiences out there?




  reply	other threads:[~2005-09-15 12:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-15  5:10 puzzled re hyperthreaded performance tmoran
2005-09-15  6:08 ` jtg
2005-09-15 12:13   ` keld_nielsen_4nulspam [this message]
2005-09-15 20:44     ` tmoran
2005-09-15 21:43       ` tmoran
2005-09-19 20:21 ` Wiljan Derks
2005-09-20  0:26   ` tmoran
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox