AutoCon: Regression Testing for Detecting Cache Contention Anomalies Using Autoencoder.

2017 
Cache contention is an important type of performance anomaly in this multi-core and many-core era. It can cause a significant slowdown in parallel programs. However, it is hard to detect and often, not visible in the source code. As software changes over time, modifications in code can introduce cache contention anomalies. One way to detect such anomalies, is to use performance regression testing. Prior approaches for cache contention detection are either not suitable for performance regression testing or requires knowledge about specific type of contention behavior. To remedy these shortcomings, we propose AutoCon. It works by finding the modified functions and collecting hardware performance counter profiles for them. It uses an unsupervised learning technique, called Autoencoder, to learn the contention behavior implied by the profiles (collected from the older version of code). Then, it checks the profiles collected from the newer version of code to determine whether the contention pattern (implied by the profiles) is anomalous. If so, AutoCon reports a cache contention anomaly. Finally, it performs root cause analysis to provide detailed debugging information. AutoCon is the first learning based cache contention detector that does not require any positive example of contention anomalies. We evaluated AutoCon with 13 real world cache contention anomalies as well as 7 open source programs. AutoCon detected all types of cache contention anomalies with only 3.7% profiling overhead (on average). Moreover, compared to a state-of-the-art cache contention detector, AutoCon detected more anomalies.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    68
    References
    1
    Citations
    NaN
    KQI
    []