Techniques for efficient inline tracing on a shared-memory multiprocessor
- 1 April 1990
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGMETRICS Performance Evaluation Review
- Vol. 18 (1) , 37-47
- https://doi.org/10.1145/98460.98501
Abstract
While much current research concerns multiprocessor design, few traces of parallel programs are available for analyzing the effect of design trade-offs. Existing trace collection methods have serious drawbacks: trap-driven methods often slow down program execution by more than 1000 times, significantly perturbing program behavior; microcode modification is faster, but the technique is neither general nor portable.This paper describes a new tool, called MPTRACE, for collecting traces of multithreaded parallel programs executing on shared-memory multiprocessors. MPTRACE requires no hardware or microcode modification; it collects complete program traces; it is portable; and it reduces execution-time dilation to less than a factor 3. MPTRACE is based on inline tracing, in which a program is automatically modified to produce trace information as it executes. We show how the use of compiler flow analysis techniques can reduce the amount of data collected and therefore the runtime dilation of the traced program. We also discuss problematic issues concerning buffering and writing of trace data on a multiprocessor.Keywords
This publication has 9 references indexed in Scilit:
- TRAPEDS: producing traces for multicomputers via execution driven simulationPublished by Association for Computing Machinery (ACM) ,1989
- A software instruction counterPublished by Association for Computing Machinery (ACM) ,1989
- The effect of sharing on the cache and bus performance of parallel programsPublished by Association for Computing Machinery (ACM) ,1989
- PRESTO: A system for object‐oriented parallel programmingSoftware: Practice and Experience, 1988
- Topological Optimization of Multiple-Level Array LogicIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1987
- Logic verification algorithms and their parallel implementationPublished by Association for Computing Machinery (ACM) ,1987
- Cache MemoriesACM Computing Surveys, 1982
- A case study of VAX-11 instruction set usage for compiler executionPublished by Association for Computing Machinery (ACM) ,1982
- Analysis and performance of computer instruction sets [Thesis]Published by Office of Scientific and Technical Information (OSTI) ,1978