[comp.lang.prolog] Request for Prolog programs

arv@ecs.soton.ac.uk (Andrew Verden) (05/31/90)

Dear Net,
	I am currently working on a parallel Prolog for distributed
memory machines. The model implements Independent AND-Parallelism in a
distributed memory machine; at present this is transputer based. I have
run a number of small benchmark programs which exhibit parallelism, for
example quicksort as follows:

	qsort([],[]).
	qsort([H|T],R) :- split(T,H,L1,L2),
                          qsort(L1,R1),
			  qsort(L2,R2),
			  append(R1,[H|R2],R).

	Here the two intermediate qsort's can be executed in parallel.
(And I do realise that the difference list version is more efficient!!!)

	What I need is a number of more general sequential Prolog
programs of between 50 and 100 lines be they deterministic or
non-deterministic. The line restriction is necessary as at present the
conversion of a sequential clause into a parallel clause is done by
hand ! 	
	Further restrictions on the program are :

	1. No use of assert / retract or anything similar
	2. No file handling.    
	3. No input / output.   
	4. No functors etc.
	5. NO SIDE EFFECTS.
	6. Edinburgh syntax please.

	A bit more about the system for your interest:
		Consists of a multi WAM executor written in OCCAM which
currently executes at 10.5Klips per WAM.  Parallelism is derived from
sequential Prolog code and is transparent to the programmer. The WAM has
been extended to provide parallel execution of clauses in a similar way
to that of Hermenegildo.
		Real speedups over sequential Prolog have been acheived on only
two processors. Further benchmarks will use 16 and possibly 256
transputers or more if anyone will lend them.
	
	Please mail me any programs you may have that fit the above
request.
	Thanks in advance.

	


		Andrew Verden   arv@uk.ac.soton.ecs

Concurrent Logic Programming Group,
Dept of Electronics and Computer Science,
University of Southampton,
England.