[Haskell-cafe] Glome.hs-0.3 and other things
stefanor at cox.net
Mon Apr 21 16:21:57 EDT 2008
On Mon, Apr 21, 2008 at 07:54:24PM +0100, Andrew Coppin wrote:
> Jim Snow wrote:
>> Useful references: "What Every Programmer Needs to Know About Memory"
> After studying all this material, I do find myself feeling slightly
> concerned. The article shows how in C / C++ / assembly you can arrange your
> data and order your computations to make maximum use of the various caches
> and avoid certain bottlenecks in the system. And the *vast* performance
> difference it can yield. But what happens if you happen to be writing your
> program in Smalltalk or Java or... Haskell. Up here, you're so far from the
> hardware that it would seem that you have *no hope* of using the CPU caches
> effectively. Think about it - data scattered all over the heap in an
> essentially random pattern, getting moved around periodically by the GC.
> [Oh, the GC! That sounds like it must nail the hell out of the cache. And
> even if it doesn't, it more or less negates its usefulness because all the
> "hot" data is now at a different address.] Just think about trying to
> process a Haskell list - all those multiple levels of pointer indirection!
> The CPU has no hope of prefetching that stuff... Damn, it seems as if
> there's simply no way of ever making Haskell fast. :-(
You're assuming the hardware is constant. "Modern" CPUs were designed
back when everyone was using C++; this is changing now, and I for one
am still optimistic that CPU designs will follow suit.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20080421/ad58d16d/attachment-0001.bin
More information about the Haskell-Cafe