From - Tue Nov 24 15:57:55 1998 Received: from db.stanford.edu (Seaotter.Stanford.EDU [171.64.75.89]) by DB.Stanford.EDU (8.8.8/8.8.8) with ESMTP id PAA21139 for ; Tue, 24 Nov 1998 15:47:09 -0800 Message-ID: <365B463D.5C1ED44B@db.stanford.edu> Date: Tue, 24 Nov 1998 15:50:21 -0800 From: Dorothea Beringer X-Mailer: Mozilla 4.05 [en] (Win95; I) MIME-Version: 1.0 To: chaims@DB.Stanford.EDU Subject: Minutes weekly meeting 11/24 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mozilla-Status: 8001 Date[November 24, 1998 ] Recordnr[ ] Who[ lm, ns, db Agenda[ Minutes[ CHAIMS terminology (from last meeting): ======================================= Synonym for megaprogrammer: composer. Manifold: ========= Primary authors: Forhad Arbab of Netherlands, Papadopoulis of Cyprus Created around 1995, underwent major redefinitions. Based on the IWIM model (ideal worker and ideal manager). This assumes some sort of planning mechanism for selecting the best worker from a pool of workers. Yet in Manifold the selecting is only based on availability, no cost factor. No notion of cost at any level. Manifold distinguishes between a control-driven (Manifold) and data-driven (like Linda). Data-driven: for everything that has to be done is thrown as a tuple into a tuple space, and all processes just always look if they can do something with the data. All processes are friendly, and the data implementation has to be accordingly. Just for closed systems. Problems that can arise: starvation, tuples are unordered. Manifold really is event driven. There are system events: Process p raises event name of type e: e.p.name Also events are processes. Manifold has processes (black boxes), they can be workers or managers of other workers. The real workers are atomic: it gets data stream and outputs output stream. The middle-tiers managers can emitt information during processes via events. Ports: either input or output (never both). Openings in the black box boundaries for data transmissions. Input: P.I, output: P.O. The names are given by the black box, but it is not clear where to look them up. Streams: Port interconnection for data only. p.o --> q.i Just one kind of connection. Open question: what happens semantically if q.i is connected to several x.o and the processes behind these output ports execute in parallel? You have several process types, e.g. variable (in order to store variables), sum (for making a sum over something), ... Language: process V0 variable(1) //defines data variables with initial process V1 variable(2) // values 1 or 2 process SUM(event overflow) //sum will generate named overflow begin { //this loop in the braces will run forever, until the event V0.o -> SUM.h, V1 -> SUM.k, SUM -> V0 } // is generated event: sum.overflow end Goal, purpose of Manifold? Implementation of compiler, run-time systems, examples of implemented processes? Demo-days: ========== Main responsibilities: - Neal: demo aircraft design - Laurence: transportation demo Next task: think about what should be done in both demos, which components have to be written, ...., e.g. repository browser, composition wizard, visualisation tool -- Dorothea Beringer Stanford University beringer@db.stanford.edu http://www-db.stanford.edu/people/beringer.html --