Monthly R&D Status Report Date: July 15, 1994 Title: "SYSTEM-LEVEL DESIGN METHODOLOGY FOR EMBEDDED SIGNAL PROCESSORS" Contract Number: F33615-93-C-1317 Principal Investigator: Edward A. Lee Organization: University of California at Berkeley 1. Tasks Performed A code freeze for the Ptolemy 0.5.1 release was completed, and the source tree cloned in preparation for the release. We have made major progress on automated hardware/software partitioning, and we conducted a formal review of the program for the Air Force. 2. Significant Accomplishments 2.1 Fundamental Progress The higher-order functions (HOF) domain has been completed and incorporated as a subdomain of SDF (synchronous dataflow) and DE (discrete event). This is expected to have a major impact on the usability of visual (graphical) system representations for large systems. Karim Khiar (a visitor from Thomson CSF) has developed a variety of radar applications using these HOF capabilities. We believe that the resulting system representations are much more intuitive and maintainable than the traditional techniques based on multidimensional arrays (using up to seven dimensions). Asawaree Kalavade has made major progress on automated partitioning of mixed hardware/software systems starting from dataflow graph specifications. Her method uses heuristic measures of the goodness of fit of particular computations to the implementation technology. She has compared the methods against an optimal integer linear programming (ILP) formulation for two significant example applications. The quality of the results is comparable, while the execution time of her method is dramatically lower than that of the ILP formulation. The full results are reported in [1] (cited below). Tom Parks has made a preliminary process networks (PN) domain working with Awesime, a threaded task library covered by the GNU public license. Awesime (A Widely Extensible SIMulation Environment) is an object-oriented library for process-oriented simulation. It can be configured for MIPS R2000/R3000, Sun SPARC, Motorola 68k and 88k, Intel i386, National Semiconductor NS32K, and DEC Alpha. It is written in C++ and is available via anonymous FTP from the University of Colorado, Boulder: ftp.cs.colorado.edu in the directory /pub/cs/distribs/Awesime. The PN domain is intended to replace the communicating processes (CP) domain. It is more solid formal footing, and is based on more portable software than the Sun lightweight process library. We will be able to distribute the source for Awesim along with Ptolemy. We do not plan to include this domain in the 0.5.1 release, although it will follow in the next release. 2.2 Technical Improvements to Ptolemy Tom Lane, of Structured Software Systems, carried out some profiling of execution times in Ptolemy, and prepared a list of suggestions for code optimizations. Alan Kamas has implemented the most significant of these, an option to disable the Tk event loop during a run. This resulted in an amazing 5x speedup on some simulations. We are currently evaluating the remaining suggestions. Christopher Hylands has successfully compiled the subset of the octtools that we use with gcc. This required a fair amount of cleaning up in the code. He has also modified the startup script so that Ptiny Ptolemy (the demonstration version) and the full Ptolemy can coexist on the same machine and be invoked from the same script. He also modified the makefiles so that we can easily produce smaller versions of pigiRpc and ptcl. In a major step forward, Christopher Hylands has made dynamic linking work under Solaris 2.3. His method (based on the system V dlsym() and dlopen()) should prove to be much more portable than the home-grown dynamic linker that we have relied on to date. Here is a brief technical summary of the two methods now implemented: 1. (the old way) Use a 4.3/Sun-style loader with the -A flag to load in .o files. Usually, binaries that are to be dynamically linked must be built with the -N option. 2. (the new way) Use the System V Release 4 dlopen() style call to load in shared objects (.so files). SunOS4.1.x, Solaris2.x and Irix5.x support this style of dynamic linking. In Ptolemy0.5.1, only the sol2 and irix5 ARCHs support dynamic linking of shared objects. Our hope is to eventually use this to dynamically link entire domains. Alan Kamas updated the StringArrayState class to support input from files and to fix a bug triggered by trailing spaces. Tom Parks has converted Volume 4 of the Almagest, the Ptolemy Kernel Manual, to html. It is available at our WWW site: http://ptolemy.eecs.berkeley.edu/ Follow the link to the Almagest, and from there follow the link to the hypertext version of Volume 4. Brian Evans modified the compile-SDF target so that it would work with the new Matlab stars. Jose Pino and Tom Parks have made a number of improvements to the classes that support clustering of graphs, and also to the mechanism for creating Geodesics (the objects that handle data transfer between blocks). The 0.5.1 release will be compressed with gzip instead of Sun compress, resulting in significantly smaller files. 2.3 Interactions We have installed Vantage VHDL and are evaluating it for use with VHDL code generation domains. We have upgraded our WWW home page to a mosaic server. The URL is http://ptolemy.eecs.berkeley.edu. Christopher Hylands has established a link so that mail sent to ptolemy-hackers@ptolemy.eecs.berkeley.edu is now automatically be posted to the comp.soft-sys.ptolemy newsgroup. Gyorgy Csertan of the Technical University of Budapest has converted most of the Ptolemy manual from FrameMaker to HTML. We are working with him to finalize this, and plan to use the results and make them available on our WWW server. We have prepared a brief article for the RASSP Newsletter. IMEC (in Belgium) has developed a tools, s2c, which has an option to convert Silage programs to .pl files for inclusion into Ptolemy as a single star. This program will be publicly distributed, and therefore will allow us to distribute a fully functional Silage domain that does not depend in any way on proprietary code. 2.4 Papers Our publication burst continues at a healthy rate. The following papers have been completed in this reporting period: [1] Asawaree Kalavade and Edward A. Lee, "A Global Criticality/Local Phase Driven Algorithm for the Constrained Hardware/Software Partitioning Problem," to appear, Proc. of the Codesign Workshop, Grenoble, France, September, 1994. [2] Shuvra Shikhar Bhattacharyya, "Compiling Dataflow Programs for Digital Signal Processing," Ph.D. Thesis, June, 1994. [3] P. Murthy, E. A. Lee, "On the Optimal Blocking Factor for Blocked, Non-Overlapped Schedules," to appear, Asilomar '94. [4] M. J. Chen and E. A. Lee, "Design and Implementation of a Multidimensional Synchronous Dataflow Environment", to appear, Asilomar '94. [5] S. Sriram and E. A. Lee, "Static Scheduling of Communication Resources in Multiprocessor DSP Architectures", to appear, Asilomar '94. 3. Problems Encountered Our planned order of an HP workstation was delayed, and the HP workstation that we had been borrowing went back to HP, so we are currently unable to compile Ptolemy on an HP platform. This will, in all likelyhood, result in a delay of the 0.5.1 version for HP platforms. 4. Schedule Reconciliation We are on schedule. We are planning a release numbered 0.5.1 for August 15 that will incorporate all existing patches, plus the multidimensional dataflow domain (which is still very experimental), plus the higher-order functions. 5. Next Period Activities We plan to prepare an addendum to the User's Manual, rather than a new manual set, for the 0.5.1 release. We will be making the 0.5.1 release available for beta testing. Also, we will be preparing for the RASSP conference. 6. Budget Summary We are on-budget, as near as I can tell. Details will be provided by the University accounting office. 7. Conferences, Meetings, and Trips A review of the project was held at Berkeley on July 14. Attending were Scott Bilik, Paul Jarusiewic, and Gary Fecher, all from the Air Force.