Author: M.S Mabakane Date: November, 30 2018
TAU (Tuning and Analysis Utilities) is a portable profiling and tracing tool that analyse the performance of parallel models written in C, C++, Python and FORTRAN. It is further used to identify performance bottlenecks incurred during the simulation of the parallel program. TAU users can obtain performance information such as execution time of the objects (e.g. modules, routines, subroutines and functions) and relationship between different parts of the application.
At CHPC, TAU is installed and tested on the CHPC’s Lengau cluster in order to help users improve the performance of their parallel programs. On the other hand, TAU is also useful tool for developers who need to solve complex optimization problems within their parallel applications.
TAU was installed using Intel Compiler 16.0.1 and Open MPI version 1.8.8. Below is the procedure on how to port, compile and run the parallel program using TAU-2.25.1:
Now, this is the procedure to port, compile and run the code using TAU:
Please note: typewriter characters depicts the command, directory or files in the system.
ssh –X firstname.lastname@example.org.
module load chpc/parallel_studio_xe/16.0.1/2016.1.150.The system will then add the Intel compiler in the user's environment. To test the environment type:
which ifortand the following path should be displayed:
module load chpc/openmpi/1.8.8/intel-16.0.1.to load Open MPI-1.10.2.
module load tau/2.25.1-intel. It will add the following path to tau libraries:
TAU_MAKEFILE /apps/chpc/visualization/soft/tau-2.25.1-intel-16.0.1/x86_64/lib/Makefile.tau-icpc-mpi-pdtin your profile. To test the TAU environment type:
which tau_f90.sh, it should display these message:
tau_f90.shto compile the code. If it is written in C language use tau_cc.sh. All TAU binaries are located in:
/apps/chpc/visualization/soft/tau-2.25.1-intel-16.0.1/x86_64/bin/. The current installation of TAU has been performed using Intel Compiler 16.0.1.
untar -xzvf packagename. For this test, the working directory is:
Makefileby doing the following:
BINROOT = /mnt/lustre/users/username/dlpoly-tar/executables/ # Location of executable CC = icc # Intel compiler EX = DLPOLY_2.18.X # Executable name EXE = $(BINROOT)/$(EX) FC=ifort # Fortran compiler SHELL=/bin/sh TYPE=par $(MAKE) LD="tau_f90.sh -o" \ # Tau mpi wrapper (e.g. In this line, users normally put mpi wrapper such as mpif90) LDFLAGS="-O3 " \ FC="tau_f90.sh -c" \ # Tau mpi wrapper (e.g. in this line, users normally put an mpi wrapper such as mpif90) FCFLAGS="-O3 " \ EX=$(EX) BINROOT=$(BINROOT) $(TYPE)
dl_poly_2.18/srcmod, compile the model using the following command:
/mnt/lustre/users/username/dlpoly-tar/. Note: The only important change in your model is to replace
mpiwith tau wrapper. e.g. (
mpif90should be replaced by
mpiccshould be replaced by
###These lines are for PBSPro #!/bin/bash #PBS -l select=10:ncpus=24:mpiprocs=24:nodetype=haswell_reg #PBS -P PRJT1234 #PBS -q normal #PBS -l walltime=4:00:00 #PBS -o /mnt/lustre/users/username/dlpoly/dlpoly.out #PBS -e /mnt/lustre/users/username/dlpoly/dlpoly.err #PBS -m abe #PBS -M your.email@address ulimit -s unlimited cd /apss/chpc/executables/ nproc=`cat $PBS_NODEFILE | wc -l` echo nproc is $nproc cat $PBS_NODEFILE time mpirun -np $nproc DLPOLY_2.18.X
tau_treemerge.pl. Note: this command will merge all the tautrace & events files to just two files named: tau.trc and tau.edf)
tau2slog2 tau.trc tau.edf -o tau.slog2. Note: This will then converts the traces to the slog2 format. This process may take more than 40 minutes depending on the size of the model.
jumpshot tau.slog2. It will then pop-up a message which state as follows “It seems this is your first time using Jumpshot-4, a setup file will be created in your home directory with the default settings”.
For more information about TAU, visit the following website address: http://www.cs.uoregon.edu/research/tau/docs/newguide/bk01ch01s02.html