Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site mit-eddie.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxj!ihnp4!mit-eddie!smh
From: smh@mit-eddie.UUCP (Steven M. Haflich)
Newsgroups: net.lang.prolog
Subject: metering Prolog performance: LIPS?
Message-ID: <2788@mit-eddie.UUCP>
Date: Fri, 28-Sep-84 12:25:43 EDT
Article-I.D.: mit-eddi.2788
Posted: Fri Sep 28 12:25:43 1984
Date-Received: Sat, 29-Sep-84 09:02:08 EDT
Distribution: net.lang.prolog
Organization: MIT, Cambridge, MA
Lines: 21

The speed of Prolog implementations is usually quantified in Logical
Inferences Per Second (LIPS), but I have never seen specified exactly
what qualifies as a LI.  The most obvious count is the number of times
the evaluator reaches an EXIT port (in the "box model").  This would
thus count each time a rule is satisfied, recursively including
satisfaction of subclauses.  Can someone confirm that this convention?

However, depending on details of benchmark code and even coding style,
the number of EXIT ports reach may not be a very good measure of the
work the evaluator is doing.  (It's a little like counting *lines* of
code executed by Pascal.)  As the refutation of a clause is a useful
result, perhaps it would make more sense to count CALL ports instead?
It would seem important to include in this count satisfaction of
"facts", that is, rules with no subclauses, although this might be
awkward to meter in some database implementations.

There must be any number of interesting issues lurking under the
occasional LIPS figures we see.  Any takers?  (Probably it's all been
discussed before...)

Steve Haflich, {decvax!genrad, ihnp4}!mit-eddie!smh, smh@mit-ems@mit-mc