next up previous
Next: Contention vs. Throughput in Up: Experiences Previous: Load Imbalance

False sharing

We have used waiting time analysis and protocol analysis to detect and understand both direct and indirect effects of false sharing in DSM systems. Since communication can result in waiting time, waiting time analysis allows us to quantify the effect of false sharing on synchronization overhead. Protocol analysis provides details about the access patterns of the application, and identifies data structures associated with excessive communication.

When executing Ocean [12], an application from the Splash2 suite, on Treadmarks, we observed that over 90% of the execution time was spent either synchronizing or waiting for coherence operations to complete. Using protocol analysis we discovered that the variable multi accounts for 75% of all communication. Although this variable should only exhibit sharing at the boundaries between embedded blocks, the analysis confirmed that all pages of multi exhibited a multiple-producer-multiple-consumer sharing pattern. By examining the code, we found that this sharing pattern was caused by the tiling data layout adopted in the implementation. Moreover, waiting time analysis showed that the excessive waiting time observed at synchronization points was caused by these same coherence operations. By using a blocked data distribution instead of tiling, we improved the performance of the application under Treadmarks by a factor of 8 on 4 processors.



Wagner Meira
Thu Jan 9 14:27:55 EST 1997