1 / 13

Tool Interoperability with TAU

Explore the TAU and PDT performance systems, their architecture, and interoperability for system computation models. Learn about TAU Instrumentor, source code parsing, and the Performance Database Toolkit (PDT). Dive into instrumentation specification, building higher-level tools, and the Performance Database Framework. Acknowledging support from DOE, DARPA, and NSF.

dchancey
Download Presentation

Tool Interoperability with TAU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tool Interoperability with TAU Sameer Shende sameer@cs.uoregon.edu Department of Computer and Information Science Neuro Informatics Center University of Oregon

  2. Outline • TAU and PDT • General purpose instrumentation system • Common profile data format specification • performance visualization tools • performance database

  3. TAU Performance System Framework • Tuning and Analysis Utilities • Performance system framework for scalable parallel and distributed high-performance computing • Targets a general complex system computation model • nodes / contexts / threads • Multi-level: system / software / parallelism • Measurement and analysis abstraction • Integrated toolkit for performance instrumentation, measurement, analysis, and visualization • Portable, configurable performance profiling/tracing facility • Open software approach • University of Oregon, LANL, FZJ Germany • http://www.cs.uoregon.edu/research/paracomp/tau

  4. TAU Performance System Architecture Paraver EPILOG

  5. Application / Library C / C++ parser Fortran 77/90 parser Program documentation PDBhtml Application component glue IL IL SILOON C / C++ IL analyzer Fortran 77/90 IL analyzer C++ / F90 interoperability CHASM Program Database Files Automatic source instrumentation TAU_instr DUCTAPE Program Database Toolkit

  6. Program Database Toolkit (PDT) • Program code analysis framework for developing source-based tools for C99, C++ and F90 • High-level interface to source code information • Widely portable: • IBM, SGI, Compaq, HP, Sun, Linux clusters,Windows, Apple, Hitachi, Cray T3E... • Integrated toolkit for source code parsing, database creation, and database query • commercial grade front end parsers (EDG for C99/C++, Mutek for F90) • Intel/KAI C++ headers for std. C++ library distributed with PDT • portable IL analyzer, database format, and access API • open software approach for tool development • Target and integrate multiple source languages • Used in TAU to build automated performance instrumentation tools (tau_instrumentor)

  7. Contents of PDB files • Source file names • Routines, Classes, Methods, Templates, Macros, Modules • Parameters, signature • Entry and exit point information (return) • Location information for all of the above • Static callgraph • Header file inclusion tree • Proposed (summer ’03): • Statement-level information (loops, if-then-else, switch…)

  8. TAU Instrumentor • Supports TAU instrumentation for C++, C99 and F90 • Uses source file and PDB file to generate an instrumented source file • Supports grouping timers into higher-level user defined groups • Supports selective instrumentation (include/exclude lists)

  9. Selective Instrumentation: Include/Exclude Lists % tau_instrumentor Usage : tau_instrumentor <pdbfile> <sourcefile> [-o <outputfile>] [-noinline] [-g groupname] [-i headerfile] [-c|-c++|-fortran] [-f <instr_req_file> ] For selective instrumentation, use –f option % cat selective.dat # Selective instrumentation: Specify an exclude/include list. BEGIN_EXCLUDE_LIST void quicksort(int *, int, int) void sort_5elements(int *) void interchange(int *, int *) END_EXCLUDE_LIST # If an include list is specified, the routines in the list will be the only # routines that are instrumented. # To specify an include list (a list of routines that will be instrumented) # remove the leading # to uncomment the following lines #BEGIN_INCLUDE_LIST #int main(int, char **) #int select_ #END_INCLUDE_LIST

  10. Generic Interface for Instrumentation • Interact with higher-level performance tool • Instrumentation specification • Based on contents of PDB file • Parse the source code and generate instrumented source file using the instrumentation specification Source Code (C, C++,F90) Instrumentation Engine Instrumented Source file Instrume- ntation requests

  11. Building Higher-Level Tools • Source code instrumentation specification: • Format of instrumentation requests • Annotated (tagged) lists of entities in PDB file format • Nature of instrumentation code to be inserted • Measurement module selection for performance tool • Common performance data format: • Converters to/from existing tools (low level performance information) • Interoperability with analysis tools (jracy, pprof…) • Bridges to performance databases • Higher-level ad-hoc performance queries from ASL to SQL database

  12. Performance Database Framework Raw performance data Performance analysis programs Performance analysis and query toolkit PerfDML data description PerfDML translators ORDB PostgreSQL • XML profile data representation • Multiple experiment performance database . . .

  13. Support Acknowledgement • TAU and PDT support: • Department of Energy (DOE) • DOE 2000 ACTS contract • DOE MICS contract • DOE ASCI Level 3 (LANL, LLNL) • U. of Utah DOE ASCI Level 1 subcontract • DARPA • NSF National Young Investigator (NYI) award

More Related