TAU¶
Description¶
TAU Performance System® is a portable profiling and tracing toolkit for performance analysis of parallel programs written in Fortran, C, C++, Java, Python. TAU (Tuning and Analysis Utilities) is capable of gathering performance information through instrumentation of functions, methods, basic blocks, and statements. All C++ language features are supported including templates and namespaces. The API also provides selection of profiling groups for organizing and controlling instrumentation. The instrumentation can be inserted in the source code using an automatic instrumentor tool based on the Program Database Toolkit (PDT), dynamically using DyninstAPI, at runtime in the Java Virtual Machine, or manually using the instrumentation API.
Environment Modules¶
Run module spider tau
to find out what environment modules are available for this application.
Environment Variables¶
- HPC_TAU_DIR - installation directory
- HPC_TAU_BIN - executable directory
- HPC_TAU_LIB - library directory
- HPC_TAU_DOC - examples directory
- HPC_PDT_DIR - installation directory
- HPC_PDT_BIN - executable directory
- HPC_PDT_INC - includes directory
Additional Usage Information¶
This module defines the following defaults:
TAU_TRACE=0,
TAU_CALLPATH=1,
TAU_PROFILE=1,
TAU_MAKEFILE=Makefile.tau-callpath-icpc-papi-pdt,
TAU_METRICS=TIME:PAPI_FP_OPS:PAPI_L2_DCM.
The TAU_MAKEFILE
sets the tools (pdt), compilers (intel) and parallel paradigm (serial, or mpi and/or openmp) to be used in the instrumentation.
For TAU 2.21.4
it is only necessary to load up the TAU 2.21.4
environment. Advanced users may need to load up pdt/3.18
for library and command access.
For normal usage use the defaults: load up tau, recompile, and run. See the pdf Quickstart and User Guide in the $HPC_TAU_DOC directory
. Man pages are available for commands (e.g. paraprof
, tauf90
, etc.), and the application program interface.
To compile your code with TAU, use one of the TAU compiler wrappers:
- tau_f90.sh
- tau_cc.sh
- tau_cxx.sh
For constructing an instrumented code (instead of icc, ifort, etc.):
E.g. tau_f90.sh hello.f90, tau_cc.sh hello.c, etc.
These may also be used in make files, using macro definitions:
E.g. F90=tau_f90.sh, CC=tau_cc.sh, Cxx=tau_cxx.sh.
Tip
To enable callpath information collection set TAU_CALLPATH
to 1.
To enable trace collection set the environmental variable TAU_TRACE
to 1.
Citation¶
If you publish research that uses TAU you have to cite it as follows:
- TAU: The TAU Parallel Performance System, by S. Shende and A. D. Malony. International Journal of High Performance Computing Applications, Volume 20 Number 2 Summer 2006. Pages 287-311. https://doi.org/10.1177/1094342006064482
- PDT: A Tool Framework for Static and Dynamic Analysis of Object-Oriented Software with Templates, by K. A. Lindlan, J. Cuny, A. D. Malony, S. Shende, B. Mohr, R. Rivenburgh, C. Rasmussen. Proceedings of SC2000: High Performance Networking and Computing Conference, Dallas, November 2000. http://dx.doi.org/10.1109/SC.2000.10052
- CCA: Performance Technology for Parallel and Distributed Component Software, by A. Malony, S. Shende, N. Trebon, J. Ray, R. Armstrong, C. Rasmussen, and M. Sottile. Concurrency and Computation: Practice and Experience, Vol. 17, Issue 2-4, pp. 117-141, John Wiley & Sons, Ltd., Feb - Apr, 2005. https://doi.org/10.1002/cpe.931
Categories¶
library, performance_analysis