Automatic Parallelisation of LISP Program

Speaker: Edmund Furse

Time: Monday 23rd November 1998, at 16.15

Place: Room 2.33

Abstract:

AUTO PARALLEL LISP is a system for automatically parallelising and running Common LISP programs over a network of computers. Firstly, the functions are analysed to determine which functions are totally functional in design. Functions which have side effects are run locally, whilst functional designs can be run remotely. Secondly, functions are identified which can be parallelised because of functions with two or more arguments which are totally functional calls, or CDR recursions which can be transformed into divide and conquer parallel algorithms. Thirdly, using example calls of the top level function provided by the user, timing analysis is performed of the functions which can be parallelised to determine which functions should be parallelised. Fourthly, the functions to be parallelised are transformed into a parallel form using the PARALLEL macro to run on the PARALLEL subsystem.

The PARALLEL subsystem uses a main node, a farmer and a number of monitor nodes. When a PARALLEL call is encountered the arguments are executed in parallel over the network by requesting a free node from the farmer, or else performing the task locally.

AUTO PARALLEL LISP is currently implemented on Apple Macintosh computers and speed-up factors of 7.83 have been achieved with 9 computers.