Skip to main content
Log in

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

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

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

Notes

  1. http://sketo.ipl-lab.org/.

  2. Since we use the expression technique to carry out fusions, the result of the fusion is not a C++ program but an assembly program. We show its discompiled version for readability.

References

  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)

  2. Bird, R.: Introduction to Functional Programming using Haskell. Prentice-Hall, Englewood Cliffs, NJ (1998)

    Google Scholar 

  3. Cole, M.: Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computation. Research Monographs in Paralled and Distributed Computing. Pitman Publishing (1989)

  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. Grelck, C., Scholz, S.B.: Merging compositions of array skeletons in SaC. Parallel Comput. 32(7–8), 507–522 (2006)

    Article  Google Scholar 

  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)

  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)

  8. Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Berlin (2002)

    Google Scholar 

  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)

  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)

  11. Veldhuizen, T.: Expression templates. C++ Report 7, 26–31 (1995)

Download references

Acknowledgments

This work was partially supported by Japan Society for the Promotion of Science, Grant-in-Aid for Young Scientists (B) 24700025, and PaPDAS project supported by ANR (ANR-2010-INTB-0205-02) and JST (10102704). The authors would like to thank Liu Yu and Shigeyuki Sato for fruitful discussions in the early stages of this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kento Emoto.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Emoto, K., Matsuzaki, K. An Automatic Fusion Mechanism for Variable-Length List Skeletons in SkeTo. Int J Parallel Prog 42, 546–563 (2014). https://doi.org/10.1007/s10766-013-0263-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-013-0263-8

Keywords

Navigation