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