Tuning and Analysis Utilities



TAU's PerfExplorer CCA Component


The PerfExplorer performance analysis component provides a CCA component interface to the PerfExplorer analysis application. The interface provided is at a very high level. There is one simple component which has one method, which takes one parameter - the file name of a PerfExplorer analysis script. The long term goal is to expose the PerfExplorer script API through a CCA component. For more information about PerfExplorer, see the TAU web site.

This directory contains a component which is a wrapper around the PerfExplorer application. PerfExplorer is written in Java, and requires version 1.5 or better. PerfExplorer is included with TAU which can be downloaded here: http://tau.uoregon.edu. The TAU version this was tested with is 2.18.2 (still in development as of April 17, 2009).

All command and environment examples here are in bash syntax.

The PerfExplorer component loads a Jython (supports Python up to and including version 2.2) script (located in the script directory), which will load four profiles and create a scalability chart. To modify this component to run a different chart, edit the components/pe2.Driver/pe2/Driver_Impl.java file, and change "graph.py" to something else. The script can be modified by making changes to the script/graph.py file.

Any bugs/questions/comments should be directed to tau-bugs@cs.uoregon.edu.

Author: Kevin A. Huck
Date: April 16, 2009




The PerfExplorer API documentation can be found here: http://spaceghost.cs.uoregon.edu/PerfExplorer/javadoc.

Build Instructions

Get and build CCA Contractor

In case you haven't done this already

  1. Make a directory to build the CCA contractor distribution:
  2. cd $HOME/src
    mkdir cca
    cd cca
  3. download the CCA contractor distribution from here:
  4. wget http://www.cca-forum.org/download/cca-tools/cca-tools-latest/cca-tools-contractor-0.2.6.tar.gz
    tar -xzf cca-tools-contractor-0.2.6.tar.gz
    cd cca-tools-contractor-0.2.6
  5. configure and build the CCA distribution (sample configuration only - modify as necessary):
  6. ./contract.py --configure cc=gcc f77=gfortran cxx=g++ f90_vendor=gnu ccafe_gui_internal=False \
    	prefix=/usr/local/packages/cca-tools-contractor/0.2.6 java=/usr/local/packages/java/jdk1.6.0_12

Get and configure TAU

In case you haven't done this already

  1. Get TAU from here, and expand the tarball:
  2. cd $HOME/src
    wget http://www.cs.uoregon.edu/research/paracomp/tau/tauprofile/dist/tau_latest.tar.gz
    tar -xvzf tau_latest.tar.gz
    cd tau-2.18.1p1
  3. Configure and build TAU (modify as necessary - see "./configure -help" for details)
  4. ./configure --prefix=/usr/local/packages/tau
    make install
    export ARCH=i386_linux
    export PATH=$PATH:/usr/local/packages/tau/$ARCH/bin
  5. Configure PerfDMF and ParaProf
  6. perfdmf_configure

Buiding the PerfExplorer CCA component

  1. set a path to the CCA installation location (modify as necessary):
  2. export PATH=$PATH:/usr/local/packages/cca-tools-contractor/0.2.6/bin
  3. # put the PerfExplorer component in some working directory (modify as necessary):
  4. cd $HOME/src
    mkdir cca-components
    cd cca-components
    tar -xvzf $HOME/Download/pe2-0.1.0.tgz .
    cd pe2
  5. # configure the component to find bocca and related tools:
  6. ./configure
  7. # Set up the CLASSPATH environment (modify these as necessary) and build:
  8. export TAUHOME=$HOME/tau2
    export ARCH=i386_linux
    export TAULIB=$TAUHOME/$ARCH/lib
    export CLASSPATH=$TAULIB/perfexplorer.jar:$TAULIB/perfdmf.jar:$TAULIB/jfreechart-1.0.12.jar:$TAULIB/jcommon-1.0.15.jar:/home/khuck/.ParaProf/weka.jar:$TAULIB/jogl.jar:$TAULIB/vis.jar:$TAULIB/jargs.jar:$TAULIB/jython.jar:$TAULIB/tau-common.jar:$TAULIB/batik-combined.jar:$TAULIB/xerces.jar:$HOME/.ParaProf/junit-3.8.1.jar:$HOME/.ParaProf/antlr-3.0ea8.jar:$HOME/.ParaProf/antlr-2.7.6.jar:$HOME/.ParaProf/commons-jci-core-1.0-406301.jar:$HOME/.ParaProf/commons-jci-eclipse-$HOME/.ParaProf/commons-lang-2.1.jar:$HOME/.ParaProf/commons-logging-api-1.0.4.jar:$HOME/.ParaProf/core-$HOME/.ParaProf/drools-compiler-3.0.6.jar:$HOME/.ParaProf/drools-core-3.0.6.jar:$HOME/.ParaProf/drools-decisiontables-3.0.6.jar:$HOME/.ParaProf/drools-jsr94-3.0.6.jar:$HOME/.ParaProf/jsr94-1.1.jar:$HOME/.ParaProf/jxl-2.4.2.jar:$HOME/.ParaProf/stringtemplate-2.3b6.jar
    make clean
    make check

Run Instructions

  1. Now, to run it:
  2. make user-tests USER_TESTS=petest.rc

    This test will load the Driver component and the PerfExplorer component. The Driver component will request that the PerfExplorer component run the specified script, which will load 4 profiles and (briefly) display a scalability chart.

Important Included Files (aka "How do I modify the component's behavior?")

Aside from the usual CCA infrastructure files, there are two components. There is a PerfExplorer component, and a Driver component. The java code for each of the components is generated by bocca, but the implementation files are where you might have to make modifications. In the file pe2.Driver/pe2/Driver_Impl.java, the go_Impl() method is where the call to the PerfExplorer component is located. This method makes a call to the PerfExplorer component's runScript method, which is defined in pe2.PerfExplorer/pe2/PerfExplorer_Impl.java as runScript_Impl(). That method creates an instance of PerfExplorer, and runs the specified script.

Component Developers

Kevin A. Huck <khuck@cs.uoregon.edu>
Boyana Norris <norris@mcs.anl.gov>
Li Li <likli@mcs.anl.gov>
Van Bui <bui@mcs.anl.gov>
Sameer Shende <sameer@cs.uoregon.edu>
Allen D. Malony <malony@cs.uoregon.edu>
Alan Morris <amorris@cs.uoregon.edu>
Wyatt Spear <wspear@cs.uoregon.edu>