ALIs

kommt noch

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>