- Infos im HLRS Wiki sind nicht rechtsverbindlich und ohne Gewähr -
|The VampirTrace library allows MPI communication events of a parallel program to be recorded as a trace file. Additionally, certain program-specific events can also be included. To record MPI communication events, simply relink the program with the VampirTrace library. A new compilation of the program source code is only necessary if program-specific events should be added.||
Tracing an application with Vampir is done in three steps:
- Compiling with the vampirtrace wrappercompiler
- Running the application
- Analysing the trace files using vampir or vampir-server
For detailed usage of Vampirtrace see the user manual which can either be found on your local machine or in the internet.
Compiling with the vampirtrace wrappercompiler
First load the needed software module:
Now you can compile your application using the wrapper compilers vtcc, vtc++ or vtf90 as described in the user VampirTrace manual.
You can specify the amount of instrumentation to be include in the trace using -vt options, e.g. -vt:mpi for MPI instrumentation, -vt:compinst for compiler-based function instrumentation:
On the BW-Grid you first have to login to a node for compilation as some libraries are not accessible from the frontend:
Generating the trace files
Run your application as usual. This will generate the needed trace files.
Which data are collected during the run can be controlled with the VT_* options. Options which may be helpful during analysis are VT_BUFFER_SIZE, VT_MAX_FLUSHES, VT_PFORM_LDIR or VT_METRICS. See the Vampirtrace documentation for more details.
In this section common errors and solutions to overcome the problems are listed.
Incomplete trace files
VampirTrace: Maximum number of buffer flushes reached (VT_MAX_FLUSHES=1) VampirTrace: Tracing switched off permanently
Trace data did not fit into a single VampirTrace buffer. Unlimit the number of buffer reuses with
Not enough space on /tmp
VampirTrace: FATAL: OTF_WStream_writeLeave failed: ERROR in function OTF_WBuffer_writeUint64, ... OTF_WBuffer_guarantee() failed.
Check if /tmp has filled up to 100% by executing
A solution is to use a workspace in combination with the VT_PROFM_LDIR variable:
Library issues on NEC
Try to export LD_LIBRARY_PATH