Tools Using Dyninst


The following tools have been build using dyninst. If you have built a tool using dyninst and would like it listed here, please send email to feedback@dyninst.org.

DPCL

Dynamic Probe Class Library (DPCL) is an object based C++ class library that provides the necessary infrastructure to allow tool developers and sophisticated tool users to build parallel and serial tools through technology called dynamic instrumentation.

DPCL takes the basic components needed by tool developers and encapsulates them into C++ classes. Each of these classes provide the member functions necessary to interact and dynamically instrument a running application with software patches called probes. Dynamic instrumentation provides the flexibility for tools to insert probes into applications as the application is running and only where it is needed.

Open SpeedShop™ for Linux®

SGI SpeedShop provides a wide variety of experiments to help users identify and remove performance obstacles, pinpoint system resource usage, and detect memory leaks. Open/SpeedShop for Linux OS-based computing systems running on a wide range of computing platforms will be made available to the open-source community to accelerate independent use and development. It will feature core SpeedShop components such as support for single system image and cluster configurations, exclusive and inclusive user time sampling, program counter sampling, MPI call tracing, input/output tracing, floating point exception tracing, and CPU hardware performance counter experiments. The new version's modular design will also enable users to extend the tool's functionality by adding their own performance experiments to monitor application performance.

Dynamic Kappa-Pi

Kappa-Pi objective is to give parallel programmers some aid when analysing the performance of their applications. The basic principle of the tool is to analyse the efficiency of an application and provide the programmer some indications about the most important performance problem found in the execution. To create those indications, Kappa-Pi tool uses an representation of the most important performance problems found in message-passing programs, such as PVM or MPI applications.

Dynaprof

Dynaprof is a dynamic instrumentation and performance analysis tool that uses DynInst and DPCL.

Metasim

MetaSim is two sets of tools developed by PMaC used in PMaC's Performance Prediction Framework. The first set of tools is the MetaSim Tracer. This is a memory trace tool design to collect information about an application's memory usage. The MetaSim Tracer is a semi-cycle accurate simulator that works by gathering statistics on expected cache hit rates of routines and loops in an application.

The second set of tools is the MetaSim Convolver. This is used in a step in the PMaC Performance Prediction Framework. The Convolver takes a Application Signature from the MetaSim Tracer and a Machine Profile from the MAPS probe to combine them for a single-processor or per-processor performance prediction of that application on the given machine.

OCM: OMIS Compliant Monitoring system

This project provides a reference implementation of an OMIS compliant monitoring system. The current version (1.1research) supports PVM3.3, PVM3.4, as well as MPI-1 (more exactly: mpich 1.1.2). Work is underway on a release, which will be available under the GNU public license.

Stride - Stream Identification During Execution

Stride is a tool to dynamically instrument load/stores in binary to obtain information about memory usage patterns in the data reference stream of an application. It employs an online algorithm to detect linear memory access patterns. Instrumentation can be selectively applied and disabled during execution. At the conclusion of the run, detailed function-level stream statistics are calculated.

TAU

TAU (Tuning and Analysis Utilities) is a visual programming and performance analysis environment for parallel C++ and HPF. TAU is implemented in C and C++ and uses Tcl/Tk for graphics. The TAU tools are implemented as graphical hypertools. While they are distinct tools, they act in concert as if they were a single application. TAU is part of the HPC++ project.

ToolGear

Tool Gear is a software infrastructure for developing performance analysis and debugging tools for large scale parallel programs.

Many types of tools have similar needs for data collection features and user interfaces. For example, many tools display source code and either annotate it with data or allow the user to click on parts of the source display to initiate an action or display more detailed information. Tool Gear handles much of the source code and data display, allowing tool developers to focus on the unique aspects of their codes. Tool Gear can work with the Dynamic Probe Class Library (DPCL) to collect data from instrumentation installed at runtime in programs, or it can receive data sent to it from other sources.

Tracetool

TraceTool is an example tracing utility which uses dyninstAPI. The TraceTool program will instrument a given program so that function entries, exits, and callsites in the program will be instrumented with calls into specified tracing functions in a tracing library. It currently has been tested on x86-Linux, Power-AIX, and Sparc-Solaris.

Other Papers (not by dyninst developers) that report using dyninst as part of their research.

Jaydeep Marathe and Frank Mueller, Detecting Memory Performance Bottlenecks via Binary Rewriting

Jaydeep Marathe, Frank Mueller, Tushar Mohan Bronis R. de Supinski, Sally McKee, and Andy Yoo METRIC: Tracking Down Inefficiencies in the Memory Hierarchy via Binary Rewriting Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, 2003, pp. 289-300.

P. Unnikrishnan and G. Chen and M. Kandemir and D. R. Mudgett, Dynamic Compilation for Energy Adaptation , Proceedings of the 2002 IEEE/ACM international conference on Computer-aided design, San Jose, California, pp. 158-163.

T. Mohan, B.R. de Supinski, S.A. McKee, F. Mueller. A. Yoo, M. Schulz Identifying and Exploiting Spatial Regularity in Data Memory References in Proc. Supercomputing (SC'03), Phoenix, AZ, November 2003.

Charles Zhang and Hans-Arno Jacobsen, TinyC2: Towards building a dynamic weaving aspect language for C , Foundations of Aspect-Oriented Languages 2003, Boston, Massachusetts.

J. L. Rrushi and E. Rosti, Function Call Tracing Attacks to Kerberos 5, to appear at Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA), July 2005.

Christian Glasner, Edith Spiegl, and Jens Volkert1, PARADIS: Analysis of Transaction-Based Applications in Distributed Environments, Workshop on Tools for Program Development and Analysis in Computational Science, Atlanta, GA, May 2005.

Martin Schulz, John May, and John Gyllenhaal, DynTG: A Tool for Interactive, Dynamic Instrumentation, Workshop on Tools for Program Development and Analysis in Computational Science, Atlanta, GA, May 2005.

Stelios Sidiroglou, Oren Laadan, Carlos Perez, Nicolas Viennot, Jason Nieh, and Angelos D. Keromytis, ASSURE: automatic software self-healing using rescue points, ASPLOS, Washington DC, March 2009.