Status Report: Evolutionay Design of Complex Systems
Agreement/Contract Number: F30602-96-2-D885
For the quarter ending: October 1997
Steven P. Reiss, Principle Investigator
Brown University
Deparment of Computer Science, Box 1910
115 Waterman St., 4th floot
Providence, RI 02912
E-mail: spr@cs.brown.edu
WWW Homepage: http://www.cs.brown.edu/research/complex
Voice: 401-863-7641
FAX: 401-863-7657

1.0 Participants

Faculty:

Steven Reiss
Maurice Herlihy
Robert Netzer

Research Assistants:

Robert Velisar
Yi-Kang Xu
Weisheng Xu
Donald Carney
Jose Castanos
Dimitrios Michailidis
Linpei Zhang

2.0 Ongoing Research & Development

2.1 Integration Mechanisms

2.1.1 Development of a multiple database framework for program information

We have been developing a database of trace information.  This involves programs to generate information about large running systems dynamically and at low cost as well as programs to analyze the data generated from such traces and put it into a framework where it can be used for visualization or debugging.  The basic mechanisms for generating trace data as well as some of the fundamental analyses have been worked out and prototypes implemented
We are also writing  a journal paper describing the Desert integration mechanisms.

2.2 Presentation Technology

2.2.1 3D visualization framework

We now have a working framework for 3D program visualization over a variety of data sources including the Desert cross-reference data and the trace databases described above.  We currently support ten different visualization strategies with an open, OpenGL-based toolkit.  The front end for visualization, Cacti, supports a universal-relation-based visual query language.  We have successfully used a prototype here to develop a wide range of visualizations.

2.2.2 FrameMaker APIs for software development

We continue to improve the performance and behavior of the Frame-based front end to Desert programming, both through the use of additional feedback and through faster algorithms.  We are currently exploring  taking our current framework and making it independent from Framemaker so it can be used in other environments and with other editors.  We are also looking how we can improve the presentation of information to the user from the editor.

2.3 Distributed Technology

2.3.1 Transactional Memory

We have been developing a prototype of the Aleph Toolkit, a simple, platform-independent API for an object-based distributed shared memory.  This API is structured in a way that maximizes the flexibility to encorporate into the run-time system custom libraries for synchronization, cache  management, and communication.
The prototype is being implemented as a set of Java classes with optional machine-dependent plug-ins for increased performance.  The prototype is currently undergoing intensive testing using students in an appropriate course and will be released via the Internet once it is more completely debugged.

2.3.2 Instrumentation principles

We have been working on a very general system for detailed, low-impact instrumentation of sequential programs.  We developed new techniques  that allow a programmer to perform very fine-grain monitoring of their programs so as to locate difficult-to-find bugs as they occur during execution.  Performance impact is kept extremely low compared to past approaches.  For example, when performing simplistic types of memory-access checking, the system performs up to 3-10 times faster than commercially available tools (Pure Atria's Purify and Numega's Bounds Checker).  In addition, the system can perform much more sophisticated types of bug detection than current commercial tools.  When fully developed, this system should be able to locate some bugs that are extremely difficult to find currently, reducing software development costs.
 

3.0 Notable Accomplishments & Technology Transition

4.0 Progress on Inter/Intra Cluster Collaborations

5.0 Publications (Partial list)

Robert Netzer, "Finding Consistent Global Checkpoints in a Distributed Computation," IEEE Transactions on Parallel and Distributed Systems, June 1997.

Robert Netzer, "Replaying Distributed Programs Without Message Logging," Symposium on High Performance Distributed Computing (HPDC) August 1997, Seattla WA.

Robert Netzer, "Communication-Based Prevention of Useless Checkpoints in Distributed Computations," Symposium on Reliable Distributed Systems, 1997.

Steven P. Reiss, "Cacti: A front end for program visualization", Proc. Information Visualization '97, pp 46-50, October 1997.

6.0 Travel

7.0 Miscellaneous/Administrative/Problematic Issues

8.0 Plans For The Next Reporting Period

Continue to work on our  ongoing research.