Performance Visualization
Parallel Programs


MPE (MPI Parallel Environment)

MPE is a software package for MPI (Message Passing Interface) programmers. The package provides users with a number of useful tools for their MPI programs. The latest version is called MPE2. Current available tools under MPE2 are the following:

  1. A set of profiling libraries to collect information about the behavior of MPI programs. Linking the user MPI program with the libraries will generate logfile for postmortem visualization when the user program is executed.
  2. Convenient compiler wrapper, mpecc and mpefc, are provided to compile/link with the related profiled libraries, e.g. "mpecc -mpilog" enables automatic MPI and user-defined MPE logging, "mpecc -mpicheck" enables collective and datatype checking of the user MPI program, and "mpecc -help" shows available options.
  3. A SLOG-2 viewer, Jumpshot, for the various logfiles.
  4. A set of CLOG-2 and SLOG-2 utilities programs.
  5. An MPI collective and datatype checking library.
  6. A shared-display parallel X graphics library.
  7. A profiling wrapper generator for MPI interface.
  8. Routines for sequentializing a section of code being executed in parallel.
  9. Debugger setup routines.

The document that is distributed with old MPE, User's Guide for MPE, is a bit out-of-date, but still contains useful information.

MPE is designed to work with any standard compliant MPI implementations, e.g. MPICH2 and OpenMPI. The original MPE is distributed with MPICH. The up-to-date MPE2, which is distributed with MPICH2, is located below the top-level MPICH2 directory, i.e. mpich2-xxx/src/mpe2. MPE/MPE2 can be built with most MPI implementations, i.e. independent of MPICH/MPICH2. Two standalone versions of MPE are made availble here for users who don't want to download MPICH/MPICH2.

The latest MPE2, mpe2-1.3.0 (mpe2.tar.gz), and its older versions have been shown to work with OpenMPI, LAM/MPI, MPICH-1, MPICH2, and commercial MPI implementations available on IBM's AIX, BG/L, BG/P, NEC SX-8, Cray X1E, Cray XT4 (catamount) and is also reported to work with HP-MPI 2.0.1 (linux AMD64). For platform that needs cross-compilation support, e.g. NEC SX-8 or Cray XT4 or BlueGene(depends on front-end), the release of mpe2 does not require any cross file, i.e. no 2-step configuration procedure is needed. This version also supports a thread-safe MPI logging library through a global mutex of MPE logging library (which is not thread-safe yet). The thread-safe MPI logging library has been shown to work with MPICH2, OpenMPI and AIX's MPI.

Current and older MPE2 releases can be found here.

The old MPE, mpe-1.9.1 (mpe.tar.gz), contains the latest performance visualization tool slog2sdk but without all the older visualization tools, i.e., no Jumpshot-2, SLOG-1/ Jumpshot-3.

The old MPE, mpe-all-1.9.1 (mpe-all.tar.gz), contains all the visualization tools as well as slog2sdk. The mpe.tar.gz and mpe-all.tar.gz are provided for backward compatibility purpose.

Users are strongly urged to use MPE2 instead of the old MPE.

SLOG-2 Software Development Kit

slog2sdk provides both the Software Development and Runtime environments for SLOG-2 and Jumpshot-4.

The runtime environment includes a slog2 visualization tool, i.e. Jumpshot-4, and utility programs like slog2print and slog2navigator, and logformat converters like clogTOslog2 and traceTOslog2 which supports rlogTOslog2.

The development environment is mainly designed for TRACE-API implementors. It consists of a Java implementation of SLOG-2 Input/Output APIs, a Java implementation of TRACE-API for CLOG, a reference C implementation of TRACE-API and the JNI interface of TRACE-API and its Java counterparts. It is designed to work well in Unix-based environment. So Unix and cygwin users are recommended to use slog2sdk.tar.gz even if they only need the runtime enviroment. Native Windows user should use slog2rte.tar.gz instead.

