next up previous
Next: Case Study: MFIX Up: Measurement Previous: Memory Profiling

Integration in Application Build Environments

Each configuration and build of TAU results in a TAU library and a stub makefile that stores configuration parameters as makefile variables. Each stub makefile has a unique name that includes the compiler name (-pgi), the runtime system chosen (-mpi or -shmem), the measurement modules chosen (-profile, -trace, -memory, -headroom, -callpath, -phase, -depth, etc.) and the instrumentation mechanism (-pdt). TAU's automated source-level instrumentation using PDT is currently the most robust mechanism for portable performance evaluation and is available on most systems. To help integrate TAU in the build process, we have developed a compiler shell script (tau_compiler.sh) that invokes a series of tools that finally create an instrumented object code. These include the C pre-processor, an optional OpenMP directive rewriter (tau_ompcheck followed by opari), the PDT parsers (gfparse, f95parse, cparse, and cxxparse) that emit a common PDB format, the TAU instrumentor (tau_instrumentor) that examines the PDB file, the source file, an optional instrumentation specification file, and writes the instrumented source file, and finally the compiler that compiles the instrumented source code to generate the object code. While linking, it takes care of supplying the appropriate TAU and MPI wrapper libraries along with system specific libraries such as the Fortran or C++ runtime libraries to create the executable. We provide the compiler wrapper scripts tau_f90.sh, tau_cc.sh, and tau_cxx.sh that can replace full fledged compilers in any build system. These scripts hide the multi-stage compilation process. By setting a pair of environment variables (TAU_MAKEFILE and TAU_OPTIONS as shown in Figure 3, the user may specify the measurement options chosen, and the optional parameters that are propagated to the source transformation phases, respectively.


next up previous
Next: Case Study: MFIX Up: Measurement Previous: Memory Profiling
Scott Biersdorff 2006-05-05