MDL: a language and compiler for dynamic program instrumentation

We use a form of dynamic code generation, called dynamic instrumentation, to collect data about the execution of an application program. Dynamic instrumentation allows us to instrument running programs to collect performance and other types of information. The instrumentation code is generated incrementally and can be inserted and removed at any time. Our instrumentation currently runs on the SPARC, PA-RISC, Power 2, Alpha, and x86 architectures. Specification of what data to collect are written in a specialized language called the Metric Description Language, that is part of the Paradyn Parallel Performance Tools. This language allows platform independent descriptions of how to collect performance data. It also provides a concise way to specify, how to constrain performance data to particular resources such as modules, procedures, nodes, files, or message channels (or combinations of these resources). We also describe the details of how we weave instrumentation into a running program.

[1]  Calton Pu,et al.  Threads and input/output in the synthesis kernal , 1989, SOSP '89.

[2]  Janice E. Cuny,et al.  Perspective Views: A Technique for Enhancing Parallel Program Visualization , 1990, ICPP.

[3]  Barton P. Miller,et al.  The integration of application and system based metrics in a parallel program performance tool , 1991, PPOPP '91.

[4]  Michael T. Heath,et al.  Visualizing the performance of parallel programs , 1991, IEEE Software.

[5]  Robert O. Hastings,et al.  Fast detection of memory leaks and access errors , 1991 .

[6]  Craig Chambers,et al.  Debugging optimized code with dynamic deoptimization , 1992, PLDI '92.

[7]  Jack J. Dongarra,et al.  Visualization and debugging in a heterogeneous environment , 1993, Computer.

[8]  D.A. Reed,et al.  Scalable performance analysis: the Pablo performance analysis environment , 1993, Proceedings of Scalable Parallel Libraries Conference.

[9]  B. Miller,et al.  ----An Adaptive Cost Model for Parallel Program Instrumentation , 1994 .

[10]  Barton P. Miller,et al.  Dynamic program instrumentation for scalable performance tools , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[11]  B. Miller,et al.  The Paradyn Parallel Performance Measurement Tools , 1995 .

[12]  Barton P. Miller,et al.  The Paradyn Parallel Performance Measurement Tool , 1995, Computer.

[13]  James R. Larus,et al.  EEL: machine-independent executable editing , 1995, PLDI '95.

[14]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[15]  Pankaj Mehra,et al.  Performance measurement, visualization and modeling of parallel and distributed programs using the AIMS toolkit , 1995, Softw. Pract. Exp..

[16]  Sameer Shende,et al.  Event and state-based debugging in TAU: a prototype , 1996, SPDT '96.

[17]  Barton P. Miller,et al.  An Adaptive Cost System for Parallel Program Instrumentation , 1996, Euro-Par, Vol. I.

[18]  Vaidy S. Sunderam,et al.  Monitoring and Visualization in Cluster Environments , 1996 .

[19]  George C. Necula,et al.  Safe kernel extensions without run-time checking , 1996, OSDI '96.