Using cause-effect analysis to understand the performance of distributed programs

Wagner Meira, Thomas J. LeBlanc, Virgilio A. F. Almeida · 1998

Understandingthe performance of distributed programs can be very difficult, since a program's performance depends on characteristics of the application, the underlying hardware, the software environment, and interactions among all three.In this paper we present cause-effect analysis (CEA), a general approach to understanding distributed program performance that facilitates performance analysis, tuning, and prediction.Using detailed program traces gathered at execution time as input, CEA automatically generates explanations for important performance phenomena, identifying code segments that are responsible for the occurrence of the phenomena.We illustrate our approach by describing CEA techniques for three classes of overheads in distributed programs: contention, synchronization, and communication.Using the explanations produced by CEA, we are able to understand and minimize common performance problems in real applications including load imbalance, false sharing, and resource contention.

Read the paper · More papers on PaperTik