SALT-FM and TAU for Performance Analysis, Profiling and Beyond
Speaker: Sameer Shende, University of Oregon and ParaTools, Inc.
Presentation
Seminar Slide Deck (PDF-8.2MB)
Abstract
In this talk, we present recent advances in the TAU Performance System and also discuss our work on SALT-FM under a NASA Phase I SBIR award. SALT-FM is the Source Analysis Toolkit for Fortran and Mixed-Language Software. The TAU Performance System, in wide use at government lab computing centers including NASA, DoD and DOE, is an extremely powerful and versatile performance measurement and analysis system. TAU supports several different mechanisms for instrumentation of applications. Among the most powerful and flexible is source-based instrumentation, in which an application’s source code is parsed and the code modified to insert instrumentation points around areas of interest. However, source-based instrumentation also presents usability issues, and is difficult for even expert users to apply to large codebases written in modern Fortran and highly-templated, modern C++, which are becoming increasingly common as applications are being prepared for exascale. In particular, while the Fortran parsers in TAU and PDT have worked well for many codes over the years, they are based on proprietary parsers or custom versions of the GFortran compiler, making them hard or impossible to update for the latest Fortran standards. Exascale science and engineering codebases are also becoming increasing difficult for an unaided developer to reason about the performance and correctness of the code by manual inspection. To address these issues, we are building a next-generation source analysis toolkit, called SALT-FM, based on LLVM compiler technology. SALT-FM is being built using modern Fortran parsers from LLVM-Flang, LLVM’s libTooling library, and C and C++ parsers from Clang. SALT-FM’s goal is to harden and improve the usability of TAU and to build a simplified interface on to LLVM technology. We demonstrate our working prototype of SALT-FM for inserting TAU instrumentation into both C/C++ and Fortran programs. The larger vision for SALT-FM is to develop a more generic static analysis capability that will allow developers who are not compiler engineers to build custom static analysis and source-to-source transformation tools. While the scope of the work associated with Phase I is limited to building some basic infrastructure and creating a functional mixed-language source-based instrumentation tool for use with TAU, follow on work will focus on more generic static analysis and program transformation. Tasks of interest may include automatic generation of interfaces for use in mixed language programming, or porting portions of code to a different language like C++ or generating parallel code to be run on accelerators like GPUs.
Biography