Parallel and Distributed Computing in Education

Abstract

The natural world is certainly not organised through a central thread of control. Things happen as the result of the actions and interactions of unimaginably large numbers of independent agents, operating at all levels of scale from nuclear to astronomic. Computer systems aiming to be of real use in this real world need to model, at the appropriate level of abstraction, that part of it for which it is to be of service. If that modelling can reflect the natural concurrency in the system, it ought to be much simpler.

Yet, traditionally, concurrent programming is considered to be an advanced and difficult topic -- certainly much harder than serial computing which, therefore, needs to be mastered first. But this tradition is wrong.

This talk presents an intuitive, sound and practical model of parallel computing that can be mastered by undergraduate students in the first year of a computing (major) degree. It is based upon Hoare's mathematical theory of Communicating Sequential Processes (CSP), but does not require mathematical maturity from the students -- that maturity is pre-engineered in the model. Fluency can be quickly developed in both message-passing and shared-memory concurrency, whilst learning to cope with key issues such as race hazards, deadlock, livelock, process starvation and the efficient use of resources. Practical work can be hosted on commodity PCs or UNIX workstations using either Java or the occam multiprocessing language. Armed with this maturity, students are well-prepared for coping with real problems on real parallel architectures that have, possibly, less robust mathematical foundations.

An appendix to this paper demonstrates Java and occam bindings to many of the CSP examples presented in the talk. The Java bindings use the JCSP packages.

Bibtex

@InProceedings{vecpar98:pdce,
  author =       {P.H. Welch},
  title =        {{Parallel and Distributed Computing in Education (Invited Talk)}},
  booktitle =    {{VECPAR'98 (Third International Conference on Vector and Parallel Processing) - Selected Papers}},
  editor =       {J.M.L.M. Palma and J. Dongarra and V. Hernandez},
  number =       1573,
  series =       {Lecture Notes in Computer Science},
  year =         1999,
  publisher =    {Springer-Verlag},
  month =        {April},
  note  =        {ISBN 3 540 66228 6}
}