International Journal of Parallel Programming

, Volume 42, Issue 4, pp 546–563 | Cite as

An Automatic Fusion Mechanism for Variable-Length List Skeletons in SkeTo

Article

Abstract

Skeletal parallel programming is a promising approach to easy parallel programming in which users can build parallel programs simply by combining parts of a given set of ready-made parallel computation patterns called skeletons. There is a trade-off for this easiness in the form of an efficiency problem caused by the compositional style of the programming. One solution to this problem is fusion transformation that optimizes naively composed skeleton programs by eliminating redundant intermediate data structures. Several parallel skeleton libraries have automatic fusion mechanisms. However, there have been no automatic fusion mechanisms proposed for variable-length list (VLL) skeletons, even though such skeletons are useful for practical problems. The main difficulty is that previous fusion mechanisms are not applicable to VLL skeletons, and so the fusion cannot be completed. In this paper, we propose a novel fusion mechanism for VLL skeletons that can achieve both an easy programming interface and complete fusion. The proposed mechanism has been implemented in our skeleton library, SkeTo, by using the expression templates technique, experimental results have shown that it is very effective.

Keywords

Algorithmic skeletons Fusion equipped library Program transformation Expression templates technique Homomorphism-based structured parallel programming 

References

  1. 1.
    Bird, R.: An introduction to the theory of lists. In: Proceedings of NATO Advanced Study Institute on Logic of Programming and Calculi of Discrete Design, pp. 5–42 (1987)Google Scholar
  2. 2.
    Bird, R.: Introduction to Functional Programming using Haskell. Prentice-Hall, Englewood Cliffs, NJ (1998)Google Scholar
  3. 3.
    Cole, M.: Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computation. Research Monographs in Paralled and Distributed Computing. Pitman Publishing (1989)Google Scholar
  4. 4.
    Emoto, K., Matsuzaki, K.: An automatic fusion mechanism for variable-length list skeletons in sketo. Technical Report METR2013-04, University of Tokyo (2013). Available on web: http://www.keisu.t.u-tokyo.ac.jp/research/techrep/
  5. 5.
    Grelck, C., Scholz, S.B.: Merging compositions of array skeletons in SaC. Parallel Comput. 32(7–8), 507–522 (2006)CrossRefGoogle Scholar
  6. 6.
    Javed, N., Loulergue, F.: OSL: Optimized bulk synchronous parallel skeletons on distributed arrays. In: Advanced Parallel Processing Technologies, Lecture Notes in Computer Science, vol. 5737, pp. 436–451. Springer, Berlin, Heidelberg (2009)Google Scholar
  7. 7.
    Matsuzaki, K., Emoto, K.: Implementing fusion-equipped parallel skeletons by expression templates. In: Implementation and Application of Functional Languages, Lecture Notes in Computer Science, vol. 6041, pp. 72–89. Springer, Berlin, Heidelberg (2011)Google Scholar
  8. 8.
    Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Berlin (2002)Google Scholar
  9. 9.
    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, vol. 106, pp. 120–133. Springer, Berlin, Heidelberg (1993)Google Scholar
  10. 10.
    Tanno, H., Iwasaki, H.: Parallel skeletons for variable-length lists in sketo skeleton library. In: Euro-Par 2009 Parallel Processing, Lecture Notes in Computer Science, vol. 5704, pp. 666–677. Springer, Berlin (2009)Google Scholar
  11. 11.
    Veldhuizen, T.: Expression templates. C++ Report 7, 26–31 (1995)Google Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  1. 1.Kyushu Institute of TechnologyIizukaJapan
  2. 2.Kochi University of TechnologyKochiJapan

Personalised recommendations