VAMPIR#
VAMPIR is a tool for visualization and analysis of parallel applications. This page provides a brief overview of using VAMPIR and its dependencies on fritz.
Availability / Target HPC systems#
It is available for users running on Fritz. In order to use the application, the following environment variable should be set:
and the binary is available only on front-end nodes of Fritz: We recommend to add the directory to the PATH: and simply executevampir
Notes#
- VAMPIR trace analyzer depends on SCORE-P traces collected at runtime measurements for MPI and OpenMP parallelization schemes collected. SCORE-P can also acquire hardware performance counters through the use of Performance Application Programming Interface (PAPI). To use the applications, you should load the following:
- C/C++ and Fortran codes are supported by SCORE-P.
The user should compile the code from scratch while the compiler
is preceded by
scorep
, i.e. in the case of Fortranmpiifort
should be replaced byscorep mpiifort
and in the case of C/C++mpiicc
should be replaced byscorep mpiicc
- Please note that an appropriate test run should be as short as possible
and as long as it is necessary.
This is a crucial point because SCORE-P can end up with very large trace files.
Even though there is a workaround to visualize large trace files,
they can be too large to be handled by any means.
In case, a set of functions/subroutines are called many times,
you may want to filter them which in turn reduces the size of trace files enormously.
One way of using filters is to apply the following option at
compile time,
scorep --instrument-filter=filter_file
, for more information, e.g. on how to preparefilter_file
, we recommend to read SCORE-P documentation. - The following two environment variables should be included in your job script:
export SCOREP_EXPERIMENT_DIRECTORY=scorep_traces
export SCOREP_ENABLE_TRACING=true
- For recording hardware performance counters, the job script should contain
the following constraint
as well as the corresponding available PAPI metrics:
- for example, to measure double precision
operations
export SCOREP_METRIC_PAPI=PAPI_DP_OPS
- for more available PAPI metrics, run
papi_avail
- for example, to measure double precision
operations
Visualization of large trace files#
In case, the test run cannot be executed for a shorter time or
filtering instrumentation does not apply to your measurements,
the trace files may be so large that cannot (and actually should not)
be executed on the front-end nodes of Fritz. In such circumstances,
you can use vampirserver
on a compute node which has more memory,
or the entire memory of the node is exclusively allocated for you.
Then, VAMPIR running on a front-end can remotely interact with
the vampirserver
.
Here it is an example:
vampirserver start -n 4
: it should be executed on a compute node, either through a Job Script or by means of interactive allocation of a node. In this case, it will utilize four codes. Each compute node on Fritz has 72 cores, therefore you may use a larger value. After executing it, at the last line, you find the necessary information to communicate remotely:- an example:
VampirServer <21613> listens on:
f2157.nhr.fau.de:30097, you need the information with red color to be inserted in the second step.
- an example:
- On a front-end node, execute
ssh -L30000:insert_the_text_in_red_here username@fritz.nhr.fau.de
- now you can run the VAMPIR GUI:
vampir
, when the window of Open File appears, choose Remote and provide the socket port used in the second step. Please note that the front-end node in the second and third steps must be the same.
- Finally, you should stop the server using
vampirserver stop