Abstract
A major reason for the lack of practical use of parallel computers has been the absence of a suitable model of parallel computation. Many existing models are either theoretical or are tied to a particular architecture. A more general model must be architecture independent, must realistically reflect execution costs, and must reduce the cognitive overhead of managing massive parallelism. A growing number of models meeting some of these goals have been suggested. We discuss their properties and relative strengths and weaknesses. We conclude that data parallelism is a style with much to commend it, and discuss the Bird-Meertens formalism as a coherent approach to data parallel programming.
Similar content being viewed by others
References
D. B. Skillicorn, Architecture-Independent Parallel Computation,IEEE Computer,23(12):38–51 (December 1990).
S. Peyton-Jones,Implementation of Functional Programming Languages, Prentice-Hall (1987).
J. R. Glauert, J. R. Kennaway, and M. R. Sleep, DACTL: A Computational Model and Compiler Target Language Based on Graph Reduction, Technical Report SYS-C87-03, University of East Anglia (1987).
M. Danelutto and M. Vanneschi, VLIW-in-the-large: A Model for Fine Grain Parallelism Exploitation on Distributed Memory Multiprocessors,Proc of the 23rd Annual Workshop on Microprogramming and Microarchitecture, pp. 7–16 (November 1990).
S. L. Peyton-Jones, C. Clack, and N. Harris, GRIP—A Parallel Graph Reduction Machine, Technical Report, Department of Computer Science, University of London (1987).
I. Watson, V. Woods, P. Watson, R. Banach, M. Greenberg, and J. Sargeant, Flagship: A Parallel Architecture for Declarative Programming,Proc. of the 15th Annual Int'l. Symp. on Computer Archit. pp. 124–130 (May 1988). Also appeared as University of Manchester, Department of Computer Science, Flagship Project, Report FS/MU/IW/025-87 (November 1987).
P. Kelly,Functional Programming for Loosely-Coupled Multiprocessors, Pitman (1989).
F. A. Rahbi and G. A. Manson, Experiments with a Transputer-Based Parallel Graph Reduction Machine,Concurrency Practice and Experience (to appear).
J. A. Goguen and T. Winkler, Introducing OBJ3, Technical Report SRI-CSL-88-9, Computer Science Laboratory, SRI International (August 1988).
J. Goguen, S. Leinwand, J. Meseguer, and T. Winkler, The Rewrite Rule Machine 1988, Oxford University Computing Laboratory, Programming Research Group, Technical Monograph PRG-76 (1989).
K. M. Chandy and J. Misra,Parallel Program Design: A Foundation, Addison-Wesley (1988).
R. J. R. Back, A Method for Refining Atomicity in Parallel Algorithms,PARLE '89, Parallel Architectures and Languages Europe, Springer Lecture Notes in Computer Science,366:199–216 (June 1989).
G. M. Papadopoulos, Implementation of a General-Purpose Dataflow Multiprocessor, Technical Report TR-432, MIT Laboratory for Computer Science (August 1988).
T. Yuba, T. Shinada, Y. Yamaguchi, K. Hiraki and S. Sakai, Dataflow Computer Development in Japan,Int'l. Conf. on Supercomputing, ACM Press, Amsterdam, pp. 140–147 (June 1990). Appeared asComputer Architecture News, Vol. 18, No. 3.
S. Ahuja, N. Carriero, D. Gelernter, and V. Krishnswamy, Matching Languages and Hardware for Parallel Computation in the Linda Machine,IEEE Transactions on Computers,37(8):921–929 (August 1988).
Steven Ericsson Zenith, Programming with Ease,Centre de Recherche en Informatique, Ecole Nationale Supérieure des Mines de Paris (September 1991).
G. Agha,Actors: A Model of Concurrent Computation in Distributed Systems, MIT Press (1986).
F. Baude and G. Vidal-Naquet, Actors as a Parallel Programming Model,Proc. of 8th Symp. on Theoretical Aspects of Computer Science, Springer, Lecture Notes in Computer Science Vol. 480, 1991.
W. J. Dally and D. S. Wills, Universal Mechanisms for Concurrency,PARLE '89, Parallel Architectures and Languages Europe, Springer-Verlag Lecture Notes in Computer Science,365:19–33 (June 1989).
D. S. Wills, Pi: A Parallel Architecture Interface for Multi-Model Execution Technical Report AI-TR-1245, MIT Artificial Intelligence Laboratory, (1990).
M. O. Noakes and W. J. Dally, System Design of the J-machine,Proc. of the Sixth MIT Conf. on Adv. Res. in VLSI, MIT Press, pp. 179–194 (1990).
A. Gottlieb, B. Lubachevsky, and L. Rudolph, Basic Techniques for the Efficient Coordination of Large Numbers of Cooperating Sequential Processes,ACM Transactions of Programming Languages and Systems, Vol. 5, No. 2 (April 1983).
Peter A. Buhr and Richard A. Stroobosscher, The μSystem: Providing Light-Weight Concurrency on Shared-Memory Multiprocessor Computers Running UNIX,Software Practice and Experience,20(9):929–963 (September 1990).
Peter A. Buhr, Hamish I. Macdonald, and Richard A. Stroobosscher, μSystem Reference Manual, Version 4.3.3, Technical Report, Department of Computer Science, University of Waterloo, Ontario, Canada, (March 1991).
J. E. Faust and H. M. Levy, The Performance of an Object-Oriented Threads Package, N. Meyrowitz, (ed.),OOPSLA ECOOP90 Proceedings, SIGPLAN Notices,25(10):278–288. (October 1990).
G. Jones and M. Goldsmith,Programming in Occam2, Prentice-Hall (1988).
C. A. R. Hoare,Communicating Sequential Processes, Prentice-Hall International Series in Computer Science (1985).
H. E. Bal, J. G. Steiner, and A. S. Tanenbaum, Programming Languages for Distributed Computing Systems,Computing Surveys,21(3):261–322 (September 1989).
L. G. Valiant, General. Purpose Parallel Architectures, J. van Leeuwen, (ed.),Handbook of Theoretical Computer Science, Vol. A., Elsevier Science Publishers and MIT Press (1990).
L. G. Valiant, A Bridging Model for Parallel Computation,Communications of the ACM,33(8):103–111 (August 1990).
W. F. McColl, Parallel Algorithms and Architectures, G. A. van Zee and J. G. G. van de Vorst, (eds.),Parallel Computing 88, Springer Lecture Notes in Computer Science,384:1–22 (June 1988).
G. Blelloch, Scans as Primitive Parallel Operations,Proc. of the Int'l. Conf. on Parallel Processing, pp. 355–362 (August 1987).
R. E. Ladner and M. J. Fisher, Parallel prefix Computation,J. of the ACM,27(4):831–838 (1980).
A. G. Ranade, Fluent Parallel Computation. PhD Thesis, Yale University, (1989).
P. de la Torre and C. P. Kruskal, Towards a Single Model of Efficient Computation in Real Parallel Machines,Parallel Architectures and Languages Europe PARLE91, Springer Lecture Notes in Computer Science (June 1991).
T. Heywood and S. Ranka, A Practical Hierarchical Model of Parallel Computation: The Model, Technical Report SU-CIS-91-06, School of Computer and Information Science, Syracuse University (1991).
T. Heywood and S. Ranka, A. Practical Hierarchical Model of Parallel Computation: Binary Tree and FFT Graph Algorithms, Technical Report SU-CIS-91-07, School of Computer and Information Science, Syracuse University (1991).
C. P. Kruskal, L. Rudolph, and M. Snir, A Complexity Theory of Efficient Parallel Algorithms,Theoretical Computer Science,71:95–132 (1990).
M. Danelutto, A Massively Parallel Architecture Using VLIW for Fine Grain Parallelism Exploitation, PhD Thesis, Dipartimento di Informatica, Università di Pisa (March 1990).
M. Danelutto and M. Vanneschi, VLIW-in-the-large: A Model for Fine Grain Parallelism Exploitation on Distributed Memory Multiprocessors,Proc. of the 23rd Annual Workshop on Microprogramming and Microarchitecture, pp. 7–16 (November 1990).
D. R. Smith and M. R. Lowry, Algorithm Theories and Design Tactics,Mathematics of Program Construction, Springer-Verlag Lecture Notes in Computer Science,375:379–398 (June 1989).
M. Cole,Algorithmic Skeletrons Management of Parallel Computation, Research Monographs in Parallel and Distributed Computing, Pitman (1989).
M. Danelutto, R. Di Meglio, S. Pelagatti, and M. Vanneschi, High-Level Language Constructs for Massively Parallel Computing, Technical Report, Hewlett Packard Pisa Science Center, HPL-PSC-90-19 (1990).
M. Danelutto, S. Pelagatti, and M. Vanneschi, High-Level Languages for Easy Massively Parallel Computing, Technical Report, Hewlett Packard Pisa Science Center, HPL-PSC-91-16 (1991).
F. Baiardi, M. Danelutto, M. Jazayeri, S. Pelagatti, and M. Vanneschi, Architectural Models and Design Methodologies for General-Purpose Highly-Parallel Computers,IEEE CompEuro 91-Advanced Computer Technology, Reliable Systems and Applications (May 1991).
G. E. Blelloch and S. Chatterjee, VCODE: A Data-Parallel Intermediate Language,Proc. of the 3rd Symp. on the Frontiers of Massively Parallel Computation, pp. 471–480 (October 1990).
G. E. Blelloch,Vector Models for Data-Parallel Computing, MIT Press, (1990).
G. Sabot,The Paralation Model: Architecture-Independent Parallel Programming, MIT Press (1989).
K. Knobe, J. D. Lukas, and G. L. Steele, Data Optimization: Allocation of Arrays to Reduce Communication on SIMD Machines,Journal of Parallel and Distributed Computing,8:102–118 (1990).
E. Albert, K. Knobe, J. Lukas, and G. L. Steele, Compiling Fortran 8× features for the Connection Machine Computer System, Technical Report CA-8801-0401, Compass (1988). Also appeared inSIGPLAN Notices, Volume 23 (September 1988).
K. Knobe and V. K. Natarajan, Data Optimization: Minimizing Residual Interprocessor Data Motion on SIMD Machines, Technical Report CA-9006-2001, Compass (1990). Also appeared inThird Symp. on Frontiers of Massively Parallel Computation (October, 1990).
K. Knobe, J. Lukas, and G. L. Steele, Massively Parallel Data Optimization, Technical Report CA-8810-1401, Compass (1988). Also appeared inSecond Symp. on Frontiers of Massively Parallel Computation (October, 1988).
J. F. Prins, A Framework for Efficient, Execution of Array-Based Languages and SIMD Computers,Third Symp. on the Frontiers of Massively Parallel Computation, IEEE (1990).
T. More, Notes on the Diagrams, Logic, and Operations of Array Theory, Technical Report G230-2137, IBM Cambridge Scientific Center (1981).
T. More, On the Development of Array Theory, Technical Report, IBM Cambridge Scientific Center Technical Report (1986).
L. M. R. Mullin, A Mathematics of Arrays, PhD Thesis, Syracuse University, (December 1988).
R. S. Bird, An Introduction to the Theory of Lists, M. Broy, (ed.),Logic of Programming and Calculi of Discrete Design, Springer-Verlag, pp. 3–42 (1987).
R. S. Bird, Algebraic Identities for Program Calculation,The Computer Journal,32(2):122–126 (February 1989).
G. Malcolm, Algebraic Data Types and Program Transformation, PhD Thesis, Rijksuniversiteit Groningen (September 1990).
J. M. Spivey, A Categorical Approach to the Theory of Lists,Mathmatics of Program Construction, Springer-Verlag Lecture Notes in Computer Science,375:399–408 (June 1989).
T. Hagino, A Typed Lambda Calculus with Categorical Type Constructors, D. H. Pitt, A. Poigné, and D. E. Rydeheard, (eds.),Category Theory and Computer Science, Springer Lecture Notes in Computer Science,283:140–157 (1987).
R. S. Bird, A Calculus of Functions for Program Derivation, Oxford University Programming Research Group Monograph PRG-64 (1987).
R. S. Bird, Lectures on Constructive Functional Programming, Oxford University Programming Research Group Monograph PRG-69 (1988).
J. Dennis, Data Flow Supercomputers,Computer, pp. 48–56 (1980).
J. R. Gurd, C. C. Kirkham, and I. Watson, The Manchester Prototype Dataflow Computer,CACM,28(1):34–52 (January 1985).
G. Hains, Multidimensional Arrays as Parallel Data Structures,Abstract Machine Models for Highly Parallel Computers, University of Leeds, United Kingdom, (March 1991).
G. Hains and L. M. R. Mullin,An Algebra of Multidimensional Arrays, preprint (1991).
Author information
Authors and Affiliations
Additional information
This work was supported by the Natural Sciences and Engineering Research Council of Canada.
Rights and permissions
About this article
Cite this article
Skillicorn, D.B. Models for practical parallel computation. Int J Parallel Prog 20, 133–158 (1991). https://doi.org/10.1007/BF01407840
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01407840