AIMS |
Overview
AIMS stands for Automated Instrumentation and Monitoring System. It consists of a suite of software tools for measurement and analysis of performance of FORTRAN and C message-passing programs written using the NX, PVM or MPI communication libraries.
AIMS was developed at NASA Ames Research Center under the sponsorship of the High Performance Computing and Communication Program.
AIMS can be used to illustrate algorithm behavior, help analyze program execution and highlight problem areas that can then be modified to improve program execution.
The primary AIMS components are:
Additional Information
Sample AIMS Displays
Falcon |
Overview
The Falcon Monitoring and Steering System is a set of tools that collectively support on-line program monitoring and steering of parallel and distributed applications. Falcon was developed and distributed by Georgia Tech.
There are four major conceptual components of Falcon:
Features of Falcon
Additional information
FORGExplorer |
Overview
FORGExplorer graphical browser and profiler for serial and parallel Fortran applications. Its Motif GUI tool presents a global, interprocedural view of a program and can perform in-context searches and variable traces of considerable complexity. It is one of the optimization tools available from Applied Parallel Research, Inc.
Primary features include:
Additional information
Sample FORGExplorer Variable Trace Display
MPICH |
Overview
MPICH is a public domain implementation of MPI, developed and made available by Argonne National Lab and Mississippi State University. It is distributed with a number of subroutines which enable event logging. The programmer explicitly defines which events are to be logged, and when logging should occur by calling the appropriate subroutines from within a C or Fortran MPICH program. The events which are typically logged are MPI communication events. Event logs created during program execution, can then be visualized by the Nupshot tool, also distributed with MPICH.
Additional information
Sample Nupshot Display
Pablo |
Overview
The Pablo Performance Analysis Toolkit consists of several components that provide for the capture and analysis of performance data from serial and parallel programs running on a variety of platforms.
It was developed by the Pablo academic research group located at the Department of Computer Science at the University of Illinois, Urbana-Champaign.
Primary components include:
The Pablo visualization system is similar to a graph which the user builds, using a network of filters and display widgets.
Additional information
Sample Pablo Displays
Paradyn |
Overview
Paradyn is a tool for measuring and analyzing the performance of parallel and distributed programs. Paradyn can measure large, long running programs and provides facilities for helping to automatically find performance problems in parallel programs. Paradyn operates on executable (a.out or .exe) files by dynamically inserting measurement code while the program is running.
Defined performance metrics number about 30, and include information about processes, cpu activity, message passing activity, procedure calls, synchronization operations and I/O.
Paradyn's features include:
Additional information
Sample Paradyn Displays
PGPROF |
Overview
PGPROF is a High Performance Fortran graphical source code profiler from The Portland Group, Inc. It is designed to be used in conjunction with the Portland Group's High Performance Fortran compiler, PGHPF.
PGHPF includes flags for profiling an HPF code at the function level, or at the function plus statement level. Timing statistics are collected at runtime in a pgprof.out file, and then viewed post-execution with pgprof. Pgprof displays a number of statistics including:
Information can be viewed for any or all processes in the parallel job, or the minimum, maximum, or average values can be viewed. You have a choice of viewing profiling statistics as either bar graphs or numerical values.
Additional Information
Sample PGHPF Display
TAU |
Overview
TAU: Tuning and Analysis Utilities
TAU is a program and performance analysis tool framework being developed for the DOE 2000 and ASCI initiatives at Los Alamos National Laboratory. TAU provides a suite of static and dynamic tools that provide graphical user interaction and interoperation to form an integrated analysis environment for parallel C++ applications. In particular, a robust performance profiling facility availble in TAU has been applied extensively in the ACTS toolkit. Also, recent advancements in TAU's code analysis capabilities have allowed new static tools to be developed, such as an automatic instrumentation tool. These two features of the TAU framework are described below.
TAU Portable Profiling Package
The model that TAU uses to profile parallel, multi-threaded C++ programs maintains performance data for each thread, context, and node in use by an application. The profiling instrumentation needed to implement the model captures data for C++ functions, methods, basic blocks, and statement execution at these levels. The instrumentation is complicated, however, by advanced features in the C++ language, such as templates and namespaces. All C++ language features are supported in the TAU profiling instrumentation, which is available through an API at the library or application level. The API also provides selection of profiling groups for organizing and controlling instrumentation. ACTS software layers have been instrumented and support for thread profiling has been recently added.
From the profile data collected, TAU's profile analysis procedures can generate a wealth of performance information for the user. It can show the exclusive and inclusive time spent in each function with nanosecond resolution. For templated entities, it shows the breakup of time spent for each instantiation. Other data includes how many times each function was called, how many profiled functions did each function invoke, and what the mean inclusive time per call was. Time information can also be displayed relative to nodes, contexts, and threads. Instead of time, hardware performance data can be shown. Also, user-level profiling is possible.
TAU's profile visualization tool, racy, provides graphical displays of all the performance analysis results, in aggregate and per node/context/thread form. The user can quickly identify sources of performance bottlenecks in the application using the graphical interface. In addition, TAU can generate event traces that can be displayed with the Vampir trace visualization tool.
TAU Code Analysis Package
The TAU static analysis tools are based on a C++ code analysis system built using a combination of Edision Design Group's C++ front end, edgcpfe, which produces an intermediate language (IL) representation, an IL converter tool, taucpdisp, which generates a more descriptive C++ program database (PDB), and a C++ library, ductape, for processing and merging PDB files, among other interesting things. With these tools, TAU will provide tools that support sophisticated views of program structure, incorporating the latest C++ language features such as templates, namespaces, and exceptions. Currently, the code analysis systems have been used to analyze C++ source to automatically generate TAU profiling instrumentation.
TAU is being developed jointly by the University of Oregon, Los Alamos National Laboratory, and Research Centre Jülich, ZAM, Germany.
Additional information
Sample TAU Displays
VAMPIR |
Overview
VAMPIR is an instrumentation and tracing tool for MPI programs. Program instrumentation is accomplished via linking with the VAMPIRtrace library. It instruments your program by interposing itself between your code and the MPI library. Upon program completion, a trace file produced by the instrumentation is able to be visualized by VAMPIR's many displays.
Graphical displays include:
Most displays are available in global and per-process variants; statistics can be restricted to arbitrary parts of the trace, and multiple traces produced by the same application can be compared to assess optimizations etc.
The graphical user interface allows to manage and control displays and statistics on large data sets easily:
Additional information
Sample VAMPIR Displays