[Haskell-cafe] Glome.hs-0.3 and other things

Stefan O'Rear 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" 
>> http://lwn.net/Articles/250967/
> 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.

Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
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 mailing list