From the Publisher:
Recent progress in VLSI provides massive parallelism but general purpose parallel computers remain elusive due to limited communications performance. This book proposes a new high level approach to programming that addresses the pragmatic issue of how a computation is distributed across a machine.
The book's approach is based on functional programming and has significant advantages over existing comparable approaches, extending the domain of functional programming to include computer architectures in which communication costs are not negligible. It looks at how high-level functional programming languages can be used to specify, reason about, and implement parallel programs for a variety of multiprocessor systems, but in particular a class of loosely coupled multiprocessors whose operation can be described by a process network In these networks the nodes correspond to processes and the arcs to communications channels.
A simple language called Caliban is described in which the functional program text is augmented with a declarative description of how processes are partitioned and mapped onto a network of processing elements. The notation gains expressive power by allowing these annotations to be generated by predicates defined in the functional language. Thus, common communications structures have simple and concise definitions as "network forming operators." The main objective of these annotations is to provide an abstract description of the process network specified by the program so that an efficient mapping of processes to processors can be carried out by the compiler.
Paul H. J. Kelly is Research Assistant in the Department of Computing at ImperialCollege, London Functional Programming for LooselyCoupled Multiprocessors is included in the series Research Monographs in Parallel and Distributed Computing, copublished with Pitman Publishing.
Cited By
- Hidalgo-Herrero M and Ortega-Mallén Y (2009). To be or not to be ...lazy (In a Parallel Context), Electronic Notes in Theoretical Computer Science (ENTCS), 258:1, (21-39), Online publication date: 1-Dec-2009.
- Loogen R, Ortega-mallén Y and Peña-marí R (2005). Parallel functional programming in Eden, Journal of Functional Programming, 15:3, (431-475), Online publication date: 1-May-2005.
- Loidl H, Rubio F, Scaife N, Hammond K, Horiguchi S, Klusik U, Loogen R, Michaelson G, Peña R, Priebe S, Rebón Á and Trinder P (2019). Comparing Parallel Functional Languages, Higher-Order and Symbolic Computation, 16:3, (203-251), Online publication date: 1-Sep-2003.
- Carvalho F, Lima R and Lins R Coordinating functional processes with Haskell# Proceedings of the 2002 ACM symposium on Applied computing, (393-400)
- Trinder P, Loidl H and Pointon R (2019). Parallel and Distributed Haskells, Journal of Functional Programming, 12:5, (469-510), Online publication date: 1-Jul-2002.
- De Carvalho F, Lins R and Lima R Translating Haskell# programs into Petri nets Proceedings of the 5th international conference on High performance computing for computational science, (635-649)
- Cox S, Huang S, Kelly P, Liu J and Taylor F (1993). Program transformations for static process networks, ACM SIGPLAN Notices, 28:1, (60-63), Online publication date: 1-Jan-1993.
- Axford T (1990). An elementary language construct for parallel programming, ACM SIGPLAN Notices, 25:7, (72-80), Online publication date: 1-Jul-1990.
- Toetenel H, van Katwijk J and Plat N Structured analysis—formal design, using stream and object oriented formal specifications Conference proceedings on Formal methods in software development, (118-127)
- Toetenel H, van Katwijk J and Plat N (2019). Structured analysis—formal design, using stream and object oriented formal specifications, ACM SIGSOFT Software Engineering Notes, 15:4, (118-127), Online publication date: 1-Sep-1990.
Recommendations
Data-parallel functional programming
IPPS '93: Proceedings of the 1993 Seventh International Parallel Processing SymposiumThis paper describes an implementation scheme that maps sequences (lists) in the functional language FP onto a data-parallel SIMD multiprocessor. The mapping is dynamic (i.e., self-organizing at run-time via an atom vector) and is transparent to the ...
Performance comparison of MPI and three openMP programming styles on shared memory multiprocessors
SPAA '03: Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architecturesWhen using a shared memory multiprocessor, the programmer faces the selection of the portable programming model which will deliver the best performance. Even if he restricts his choice to the standard programming environments (MPI and OpenMP), he has a ...