Abstract
Array based data parallel programming can be generalized in two ways to make it an appropriate paradigm for parallel processing of general recursively defined data. The first is the introduction of a parallel evaluation mechanism for dynamically allocated recursively defined data. It achieves the effect of applying the same function to all the subterms of a given datum in parallel. The second is a new notion of recursion, which we call parallel recursion, for parallel evaluation of recursively defined data. In contrast with ordinary recursion, which only uses the final results of the recursive calls of its immediate subterms, the new recursion repeatedly transforms a recursive datum represented by a system of equations to another recursive datum by applying the same function to each of the equation simultaneously, until the final result is obtained. This mechanism exploits more parallelism and achieves significant speedup compared to the conventional parallel evaluation of recursive functions. Based on these observations, we propose a typed lambda calculus for data parallel programming and give an operational semantics that integrates the parallel evaluation mechanism and the new form of recursion in the semantic core of a typed lambda calculus. We also describe an implementation method for massively parallel multi-computers, which makes it possible to execute parallel recursion in the expected performance.
Preview
Unable to display preview. Download preview PDF.
References
G.E. Blelloch. NESL: A nested data parallel language. Technical Report Tech. Report, CMU-CS-93-129, Carnegie Mellon University, 1993.
High Performance Fortran Forum. High Performance Fortran language specification, May 1993.
R. Gupta. SPMD execution of programs with pointer-based data structures on distributed-memory machines. Journal of Parallel and Distributed Computing, Vol. 16, pp. 92–107, 1992.
R.H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, Vol. 7, No. 4, pp. 501–538, 1985.
G. Hains and C. Foisy. The data-parallel categorical abstract machine. In Proc. PARLE93: Parallel Architectures and Languages Europe (LNCS 694), 1993.
P.J. Hatcher and M.J. Quinn. Data-Parallel Programming on MIMD Computers. The MIT Press, 1991.
W.D. Hillis and Guy L. Steele Jr. Data parallel algorithms. Communications of ACM, Vol. 29, No. 12, pp. 1170–1183, 1986.
G. Kahn. Natural semantics. In Proc. Symposium on Theoretical Aspects of Computer Science(LNCS 247), pp. 22–39. Springer Verlag, 1987.
A. Karp. Programming for parallelism. IEEE Computer, pp. 43–57, May 1987.
C. Lasser. The Essential Lisp Manual. Thinking Machine Corporation, Cambridge, MA, July 1986.
A. Rogers, J. Reppy, and L. Hendren. Supporting SPMD execution for dynamic data structurs. In Proc. 5th International Workshop on Languages and Compilers for Parallel Computing (LNCS 757), 1992.
J. Rose and Guy L. Steele Jr. C: An extended C language for data parallel programming. Technical Report PL87-5, Thinking Machine Corporation, Cambridge, MA, 1987.
W. Rytter. The complexity of twoway push down automata and recursive programs. In A. Apostolica and Z. Galil, editors, Combinatorial Algorithms on Words. Springer-Verlag, NATO ASI Series F:12 1985.
G. Sabot. Paralation Lisp Manual, May 1988.
D. Suciu and T. Tannen. Efficient compilation of high-level data prrallel algorithm. In Proc. ACM Symposium on Parallel Algorithms and Architectures, June 1994.
S. Wholey and Guy L. Steele Jr. Connection machine lisp: A dialect of common lisp for data parallel programming. In Proc. International Conference on Supercomputing, May 1987.
T. Yuasa. A SIMD environment TUPLE for parallel list processing. In Parallel Symbolic Computing: Languages, Systems, and Applications (LNCS 748), pp. 268–286. Springer Verlag, 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nishimura, S., Ohori, A. (1995). A calculus for exploiting data parallelism on recursively defined data. In: Ito, T., Yonezawa, A. (eds) Theory and Practice of Parallel Programming. TPPP 1994. Lecture Notes in Computer Science, vol 907. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0026582
Download citation
DOI: https://doi.org/10.1007/BFb0026582
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59172-6
Online ISBN: 978-3-540-49218-4
eBook Packages: Springer Book Archive