Formal Specification of Parallel SIMD Execution

Abstract In this paper we define a vector model for parallel SIMD execution. The model is based on the notion of atomic instructions acting on vectors of size Π, where Π is the number of PEs on the machine. The vector model of SIMD execution is independent of any specific computing architecture and can define SIMD execution on a SIMD machine (with Π PEs) or a SIMD simulation on a uniprocessor machine. The vector model enables the formal specification of parallel SIMD languages by providing an underlying mathematical framework for the SIMD paradigm. We provide a semantic definition for an imperative parallel language based on the Maspar MPL language utilising the vector model. The semantic definition provides a complete set of rules for ordering, construction and manipulation of the parallel vectors during the execution of each language construct. This demonstrates how parallel SIMD machines and simulators can use the model to specify the semantics of any operation or language construct. The model can also be used to resolve problems like virtualisation in addition to its implications for ongoing research into the automatic parallelisation of sequential programs.

[1]  Guy E. Blelloch,et al.  A Parallel Complexity Model for Functional Languages , 1994 .

[2]  W. Daniel Hillis,et al.  The connection machine , 1985 .

[3]  Tom Blank,et al.  The MasPar MP-1 architecture , 1990, Digest of Papers Compcon Spring '90. Thirty-Fifth IEEE Computer Society International Conference on Intellectual Leverage.

[4]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[5]  Gordon D. Plotkin,et al.  A Powerdomain Construction , 1976, SIAM J. Comput..

[6]  Luc Bougé On the Semantics of Languages for Massively Parallel SIMD Architectures , 1991, PARLE.

[7]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[8]  Thomas Bräunl Structured SIMD Programming in Parallaxis , 1989, Struct. Program..

[9]  Paul Roe,et al.  Parallel programming using functional languages , 1991 .

[10]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[11]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[12]  Steven Fortune,et al.  Parallelism in random access machines , 1978, STOC.

[13]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[14]  W. Zimmermann,et al.  Complexity issues in the design of functional languages with explicit parallelism , 1992, Proceedings of the 1992 International Conference on Computer Languages.