Parallel Performance Debugging Tool
Gist Contract




General Description

Developers of parallel programs try to optimize their program in certain ways: split work evenly among the processors, maximize the performance of each processor, minimize time waiting for synchronization points, and so forth. And they do not consider their programs right until they achieve maximal speedup on multiple processors. Unfortunately, there is a surprising lack of tools to aid the parallel programmer in achieving the highest performance possible. The goal of this project is to develop a performance analysis tool and library that will aid in this task. The software to be delivered will not only run on current parallel computers, but will be easily ported to others as they become available.

To use the system, the programmer will make some key calls that mark "events" in his program. He will further define "states", which are defined as the time between two particular events. Events will be tracked as accurately as possible, and recorded to disk at the end of execution.

The event file will then be processed by a graphical application that will report as much information as the user requests about his program.


Contractor Obligations

The contractor hereby agrees to provide the client with functional software that meets the specifications defined below under the heading "Primary Requirements". The contractor further agrees that this software, shall be delivered to the client no later than May 1st, 1999. The contractor further agrees that if the project meets that "Primary Requirements" is delivered before the due date stated above, the contractor shall develop additional software that meets at least part of the specifications defined under the heading "Secondary Requirements". This additional software shall be delivered to the client no later than May 1st, 1999. The contractor further agrees to provide the client with adequate documentation regarding the design and use of all software developed. This documentation will be delivered to the client no later than May 1st, 1999.


Client Obligations

The client agrees to provide the contractor with all necessary parallel computing codes that need for testing and provide access to hardware and services defined under the heading "Required Resources". The client further agrees to respond quickly to design proposals and questions posed by the contractor.


Primary Requirements


Secondary Requirements

  1. Other views of data, as conceived by the client or the team.
  2. Port instrumentation library to additional platforms beyond the initial targets of SGI Irix and Windows NT.


Required Resources

  1. Access to at least one multiprocessor SGI machine (Evans, Cystine, etc.)
  2. Access to at least one multiprocessor Intel based PC running Microsoft Windows NT 4.0.
  3. Sample parallel programs for Windows NT and SGI Irix.
  4. A sample parallel program which has been instrumented using the original Gist tool.
  5. Sufficient disk space accesible from each target platform for development and testing.
  6. Java development tools including a GUI builder.



The following situations could adversely affect the success of the project:
  1. We may not have sufficient access to appropriate hardware (very unlikely).
  2. The instrumentation library will necessarily alter the performance characteristics of the calling program. The inaccuracies depend on not only on the system, but also the way it's used. The user assumes the risk that performance data contains inherent inaccuracies. If the performance changes prove to be problematically large, we will explore ways to minimize it.



Lars Nyland - Client

Jan Prins - Client

Timothy Culver - Contractor

Liusong Gao - Contractor

Xiaohu Guan - Contractor

Rob Mccauley - Contractor

Zhiwei Xiao - Contractor

GIST Parallel Performance Debugging Tool