Assignment #7:"Tau - The Art of Visualization" - Study of Tau/PDT in Program Analysis


The documents on this page refer to the Tau documentation and user's guide which is available from:
http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/docs/usersguide.pdf


Description: Tau (Tuning and Analysis Utilities) is a program analysis tool used to analyze C/C++/Java/MPI programs. TAU is capable of gathering performance information through instrumentation of functions, methods, basic blocks, and statements. TAUs profile visualization tool, paraprof, provides graphical displays of all the performance analysis results, in aggregate and single node/context/thread forms. In this assignment we look into Tau and paraprof and their capabilities.

Installation:
  1. Download PDT from here: http://www.cs.uoregon.edu/research/paracomp/pdtoolkit/Download/pdt_latest.tar.gz
  2. Extract the contents of the directory into a convenient location and run:
    % ./configure -prefix=/path/to/your/pdt/installation (I assume this path is /usr/share/pdt)
    % make
    % make install
  3. Put the path to PDT in your PATH environment variable.
    % PATH=/usr/share/pdt/linux/bin:$PATH
    % export PATH

  4. Download VTF library and extract & copy to a convenient location.
  5. Download the latest version of Tau from here.
  6. Extract the contents into a directory where you want to install tau, say /usr/share/tau
  7. Now run the following commands:
    #>./configure -mpilib=/usr/share/OpenMPI/lib -mpiinc=/usr/share/OpenMPI/include -pdt=/usr/share/pdt -TRACE -PROFILE -slog2 -vtf=/usr/share/vtf

    #> make install
  8. Add the path to the bin directory in your PATH variable. For example,
    PATH=/usr/share/tau/i386_linux/bin:/usr/share/pdt/linux/bin:$PATH;
    export PATH

  9. This will install tau and you are ready.
Running Instrumentation:

The following discussion assumes the packages are installed in these locations:
PDT: /usr/share/pdt
TAU: /usr/share/tau
VTF: /usr/share/vtf
OpenMPI: /usr/share/OpenMPI


I will assume an OpenMPI installation as the parallel compiler platform and gcc compiler for compiling c programs.

I will use my old fox algorithm program of matrix multiplication and use tau to analyze this program.
I used this makefile to compile my program with tau instrumentation and build tau-mpi executable. One can directly use tau_cc.sh to compile c programs for tau and tau_cxx.sh for compiling C++ programs. These scripts in turn use the tau_compiler.sh script to compile the program with tau instrumentation. Further details are provided in the users guide documentation mentioned above.

After building the program, we run* it using:

#> mpirun -np 4 taufox


and then we use paraprof (just type paraprof) to visualize it.
Paraprof as many other interesting features for analyzing time in function calls. The details of these features can be found in the users guide.

For tracing & using Jumshot to visualize call traces, we issue the following commands:-
#> tau_merge tau_trace*.trc fox.trc

This concatenates all the trace files corresponding to all the nodes into a single file.
Next, we convert trc files to slog2 files for visualizing in Jumpshot.

We issue the commands:-


#> tau2slog2 fox.trc tau.edf -o fox.slog2

This converts the trace files to slog2 format.
These commands are shown in the console screenshot.

Another interesting tool that can be used to visualize these traces is Vampir.

Vampir - Visualization and Analysis of Parallel Applications: http://tudresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/software_werkzeuge_zur_unterstuetzung_von_programmierung_und_optimierung/vampir
However, during the time of writing this report, Vampir was not available for free download.

We used jumpshot to visualize our output.

Issues that remained unresolved:-

  1. Selective instrumentation did not work for me. The instructions in users guide proved ineffective.
  2. How do someone apply instrumentation when a makefile for a project already exists? There are shabby instructions in the manual, but they never worked for me.

 
* In openMPI, lamboot operation is no longer required.

First Posted: Mar 11 2006. Last Updated: Mar 12 2006 Credits: 10

Page Last Revised:Monday May 16, 2016

Valid HTML 4.01 Transitional