Skip to main content
Log in

2DT-FP: A parallel functional programming language on two-dimensional data

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

We propose a new paradigm for programming multiprocessor systems, 2DT (two-dimensional transformations). 2DT programs are composed of local computations on linear data (columns) and global transformations on 2-dimensional combinations of columns (2D-arrays). Local computations can be expressed in a functional or imperative base language; a typed variant of Backus' FP is chosen for 2DT-FP. The level of abstraction of 2DT makes it suitable for programming a relevant set of algorithms, in general any algorithms, whose data can be easily mapped to 2-dimensional representations. A set of examples tries to prove this claim. An interleaving semantics for 2DT-FP is given, exposing the potential for parallel execution of 2DT-FP programs. The claim is proved that any sequential and thus any parallel execution will deliver the same result. The implementation realized on the Intel Hypercube is described.

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

Access this article

Subscribe and save

Springer+
from €37.37 /Month
  • Starting from 10 chapters or articles per month
  • Access and download chapters and articles from more than 300k books and 2,500 journals
  • Cancel anytime
View plans

Buy Now

Price includes VAT (Netherlands)

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. J. Backus, Can programming be liberated from the von Neumann style? A functional style and its algebra of programs.Comm. of the ACM,21(8):613–641 (1978).

    Article  MATH  MathSciNet  Google Scholar 

  2. K. R. Apt and E. R. Olderog,Verification of Sequential and Concurrent Programs. Springer-Verlag (1991).

  3. D. Banerjee and C. Walinsky, An optimizing compiler forFP *—a data-parallel dialect ofFP. Parallel and Distributed Processing, p. 70–78 (1991).

  4. J. Hill. Vectorizing a non-strict Functional Language for a data-parallel “Spineless (not so) Tagless G-machine”. In M. van Eekelen R. Plasmeijer (ed.),Implementation of Functional Languages, pp. 87–100 (September 1993).

  5. G. K. Jouret, Compiling functional languages for SIMD architectures.Parallel and Distributed Processing, pp. 79–86 (1991).

  6. G. Hains and L. M. R. Mullin, Parallel functional programming with arrays.The Computer Journal (1993).

  7. D. Cann, Retire Fortran? A Debate Rekindled.Comm. of the ACM,35(8):81–89, (August 1992).

    Article  Google Scholar 

  8. T. Rauber and G. Rünger, Hypercube implementation and performance analysis for extrapolation methods. InProc. of the CONPAR '94, Linz, AustriaLecture Notes in Computer Science,854:265–276 (September 1994) Springer-Verlag.

  9. Y. Ben-Asher, D. Egozi, and A. Schuster, 2-D SIMD algorithms for perfect shuffle networks.J. Parallel and Distributed Computing,16:250–257 (1992).

    Article  Google Scholar 

  10. Y. Ben-Asher, H. Seidl, and R. Wilhelm, The TRANSPOSE machine: A global implementation of a parallel graph reducer. InProc. of IEEE Tencon '89, Bombay (1989).

  11. Y. Ben-Asher, G. Rünger, A. Schuster, and R. Wilhelm, Implementing 2DT-FP on a multiprocessor. InProc. of 5th Int. Conf. on Compiler Construction, CC'94, Edinburgh,Lecture Notes in Computer Science,786:113–127 (1994) Springer-Verlag.

  12. G. D. Plotkin, A structural approach to operational semantics. Technical Report DAIMI-FN 19, Department of Computer Science, Aarhus University (1981).

  13. Y. Ben-Asher, G. Rünger, A. Schuster, and R. Wilhelm, 2DT-FP: An FP based programming language for efficient parallel programming of multi processor networks. InProc. of PARLE'93, München,Lecture Notes in Computer Science,694:42–55 (1993) Springer-Verlag.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Supported by the Deutsche Forschungsgemeinschaft, DFG

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ben-Asher, Y., Rünger, G., Schuster, A. et al. 2DT-FP: A parallel functional programming language on two-dimensional data. Int J Parallel Prog 23, 389–422 (1995). https://doi.org/10.1007/BF02577772

Download citation

  • Received:

  • Issue date:

  • DOI: https://doi.org/10.1007/BF02577772

Key Words