Contested Accesses (Intra-Tile)
Metric Description
Contested accesses occur when data written by one
thread is read by another thread on a different core. Examples of contested
accesses include synchronizations such as locks, true data sharing such as
modified locked variables, and false sharing. Contested accesses metric is a
ratio of the number of contested accesses to all demand loads and stores. This
metrics only accounts for contested accesses between two cores on the same
tile.
Possible Issues
There is a high number of contested accesses to cachelines modified by
another core. Consider either using techniques suggested for other long latency
load events (for example, LLC Miss) or reducing the contested accesses. To
reduce contested accesses, first identify the cause. If it is synchronization,
try increasing synchronization granularity. If it is true data sharing,
consider data privatization and reduction. If it is false data sharing,
restructure the data to place contested variables in distinct cachelines. This
may increase the working set due to padding, but false sharing can always be
avoided.