TAU Instrumentation Language (TauIL) Users Manual --------------------------------------------------------------------- - Overview - API and Tools - Analytical Instrumentation OVERVIEW TauIL is an API and toolkit that provides mechanisms for performing selective source code instrumentation based on program analysis. Currently TauIL only supports analysis of data collected from program profiling. However, the design of TauIL provides the ability for it to support static analysis and runtime analysis in future releases. API AND TOOLS TauIL consists of the core API and the tau_analyze command line tool. The TauIL library provides an interface for embedding TauIL functionality within other applications. Examples of Such functionality includes parsing of rule files, on the fly generation of abstract rule syntaxes, generation of selective instrumentation lists, or generation of rule files from abstract syntax trees. This functionality could be used in applications to provide a GUI to the tau_analyze tool or to provide a tool that allows a user to visually construct analytical rules and then generate the subsequent rule file. The tau_analyze tool generates a selective instrumentation list based on a user defined instrumentation scenario. The instrumentation scenario defines the circumstances under which a program event is instrumented and what kind of program data should be used to perform the analysis against. ANALYTICAL INSTRUMENTATION Analytical instrumentation automates the process by which a user program is instrumented using the TAU hooks. Often analytical instrumentation is used to refine an existing instrumentation by identifingy instrumentation regions that may be perturbing collected profile data. TauIL currently only supports analysis of profile data. The following tool chain is used to perform analytical instrumentations: cxxparse - generation of pdb files for auto-instrumentation (provide in the Program Database Toolkit (PDT)). tau_instrumentor - performs auto-instrumentation. tau_analyze - generates selective instrumentation list for use by tau_instrumentor. The following will outline the steps to perform an analysis and instrumentation (see the tau2/examples/analyze directory for a predefined example and a general idea of how to configure your makefile to ust TauIL). Step 1.) Generate pdb files using cxxparse cxxparse klargest.cpp Step 2.) Instrument code with tau_instrumentor tau_instrumentor klargest.pdb klargest.cpp -o klargest.inst.cpp Step 3.) Compile and run instrumented code to collect profile data ./klargest 1000000 2324 Step 4.) Analyze profile data with respect to an instrumentation scenario using tau_analyze (see TauIL/docs/FORMAT for a discussion of the instrumentation language specification and examples of rule files). tau_analyze rules.til -DSELECT=select.out Step 5.) Instrument code with tau_instrumentor and generate selective instrumentation list. tau_instrumentor klargest.pdb klargest.cpp -o klargest.inst.cpp \ -f select.out