Skip to main content

A calculus for exploiting data parallelism on recursively defined data

Preliminary report

  • Invited Talk 8
  • Conference paper
  • First Online:
Theory and Practice of Parallel Programming (TPPP 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 907))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G.E. Blelloch. NESL: A nested data parallel language. Technical Report Tech. Report, CMU-CS-93-129, Carnegie Mellon University, 1993.

    Google Scholar 

  2. High Performance Fortran Forum. High Performance Fortran language specification, May 1993.

    Google Scholar 

  3. 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.

    Article  Google Scholar 

  4. 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.

    Article  Google Scholar 

  5. G. Hains and C. Foisy. The data-parallel categorical abstract machine. In Proc. PARLE93: Parallel Architectures and Languages Europe (LNCS 694), 1993.

    Google Scholar 

  6. P.J. Hatcher and M.J. Quinn. Data-Parallel Programming on MIMD Computers. The MIT Press, 1991.

    Google Scholar 

  7. W.D. Hillis and Guy L. Steele Jr. Data parallel algorithms. Communications of ACM, Vol. 29, No. 12, pp. 1170–1183, 1986.

    Article  Google Scholar 

  8. G. Kahn. Natural semantics. In Proc. Symposium on Theoretical Aspects of Computer Science(LNCS 247), pp. 22–39. Springer Verlag, 1987.

    Google Scholar 

  9. A. Karp. Programming for parallelism. IEEE Computer, pp. 43–57, May 1987.

    Google Scholar 

  10. C. Lasser. The Essential Lisp Manual. Thinking Machine Corporation, Cambridge, MA, July 1986.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. G. Sabot. Paralation Lisp Manual, May 1988.

    Google Scholar 

  15. D. Suciu and T. Tannen. Efficient compilation of high-level data prrallel algorithm. In Proc. ACM Symposium on Parallel Algorithms and Architectures, June 1994.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takayasu Ito Akinori Yonezawa

Rights and permissions

Reprints 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

Publish with us

Policies and ethics