Monthly R&D Status Report
Date: February 15, 1997

Title: "Design of Distributed Adaptive Signal Processing Systems"
Contract Number: "DAAB07-97-C-J007"
Principal Investigator: Edward A. Lee
Organization: University of California at Berkeley


1. Tasks Performed

The third month of the project represents some real building of momentum.
We have some very encouraging designs for dynamically linked signal 
processing modules, an information architecture supporting exchange of 
information and cooperation between modular tools, and some real progress
in our Java development environment (based on Tycho).  We are also
starting to make progress on a modular interface to Ptolemy that will 
support both the existing C++ implementation and future, modular, Java
implementations.


2. Significant Accomplishments

2.1 Dynamic loading of modular software

John Reekie has added a simple cooperative round-robin scheduler to Tycho.  
The scheduler itself is a Tcl package that can be dynamically linked into 
Tycho.  As its first major application, John and Sunil Bhave have defined a 
Tycho target in the CGC domain in Ptolemy (which does code generation in C) 
so that this domain produces modules that can be dynamically linked into 
Tycho and executed under the control of the round-robin scheduler.  Thus, 
real-time signal processing tasks can be incrementally pulled in to an 
executing Tycho process.  In this way, Tycho becomes a configurable and 
customizable framework for signal processing modules.

Christopher Hylands created a more generic facility whereby C files
that are being edited within Tycho can be compiled and dynamically linked
into the executing Tycho process.  His facility automatically creates the
appropriate wrappers to turn the C file into a Tcl package. 


2.2 Java interface in Tycho

Christopher Hylands has modified the Java editor in Tycho so that it
creates a standardized file template using the style of our project,
generates and displays Java documentation, and compiles and runs Java
code.


2.3 An Object-Oriented and Scripted Interface to Ptolemy

We have made considerable progress on the design of a class hierarchy in 
Itcl (an object-oriented extension of the Tcl scripting language) that we 
expect will eventually replace ptcl as the main interface to Ptolemy.  
Block, Galaxy, and Universe classes that mirror classes with similar names 
in the Ptolemy kernel have been created.  These classes are designed to 
interface equally well with the existing Ptolemy kernel (written in C++) 
and a possible new implementation of kernel classes in Java.  Thus, a 
measure of insulation from the underlying implementation technology through 
abstraction.


2.4 Tycho Information Models (TIM)

John Reekie has defined a simple framework to support exchange of 
information and cooperation between modular tools.  The aim is to make it 
easy to describe a model, to describe relationships between models, and to 
define new models.

A Tycho information model (TIM) is the unit of information read and 
generated by tools.  It is conceptually similar to the file representation 
of a compound document in systems like OpenDoc -- that is, it contains 
structured data but it is not an object or a database.  Models have 
attributes, which contain information about the model and its relation to 
other models, entities, which are conceptually similar to objects in object 
models, and associations between entities, which are similar to associations 
or links in object models.

Models are expressed in terms of a simple and flexible syntax.  A simple 
syntax makes it easy to create new models: you do not need to invent new 
syntax, but just to declare the things in your model.  The syntax is based 
on the observation that there are two common ways of describing data: i) by 
giving a mapping from names to values; and ii) by saying what a thing is 
and then giving information about it.  TIM calls these attributes and 
declarations.

TIM is specified at two levels: an abstract syntax states what things TIM 
can describe and how; a concrete syntax states how you write it.  The 
atomic units of the abstract syntax are types, names, and strings.  The 
concrete syntax used in Tycho is a Tcl-like syntax.

Because TIM is a simple and structured format, it is relatively simple to 
parse and generate.  In Tycho, the Model class provides the support needed 
to parse and generate TIM files.  Subclasses that implement particular 
models with their own set of entities and associations need only follow a 
couple of simple rules to inherit this capability.  TIM is implemented in 
the Model class in Tycho, and so far is used in the preferences manager
and in the Schedule class.  The Model class handles undoing and redoing
changes and provides support for making data persistent.


2.5 Distributing applications on networked compute resources

Ron Galicia has developed a mixed ILP-based schedule formulation that takes 
into account possible resource contentions in a fat-tree network such as 
that used in the Mercury RACEway.  The next step is to implement and test 
an instance of this formulation for correctness.  He intends to use this 
formulation as "ground truth" for comparisons with possible heuristics,
particularly heuristics that are efficient enough for on-the-fly 
reconfiguration.  Unfortunately, we have discovered that the drivers in
our Mercury installation are incompatible with Solaris 2.5, so the testing
on actual hardware will have to wait for an upgrade from Mercury.

In a related development, John Reekie has generalized the schedule
data structure in Tycho to improve our visualization capabilities for
any data that can be represented in Gantt chart form, including
schedules for distributed applications and traces of simulated runs.
This data structure uses his TIM architecture described above.


2.6 Multidimensional Signal Processing (contract Option, Questech, Inc)

We are (still) completing negotiations with Thomson CSF and Questech to get
this part of the project under way.


3. Publications and Presentations

3.1 Presentations

* "Design of Distributed Adaptive Signal Processing Systems," Edward A. 
   Lee, Kickoff meeting for this project, at Night Vision Labs, Virginia,
   Jan. 21, 1997.

* "Complex Systems -- Representation and Analysis for System Modeling,
   Specification, Design, Prediction, Control and Assurance of Large Scale,
   Complex Systems," Edward A. Lee, Proposal for a DARPA ISAT study, presented
   at IDA, Alexandria Virginia, January 22, 1997. (The study was selected)

* "On the Methodology of Design of Electronic Systems," Edward A. Lee,
   at the Alta Group of Cadence, January 29, 1997.

* "Interface-based Design," Jim Rowson, Alta Cadence Systems,
   Design Seminar, EECS Dept., Berkeley, Thursday, February 6, 1997.

* "On the Methodology of Design for Electronic Systems," Edward A. Lee,
   Design Seminar, EECS Dept., Berkeley, Thursday, February 13, 1997.



