Centre for Concurrent Computing

The two major projects within the Centre at RMIT were the:

These projects were directed at the study of dataflow architectures arising from my PhD work at Manchester.

l-r John Feo (LLNL), Mark Rawling, Neil Webb, Allan Young, Simon Wail, Greg Egan, Paul Whiting and Steve Skedzlewski (LLNL)
David Abramson on Camera 1986

Funding for the Parallel Systems Architecture Project was due to Dr. Tommy Thomas, a member of the team that built the first stored program computer (Mark I) at Manchester, and the Foundation Director of the new CSIRO Division of Information Technology. Tommy knew that Australia was not producing enough PhDs in computer and engineering and science and seeded several projects around Australia. He was also responsible for David Abramson joining the Project. David had recently completed his PhD at Monash and worked with a will to writeup much of the latent and as yet unpublished research as I had until then enjoyed the doing more than the writing - to be truthful I still do.

FLO, was renamed CSIRAC II after the original CSIRAC. This naming occured when it became obvious to me that we would not complete the hardware prototype then well advanced. The widely held view by Australian funding bodies at the time, was that computer hardware development was best left to other countries, a view certainly not held by Tommy Thomas a farsighted friend.

The partially commissioned Execution Unit of CSIRAC II

Languages

Compilers were developed for several languages. Pascal and IdA used used SISAL's IF1 as an intermediate compiler target allowing direct comparision between themselves and SISAL on all machines for which there was an IF1 backend - including CSIRAC II. By 1990 all compilers were fully operational and being used for applications studies and cross benchmarking.

Throughout the Project compiler development and application evaluation was performed by simulation. The simulator developed originally at Manchester over time became very comprehensive. It ran on all of our workstations and in a parallel implementation on a 20 processor Encore Multimax. It was the latter port which made it possible to run anything approximating real applications.

i2

i2 is a dataflow graph assembly language. It was written intially by myself and extend by Mark Rawling and Neil Webb to meet their requirements in the GHC and IF1 developments which targetted i2.

DL1& DL2

The somewhat ostentatously named DL1 (Dataflow Language 1) was written to support Chris Richardson's research with me at Manchester. It was however one of the first operational compilers specifically for dataflow machines. Mark Rawling with Chris Richardson extended the language to DL2 adding iterators and other features.

IF1

Neil Webb was responsible for the IF1 to i2 backend. Like Mark Rawling's work on GHC this also led to fine tuning of the CSIRAC II instruction set.

SISAL

A number of improvements were made to the SISAL implementation from LLNL and Colorado State. These were implemented on an Encore Multiprocessor donated to the Centre.

IdA (MIT Id)

IdA was Paul Whiting's implementation of the MIT Id language. It targetted IF1.

GHC (Guarded Horn Clauses)

In a somewhat bizzare competition Mark Rawling pitted his implementation of GHC against SISAL and IdA in numerical applications - and won from memory. The GHC work led to significant additions by me to CSIRAC IIs matching classes to support unification etc.

GHC unlike the IdA and Pascal compiler implementations targetted i2.

Pascal

The widely held view at the time was that dataflow machines could only be programmed using functional languages. This work showed this not to be the case. Pascal targetted an IF1 intermediate and could thus run on any processor for which there was a backend IF1 implementation.

Hardware

Emulator Prototype

The emulator followed the first 4 processor emulator developed at Manchester. Mark Rawling and Edward Zuk as my undergraduate students developed a Motorola M68K dual-processor prototype of a dataflow processing element. One M68K acted as the Matching Unit and the other as the Execution Unit. The emulator could also operate as a more conventional pipelined processor pair as required. Extensive use was made of hardware queues between processors as we knew that dataflow execution exhibited quite long runs of succesful then unsuccesful match sequences in the matching unit. There is some evidence that the Manchester Machine did not have sufficient queue space leading to alternatively execution unit starvation and matching unit stalls.

Dataflow Processor Prototype by Mark Rawling and Edward Zuk
Multiprocessor Dataflow Emulator

Allan Young, as part of his Master's, reimplemented the emulator of Mark Rawling and Edward Zuk. He was also responsible under my supervision for constructing the multistage network that connected the 32 Motorola 68K processors. At the time asynchornous design had slipped out of electrical engineering curricula but nonetheless the interconnection network was built and worked prompted in part by Professor Hiroaki Terada's work on clockless implementations of dataflow processors. Terada's logic was that if the mathematical formulation of dataflow has no time then the processors should not have clocks. Quotable quotes from Terada include "leave me alone I just want to build rice cookers" when confronted with a request to be involved in the 5th Generation Project. Those who know how complicated it is to cook rice perfectly will understand.

Sections of the multiprocessor emulator built by Allan Young - processor board shown with Motorola processor upgrade daughter board
CSIRAC II

Application Studies

Associated Undergraduate Thesis Projects

Supervised by me:

People

Visitors

Research Associations & Collaborations

I left RMIT in 1990 to take up a position as Foundation Chair at Swinburne Institute of Technology where I formed the Laboratory for Concurrent Computing Systems and continued the dataflow research.

Research | G.K. Egan