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 detectorthat does not require any positive example of contention anomalies. We evaluated AutoCon with 13 real world cache contentionanomalies 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 .
In this paper, we present AutoPerf, a generalized software performance anomaly detection system. AutoPerf uses autoencoders, an unsupervised learning technique, and hardware performance counters to learn the performance signatures of parallel programs. It then uses this knowledge to identify when newer versions of the program suffer performance penalties, while simultaneously providing root cause analysis to help programmers debug the program's performance. AutoPerf is the first zero-positive learning performance anomaly detector, a system that trains entirely in the negative (non-anomalous) space to learn positive (anomalous) behaviors. We demonstrate AutoPerf's generality against three different types of performance anomalies: (i) true sharing cache contention, (ii) false sharing cache contention, and (iii) NUMA latencies across 15 real world performance anomalies and 7 open source programs. AutoPerf has only 3.7\% profiling overhead (on average) and detects more anomalies than the prior state-of-the-art approach .
R
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
In this paper, we present AutoPerf, a generalized software performance anomaly detection system. AutoPerf uses autoencoders,
R
called Autoencoder,
and hardware performance counters
R
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
performance signatures of parallel programs. It then uses this knowledge to identify when newer versions of the program suffer performance penalties, while simultaneously providing
R
provide detailed debugging information. AutoCon
help programmers debug the program's performance. AutoPerf
R
learning based cache contention detectorthat does not require any positive example of contention anomalies. We evaluated AutoCon with 13 real world cache contentionanomalies as well as
zero-positive learning performance anomaly detector, a system that trains entirely in the negative (non-anomalous) space to learn positive (anomalous) behaviors. We demonstrate AutoPerf's generality against three different types of performance anomalies: (i) true sharing cache contention, (ii) false sharing cache contention, and (iii) NUMA latencies across 15 real world performance anomalies and
R
AutoCon detected all types of cache contention anomalies with
AutoPerf has
R
. Moreover, compared to a
and detects more anomalies than the prior
R
cache contention detector, AutoCon detected more anomalies
approach