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

Andy Georges andy.georges at elis.ugent.be
Thu Dec 21 17:03:50 EST 2006


Alexey,

>> 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  
> misprediction.

Hmm, I think they should be there, IIRC. Anyway, it seems quite cool  
that you're doing that.

>
>>
>> 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.

Nice. Would you mind letting me know when you submitted something ...  
I'm quite interested.

>>> 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.

Great, thanks!

-- Andy


More information about the Haskell-Cafe mailing list