Page 1 of 1

Cache Coherence - PAPI

PostPosted: Fri Oct 16, 2009 9:48 am
by madman
Hi,

I have a question regarding using PAPI counter events to get details of the cache coherence overheads associated with different kernels in a parallel application (In SGI Altix 4700 machine).

> PAPI_CA_SNP 0x80000009 Yes No Requests for a snoop
> PAPI_CA_INV 0x8000000c Yes Yes Requests for cache line invalidation

Is it correct to assume that these could be used to derive invalidation to snooping ratio for a particular parallel kernel?

Thanks for your support!

Madhavan

Re: Cache Coherence - PAPI

PostPosted: Fri Oct 16, 2009 8:12 pm
by Dan Terpstra
It's always dangerous to make assumptions!
You can use /utils/papi_avail -e PAPI_CA_SNP or /utils/papi_avail -e PAPI_CA_INV to get more detail on each of these events, including the native event codes that they measure, and vendor documentation on what those events actually count. That might provide more detail on exactly what's being counted here.
Further, you can us /utils/papi_native_avail to list all available native events with descriptions for your platform. You may find a native event more suitable for measuring what you're interested in than the PAPI preset events are.
But in any case, don't assume the event is measuring what you expect. Devise a test to produce a predictable number or range of events, and verify that the event you're measuring matches your expectations. In many cases events may not produce the number you expect, but at least scale linearly with what you're trying to measure, so they are still useful.