For typical end users of SLOG-2, e.g. MPE users, the runtime environment is what you are looking for. The runtime includes the following utility programs which are located in the bin/ directory after the package is configured and installed. The programs are

  • jumpshot: A visualization tool for SLOG-2 file, i.e. Jumpshot-4, that can also do trace to SLOG-2 file convertion.
  • logvconvertor: A GUI front end that integrates all command line logfile convertors.
  • slog2print: A scalable SLOG-2 printing program.
  • slog2navigator: Another SLOG-2 printing program with navigation feature. aka. baby jumpshot.
  • slog2filter: A SLOG-2 filtering program that can filter out undesirable categories of drawables from slog2 files. It can also reformat SLOG-2 file to produce more desirable preview data structure.
  • slog2updater: A SLOG-2 format updating program that converts old SLOG-2 format to the latest SLOG-2 format. It also works like the slog2filter.
  • clogprint: A CLOG printing program.
  • clogTOslog2: A CLOG to SLOG-2 converter.
  • rlogprint: A RLOG printing program.
  • rlogTOslog2: A RLOG to SLOG-2 converter.
  • traceprint: A custom TRACE printing program.
  • traceTOslog2: A custom TRACE to SLOG-2 converter, this is created only if configure option --with-trace-libdir is used.
  • Each of the programs has a "-h" option to show its usage.

    The Development environment includes the RunTime environment and the extra directories: src/, trace_sample/ and trace_rlog/. The doc/ directory contains both the documentation for the runtime and development environment. The README file contains more detailed information.

    The current release of slog2sdk, version 1.2.6, is slog2sdk.tar.gz. This Jumpshot release contains friendlier features in viewing threaded slog2 file and some simple statistics data in the Legend window. The tool is known to run in almost all Java2 platforms, i.e. from j2sdk 1.2.2 to jdk 1.6.0, except j2sdk 1.2.2 can run the tools but it cannot build the tools from the source code. Current and older slog2sdk releases can be found here.

    SLOG-2 RunTime Environment

    slog2rte provides the Runtime environment for SLOG-2 and Jumpshot-4.

    The runtime environment includes a slog2 visualization tool, i.e. Jumpshot-4, and utility programs like slog2print and slog2navigator, and logformat converters like clogTOslog2 and traceTOslog2. rlogTOslog2 is provided through traceTOslog2 and TraceInput.dll.

    This runtime package is designed for GUI users in mind, e.g. Windows and MacOSX users. It contains jumpshot_launcher.jar, which serves as a clickable icon in most GUI file manager, provides more accomodating parameters in launching the JVM for Jumpshot-4. For Windows user, the Jumpshot-4 JVM launch parameters can be modified in "Documents and Settings\user_name\.jumpshot_launcher.conf". As long as Java2 runtime is installed, Jumpshot-4 can be launched by clicking on jumpshot_launcher.jar.

    The current release of slog2rte, version 1.2.6, is slog2rte.tar.gz. The tool is known to run in almost all Java2 Runtimes, i.e. from j2re 1.2.2 to jre 1.6.0. Current and older slog2rte releases can be found here.

    NOTE: for those users who are upgrading from slog2rte version 1.2.1 to version 1.2.2 or 1.2.3, please remove the launcher setup file created by version 1.2.1, i.e. "Documents and Settings\user_name\.jumpshot_launcher.conf" before clicking on jumpshot_launcher.jar. Otherwise, launcher could mistakenly report missing of JVM. Version 1.2.3 and earlier did not allow white space in the pathname to the logfiles. Version 1.2.4 fixes the white space problem in the logfile pathname as well provides a more seamless integration between logfile convertor and main Jumpshot GUIs. Version 1.2.6 provides some simple statistics in Legend windows, friendlier Timeline windows for threaded slog2 file, and various bugfixes.


    MPE User's Guide [ Postscript, PDF]

    Jumpshot-4 User's Guide [ PDF]

    Bug Reports

    Questions could be posted to Bug report should be reported here.