Profiling SMARTS

TAU can generate aggregate summary profiles for each user and kernel level thread in SMARTS.


To enable profiling, simply uncomment the lines that contain the $(TAUDEFS), $(TAUINC) and $(TAULIBS) in the $SMARTSDIR/lib/GNUmakefile in Tulip Smarts directory and recompile. Replacing the CFLAGS and LIBS variables in the makefile this way will use the TAU profiling options to generate the tulip library which can subsequently be used to profile the applications. To configure TAU for smarts use the -tulipthread=dir -smarts option as explained in the tutorial.



The above figure illustrates Smarts example from $(SMARTSDIR)/examples/jac/abctest. Note that most of the time is spent in routines CabIterate<Scheduler>::run() and AbcIterate<Scheduler>::run(). The example was run with the following parameters:

% abctest 4 128 1024 8 


The above figure shows the time spent in thread 1 and 2 and the node profile of thread 1.