Formal derivation of SIMD parallelism from non-linear recursive specifications
This paper presents a strategy for deriving SIMD-parallel (Single-Instruction-Multiple-Data) programs in a transformational style by parallelisation of non-linear recursive specifications. Parallelism is expressed by means of so-called skeletons.
Linear array and hypercube architectures and their skeletons are discussed in some detail. The strategy described is illustrated by derivations, such as the transformation of a generic specification for divide & conquer algorithms to an efficient implementation on hypercube architectures.
Unable to display preview. Download preview PDF.
- 1.F.L. Bauer, R. Berghammer, M. Broy, W. Dosch, F. Geiselbrechtinger, R. Gnatz, E. Hangel, W. Hesse, B. Krieg-Brückner, A. Laut, T. Matzner, B. Möller, F. Nickl, H. Partsch, P. Pepper, K. Samelson, M. Wirsing, and H. Wössner. The Munich Project CIP. Volume I: The Wide Spectrum Language CIP-L, volume 183 of Lecture Notes in Computer Science. Springer-Verlag, Berlin/Heidelberg/New York, 1985.Google Scholar
- 2.E.A. Boiten, A.M. Geerling, and H.A. Partsch. Transformational derivation of (parallel) programs using skeletons. In H.A.G. Wijshoff, editor, Computing Science in the Netherlands 1993, pages 97–108, 1993.Google Scholar
- 3.F.L. Bauer and H. Wössner. Algorithmic Language and Program Development. Springer-Verlag, Berlin, 1982.Google Scholar
- 4.M. Chen and Y. Choo. Domain morphisms: A new construct for parallel programming and formalizing program optimization. Technical Report YALEU/DCS/TR-817, Dept. of Computer Science, Yale University, 1990.Google Scholar
- 5.M. Chen, Y. Choo, and J. Li. Compiling parallel programs by optimizing performance. The Journal of Supercomputing, 2:171–207, 1988.Google Scholar
- 6.M.I. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. Pitman, London, 1989.Google Scholar
- 7.J. Darlington, A.J. Field, P.G. Harrison, P.H.J. Kelly, D.W.N. Sharp, Q. Wu, and R.L. While. Parallel programming using skeleton functions. In PARLE'93 Parallel Architectures and Languages Europe, volume 694 of Lecture Notes in Computer Science, pages 146–160. Springer-Verlag, 1993.Google Scholar
- 8.M.S. Feather. A survey and classification of some program transformation approaches and techniques. In L.G.L.T. Meertens, editor, Program Specification and Transformation. Proceedings of the IFIP TC2/WG2.1 Working Conference on Program Specification and Transformation, pages 165–196, Amsterdam, 1987. North-Holland Publishing Company.Google Scholar
- 9.P.J.M. Frederiks. From applicative specifications to parallel programs. Master's thesis, Dept. of Computing Science, University of Nijmegen, 1992.Google Scholar
- 10.A.M. Geerling. Two examples of parallel-program derivation: Parallel-prefix and matrix multiplication. Research Report DoC 92/33, Imperial College London, 1992.Google Scholar
- 11.A.M. Geerling. Formal derivation of SIMD parallelism from non-linear recursive specifications. Technical Report CSI-R9324, Computing Science Institute, University of Nijmegen, 1993.Google Scholar
- 12.P.G. Harrison. A higher-order approach to parallel algorithms. The Computer Journal, 35(6):555–566, December 1992.Google Scholar
- 13.H.A. Partsch. Specification and Transformation of Programs — a Formal Approach to Software Development. Springer-Verlag, Berlin, 1990.Google Scholar
- 14.H. Partsch. Some experiments in transforming towards parallel executability. In R. Paige, J. Reif, and R. Wachter, editors, Parallel Algorithm Derivation and Program Transformation, Kluwer Academic Publishers, 1993. Also: Technical Report 92-08, Dept. of Computing Science, University of Nijmegen, 1992.Google Scholar
- 15.M.J. Quinn. Designing efficient algorithms for parallel computers. McGraw-Hill, New York, 1987.Google Scholar
- 16.D.B. Skillicorn. Architecture-independent parallel computation. IEEE Computer, 23(12):38–50, December 1990.Google Scholar