[comp.ai.digest] OPS83 execution profiling

dcbond@watvlsi.waterloo.EDU ("David C. Bond") (12/08/87)

At the University of Waterloo, a computer architecture called CUPID has
been developed to  rapidly perform the  match phase of OPS5.  CUPID is
a multiprocessor which executes a distributed RETE algorithm and
returns match information to the host machine.

I am investigating the changes required to allow CUPID to evaluate
OPS83 programs.  The main difference between these two languages is
OPS83's use of simple procedures in the left hand sides of rules.  The
processors currently used in CUPID are simple and were designed to
quickly compare fixed fields in a pair of tokens.  "Left hand
procedures" can perform  numerical calculations and comparisons of
arbitrary data structures.  These operations require a more
sophisticated processor than those currently used in CUPID.  Two
possibilities exist: make the processors more complex so they can
perform these operations, or off-load these operations to a subhost
(e.g. 680x0 processor).  The latter alternative is the simpler but I
don't know what the impact on performance will be.

What I would like to find out is:

1. generally how many of these procedures are in an OPS83 program

2. what are their general execution characteristics (i.e. execution
   time).

3. how many times are they called.  Note: I mean how many
   times they are evaluated, *NOT* how many times rules containing
   procedures in their left hand sides fire.

4. how other researchers who have proposed multi-processors for
   evaluating the RETE algorithm handle "left hand procedures".

Any data on these four items would be very appreciated.

Thanks in advance,