TAU's PerfExplorer CCA Component
Overview
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
Requirements
Downloads
- Version 0.1.1 - pe2-0.1.1.tgz (modified to use PerfExplorer from TAU 2.18.2 - removed reference to "EngineType" class)
- Version 0.1.0 - pe2-0.1.0.tgz
Documentation
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
- Make a directory to build the CCA contractor distribution:
- download the CCA contractor distribution from here:
- configure and build the CCA distribution (sample configuration only - modify as necessary):
cd $HOME/src mkdir cca cd cca
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
./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 ./contract.py
Get and configure TAU
In case you haven't done this already
- Get TAU from here, and expand the tarball:
- Configure and build TAU (modify as necessary - see "./configure -help" for details)
- Configure PerfDMF and ParaProf
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
./configure --prefix=/usr/local/packages/tau make install export ARCH=i386_linux export PATH=$PATH:/usr/local/packages/tau/$ARCH/bin
perfdmf_configure perfexplorer_configure
Buiding the PerfExplorer CCA component
- set a path to the CCA installation location (modify as necessary):
- # put the PerfExplorer component in some working directory (modify as necessary):
- # configure the component to find bocca and related tools:
- # Set up the CLASSPATH environment (modify these as necessary) and build:
export PATH=$PATH:/usr/local/packages/cca-tools-contractor/0.2.6/bin
cd $HOME/src mkdir cca-components cd cca-components tar -xvzf $HOME/Download/pe2-0.1.0.tgz . cd pe2
./configure
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-3.2.0.666.jar:$HOME/.ParaProf/commons-lang-2.1.jar:$HOME/.ParaProf/commons-logging-api-1.0.4.jar:$HOME/.ParaProf/core-3.2.0.666.jar:$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 export USER_CLASSPATH_ENV=$CLASSPATH make clean make make check
Run Instructions
- Now, to run it:
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>