Vampir/VampirServer

Vampir is a full featured tool suite for analyzing the performance and message passing characteristics of parallel applications. Vampir is based on run-time tracing of program events collected as OTF format files by other tools/libraries, such as VampirTrace, TAU, Score-P, Open|SpeedShop, etc.

Vampir's graphical analysis framework provides a large set of chart representations of an application's event-based tracing performance data. Developers can use these graphical displays, including state diagrams, statistics, and timelines, to obtain a better understanding of the inner workings of their parallel programs and how to optimize them. Powerful zooming and scrolling functionality allows users to quickly extract application performance characteristics at any desired level of detail. Most displays provide additional context information and customization options. Extensive filtering capabilities for processes, functions, messages, and collective operations help to identify interesting hot spots in the overall collection of information. Individual displays can be coupled, with automatic statistic updates.

VampirServer is a client/server version of Vampir that can quickly extract and analyze data from large trace files by using a parallel backend.

Platforms and Locations

Platform Location Notes
x86_64 Linux /collab/usr/global/tools/vampir/ Multiple versions may be available. Load with Dotkit.
BG/Q N/A  

Quick Start

NOTE: Before using Vampir/VampirServer, you must first have generated OTF format trace files by another tool/library such as VampirTrace, Score-P, TAU or Open|SpeedShop.

1. Determine which Dotkit version of Vampir you want to load, and then load that Dotkit package. In the example below, the default version is loaded.

% use -l vampir

[some output omitted]

performance/tracing ----------
      vampir-8.4.1 - Vampir : Trace visualizers vampir and vampir-server
            vampir - Vampir : Trace visualizers vampir and vampir-server

[some output omitted]

% use vampir
Prepending: vampir (ok) 

2. Start vampir/vampirserver

  • For a small number of small-to-medium sized trace files, the vampir interface can be used.
  • For large/larger number of trace files, or if the vampir interface is slow, you can use the parallel vampirserver interface.

Example: Using vampir

  • Simply issue the vampir command. The GUI will start. If you've used it before, you'll be shown the "Open Recent" dialog box, otherwise you'll see the "Open New" dialog box.
  • Assuming your desired OTF file is not shown, navigate to it from either dialog box as appropriate.
  • Select the desired OTF file and open it

Examples below (click for larger image)

Example: Using vampirserver

  • The vampirserver interface is used to launch a parallel server process. By default it will use the pdebug queue of your login machine. After it starts, it will tell you which node:port it is listening on. For example, starting a 4 vampirserver processes on 2 nodes in the pdebug (default) queue:
% vampirserver up -n4 -N2
Launching VampirServer...
Custom argument SRUN_NODE_COUNT = -N2
Custom argument SRUN_POOL = -ppdebug
VampirServer 8.4.1  (r9456)
Licensed to LLNL
Running 4 analysis processes... (abort with vampirserver stop 11522)
VampirServer <11522> listens on: sierra14:30003 
  • Now, start vampir. If the "Open Recent" dialog box appears, select "Open Other" to get to the "Open New" dialog box.
  • Select "Remote File" from the "Open New" dialog box. The "Open Remote" dialog box will appear.
  • Enter the server and port where vampirserver is listening. Then click on "Connect".
  • Navigate to the desired OTF file and open it.

Examples below (click for larger image):

3. View and analyze your application's behavior using the vampir GUI: After you open your trace file by either method from step 2 above, the "Trace View" window will appear. Example below (click for larger image):

Because Vampir has so many features, users should consult the Vampir documentation to become familiar with its usage. Several examples of its functionality are shown below (click for larger image).

Output

  • Vampir / VampirServer do not produce any output files, however they do require as input OTF format trace files produced by another tool/library such as VampirTrace, Score-P, TAU or Open|SpeedShop.

Compiling and Linking

  • Users only need to load the vampir dotkit package ("use vampir"). No other special compiling or linking is required.

Run-time Options

  • Vampir has very few command line options, and they are only used when starting the GUI:
options:
-h   --help              prints out this message
      --presentation      enable presentation mode (visual mouse)
-v   --version           output version information 
  • VampirServer provides several run-time options used to start, stop, list and configure the server instance. These can be viewed by using the
vampirserver help command.

command. For example:

% vampirserver help
USAGE
    vampirserver [subcommand] [arguments ...] [-- [custom arguments ...]]

SUBCOMMANDS
    help, -h, --help             show this little help

    config, cf [-s]
        Interactively configures VampirServer for the given host system. MPI
        support can be enabled or disabled. The default launch script can be
        set.

        -s, --silent             use default answers for all questions

    list, ls  [servers | launchers]
        List server related information. Currently, this command lists all
        active servers or the available launch scripts (launchers). If no
        argument is provided, all active servers are listed.

    start, up  [-n] [-p] [-t] [LAUNCHER]   
        Start a new server instance. LAUNCHER identifies the launch script to
        be used.

        -a, --auth=MODE          set authentication mode: crpw-rnd, none       
        -n, --ntasks=NUMBER      set the number of analysis tasks
        -p, --port=NUMBER[:END]  set port (range) the server listens on
        -t, --timeout=NUMBER     set the startup timeout to NUMBER seconds

    stop, ex  [SERVER_ID]
        Stop the given server or the most recent server if no SERVER_ID is
        provided. The server ID is printed during startup. Alternatively, use
        the list command to print a list of available servers.

    version, -v, --version       show VampirServer's revision

Additionally, LC has modified the vampirserver startup to permit specification of the number of nodes used (in addition to tasks) with the -N option.

Troubleshooting

  • Vampir is a complex toolkit, and as such, troubleshooting problems may be difficult for the average user.
  • The most common problem is forgetting to load the Vampir environment using the use vampire-packagename command.
  • Most problems, if not easily resolved, should be reported to the LC Hotline.

Documentation and References

  • Vampir Website: https://www.vampir.eu/
  • LC installation directory: see the /doc subdirectory for the vampir / vampirtrace user manuals. For example: /collab/usr/global/tools/vampir/chaos_5_x86_64_ib/vampir-8.4.1/doc
LLNL-WEB-670397