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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Hoare, C.A.: Communication Sequential Processes. CACM 21(8), 666–677 (1978)
Hoare, C.A.: Communication Sequential Processes. Prentice Hall, Englewood Cliffs (1985)
Oxford University Computer Laboratory. The CSP Archive (1997), http://www.comlab.ox.ac.uk/archive/csp.html
Welch, P.H., Wood, D.C.: KRoC - the Kent Retargetable occam Compiler. In: O’Neill, B. (ed.) Proceedings of WoTUG 19, IOS Press, Amsterdam (1996), http://www.hensa.ac.uk/parallel/occam/projects/occamfor-all/kroc/
Welch, P.H., Poole, M.D.: OCCAM for Multi-Processor DEC Alphas. In: Bakkers, A. (ed.) Parallel Programming and Java, Proceedings of WoTUG 20. World occam and Transputer User Group (WoTUG), Amsterdam, Netherlands, April 1997. Concurrent Systems Engineering, vol. 50, pp. 189–198. IOS Press, Amsterdam (1997)
Welch, P., et al.: Java Threads Workshop - Post Workshop Discussion (February 1997), http://www.hensa.ac.uk/parallel/groups/wotug/java/discussion/
Hilderink, G., Broenink, J., Vervoort, W., Bakkers, A.: Communicating Java Threads. In: Parallel Programming and Java, Proceedings of WoTUG 20, pp. 48–76 (1997) (See reference [5])
Hilderink, G.H.: Communicating Java Threads Reference Manual. In: Parallel Programming and Java, Proceedings of WoTUG 20, pp. 283–325 (1997) (See reference [5])
Welch, P.: Java Threads in the Light of occam/CSP. In: Welch, P.H., Bakkers, A. (eds.) Architectures, Languages and Patterns, Proceedings of WoTUG 21. World occam and Transputer User Group (WoTUG), Amsterdam, Netherlands. Concurrent Systems Engineering, vol. 52, pp. 259–284. IOS Press, Amsterdam (1998) ISBN 90-5199-391-9
Chalmers, A.: JavaPP Page - Bristol (May 1998), http://www.cs.bris.ac.uk/~alan/javapp.html/
Austin, P.D.: JCSP Home Page (May 1998), http://www.hensa.ac.uk/parallel/languages/java/jcsp/
Hilderink, G.: JavaPP Page - Twente (May 1998), http://www.rt.el.utwente.nl/javapp/
East, I.: Parallel Processing with Communication Process Architecture. UCL press, London (1995) ISBN 1-85728-239-6
Galletly, J.: occam 2 - including occam 2.1. UCL Press, London (1996) ISBN 1-85728- 362-7
occam-for-all Team. occam-for-all Home Page (February 1997), http://www.hensa.ac.uk/parallel/occam/occam-for-all/
Debbage, M., Hill, M., Wykes, S., Nicole, D.: Southampton’s Portable occam Compiler (SPoC). In: Miles, R., Chalmers, A. (eds.) Progress in Transputer and occam Research, Proceedings of WoTUG 17, Concurrent Systems Engineering. World occam and Transputer User Group (WoTUG), IOS Press, Amsterdam, Netherlands, April 1994 (1994), http://www.hensa.ac.uk/parallel/occam/compilers/spoc/
Martin, J.M.R., Jassim, S.A.: How to Design Deadlock-Free Networks Using CSP and Verification Tools - a Tutorial Introduction. In: Parallel Programming and Java, Proceedings of WoTUG 20, pp. 326–338 (1997) (See reference [5])
Roscoe, A.W., Dathi, N.: The Pursuit of Deadlock Freedom. Technical Report Technical Monograph PRG-57, Oxford University Computing Laboratory (1986)
Martin, J., East, I., Jassim, S.: Design Rules for Deadlock Freedom. Transputer Communications 2(3), 121–133 (1994) ISSD N 1070-454 X
Welch, P.H., Justo, G.R.R., Willcock, C.: High-Level Paradigms for Deadlock- Free High-Performance Systems. In: Grebe, et al. (eds.) Transputer Applications and Systems 1993, pp. 981–1004. IOS Press, Amsterdam (1993) ISBN 90-5199- 140-1
Martin, J.M.R., Welch, P.H.: A Design Strategy for Deadlock-Free Concurrent Systems. Transputer Communications 3(4), 215–232 (1996) ISSN 1070-454X
Roscoe, A.W.: Model Checking CSP, A Classical Mind. Prentice Hall, Englewood Cliffs (1994)
Martin, J.M.R., Jassim, S.A.: A Tool for Proving Deadlock Freedom. In Par- allel Programming and Java. In: Proceedings of WoTUG 20, pp. 1–16 (1997) (See reference [5])
Beckett, D.J., Welch, P.H.: A Strict occam Design Tool. In: Proceedings of UK Parallel 1996, London, pp. 53–69. BCS PPSIG. Springer, Heidelberg (1996) ISBN 3-540-76068-7
Aubury, M., Page, I., Plunkett, D., Sauer, M., Saul, J.: Advanced Silicon Prototyping in a Reconfigurable Environment. In: Architectures, Languages and Patterns, Proceedings of WoTUG 21, pp. 81–92 (1998) (see reference [9])
Lawrence, A.E.: Extending CSP. In: Architectures, Languages and Patterns, Pro- ceedings of WoTUG 21, pp. 111–132 (1998) (See reference [9])
Lawrence, A.E.: HCSP: Extending CSP for Co-design and Shared Memory. In: Architectures, Languages and Patterns, Proceedings of WoTUG 21, pp. 133–156 (1998) (See reference [9])
Barrett, G.: OCCAM3 reference manual (draft) (March 1992), http://www.hensa.ac.uk/parallel/occam/documents/ (unpublished in paper)
Welch, P.H., Wood, D.C.: Higher Levels of Process Synchronisation. In: Parallel Programming and Java, Proceedings of WoTUG 20, pp. 104–129 (1997) (See reference [5])
May, D., Muller, H.L.: Icarus language definition. Technical Report CSTR-97-007, Department of Computer Science, University of Bristol (January 1997)
Muller, H.L., May, D.: A simple protocol to communicate channels over channels. Technical Report CSTR-98-001, Department of Computer Science, University of Bristol (January 1998)
Beckett, D.J.: Java Resources Page (May 1998), http://www.hensa.ac.uk/parallel/languages/java/
Lu, K.H., Jones, J., Kerridge, J.: Modelling Congested Road Traffic Networks Using a Highly Parallel System. In: DeGloria, A., Jane, M.R., Marini, D. (eds.) Transputer Applications and Systems 1994, Con- current Systems Engineering, vol. 42, pp. 634–647. IOS Press, Amsterdam (1994)
Muller, H., Walrath, K.: Threads and swing (April 1998), http://java.sun.com/products/jfc/swingdoc-archive/threads.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Welch, P.H. (1999). Parallel and Distributed Computing in Education (Invited Talk). In: Hernández, V., Palma, J.M.L.M., Dongarra, J.J. (eds) Vector and Parallel Processing – VECPAR’98. VECPAR 1998. Lecture Notes in Computer Science, vol 1573. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10703040_24
Download citation
DOI: https://doi.org/10.1007/10703040_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66228-0
Online ISBN: 978-3-540-48516-2
eBook Packages: Springer Book Archive