Privacy & Legal Notice

Vampir/GuideView


Contents


Tool Description

The Vampir/GuideView (VGV) software package is a set of analysis tools that consist of compilers (C/C++ and Fortran), an instrumentation trace library, and a graphical user interface (GUI). VGV provides performance measurement, visualization, analysis, and improvement tools for OpenMP and/or MPI applications.

VGV Features

A Brief History of VGV

Installations

Platforms Version Directory Documentation
AIX 3.4.3 /usr/local/tools/kppp /usr/local/tools/kppp/doc
IA32-Linux, IA64-Linux* 3.4.3 /usr/local/tools/kppp /usr/local/tools/kppp/doc
Tru64 3.4.3 /usr/local/tools/kppp /usr/local/tools/kppp/doc

* Compiler support for profiling and OpenMP instrumentation is not available on this platform. Please see the section Generating Performance Data without the VGV Compiler.

Quick Start

VGV provides compile scripts vguidec, vguidec++, vguidef77, and vguidef90 to use the VGV compilers to insert instrumentation and link with the VT library.

Links to these scripts and the vampir GUI are provided in /usr/local/bin, so typical users should not need to modify their PATH to run these commands. These scripts begin can be found in the /usr/local/tools/kppp/vgv/bin directory while the vampir GUI resides in /usr/local/tools/kppp/bin.

Documentation

A variety of documentation can be found in the /doc directory of the latest release (/usr/local/tools/kppp/doc).

VGV-usersguide-ASCI-*.pdf Documentation on the unique features of VGV; not a definitive manual of all aspects of the tool.
Release-Notes-ASCI-*.pdf Information regarding issues addressed in the current release.
README.novice Novice agent README.
VT.pdf Documentation for the commercial version of VT. Contains useful information specific to the VT library.
Vampir-userguide.pdf User guide for the commercial vampir tool.
Vampir-instguide.pdf Installation guide for the commercial vampir tool.

Add /usr/local/tools/kppp/man to your MANPATH to get man entries for such topics as vampir and VT (the VGV instrumentation API).

Support

Please contact the LC Hotline (lc-hotline@llnl.gov) with any questions or requests for assistance. There are several knowledgable VGV users available to provide support.

VampirNextGeneration—Scalable Trace Analyzer

VampirNextGeneration (VNG) is a trace analyzer with a parallel backend which has been found to greatly increase GUI response time when viewing large amounts of trace data. VNG also includes new viewing features, such as abstracting dense communication lines into annotated regions with a circle indicating communication density.

Making use of VNG requires starting a server, starting the front end, connecting to the server, and opening your target trace data.

Generating Performance Data without the VGV Compiler

Some applications may run into complications when using the VGV compiler on certain platforms. For example, due to name-mangling differences between the VGV compiler and the IBM C++ compiler, objects compiled with the IBM C++ compiler cannot be linked with VGV-generated objects.

MPI tracing data, hardware counter data, and function profiling data can still be measured without using the VGV compiler by linking with the VT tracing library and HPM (Hardware Performance Monitor) object and making use of the VGV APIs to hand-instrument your code.

The following table illustrates necessary link flags and objects for generating MPI trace data and HPM data. In this case you would link with your standard MPI link scripts, such as mpxlf or mpiicc. Generating HPM data in this manner causes the VT library to sample HPM counters when VT trace calls (e.g. from within MPI calls) are executed. To activate counters, generate a vt_config file with COUNTER statements such as "COUNTER PAPI_TOT_INS ON". Be sure to set the environment variable VT_CONFIG to point to this file.

MPI Tracing AIX IBM Compiler -L/usr/local/tools/kppp/lib -lVT -lld -lm
Linux Intel Compiler -L /usr/local/tools/kppp/lib -lVT -lpthread -ldwarf -lelf
IA-64/IPF Linux (Thunder) Intel Compiler -ldl -Wl,--start-group -L/usr/local/tools/kppp/lib -lVT -lvtelf -ldwarf -lvtunwind -Wl,--end-group -lpthread
MPI Tracing and HPM Sample Data AIX IBM Compiler -L/usr/local/tools/kppp/lib -L/usr/local/tools/papi/papi_default/lib -lpapi -lVT -lVTsample -lld -lm -lpmapi
Linux Intel Compiler -L/usr/local/tools/kppp/lib -L/usr/local/tools/papi/lib -Xlinker "-rpath /usr/local/tools/papi/lib" -lpapi -lVT -lVTsample -lpthread -ldwarf -lelf

For more information on the VGV APIs, please see Chapter 4, "User-level Instrumentation with the API" in the VGV VT user's guide (/usr/local/tools/kppp/doc/VT.pdf) and Section 7.2, "Execution Scopes for Hierarchical Data Collection" in the VGV user's guide (/usr/local/tools/kppp/doc/VGV-usersguide-ASCI-*.pdf) or man VT.

Generating Performance Data without the Vampir GUI

A new awk script (/usr/local/tools/kppp/bin/convert-stats) has been provided to extract statistics information from a tracefile with statistics data. Statistics data will be stored in a file [application name].prot. Use the convert-stats script with the following syntax: "convert-stats [application name].prot". Activate statistics collection by pointing the environment variable VT_CONFIG at a configuration file that contains the "STATISTICS ON" directive.

Known Issues

  1. Memory limitations: If you are working with large traces, you should use VampirNextGeneration (vng) or vampir-64 (on AIX systems).
  2. Flush directory: Users have encountered a problem filling up the default flush directory (/tmp) for VGV. This default directory can be changed with the VT_FLUSH_PREFIX environment variable. In a previous case, using /var/tmp corrected the problem. For example: setenv VT_FLUSH_PREFIX /var/tmp
  3. Name mangling incompatibility on AIX: C++ applications compiled with VGV may not be able to link against C++ objects compiled with the AIX C++ compiler due to differences in name mangling between the compilers.
  4. Collective operations overhead: In cases with slow X performance or many collective operations, the redrawing of collective operations in the global timeline can significantly affect the GUI response. The display of collective operations can be disabled by default by disabling the "Collective Operations" box in "Preferences->Displays->Timelines...". The display of collective operations can be enabled from within the pop-up menu (right-click) in the Global Timeline, under the Components entry. The current settings can be saved as the default from File->Config->Save.
  5. Num Lock disables keyboard: We have noticed that in some cases activating the Num Lock key on a desktop system will prevent VGV from responding to keyboard input.
  6. Other X applications may cause the Vampir GUI to fail with X terminals: We have noticed that in some cases when running the Vampir GUI from an X-terminal, the presence of other running applications (such as Netscape) cause Vampir to fail. After exiting the other applications, Vampir will successfully run.
  7. VGV on Linux uses PAPI with 128 character pathname length support: The VGV installation of Linux makes use of the default PAPI support of pathname lengths up to 128 characters. If you are using long path names with VGV and PAPI on Linux, you may encounter PAPI-related error messages or undefined behavior.

Examples

Pallas and KAI provide several examples, which can be found in /usr/local/tools/kppp/examples. Copy any of these directories to your local directory and type make. You will need to identify the appropriate run* script and possibly modify the launch command to run the example.


High Performance Computing at LLNL   Lawrence Livermore National Laboratory