A Fusion-Embedded Skeleton Library

  • Kiminori Matsuzaki
  • Kazuhiko Kakehi
  • Hideya Iwasaki
  • Zhenjiang Hu
  • Yoshiki Akashi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3149)


This paper addresses a new framework for designing and implementing skeleton libraries, in which each skeleton should not only be efficiently implemented as is usually done, but also be equipped with a structured interface to combine it efficiently with other skeletons. We illustrate our idea with a new skeleton library for parallel programming in C++. It is simple and efficient to use just like other C++ libraries. A distinctive feature of the library is its modularity: Our optimization framework treats newly defined skeletons equally to existing ones if the interface is given. Our current experiments are encouraging, indicating that this approach is promising both theoretically and in practice.


Skeletal Parallel Programming Optimization Program Transformation Fusion Transformation Bird-Meertens Formalism 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cole, M.: Algorithmic skeletons: A structured approach to the management of parallel computation. Research Monographs in Parallel and Distributed Computing. Pitman, London (1989)Google Scholar
  2. 2.
    Rabhi, F., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2002)Google Scholar
  3. 3.
    Skillicorn, D.B.: The Bird-Meertens Formalism as a Parallel Model. In: NATO ARW “Software for Parallel Computation” (1992)Google Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    Hu, Z., Iwasaki, H., Takeichi, M.: Formal derivation of efficient parallel programs by construction of list homomorphisms. ACM Transactions on Programming Languages and Systems 19, 444–461 (1997)CrossRefGoogle Scholar
  6. 6.
    Hu, Z., Takeichi, M., Chin, W.: Parallelization in calculational forms. In: 25th ACMSymposium on Principles of Programming Languages, San Diego, California, USA, pp. 316–328 (1998)Google Scholar
  7. 7.
    Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, p. 620. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  8. 8.
    Cole, M.: eSkel home page (2002),
  9. 9.
    Danelutto, M., Stigliani, M.: SKElib: parallel programming with skeletons in c. In: Bode, A., Ludwig, T., Karl, W.C., Wismüller, R. (eds.) Euro-Par 2000. LNCS, vol. 1900, pp. 1175–1184. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  10. 10.
    Adachi, S., Iwasaki, H., Hu, Z.: Diff: A powerful parallel skeleton. In: The 2000 International Conference on Parallel and Distributed Processing Techniques and Application, Las Vegas, vol. 4, pp. 525–527. CSREA Press (2000)Google Scholar
  11. 11.
    Bacci, B., Danelutto, M., Orlando, S., Pelagatti, S., Vanneschi, M.: P3L: A structured high level programming language and its structured support. Concurrency Practice and Experience 7, 225–255 (1995)CrossRefGoogle Scholar
  12. 12.
    Gorlatch, S., Pelagatti, S.: A transformational framework for skeletal programs: Overview and case study. In: Rolim, J.D.P. (ed.) IPPS-WS 1999 and SPDP-WS 1999. LNCS, vol. 1586, pp. 123–137. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  13. 13.
    Aldinucci, M., Gorlatch, S., Lengauer, C., Pelagatti, S.: Towards parallel programming by transformation: The FAN skeleton framework. Parallel Algorithms and Applications 16, 87–122 (2001)zbMATHMathSciNetGoogle Scholar
  14. 14.
    Hu, Z., Iwasaki, H., Takeichi, M.: An accumulative parallel skeleton for all. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 83–97. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    Gill, A., Launchbury, J., Peyton Jones, S.: A short cut to deforestation. In: Proc. Conference on Functional Programming Languages and Computer Architecture, Copenhagen, pp. 223–232 (1993)Google Scholar
  16. 16.
    Chiba, S.: A metaobject protocol for C++. In: ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1995), Austin, Texas, USA. SIGPLAN Notices, vol. 30(10), pp. 285–299 (1995)Google Scholar
  17. 17.
    Bird, R.S.: An introduction to the theory of lists. In: Broy, M. (ed.) Logic of Programming and Calculi of Discrete Design. NATO ASI Series F, vol. 36, pp. 5–42. Springer, Heidelberg (1987)Google Scholar
  18. 18.
    Bird, R.: Introduction to Functional Programming using Haskell. Prentice-Hall, Englewood Cliffs (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Kiminori Matsuzaki
    • 1
  • Kazuhiko Kakehi
    • 1
  • Hideya Iwasaki
    • 2
  • Zhenjiang Hu
    • 1
    • 3
  • Yoshiki Akashi
    • 2
  1. 1.Graduate School of Information Science and TechnologyUniversity of Tokyo 
  2. 2.Department of Computer ScienceThe University of Electro-Communications 
  3. 3.PRESTO21Japan Science and Technology Agency 

Personalised recommendations