[Next] [Previous] [Up] [Top] [Contents]

SoftLab--A Laboratory for Computational Science

Principal Investigators: Christoph M. Hoffmann, Elias N. Houstis, John R. Rice

Research Associates: W. Bouma and A. Catlin

Sponsor: NSF

Computational science and computational engineering require addressing the fundamental challenge of harnessing high-performance computing equipment and exploiting it through very high level systems that are problem-oriented. Such systems require a wide range of expertise plus a flexible and diverse array of equipment. The laboratory is to provide infrastructure facilities that serve the needs for basic research broadly focused on building problem-solving environments for applied, experimental work for computational science. The facilities include:

The laboratory provides an ideal environment to accept and meet the challenges of computational engineering and science. The facility leverages the infrastructure and support bases we have built through the Computing About Physical Objects project (CAPO). The facility benefits from an environment with strong expertise in mathematical software, electronic prototyping, geometric modeling, parallel algorithms, databases, software engineering, and computer systems. The facility is a catalyst for significant research in computational engineering and science, both within the Computer Science Department, as well as in other departments, and so accelerates the maturation of a number of collaborative, interdisciplinary research projects that are beginning to create a critical mass of applications-oriented research and expertise in computational science. This effort is SoftLab.

A central group effort within SoftLab addresses the full range of issues in the future paradigm of computational science. It creates four problem solving environments: rigid-body mechanics, idealized internal combustion engine design, and two chemical engineering applications. These involve a core group of computational scientists (Christoph Hoffmann, Elias Houstis, John Rice) and applications scientists. There are a number of basic research efforts in parallel and distributed computing that use SoftLab facilities in an essential way. These include projects in computational biology, simulation, parallel algorithms, cryptology, software engineering, and computational geometry. There are several projects which use the laboratory facilities to build prototype systems for computational science. These include collaboration with researchers in projects in chemical engineering, mechanical engineering, biology, and biochemistry. As the facility matures, we plan to expand the number of such collaborations.

A Functional View of SoftLab

The focus of SoftLab is to create a laboratory, with a software layer above the familiar "physical" wet and dry laboratories of science and engineering. The project builds the needed software and algorithmic infrastructure for some of the important activities in a lab and produces the electronic analog of a scientific laboratory environment for important applications. The functional view of the architecture of SoftLab is shown in Figure 1 on page 70. It consists of five layers of application-specific and generic software. Much of this infrastructure will be based on the results and experience of the CAPO project.

SoftLab Research Agenda

Compiler Support for Persistence

Principal Investigator: Tony Hosking

Sponsor: Sun Microsystems

We are exploring the performance advantages to be gained through compilation of persistent programming languages.To this end, we are extending the Digital Systems Research Center implementation of Modula-3 to allow programmers to specify and manipulate persistent data more easily and efficiently. Persistent roots are simply designated global variables that act as handles on root objects in persistent storage. All objects reachable from a persistent root also persist. We overload Modula-3's traced pointers so that they may refer to persistent data, even if that data is not yet resident in memory. Because pointers are traced, the reachability of data from a persistent root is easily determined (similarly to the way the garbage collector determines reachable, non-garbage data).

A shortcoming (from the point of view of persistence) of the current Modula-3 implementation is its use of conservative garbage collection, which unnecessarily restricts dynamic object management. Thus, a first phase of our implementation was to modify the Modula-3 compiler to generate sufficient information to perform accurate garbage collection. Static tables generated by the compiler now accurately describe the location of object pointers in the thread stacks. We are currently evaluating the performance of this implementation and comparing it with the original conservative implementation.

In subsequent work, we are extending the Modula-3 type system to allow static annotations to be attached to pointer types indicating their potential compiler optimizations for persistence, without meeting to implement the full optimizations directly (along with the necessary data-flow analyses).

A Functional View of SoftLab
SoftLab Research Agenda
CS Annual Report - 19 APR 1996

[Next] [Previous] [Up] [Top] [Contents]

>