Evaluation of the FGCS Project

David H. D. Warren
Department of Computer Science
University of Bristol

next previous contents
has created a number of innovative parallel symbolic applications, notably in the areas 
of VLSI CAD, molecular biology, natural language analysis, and theorem proving. 
For me, they are particularly interesting in showing the potential for parallelism in 
algorithms very different from the kind of regular and(I%(B repetitive numeric computations 
which are typical of parallel computing today. 

Technical Issues 

There are some specific technical issues on which I would criticise the approach 
taken by ICOT. While I can appreciate some of the reasons why ICOT took the path 
it did, I feel the project might have achieved more, and remained closer to its original 
vision, if certain key decisions had been made differently. 

Perhaps the most important issue is the decision (or assumption?) that parallelism 
has to be expressed explicitly in user programs, rather than designing systems to ex-
ploit parallelism automatically (taking advantage of the fact that logic programming, 
as a declarative formalism, allows parallelism to be expressed implicitly). Requiring 
the user to take direct responsibility for expressing parallel algorithms adds greatly 
to the programming burden, especially for the kind of complex knowledge processing 
applications which are the main target of FGCS. This route is only appropriate for 
problems which are computationally very intensive and where adequate performance 
cannot be achieved by other means. But for such problems, the first priority before 
tackling parallelism is probably to ensure that the sequential algorithm is as fast as 
it possibly can be, using as low-level a language as is necessary. This tends to argue 
against using a high-level approach such as logic programming. 

On the other hand, there are many problems which may be potentially speeded 
up by exploiting implicit parallelism automatically and where logic programming may 
provide reasonable performance (perhaps via the parallelism) in relation to software 
development cost. If parallel computers become the norm, as seems technologically 
inevitable in the near future, software systems which can exploit parallelism automat-
ically will have a major role to play. It is a pity ICOT didn't take the opportunity 
to pursue this direction, which is being actively explored by other research groups (in-
cluding my own). 

The decision to go for explicit parallelism was linked with the decision to adopt 
the concurrent logic programming paradigm as central to all aspects of the project. In 
particular, all user programs in practice have to be expressed in, or implemented via, 
the concurrent LP paradigm, by means of the kernel language KL1. While the concur-
rent LP paradigm is of considerable interest in its potential for formalising interactive 
systems, and may be appropriate for many purposes including implementing operating 
systems, It is not, in my opinion, suitable for most user programs. 


					- 145 -