Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsfeed.cit.cornell.edu!newsstand.cit.cornell.edu!news.kei.com!newsfeed.internetmci.com!in1.uu.net!munnari.OZ.AU!cs.mu.OZ.AU!munta.cs.mu.OZ.AU!fjh
From: fjh@munta.cs.mu.OZ.AU (Fergus Henderson)
Subject: Re: Prolog for Powermac?
Message-ID: <9531614.10314@mulga.cs.mu.OZ.AU>
Sender: news@cs.mu.OZ.AU (CS-Usenet)
Organization: Computer Science, University of Melbourne, Australia
References: <brady-3110951434410001@brady.cs.tcd.ie> <47ufvn$cdo@hp5.online.apple.com>
Date: Sun, 12 Nov 1995 03:04:57 GMT
Lines: 44

imccallu@eworld.com (Imccallu) writes:

>Just curious: what is a "klip". I'm guessing that it is thousands of
>somethings per second (or other unit of time)

LIPS stands for "Logical Inferences Per Second".
That of course just raises the question - what exactly constitutes
one logic inference?

LIPS are usually defined specifically in terms of performance
on the naive reverse benchmark, which look something like this:

	go :-	
		data(Data),
		nreverse(Data, _).

	data([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
		16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]).

	nreverse([X|L0], L) :-
		nreverse(L0, L1), concatenate(L1, [X], L).
	nreverse([], []).

	concatenate([X|L1], L2, [X|L3]) :-	
		concatenate(L1, L2, L3).
	concatenate([], L, L).

An execution of this benchmark is defined to take exactly 496 logical
inferences.  So LIPS = 496 / time in seconds per iteration
of the naive reverse benchmark.  For example, on our SPARCserver 1000,
Mercury takes 106 microseconds per iteration (using the asm_fast grade),
which gives a speed of 4.68 MLIPS (mega-LIPS).

Of course, naive reverse is a pretty trivial benchmark -
generalising from the results on naive reverse to the results on
real programs would be a bad idea.  

Benchmark results for Mercury and a variety of Prolog implementations
on naive reverse and nine other small benchmarks are available on
<http://www.cs.mu.oz.au/~zs/mercury/benchmarks.html>.

--
Fergus Henderson             	WWW: http://www.cs.mu.oz.au/~fjh
fjh@cs.mu.oz.au              	PGP: finger fjh@128.250.37.3
