Table of Contents

Vampir Toolset

Vampir Tool Suite is a collection of tools for analysing performance of parrallel applications. It include instrumentation, measurement and visualization tools. The tools give the user an insight into the dynamic run-time behaviour of their applications. The instrumentation and measurement tools are Score-P and VampirTrace - which is no longer under active development and will not be covered in this documentation, and the Vampir visualization tool.

With a powerful graphical framework which displays state diagram, statistics and timelines, Vampir (the visualization tool) uses run-time events collected by the instrumentation and measurements tools and libraries. Vampir has zooming and scrolling functionalities which allow parallel applications developers to analyse performance of the applications at different levels of details. Filtering capabilities for processes, functions, messages, and collective operations are also available to identify perfromance bottle-necks.

The tools can also be used to interactively navigate through the timelines of applications execution in accelerators. This enables an extensive performance analysis and optimization of hybrid programs written in CUDA, OpenACC, OpenCL, and PyCUDA.

Features:

  1. Powerful zooming and scrolling in all displays
  2. Adaptive statistics for user selected time ranges
  3. Filtering of processes, functions, messages, collective operations
  4. Hierarchical grouping of threads, processes, and nodes
  5. Support of source code locations
  6. Integrated snapshot and printing for publishing
  7. Customizable displays
  8. Server: Vampir also offer a client-server model for:
    1. Distributed performance data visualization
      • Highly scalable
    2. Remote visualization of Performance data.

Traceview (the trace view window)

By default charts toolbar and zoom toolbar are available. Properties of the trace file can be accessed via File → Get info.

Traceview Window Symbols include:

  1. Message and Collective Operation Bursts: Vampir depicts overlapping communication events like messages and collective operations as so-called bursts. Message bursts are depicted as circles and collective bursts as rhombuses.

  1. Markers: To indicate particular points of interest during the runtime of an application, like errors or warnings, markers can be placed in a trace file.

  1. I/O Events: Vampir highlights I/O operations if I/O performance data has been recorded in the trace file. In general, I/O operations are indicated by triangular icons (yellow by default). Zooming into I/O bursts eventually reveals the corresponding individual I/O operations.

Zooming

Zooming is one of the key features of Vampir which makes it an intuitive tool to use in performance analysis and machine characterization of parallel applications. To zoom, a user places a cursor over the area of interest on the timeline, holds the left mouse button and move the cursor to the desired extent. In order to return to the previous zooming state an undo functionality, accessible via the Edit menu, is provided. Alternatively, the key combination Ctrl+Z also reverts the last zoom. Accordingly, a reverted zooming action can be redone by selecting Redo in the Edit menu or by pressing Ctrl+Shift+Z.

Performance Charts

All performance charts in Vampir show information of the time span currently selected in the timeline. Thus the most time-intensive routine of one iteration can be determined by zooming into one or more iterations and having a look at the Function Summary.

Charts toolbar is used to open instances of the available performance charts. Performance charts are arranged in three groups:

Timeline charts
  1. Master timeline.

This is the default timeline when vampir is launched.

  1. Process Timeline:
  1. Counter Data Timeline:
Statistical Charts:
  1. Function Summary:
    • The Function Summary can be shown as Histogram (a bar chart, like in timeline charts) or as Pie Chart.
    • To switch between these representations use the Set Chart Mode entry of the context menu.
    • *Note:* Inclusive means the amount of time spent in a function and all of its subroutines. Exclusive means the amount of time spent in just this function.
  2. Process Summary:
    • The Process Summary, is similar to the Function Summary but shows the information for every process independently.
    • This is useful for analyzing the balance between processes to reveal bottlenecks. For instance finding that one process spends a significantly high time performing the calculations could indicate an unbalanced distribution of work and therefore can slow down the whole application.
    • *Note:* The chart calculates statistics based on Number of Invocations, Accumulated Inclusive Time, or Accumulated Exclusive Time. To change between these three modes use the context menu entry Set Metric.
  3. Message Summary:
    • This is a statistical chart showing an overview of all messages grouped by certain characteristics.
    • *Note:* There will be one bar for every occurring group. However, if the metric is set to Message Transfer Rate, the minimal and the maximal transfer rate is given in an additional small bar beneath the main bar showing the average transfer rate
  4. Performance Radar:
    • Unlike *Counter Data Timeline*, Performance Radar shows one counter for all processes at once, and provides a possibility to create custom metrics.
    • The performance data overlay can also be used to identify functions with a certain amount of allocated memory
    • Defining own Performance Metrics:
      • The Custom Metrics Editor allows to derive own metrics based on existing counters and functions. This is particularly useful as the performance data overlay of the Master Timeline, is capable of displaying the own metrics.
      • Custom metrics are build from input metrics that are linked together using a set of available operations.
      • Custom metrics can be exported and imported in order to use them in multiple trace files.
  5. Communication Matrix View:

  1. I/O Summary:
  1. Call Tree:
Information Charts:
  1. Function Legend:
    • It lists all visible function groups of the loaded trace file along with their corresponding color.
  2. Marker View:
    • It list all marker events included in the trace file.
    • When a marker event is clicked on the “Marker View” the event become selected in the timeline display, and if the selected marker is located outside the visible area the zoom then jumps to this event automatically

  1. Context View:
    • Context View provides detailed information of a selected object additional to its graphical representation.Context View provides detailed information of a selected object additional to its graphical representation.
    • Object can be a function group, message, message burst, etc
    • For example, object specific information for functions includes properties like Interval Begin, Interval End, and Duration,
    • Context View may contain several tabs with a new empty tab being added by clicking the +-symbol on the right hand side.
    • It also offers a mode for the comparison of information between tabs. The =-button on the left hand side allows to choose two objects for comparison, with possibilities also to compare different objects from different charts.

Context menues:

Filtering/Reduction:

Information filtering and reduction:

Comparison of Trace Files

With Vampir it is also possible to compare trace files using “Compare View” option

Customization:

Various customization can be done by selecting preferences.

Vampir in GWDG systems

System Version Comments
SCC 10.0.1 available as a module 'vampir/10.0.1'
SCC

Quick Start in SCC

(base) gwdu101:25 17:17:18 ~ > module show vampir
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   /opt/sw/modules/21.12/scc/common/vampir/10.0.1:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("Vampir 10.0.1 ")
prepend_path("PATH","/opt/sw/rev/scc/vampir/10.0.1/bin")
help([[ Sets up environment for Vampir
]])

(base) gwdu101:25 17:17:24 ~ > 
(base) gwdu101:25 17:18:33 ~ > module load vampir
(base) gwdu101:25 17:18:43 ~ >

Start Vampir

After executing the command ``vampir`` in the command line, the GUI will open with “Open Recent” dialogue box by default. Navigate to the OTF files, select the desired file.

(base) gwdu101:25 17:29:36 ~ > vampir &
[1] 214801

Example Use cases

Serial Optimization:
High Cache miss rate and cache layout of the platform.

Cache misses including cache layout of the system and memory utilization by parallel applications can be viewed and analysed using Vampir.

Additional information