An Automatic Fusion Mechanism for Variable-Length List Skeletons in SkeTo
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.
KeywordsAlgorithmic skeletons Fusion equipped library Program transformation Expression templates technique Homomorphism-based structured parallel programming
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.
- 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.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)Google Scholar
- 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/
- 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.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.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)Google Scholar
- 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.Veldhuizen, T.: Expression templates. C++ Report 7, 26–31 (1995)Google Scholar