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 Fortranmpiifortshould be replaced byscorep mpiifortand in the case of C/C++mpiiccshould 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