[comp.ai.digest] "Another Yale program"

factor-michael@YALE.ARPA (Michael Factor) (04/15/88)

Date: Thu, 14 Apr 88 12:49:50 EDT
From: David Gelernter <gelernter-david>
To: Paul.Birkel@K.GP.CS.CMU.EDU
Subject: "Another Yale program"
Cc: factor, leichter


   Subject: Can you name this project?


   In a recent exposition on parallel computing in the popular press the
   following paragraph appeared. Can anyone name this project, its
   investigators, a contact, a publication, or provide any further information?

        "Another Yale program - to monitor the equipment in an
        intensive-care unit - is more flexible still. Each processor
        in this system runs a different program, which monitors the
        equipment for signs of a particular problem or ailment. Because
        each program has its own processor, it is ever-vigilant for
        signs of its disease."


This program is a so-called "Realtime Knowledge Daemon" written
by Mike Factor of the Linda group here, in collaboration with
some anaesthesiologists.  The Economist guy got it wrong: each
PROCESS (not processor) runs a different decision procedure.
I'm appending abstracts from a couple of recent reports on the system.
I'll send you copies of the papers if you want them.  (The program
is also discussed in a paper forthcoming in the SIGPLAN PPEALS conference
this summer.)



-------------------------------------------------------

 The Parallel Process Lattice as an 
 Organizing Scheme for Realtime Knowledge Daemons

 Michael Factor and David Gelernter

{\it Yale University \\
Department of Computer Science \\
P.O. Box 2158 Yale Station \\
New Haven, Connecticut 06520-2158} \\

{\bf Abstract.} A {\it realtime knowledge daemon} is a program that
fastens itself to a collection of data streams and monitors them,
generating appropriate comments and responding to queries, in
realtime.  This type of program is called for whenever data-collection
capacity outstrips realtime data {\it monitoring} and {\it
understanding} capacity.  A {\it parallel process lattice} is an
organizing structure for realtime knowledge daemons (and more broadly
for expert systems in general).  A process lattice is a network of
communicating concurrent processes arranged in a series of ranks or
layers; data values flow upward through the lattice and queries may
flow downward.  The intent of the process lattices is to ``waste''
processing power (an ever-cheaper commodity) by constantly monitoring
the likelihood of rare events, and eagerly computing the answers to
questions rarely asked, so that the system can respond rapidly and
gracefully to unusual circumstances.  Further, the application's
character as a collection of heterogeneous, communicating expert
processes means that concurrency leads to a far simpler program than
would have been the been the case given a conventional, sequential
organization.  We explain the process lattice and discuss its
suitability by describing a simple but fairly realistic prototype
designed for monitoring in an ICU.




  A Prototype Realtime Knowledge Daemon
  for ICU Monitoring

  Michael Factor*, David Gelernter*, Perry Miller\dag and Stanley Rosenbaum\dag

{\it *Yale University \\
Department of Computer Science \\
%P.O. Box 2158 Yale Station \\
New Haven, Connecticut} \\

{\it \dag Yale University School of Medicine \\
Department of Anaesthesiology \\
New Haven, Connecticut} \\


A {\it realtime knowledge daemon} is a program that fastens itself to
a collection of data streams and monitors them, generating appropriate
comments and responding to queries, in realtime.  We describe a
prototype designed for monitoring patients in a post-operative ICU.
The prototype is of interest because ($a$) its performance seems
reasonable and correct, and (our experience suggests) should continue
to be reasonable as the system grows (the current prototype isn't
comprehensive enough for clinical testing, but it continues to
expand); ($b$) the program is written using a novel ``process
lattice'' organization that holds a number of advantages for building
large expert systems.  The process lattice structure results in a
program with an easily-visualizable logical structure that reflects
the structure of the domain; it imposes a regular organization on an
arbitrarily-heterogeneous set of decision procedures; it's well suited
to a parallel implementation.  The prototype we discuss is written in
the parallel language Linda and runs on a commercial parallel
processor.