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.