TAU allows you to customize the instrumentation of a program by using a
selective instrumentation file. This instrumentation file is used to
manually control which parts of the application are profiled and how they
are profiled. If you are using one of the TAU compiler wrapper scripts to instrument your
application you can use the -tau_options=-optTauSelectFile=<file>
option to enable selective instrumentation.
Note | |
---|---|
Selective instrumentation is only available when using source-level instrumentation (PDT). |
- Wildcards for routine names are specified with the
#
mark (because*
symbols show up in routine signatures.) The#
mark is unfortunately the comment character as well, so to specify a leading wildcard, place the entry in quotes. -
Wildcards for file names are specified with
*
symbols.
Here is a example file:
#Tell tau to not profile these functions BEGIN_EXCLUDE_LIST void quicksort(int *, int, int) # The next line excludes all functions beginning with "sort_" and having # arguments "int *" void sort_#(int *) void interchange(int *, int *) END_EXCLUDE_LIST #Exclude these files from profiling BEGIN_FILE_EXCLUDE_LIST *.so END_FILE_EXCLUDE_LIST BEGIN_INSTRUMENT_SECTION # A dynamic phase will break up the profile into phase where # each events is recorded according to what phase of the application # in which it occured. dynamic phase name="foo1_bar" file="foo.c" line=26 to line=27 # instrument all the outer loops in this routine loops file="loop_test.cpp" routine="multiply" # tracks memory allocations/deallocations as well as potential leaks memory file="foo.f90" routine="INIT" # tracks the size of read, write and print statements in this routine io file="foo.f90" routine="RINB" END_INSTRUMENT_SECTION
Selective instrumentation files can be created automatically from
ParaProf
by right clicking on a trial and selecting the Create Selective Instrumentation File
menu
item.