[Beowulf] Opinions of Hyper-threading?
Vincent Diepeveen
diep at xs4all.nl
Thu Feb 28 09:13:40 PST 2008
On Feb 28, 2008, at 4:33 PM, Mark Hahn wrote:
>>>>> The problem with many (cores|threads) is that memory bandwidth
>>>>> wall. A fixed size (B) pipe to memory, with N requesters on
>>>>> that pipe ...
>>>> What wall? Bandwidth is easy, it just costs money, and not much
>>>> at that. Want 50GB/sec[1] buy a $170 video card. Want 100GB/
>>>> sec... buy a
>>> Heh... if it were that easy, we would spend extra on more
>>> bandwidth for
>>> Harpertown and Barcelona ...
>
> I think the point is that chip vendors are not talking about mere
> doubling of number of cores, but (apparently with straight faces),
> things like 1k GP cores/chip.
>
> personally, I think they're in for a surprise - that there isn't a
> vast
> market for more than 2-4 cores per chip.
Microsoft might give a helping hand there by writing their own
software more user friendly,
requiring somehow heavier processors :)
>>> limits, and no programming technique is going to get you around that
>>> limit per socket. You need to change your programming technique
>>> to go
>>> many socket. That limit is the bandwidth wall.
>
> IMO, this is the main fallacy behind the current industry harangue.
> the problem is _NOT_ that programmers are dragging their feet, but
> rather some combination of amdahl's law and the low average _inherent_
> parallelism of computation. (I'm _not_ talking about MC or
> graphics rendering here, but today's most common computer uses: web
> and email.)
>
> the manycore cart is being put before the horse. worse, no one has
> really
> shown that manycore (and the presumed ccnuma model) is actually
> scalable to large values on "normal" workloads. (getting good
> scaling for an AM
> CFD code on 128 cores in an Altix is kind of a different
> proposition than
> scaling to 128 cores in a single chip.)
>
> as far as I know, all current examples of large ccnuma scaling are
> premised on core:memory ratios of about 4:1 (4 it2 cores per bank
> of dram in an Altix, for instance.) I don't doubt that we can
> improve memory bandwidth (and concurrency) per chip, but it's not
> an area-driven
> process, so will never keep up.
>
> so: do an exponential and a sublinear trend diverge? yes: meet
> memory wall.
>
> what's missing is a reason to think that basically all workloads
> can be made
> cache-friendly enough to scale to 10e2 or 10e3 cores. I just don't
> see that.
>
Some fields which are overly represented in this mailing list just
require more RAM rather than cpu.
Just a few fields have embarrassingly parallel software that only
needs cpu power and not much of a RAM.
Most of them are either encryption or security related searches.
There is however a growing number of fields where communication speed
between the processors is very important,
not so much the bandwidth, but rather the latency.
As CPU's are that fast nowadays that algorithms can kick in where
branching factor,
practically that is the time needed to get 1 step or iteration in the
process further,
is heavily dependant upon communication speed between the processors
and especially
reusing data stored in the (huge) RAM of other memory-nodes.
In the long run of course many fields will converge to such types of
algorithms, field after field is
inventing algorithms like that, which is a logical consequence of the
progress in hardware.
Todays highend hardware ALLOWS complex algorithms to get invented,
which IMHO is a good thing.
Now let's invent something that makes me coffee :)
> it's really a memory-to-core issue: from what I see, the goal
> should be something in the range of 1GB per core. there are
> examples up to 10G/core
1GB a core are standards that most supercomputers had a year or 8 ago.
It's quite interesting to see how RAM and latency between cpu's
hasn't kept up pace with cpu crunching power.
> and down to 100M/core, but not really beyond that. (except for stream
> processing, which is great stuff but _cries_ for non-general-
> purpose HW.)
>
>> As data rates get higher, even really good bit error rates on the
>> wire get to be too big. Consider this.. a BER of 1E-10 is quite
>> good, but if you're pumping 10Gb/s over the wire, that's an error
>> every second. (A BER of 1E-10 is a typical rate for something
>> like 100Mbps link...). So, practical systems
>
> I'm no expert, but 1e-10 seems quite high to me. the docs I found
> about 10G
> requirements all specified 1e-12, and claimed to have achieved 1e15 in
> realistic, long-range tests...
In the end the conclusion will be of course that we need a newer
proces technology from ASML very badly
to get into production to produce CPU's with even more transistors in
order to push some of the problems to the 1GB L3 cache :)
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org
> To change your subscription (digest mode or unsubscribe) visit
> http://www.beowulf.org/mailman/listinfo/beowulf
>
More information about the Beowulf
mailing list