Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!mcsun!unido!uklirb!shell From: acha@CS.CMU.EDU (Anurag Acharya) Newsgroups: comp.ai.shells Subject: Re: Performance tests Message-ID: <7463@uklirb.informatik.uni-kl.de> Date: 10 Jan 91 18:20:45 GMT References: <7441@uklirb.informatik.uni-kl.de> Sender: shell@uklirb.informatik.uni-kl.de Organization: Carnegie Mellon University Lines: 45 Approved: shell@informatik.uni-kl.de Posted-Date: Wed Jan 16 08:05:57 GMT 1991 In-reply-to: dowless@sae.sae.com's message of 9 Jan 91 14:27:42 GMT In article <7441@uklirb.informatik.uni-kl.de> dowless@sae.sae.com (Alan Dowless) writes: > I'm sending you the comparable knowledge base that I > I ran with KES 3.0 on a SUN Sparc 1. This knowledge > base simply fires "init rule" 30000 in 23 seconds. > This calculates to: 78260 rule firings per minute. > Thanks, Alan > attributes: > f:int. > y:int [default: 30000]. > % > rules: > init rule: > if true then > reassert f=1. > endif. > % > actions: > while y # 0 do > obtain f. > erase f. > reassert y= y-1. > endwhile. > % This particular benchmark means almost nothing. The task is so simple that it can be coded in languages with a wide range of expressiveness. And it bears no similarity to the sort of programs that will eventually be written/run on the system. The primary characteristic of production system languages (call them shell languages if you will) is their pattern matching power. This benchmark makes no attempt to exercise it in any way. In this case, the comparison is between a single rule firing 30000 times (from the original post on CLIPS) and a single rule causing a C-like loop to be executed 30000 times (in this example). There are a set of production system languages (like the one used in the example), whose working memory consists of a set of variables declared at the top of the program and the match conditions consist of C-like predicate tests on the values of these variables. The pattern-matching power of such languages is puny compared to that of OPS5, OPS83, CLIPS and similar languages. Such languages are little more than syntactically sugared versions of C-like languages. anurag