John Sargeant

Department of Computer Science
University of Manchester, UK
Profile
Birth date: 	27th November 1959
Birthplace: 	Doncaster, England
Education: 	
1981	BSc in Computer Science and Mathematics, University of Manchester
1982	MSc in Computer Science,
	University of Manchester
1985	PhD in Computer Science,
	University of Manchester
	My PhD thesis was entitled ÅgStored Data Structures for Dataflow Computing.Åh

Hobbies: 	1) Running, hill-walking etc. for physical Å@ Å@fitness
	2) Chess for mental fitness 
	3) Drinking beer to compensate for 1) and 2)

The ultimate goal of my research is to make parallel computing so easy that it becomes the normal way that programs are written. The parallelism must therefore be implicit, i.e. the system must manage the efficient mapping of the program onto the parallel machine. I believe that this is possible, and that the potential benefits are very large. Computer designers will be able to make better use of the natural parallelism in the hardware. Programs will be written in higher-level languages which do not over-specify sequencing. Applications will better reflect the parallel world which they model. To explain my research, it is necessary to give some history.

When I became a graduate student in 1981, I was very fortunate to join the Manchester Dataflow project. The basic idea of dataflow is that a program can be represented as a two-dimensional directed graph, instead of just a sequence of instructions. The Manchester Dataflow Machine was one of the first prototype machines to execute dataflow graphs directly. The basic concept worked, but there were many problems to overcome. One was that the efficiency of dataflow code, in terms of the number of instructions needed to perform a given task, was much worse than that of von Neumann code. In the compiler for the functional language SISAL, which ran on the machine, I implemented many optimisations which solved this problem. Meanwhile, other researchers were solving the problem of inefficiencies in the hardware. In particular the group at ETL in Tsukuba produced a series of dataflow and hybrid machines, such as the Sigma-1 and the EM-4. We collaborated with the ETL group informally from about 1983, and I visited Tsukuba several times, from 1986 onwards.

In the late 1980s we investigated more coarse-grain computational models, which are more suitable for conventional parallel machines. It is still helpful to use a dataflow representation at a higher level, however. Also during this period, other groups working on SISAL in the USA (using a dataflow representation as their intermediate code) showed that SISAL programs could be made to run as fast as, or faster than, Fortran equivalents on shared-memory multiprocessors. This proved that inherently parallel functional languages such as SISAL could be extremely efficient.

However, the SISAL language was not flexible enough for general-purpose use, so eventually we decided do design a new language. During the period 1990 - 1994 I designed and implemented the United Functions and Objects (UFO) language. This attempts to combine the best of functional and object-oriented programming technology. Like SISAL, UFO has array and loop structures which make it highly suitable for numeric computation. It is also one of the most advanced symbolic processing languages available, and is therefore especially suited to applications requiring both numeric and symbolic processing. UFO also incorporates ideas from concurrent object-oriented programming. To learn as much as possible about how UFO works in practice, we write almost all our software, including the compiler, in UFO itself.

Manchester joined the RWC project as subcontractors in late 1994, so we have been in RWC for just 1 year. Apart from me, the UFO project includes Chris Kirkham and Ian Watson who both worked on the original Manchester Dataflow project, as well as two younger researchers and some students. Our eventual aim within RWC is to produce highly efficient parallel implementations for RWC machines. Currently, we are working on optimised compilation, using our Uflow intermediate format, which is an advanced dataflow representation of the program. The work on parallel implementation is in the form of some preliminary studies, since unfortunately at the moment we have no useful parallel machine to work with! We expect that this situation is temporary, and in general RWC is a very exciting opportunity for us to put our ideas into practice.