tau_pin — Instruments application at run time using Intel's PIN library


tau_pin [-n proc_num] [-r rules] {--} [myapp] [myargs]


-n proc_num

This argument enables multple instances of MPI applications launched with MPIEXEC. proc_num is the parameter indicating number of MPI process instances to be launched. This argument is optional and one can profile MPI application even with single process instance without this argument.

-r rule

This argument is specification rule for profiling the application. It allows selective profiling by specifying the "rule". The rule is a wildcard expression token which will indicate the area of profiling. It can be only the routine specification like "*" which indicates it'll instrument all the routines in the EXE or MPI routines. One can further specify the routines on a particular dll by the rule "somedll.dll!*". The dll name can also be in regular expression. We treat the application exe and MPI routines as special cases and specifying only the routines is allowed.


It's the application exe. This application can be Windows or console application. Profiling large Windows applications might suffer from degraded performance and interactability. Specifying a limited number of interesting routines can help.


It's the command line arguments of the application.


To profile routines in mytest.exe with prefix "myf":

tau_pin -r myf.*  -- mytest.exe

To profile all routines in mpitest.exe ( no need to specify any rule for all ):

tau_pin  mpitest.exe

to profile only MPI routines in mpitest.exe by launching two instances:

tau_pin -n 2 -r _MPI_.* -- mpitest.exe


  • * for anything, for example *MPI* means any string having MPI in between any other characters.

  • ? It's a placeholder wild card ?MPI* means any character followed by MPI and followed by any string, example: ??Try could be __Try or MyTry or MeTry etc.