I think James Owen wrote: > > Second, Question on JIA: On page 141 you state, "The runtime will be > proportional to something like R'F'^P', where R' is a number less than > R, the number of rules; F' is the number of facts that change on each > iteration; and P' is a number greater than one but less than the average > number of patterns per rule." > > So, let's say that we have 1,000 rules, an average of 10 facts change on > each cycle (that's a lot from my experience) and the average number of > patterns per rule is 10; again, a fairly high number but not > unreasonable. (We could just say that the rules were written by a BA > rather than a KE.) And let's say that my computer is a 2GHz P4, single > CPU. What will be the run-time? Just as a guess, let's say that 18,000 > rules will fire; which should probably figure in there somewhere. What > number should we use for R'? What number should we use for P'? Just > curious.
R' depends on how much sharing of patterns there is across rules. P' depends on much joining goes on -- i.e., for each of those ten patterns, are there ten matches, or one, or a hundred? All you can really say in the general case is that runtime goes down less slowly than linearly with the number of rules, and *much* less slowly than the number of facts, and in the worst case can go down polynomially with the number of patterns on the LHS of a rule. But within these parameters, there is a lot of play, and it depends intimately on the nature of the specific rules and working memory elements. It's kind of like talking about the computational complexity of a database query. You have to specify the query and the data or you can't really say much. > > Finally, have you done any tests with Jess using multiple processors? > Such as a dual G5 Mac or a Sun? My desktop machines have been dual Xeons for some years now so actually most of the testing is on SMP machines. Jess itself doesn't create any threads (except for the IO-flusher thread if you call set-multithreaded-io) so it doesn't any difference unless you embed Jess in multithreaded software. SMP makes a big difference in the operation of something like the HVAC controller simulator from the book, which spawns hundreds of threads. Works great. --------------------------------------------------------- Ernest Friedman-Hill Science and Engineering PSEs Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 PO Box 969, MS 9012 [EMAIL PROTECTED] Livermore, CA 94550 http://herzberg.ca.sandia.gov -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] --------------------------------------------------------------------
