Abstract
Two models of computation which are suitable for the description of parallel scientific calculations on large data structures are presented. Data parallel assignment is a construct which may be used to specify the application of a set of order independent fine grained operations to a regular data structure. It is formulated in a machine independent way and, consequently, is suitable for implementation on a range of novel parallel architectures. An operational model of data parallel computation is provided by specifying a model array processor. The specification captures the essential features of the class of array processors and it may be instantiated in order to define a particular machine. A formal operational semantics of data parallel assignment is given for the model array processor. The translation mechanism is shown to be correct. The exercise clarifies some of the issues in deciding whether or not it is feasible to translate data parallel assignment directly onto array processor architectures.
Similar content being viewed by others
References
Chandy, K.M. and Misra, J.:Parallel Program Design: A Foundation. Addison-Wesley, 1988.
Dijkstra, E.W.:A Discipline of Programming. Prentice-Hall, 1976.
Dekel, E., Nassimi, D. and Sahni, S.: Parallel matrix and graph algorithms.SIAM Journal on Computing, 10(4):657–675, 1981.
Freeman, T.L. and Phillips, C.:Parallel Numerical Algorithms. Prentice-Hall International, 1992.
Gries, D.:The Science of Programming. Prentice-Hall International, 1981.
Gonzalez, R.C. and Wintz, P.:Digital Image Processing (2nd edition). Addison Wesley, 1987.
Hockney, R.W. and Jesshope, C.R.:Parallel Computers 2:architecture, programming and algorithms. Adam Hilger, 1988.
Hoare, C.A.R. and Lauer, P.E.: Consistent and complementary formal theories of the semantics of programming languages.Acta Informatica, 3:135–153, 1974.
Heywood, T. and Ranka, S.: A practical hierarchial model of parallel computation. 1. the model.Journal of Parallel and Distributed Computing, 16(3):212–232, 1992.
Kung, H.T. and Leiserson, C.E.: Algorithms for VLSI processor arrays. In C. Mead and L.A. Conway, editors,Introduction to VLSI Systems. Addison-Wesley, 1980.
Karp, R.M. and Ramachandrun, V.: A survey of parallel algorithms for shared memory machines. In J. van Leeuwen, editor,Handbook of Theoretical Computer Science. North Holland, 1990.
Luk, W. and Brown, G.: A systolic LRU processor and its top-down development.Science of Computer Programming, 15(2-3):217–233, 1990.
Metcalf, M. and Reid, J.:Fortran 90 explained. Oxford University Press, 1990.
Perrott, R.H.: A language for array and vector processors.ACM Transactions on Programming Languages and Systems, 2:266–287, 1979.
Pereira, F.C.N. and Warren, D.H.D.: Definite clause grammars for language analysis-a survey of the formalism and a comparison with augmented transition networks.Artificial Intelligence, 13:231–278, 1980.
Schmidt, D.A.:Denotational Semantics. Allyn and Bacon Inc., 1986.
Stewart, A.: SIMD language design using prescriptive semantics.BIT, 28:639–650, 1988.
Stewart, A.: An axiomatic treatment of SIMD assignment.BIT, 30:70–82, 1990.
Stoy, J.E.:Denotational Semantics: the Scott-Strachey approach to programming language theory. MIT Press, 1977.
Tennent, R.D.: The denotational semantics of programming languages.Communications of the ACM, 19(8):437–453, 1976.
Wallis, P.J.L.: Some primitives for the portable programming of array and vector processors.BIT, 21:436–448, 1981.
Wray, J.P.:The Semantics of Synchronised Assignment. PhD thesis, The Queen's Unviversity of Belfast, July 1992.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Wray, J.P., Stewart, A. Correct translation of data parallel assignment onto array processors. Formal Aspects of Computing 6, 417–439 (1994). https://doi.org/10.1007/BF01211307
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF01211307