TAU Mapping API


Introduction

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