PDT/TAU Installation on a 64-bit AMD Opteron Cluster running CentOS 5 Linux

Tuning and Analysis Utilities (TAU) is a program and performance analysis tool for high-performance parallel and distributed computing with a suite of tools for static and dynamic analysis of programs written in C, C++, FORTRAN 77/90, Python, High Performance FORTRAN, and Java.

You'll also need the Program Database Toolkit (PDT), also available from the same location. Let's install that first. You'll need to set your environment variables. You use modules, right?


module load gcc/4.4.4
modulel load openmpi-gcc/1.3.4
cd /usr/local/src/PDT
wget http://tau.uoregon.edu/pdt.tgz
cd pdtoolkit-3.16
mkdir /usr/local/pdt/3.16
./configure -prefix=/usr/local/pdt/3.16
gmake
gmake install

Note that README recommends gmake over "vendor-supplied" make.

Now for TAU. Download from University of Oregon, untar and run the
impressive configure script. Ensure that the path to PDT is the right version!


cd /usr/local/src/TAU
wget http://tau.uoregon.edu/tau.tgz .
tar xvf tau.tgz cd tau-2.23
module load openmpi-gcc/1.7.0
module load papi/5.4.1
../config
make install
cd /usr/local/Modules/modulefiles/tau
ln -s .base-1.7.0 2.22.2

The config file takes the following form.


#!/bin/bash
install=$(basename $(pwd) | sed 's%-%/%')
./configure -bfd=download -unwind=download -pdt=/usr/local/pdt/3.21/ -openmp -papi=/usr/local/papi/5.4.1 -mpi -mpiinc=/usr/local/openmpi/1.7.0-gcc/include -mpilib=/usr/local/openmpi/1.7.0-gcc/lib -prefix=/usr/local/$(basename $(pwd) | sed 's#-#/#')-openmpigcc

Create or symlink .base files as appropriate.


#%Module1.0#####################################################################
##
## tau modulefile
##set ver [lrange [split [ module-info name ] / ] 1 1 ]
set name [lrange [split [ module-info name ] / ] 0 0 ]
set loading [module-info mode load]
set desc [join [read [ open "/usr/local/Modules/modulefiles/$name/.desc" ] ] ]proc ModulesHelp { } {
puts stderr "\tThis module sets the envinronment for tau v$ver"
}module-whatis "$desc (v$ver)"if { $loading && ![ is-loaded openmpi-gcc/1.6.3 ] } {
module load openmpi-gcc/1.6.3
}prepend-path PATH /usr/local/$name/$ver-openmpi-gcc/x86_64/bin
prepend-path LD_LIBRARY_PATH /usr/local/$name/$ver-openmpi-gcc/x86_64/lib
prepend-path TAU_MAKEFILE /usr/local/$name/$ver-openmpi-gcc/x86_64/lib/Makefile.tau-mpi-pdt
prepend-path MANPATH /usr/local/$name/$ver-openmpi-gcc/man