Next: Case Study: MFIX
Up: Measurement
Previous: Memory Profiling
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: Case Study: MFIX
Up: Measurement
Previous: Memory Profiling
Scott Biersdorff
2006-05-05