Prism invokes TNF utilities to perform data collection, so it is possible to profile MPI programs directly without using Prism. Although Prism provides a number of ease-of-use facilities, such as representing process timelines according to MPI rank, and it reconciling timestamps when a job is distributed over many nodes and uses multiple clocks that are not synchronized with one another, Prism's own processes may affect profiling activity, so in certain cases bypassing Prism during data collection is desirable.The utility to perform TNF data collection directly is prex. To enable all probes, place the following commands in your .prexrc file. (Note the leading "." in the file name.)
enable $all trace $all continue
Then, remove old buffer files, run prex, and merge and view the data, as shown below.
Because prex does not correct for the effects of clock skew, it is useful only for MPI programs running on individual SMPs. Also, data collected by prex does not identify MPI ranks in the data--if you attempt to display prex data in tnfview, the VIDs (ranks) will be displayed in random order.
% rm /tmp/trace-* % mprun -np 4 prex -s 128 a.out
% bsub -I -n 4 prex -s 128 a.out % /opt/SUNWhpc/bin/sparcv7/tnfmerge -o a.tnf /tmp/trace-* % /opt/SUNWhpc/bin/sparcv7/tnfview a.tnf
For more information on prex, see its Solaris man page.