Performance measurements for multithreaded programs
- 1 June 1998
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGMETRICS Performance Evaluation Review
- Vol. 26 (1) , 161-170
- https://doi.org/10.1145/277858.277900
Abstract
Multithreaded programming is an effective way to exploit concurrency, but it is difficult to debug and tune a highly threaded program. This paper describes a performance tool called Tmon for monitoring, analyzing and tuning the performance of multithreaded programs. The performance tool has two novel features: it uses "thread waiting time" as a measure and constructs thread waiting graphs to show thread dependencies and thus performance bottlenecks, and it identifies "semi-busy-waiting" points where CPU cycles are wasted in condition checking and context switching. We have implemented the Tmon tool and, as a case study, we have used it to measure and tune a heavily threaded file system. We used four workloads to tune different aspects of the file system. We were able to improve the file system bandwidth and throughput significantly. In one case, we were able to improve the bandwidth by two orders of magnitude.Keywords
This publication has 13 references indexed in Scilit:
- Performance debugging shared memory parallel programs using run-time dependence analysisPublished by Association for Computing Machinery (ACM) ,1997
- KDBPublished by Association for Computing Machinery (ACM) ,1996
- CilkPublished by Association for Computing Machinery (ACM) ,1995
- Myrinet: a gigabit-per-second local area networkIEEE Micro, 1995
- The Paradyn parallel performance measurement toolComputer, 1995
- Quartz: a tool for tuning parallel program performancePublished by Association for Computing Machinery (ACM) ,1990
- Techniques for efficient inline tracing on a shared-memory multiprocessorPublished by Association for Computing Machinery (ACM) ,1990
- The performance implications of thread management alternatives for shared-memory multiprocessorsIEEE Transactions on Computers, 1989
- Experience with processes and monitors in MesaCommunications of the ACM, 1980
- MonitorsCommunications of the ACM, 1974