130 likes | 131 Views
Tool Interoperability with TAU. Sameer Shende sameer@cs.uoregon.edu Department of Computer and Information Science Neuro Informatics Center University of Oregon. Outline. TAU and PDT General purpose instrumentation system Common profile data format specification
E N D
Tool Interoperability with TAU Sameer Shende sameer@cs.uoregon.edu Department of Computer and Information Science Neuro Informatics Center University of Oregon
Outline • TAU and PDT • General purpose instrumentation system • Common profile data format specification • performance visualization tools • performance database
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
TAU Performance System Architecture Paraver EPILOG
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
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)
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…)
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)
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
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
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
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 . . .
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