TAU and UPS

Configuration Issues

TAU uses PDT and MPI wrapper library for instrumentation of UPS. Each UPS source file is parsed and instrumented with TAU annotations prior to compilation. To use TAU, the user can download the configure.dat and configure.pl files to support TAU. TAU needs to be configured with PDT and MPI options. Simple configurations are shown below:

    Configure PDT

    % configure -GNU  
    % make ; make install
    

    Configure TAU

    % configure -pdt=/usr/packages/pdt-xxx -mpiinc=/usr/packages/mpi-xxx/include -mpilib=/usr/packages/mpi-xxx/lib 
    % make install
    

    Configure UPS

    % configure.pl +mpich +no_fortran +tau go
    
    This step creates make.inc
    % setenv TAU_MAKEFILE /usr/packages/tau-xxx/i386_linux/lib/Makefile.tau
    % setenv MPI_ROOT /usr/packages/mpi-xxx/
    % make 
    
The output of running the acceptance regression testing benchmark is enclosed: acceptance_out.txt and ups_log.txt.

Performance Data

The above image shows the profile of the acceptance testing benchmark when it executes on four processors (top left window). Racy, TAU's profile browser, shows that a significant portion of time is spent in the MPI_Sendrecv() routine (bottom left). On node 0, context 0, thread 0, the histogram of the exclusive time spent in all routines is shown (right window).

By clicking the middle mouse button over the "mean" tag in the main racy window, we can see the text window that shows detailed information for the entire run averaged over the four processors. This information can be sorted in several ways.

The function legend shows all routines for a given execution.

The above image shows the breakdown of key routines across all nodes of execution. We see the relative contribution of MPI_Recv(), MPI_Waitany(), and upsp_gs_garther_scatter() routines.

For more information on TAU, please visit the TAU webpage.