samppm
samppm (SAMPle Performance Monitor)
====== ======= =========== ========
samppm allows one to sample a number of requested Itanium PMU event counts
at a rate specified on the command line for each thread in an application.
At each sample time, the counts are read and stored in binary form in an
output file along with a time stamp. The `dumppm' filter is then used to
convert the binary file to a human/script readable columnar format.
samppm is invoked as:
% samppm [-c name] [-d] [-e name]* [-f] [-h] [-k] [-o pattern] \
[-q sig] [-r n] command args...
where
-c <name>
Request a built-in event collection. This may not be used with `-e'.
Current collections are:
mi
Retired M and I type instructions
mi_nop
Retired M and I type NOP instructions
fb
Retired F and B type instructions
fb_nop
Retired F and B type NOP instructions
call
Retired call type branches
dlatN
Retired data loads whose latency exceeded N
dtlb
Number of L1 DTLB misses
ilatN
Retired instruction fetches whose latency exceeded N
itlb
Number of L1 ITLB misses
bw
A few bandwidth related events
mlat
A set of events that allows the computation of average memory
latency as observed from the front side bus. Load instructions
will observe additional latency as the data is moved through
the cache hierarchy into registers.
-d
Tells samppm to start each thread with monitoring disabled.
See the libhistx documentation for information on the use of this feature.
-e <name>
Requests that counts for event named <name> be sampled.
-f
Tells samppm to produce a file for any processes fork()ed by the initial
process. This is off by default.
-h
Displays a brief help message. The command, if given, is not run.
-k
Count events generated by the kernel running at privilege level 0.
This is off by default.
-o <pattern>
Tells samppm to write it's per-thread data to a file with path given by
<pattern>. The default pattern is "samppm.%a.%t". Each pair
of the form %<char> in the pattern is expanded into the path as follows:
%a
Expands to the name of the application, e.g. "a.out"
%h
Expands to the value of the environment variable HOST
%i
Expands to the SN partition ID
%p
Expands to the process ID (PID)
%t
Expands to the thread ID (TID)
If a pattern is given that contains no %<char> pairs, it is replaced
with a pattern consisting of the original followed by ".%a.%t".
-q <sig>
Causes samppm to install a `quit' signal hander for signal <sig>.
When the `quit' signal is received, all threads will flush and close their
output files and cease all further monitoring activity. This is useful
when it is desired to kill a ling running application before it terminates
normally. <sig> can be a number, e.g. 10, or a kill(1) name, e.g. USR1.
-r <ticks>
Requests that a sample be collected every <ticks> ticks.
NOTE: samppm does not work on statically linked applications.
NOTE: samppm does not exhaustively check the set of events requested for
correctness. The user must only supply sets of events which the processor
is capable of monitoring correctly.
NOTE: To run an MPI program which uses SGI MPT:
% mpirun -np N `which samppm` <samppm args including `-f'> a.out <a.out args>