Low-level Haskell profiling [Was: Re: [Haskell-cafe] Re: A suggestion for the next high profile Haskell project]

Alexey Rodriguez Yakushev mrchebas at gmail.com
Thu Dec 21 15:43:47 EST 2006

Hi Andy,

On Dec 20, 2006, at 9:15, Andy Georges wrote:

> Well, AFAIK, PAPI abstracts away the platform dependencies quite  
> well, so I guess your code can be run straightforward on all IA-32  
> platforms (depending on the events you wish to measure, which may  
> or may not be present on all platforms). PowerPC, Itanium, Mips,  
> Alpha should work as well, IIRC. If the GHC backend can generate  
> code there, that is.

As the code stands now, data cache misses can be measured in a  
platform independent way. For branch mispredictions, I am using  
Opteron specific counters for reasons I no longer remember. Maybe I  
couldn't find platform independent counters in PAPI for branch  

> Have you published anything about that?

We are on the process of writing such a paper right now. My wish is  
to have the related code submitted to the head as soon as  
possible :). But at the moment we still have to tweak and clean up  
our optimisations a bit more.

>> I should get around to start a wiki page about using PAPI these  
>> days, but meanwhile feel free to contact me if you need further  
>> information or help.
> I've been toying with this idea for a while [4], but never had the  
> time to do something with it. If you have some cool stuff, let us  
> know. I'm very interested.

The code in the head will allow you to get numbers for the Mutator  
and the GC separately. Also, I have hacked nofib-analyse so you can  
compare CPU statistics among different runs of the nofib suite. This  
is not committed yet, I guess it will make its way to the PAPI wiki  
page once it's up. I will let you know when I bring the page up.



More information about the Haskell-Cafe mailing list