On Apr 14, 2009, at 3:22 PM, Joe Landman wrote:

Jon Forrest wrote:

But this wouldn't happen in the scenarios you describe
because text is read-only. There would be no updaters or writers
or any kind of contention. The text pages would have to get filled

Ok, lets assume you have a table in the text, that every thread is using to dereference. Sure it can go in the data section, but some compilers (old SGI) could leave it in the text area for faster access.

Same thing with contention. Read contention is harder to diagnose than write contention, as you don't get the cache line update from the writes triggering the associated counters, so this is a bit more subtle. But the effect is there.

A simple (correct) statement is being churned into a rather complex argument.

Read-only cache lines from text shouldn't involve coherency traffic nor false sharing of cache lines (and no sane system should put text and data on the same page). Sure, capacity and conflict misses will apply like they do in any cache but Jon's statement remains correct -- in SPMD applications, you really want all processes to benefit from cache hits in your "single program".

I agree with Joe that as the shared memory system scales, the once subtle potential cache coherency problems can become quite an impediment to performance. However, I'd think (or at least hope) that we could agree on the simpler things, like read-only text.


        . . christian
_______________________________________________
Beowulf mailing list, Beowulf@beowulf.org sponsored by Penguin Computing
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to