Skip to main content

Automatically Partitioning Data to Facilitate the Parallelization of Functional Programs

  • Conference paper
  • First Online:
  • 503 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8974))

Abstract

In this paper we present a novel transformation technique which, given a program defined on any data-type, automatically derives conversion functions for data of that type to and from well-partitioned join-lists. Using these conversion functions we employ existing program transformation techniques in order to redefine the given program into an implicitly parallel one defined in terms of well-partitioned data.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Blelloch, G.E.: Scans as primitive operations. IEEE Trans. Comput. 38(11), 1526–1538 (1989)

    Article  Google Scholar 

  2. Chin, W.-N., Khoo, S.-C., Hu, Z., Takeichi, M.: Deriving parallel codes via invariants. In: Palsberg, J. (ed.) SAS 2000. LNCS, vol. 1824, pp. 75–94. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  3. Chin, W.N., Takano, A., Hu, Z., Chin, W., Takano, A., Hu, Z.: Parallelization via context preservation. In: IEEE International Conference on Computer Languages, IEEE CS Press, pp. 153–162 (1998)

    Google Scholar 

  4. Gibbons, J.: The third homomorphism theorem. J. Funct. Program. 6(4), 657–665 (1996). Earlier version appeared in Jay, C.B., (ed.), Computing: The Australian Theory Seminar, Sydney, pp. 62–69, December 1994

    Article  MATH  Google Scholar 

  5. Gorlatch, S.: Systematic efficient parallelization of scan and other list homomorphisms. In: Fraigniaud, P., Mignotte, A., Robert, Y., Bougé, L. (eds.) Euro-Par 1996. LNCS, vol. 1124, pp. 401–408. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  6. Gorlatch, S.: Systematic extraction and implementation of divide-and-conquer parallelism. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 274–288. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  7. Hamilton, G., Jones, N.: Distillation and labelled transition systems. In: Proceedings of the ACM Workshop on Partial Evaluation and Program Manipulation, pp. 15–24, January 2012

    Google Scholar 

  8. Hu, Z., Iwasaki, H., Takechi, M.: Formal derivation of efficient parallel programs by construction of list homomorphisms. ACM Trans. Program. Lang. Syst. 19(3), 444–461 (1997)

    Article  Google Scholar 

  9. Hu, Z., Takeichi, M., Chin, W.-N.: Parallelization in calculational forms. In: Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL 1998, pp. 316–328, ACM, New York (1998)

    Google Scholar 

  10. Hu, Z., Takeichi, M., Iwasaki, H.: Diffusion: calculating efficient parallel programs. In: 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pp. 85–94(1999)

    Google Scholar 

  11. Hu, Z., Yokoyama, T., Takeichi, M.: Program optimizations and transformations in calculation form. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2005. LNCS, vol. 4143, pp. 144–168. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  12. Huet, G.: The zipper. J. Funct. Program. 7(5), 549–554 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  13. Iwasaki, H., Hu, Z.: A new parallel skeleton for general accumulative computations. Int. J. Parallel Prog. 32, 389–414 (2004)

    Article  MATH  Google Scholar 

  14. Meertens, L.: Paramorphisms. Formal Aspects Comput. 4(5), 413–424 (1992)

    Article  MATH  Google Scholar 

  15. Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: The third homomorphism theorem on trees: downward & upward lead to divide-and-conquer. In: Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of programming languages, POPL 1909, pp. 177–185. ACM, New York (2009)

    Google Scholar 

  16. Skillicorn, D.: Foundations of Parallel Programming. Cambridge International Series on Parallel Computation. Cambridge University Press, Cambridge (2005)

    Google Scholar 

  17. Skillicorn, D.B.: Architecture-independent parallel computation. Computer 23, 38–50 (1990)

    Article  Google Scholar 

  18. Skillicorn, D.B.: The bird-meertens formalism as a parallel model. In: Kowalik, J.S., Grandinetti, L. (eds.) Software for Parallel Computation. NATO ASI Series F, vol. 106, pp. 120–133. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  19. Teo, Y.M., Chin, W.-N., Tan, S.H.: Deriving efficient parallel programs for complex recurrences. In: Proceedings of the Second International Symposium on Parallel symbolic computation, PASCO 1997, pp. 101–110. ACM, New York (1997)

    Google Scholar 

Download references

Acknowledgements

This work was supported, in part, by Science Foundation Ireland grant 10/CE2/I303_1 to Lero - the Irish Software Engineering Research Centre.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Dever .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dever, M., Hamilton, G.W. (2015). Automatically Partitioning Data to Facilitate the Parallelization of Functional Programs. In: Voronkov, A., Virbitskaite, I. (eds) Perspectives of System Informatics. PSI 2014. Lecture Notes in Computer Science(), vol 8974. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-46823-4_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-46823-4_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-46822-7

  • Online ISBN: 978-3-662-46823-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics