From time to time it may be desirable or feasible to trace only one or a few of the processes. Specifying the "-p" options offers the ability to pick the processes to be traced.
All MPI-calls are enabled for tracing by default. To view only a few calls, specify a "-t <call- list>" option; to exclude some calls, add a "-x<call-list>" option. The "-t" will disable all tracing and then enable those calls that match the <call-list>. The matching is done using "regular-posix-expression"-syntax. "-x"will lead to the opposite; first enable all tracing and then disable those call matching <call-list>.
Examples:
"-t MPI_Irecv" : Trace only immediate recv (MPI_Irecv)
"-t isend;irecv;wait" :Trace only MPI_Isend, MPI_Irecv and MPI_Wait
"-t MPI_[b,r,s]*send" : Trace only send-calls (MPI_Send, MPI_Bsend, MPI_Rsend, MPI_Ssend)
"-t i[a-z]*" : Trace only calls beginning with MPI_I
4.3 Timing
Timing will give you information about which MPI routines were called and how long the MPI calls took. This information is printed at intervals set by the user with the “-s n” option, where n if the number of seconds.
4.3.1 Using Scali MPI Connect built-in timing
To use the built-in timing functionality in SMC, the mpimon-option -timing "<options>" must be set, specifying which options are to be applied.
The following options can be specified:
(<...-list> is a semicolon-separated list of Posix-regular-expressions.)
-s<seconds> | print for intervals of <seconds>seconds |
-c<calls> | print for intervals of <calls>MPI_calls |
-m<mode> | special mode for timing |
| <mode> = ”sync”: Synchronize with MPI_Barrier before starting |
| collective call |
-p<selection> | enable for process(es) 'n,m,o..' = (list) or 'n-m' = (range) or 'all' |
-f<call-list> | Print after MPI_calls in <call-list>: MPI_call = 'MPI_call' 'call' |
-v | verbose |
-h | print this list of options |
Printing of timing-information can be either at a fixed time-interval, if "-s <seconds>" is specified, or for a fixed number-of-calls-interval, if "-c <calls>" ia used. It is also possible to obtain output after specific MPI-calls by using "-f <call-list>"; see above for details on how to write <call-list>.
The output has two parts: a timing-part and a buffer-statistics-part.
The first part has the following layout:
All lines start with <rank>: where <rank>: is rank within MPI_COMM_WORLD. This part is included to facilitate separation of output (grep).
Example:
user% SCAMPI_TIMING=”-s 1” mpimon ./kollektive-8 ./uf256-8.pgm -- r1 r2
where '<seconds>' is the number of seconds per printout from Scali MPI Connect produces:
1: 13.26.10 | -------------#calls | Delta---------- | tim/cal | ---------Total---------- | tim/cal |
1: Init+0.002659 s | time | #calls | time |
1: MPI_Bcast | 2 | 169.0us | 84.5us | 2 | 169.0us | 84.5us |