Open main menu

CDOT Wiki β

Changes

Team False Sharing

19 bytes added, 23:19, 17 December 2017
m
Identifying False Sharing
False sharing is a well-know performance issue on SMP systems, where each processor has a local cache. it occurs when treads on different processors modify varibles that reside on th the same cache line like so.
<br style="clear:both" />
[[File:CPUCacheline.png|center|frame]]
<br style="clear:both" />
The frequent coordination required between processors when cache lines are marked ‘Invalid’ requires cache lines to be written to memory and subsequently loaded. False sharing increases this coordination and can significantly degrade application performance.
}
</source>
[[File:FalseSpeedup.png|center|850px]]
As you can see the execution time increase with the number of threads. These results are not what you would expect but there are 2 reasons that may have caused this. The first is that the overhead for creating and maintaining the threads is overwhelming larger than the contents of the for loop. The second is False sharing.
30
edits