This is a NASA sponsored research
project. The goal of the project is to develop publicly accessible
data sets and databases for use by scientists, planners, the general
public, and other groups.
My role in the project is, along with other members of the group, to
research and to
provide efficient mechanisms to distribute and transfer data. One
important characteristics of these data is that they are mostly
generated and used by other geographic information system and
remote sensing software such as ARC/INFO and ER-MAPPER.
This project is ongoing.
Most programmers depend on repeatable behavior of the
program to locate bugs of the program.
In a sequential program, the execution of the program
can easily be repeated. In a distributed program, however,
the execution order of the
program components varies from one run to another due to external factors
such as network delay. It is very
difficult, often impossible, to repeat the same sequence of
execution. This makes the debugging of
distributed program very difficult.
This research focus on one tool that can aid debugging in distributed
programming. The tool is written in such a way that the network functions
of a distributed program can be replaced with the software modules
that communicate through memory. The programmer can test the
distributed program on a single machine when debugging. The network
activities are simulated. The debugging programmer can use different
random seed to try difference sequences of program execution. But each
one is repeatable. In this way, most of the bugs can be found when
debugging on a single machine. The programmer can then link the
distributed program with real network library. No internal
program changes are required, only linking with different
libraries.
This project is ongoing.
In this research, we started with investigating the issue of space
utilization in distributed simulation. Using the fact that events in
the event list form a forest, deleting events when rolling back can be
realized by a tree traversal algorithm. This can effectively save
space used for storing such information as incoming message and
separate state information. This concept can be applied to the class
of problems where process does not deposit events or messages on other
processes.
We then studied the feasibility and efficiency of implementing
distributed simulation in the environment of cluster of
workstations. We found that though frequent communications increase
the delay and reduce the efficiency, they can also reduce the number
of rollbacks. When more communications are present, optimistics
simulation is more efficient; when very little communciations take
place, conservative simulation seems more effective.
This project is in its final stage. I am trying to write a summary
paper. A list of my publications in this work can be found here .