Training and Analysis Utilities (TAU)
TAU Performance System is a portable profiling and tracing toolkit for performance analysis of parallel programs written in Fortran, C, C++, Java, Python.
For more information visit the TAU website.
What can TAU do?
It can generate detailed profiles of the following :
- MPI communication (calls, buffer sizes, communication patterns)
- PAPI hardware performance counters
- Memory used per compute node
In addition, TAU could be configured for MPI and OpenMP combined profiling and I/O profiling.
TAU provides interoperability with a range of instrumentation libraries, post-processing and tracing tools. For instance, TAU MPI traces could be converted to the Open Trace Format (OTF) traces that could be visualized using the Vampir tracing tool.
How to use TAU
TAU could be used with and without its auto-instrumentation capabilities. With the auto-instrumentation tool, the PDT interface, users are required to rebuild the application so that user functions could be instrumented automatically. A simple relink could also provide MPI level information.
The first task is therefore to identify an appropriate build for TAU, i.e. compiler and OS directory and by uploading the required module file. For instance, for the applications to be build with the PGI compiler, the following module command is used:
module load tau
This command sets the default $TAU_MAKEFILE and the $PATH to the TAU compiler wrappers and the post-processing tools. More information and Makefile settings can be found by using the following command :
module help tau
TAU compiler could be then called
tau_cc.sh -o test test.c
tau_cxx.sh -o test test.C
tau_f90.sh -o test test.f90
Alternatively, a user can append the Makefile or a config file by including the location of the required Makefile and using the compiler wrappers as follows:
#include ${TAU_ROOT}/lib/Makefile.tau-mpi-pdt-pgi
And before the compiler and linker, include $(TAU_CC) or the appropriate compiler name.
If the application has been built without any error messages, it should execute as normal. In addition to the regular output files, one file for each MPI tasks is generated by TAU when the application runs successfully.
TAU provides post-processing and analysis tools in two formats: text-based and visualization.
The text-based tool called pprof can produce output for individual tasks as well as aggregated information.
The visualization tool called paraprof is written using Java therefore offline analysis could also be performed on users personal platforms where these tools are available by copying over the profile files generated by the TAU tool.
Further Information
For additional information and the user guide, please visit the TAU website at http://www.cs.uoregon.edu/research/tau/home.php
