TAU supports Call Path Profiling

Introduction

TAU can profile an application using call path profiles. Simply configure TAU with the -PROFILECALLPATH option to use this feature. The following section describes the different displays that we can obtain. In each of these views, the name "a() => b()" describes the time spent (exclusive/inclusive) in routine "b()" when it is called by routine "a()". The profiles are viewed using pprof and jracy as usual.

Displaying Call Path Profiles

Selecting the group "TAU_CALLPATH" in jracy allows the user to see either just the selected group, all groups or all groups except the selected group. Here, we see just the callpath profiles for the LU application (from the NAS Parallel Benchmark 2.3 suite). TAU was configured on an SGI machine as follows:

% configure -PROFILECALLPATH -SGITIMERS -arch=sgi64 -mpiinc=/usr/include -mpilib=/usr/lib64 -useropt=-O2
% make clean install; cd examples/NPB2.3; make; cd bin;
% mpirun -np 4 lu.W.4 

jracy shows the mean callpath profiles above.

Here we see the mean callpath profiles.

Displaying Routine Profiles

By selecting the "Display all groups except this" option in the Group Mapping Ledger for the "TAU_CALLPATH" group, we can see the profiles for routines without seeing the callpaths.

The above jracy display shows the mean profile for all routines in the application.

The above display shows the mean text profile of all routines. The above profiles are similar to what a user might expect to see when TAU is configured with the default -PROFILE option.

Displaying Both Profiles

By default, both callpath and routine based profiles are shown by pprof and jracy.

The default node view of the mean profile.

The default mean text profile.