Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Performance Tools Framework

Hi Beth,
>
>    1. Instrumentation
>    2. Build, which may or may not be transparent to user
...
> Next I will work on instrumentation that doesn't modify the user's source
>    code at all,
> a "transparent" instrumentation that e.g. instruments a copy of the source
>    code then builds.
>
	We have implemented such an approach with the TAU instrumentor. We
insert instrumentation calls in a copy of the source file and compiles it
to produce the .o file. We have shell scripts (tau_f90.sh,
tau_cc.sh, tau_cxx.sh) that act like compilers, and modify only a copy
of the original source code. Currently the tau_instrumentor supports:
* routine level instrumentation in C, C++ and Fortran
* outer-loop level instrumentation in these languages
* selective instrumentation based on exclude/include lists from routines/files.
* I/O instrumentation for Fortran
* memory allocation/deallocation instrumentation in Fortran

	We are now adding support for user-specified application level
phases. We hope to provide support for both static as well as dynamic
phases that track the full flat profile of events that are invoked within
a phase boundary (start/stop). Static phases aggregate data from all
invocations while dynamic phases show data for each instance of a phase.
	It may be useful to re-use this instrumentation that TAU provides.
What do you feel?
	Wyatt is working on a scheme to help integrate TAU and other tools
within PTP. Our goal is to build a graphical instrumentation tool within
Eclipse/PTP that describes the above instrumentation requests to any
performance tool. These requests (in an instrumentation specification
file) will not contain any TAU specific calls, but (when fully
implemented) be higher-level. Then, any tool could choose to implement
part or all of these instrumentation requests. Currently, our plugin does
use some code that is TAU specific (to describe phase based
instrumenation), but soon it will be independent of TAU in the manner it
describes the instrumentation requests (e.g., instrument outer loops in
routine foo, instrument using dynamic timers lines <start> to <stop> and
using a user specified name etc.)
	Wyatt can provide you more details of the plugin.
	Thanks,
	- Sameer



Back to the top