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,