TAU allows the user to map performance data of entities from one layer to another in multi-layered software. Mapping is used in profiling (and tracing) both synchronous and asynchronous models of computation.
For mapping, the following macros are used. First locate and identify the higher-level statement using the TAU_MAPPING macro. Then, associate a function identifier with it using the TAU_MAPPING_OBJECT. Associate the high level statement to a FunctionInfo object that will be visible to lower level code, using TAU_MAPPING_LINK, and then profile entire blocks using TAU_MAPPING_PROFILE. Independent sets of statements can be profiled using TAU_MAPPING_PROFILE_TIMER, TAU_MAPPING_PROFILE_START, and TAU_MAPPING_PROFILE_STOP macros using the FunctionInfo object.
The TAU examples/mapping
directory has two
examples (embedded and external) that illustrate the use of this mapping
API for generating object-oriented profiles.
Table of Contents
- TAU_MAPPING - Encapsulates a C++ statement for profiling
- TAU_MAPPING_CREATE - Creates a mapping
- TAU_MAPPING_LINK - Creates a mapping link
- TAU_MAPPING_OBJECT - Declares a mapping object
- TAU_MAPPING_PROFILE - Profiles a block based on a mapping
- TAU_MAPPING_PROFILE_START - Starts a mapping timer
- TAU_MAPPING_PROFILE_STOP - Stops a mapping timer
- TAU_MAPPING_PROFILE_TIMER - Declares a mapping timer