Tuning and Analysis Utilities

TAU

PRL

Proxy Generators

The TAU performance component package provides proxy generators for both Classic and Babel CCA frameworks. Each can build proxies for both the MeasurementPort and the Monitorport

Using Proxy Components

Proxy components are interposed between two components on a given port to perform performance measurement on port invocations. The Proxy uses the Measurement Port to communicate with the TAU Performance Component.

An example proxy component for the Integrator Port

Alternatively, Proxy components can be built that use the Monitor Port


Ane example proxy component using the MasterMind Component

Using the Proxy Generator for Babel CCA

% tau_babel_pg
Usage: tau_babel_pg <filename> [Arguments]
Generate instrumented proxies for CCA components

Example: tau_babel_pg integrators_IntegratorProxy_Impl.cc
   -h integrator_IntegratorPort.h -p IntegratorPort
   -t integrator.IntegratorPort

Required Arguments
  <filename>         C++ impl file generate by Babel
                     (e.g. integrators_IntegratorProxy_Impl.cc)
  -h <header file>   C++ header for port to proxy
                     (e.g. integrator_IntegratorPort.hh)
  -p <port name>     Desired port name
                     (e.g. IntegratorPort)
  -t <port type>     Port type
                     (e.g. integrator.IntegratorPort)

Option Arguments
  -f                 Force overwrite of impl file
  -m                 Generate Monitor Port proxy

Using the Proxy Generator for Classic CCA

Usage: tau_pg [Arguments]
Generate instrumented proxies for CCA components from a pdb file

Example: ./tau_pg -c integrators::ccaports::Integrator
   -t integrators.ccaports.Integrator -n IntegratorProxy
   -p IntegratorPort -d ParallelIntegrator_CCA.pdb
   -o Proxy.cc -h ports/Integrator_CCA.h -f select.dat

Required Arguments
  -c <component name>     Full name of the component
                          (e.g. integrators::ccaports::Integrator)
  -t <type name>          Type of component
                          (e.g. integrators.ccaports.Integrator)
  -p <port name>          Name of port to generate proxy for
                          (e.g. IntegratorPort)
  -d <pdbfile name>       Name of pdb file created from cxxparse (pdtoolkit)
                          (e.g. ParallelIntegrator_CCA.pdb)
  -h <header file>        Header file for this port
                          (e.g. ports/Integrator_CCA.h)

Optional Arguments
  -n <proxy name>         Name of the proxy component
                          (default: base of component name + Proxy)
  -o <output filename>    Name of output file (default: proxy.cc)
  -f <selective instrumentation file>
                          Pre-generated Selective instrumentation file
  -m                      Generate MasterMind component proxy
  -v                      Verbose output
  -?                      Output help
Classic proxy generation requires PDB files generated using PDT.
cxxparse <file.cpp> -I<dir> -D<flags>