A Generic Implementation of Tree Skeletons



In data-parallel skeleton libraries, the implementation of skeletons is usually tightly-coupled with that of data structures. However, loose coupling between them like C++ STL will improve modularity and flexibility of skeletons and data structures. This flexibility is particularly valuable for tree skeletons. To achieve such loose coupling, we present an iterator-based interface of trees for tree skeletons. We have implemented tree skeletons on the basis of our interface; we present their design and implementation. This paper also reports the results of preliminary experiments.


Algorithmic skeleton Tree Iterator C++ template 



We thank Hideya Iwasaki for his comprehensive support to this work and Kento Emoto for his helpful comments on this work.


  1. 1.
    Bergstrom, L., Fluet, M., Rainey, M., Reppy, J., Rosen, S., Shaw, A.: Data-only flattening for nested data parallelism. In: Proceedings of PPoPP ’13, pp. 81–92. ACM (2013)Google Scholar
  2. 2.
    Blelloch, G.E.: Vector Models for Data-Parallel Computing. The MIT Press, Cambridge (1990)Google Scholar
  3. 3.
    Blelloch, G.E.: Prefix sums and their applications. In: Synthesis of Parallel Algorithms, chap. 1, Morgan Kaufmann Publishers (1993)Google Scholar
  4. 4.
    Celko, J.: Joe Celko’s Trees and Hierarchies in SQL for Smarties, 2nd edn. Morgan Kaufmann Publishers, Burlington (2012)Google Scholar
  5. 5.
    Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press & Pitman, Cambridge (1989)MATHGoogle Scholar
  6. 6.
    Emoto, K., Hu, Z., Kakehi, K., Takeichi, M.: A compositional framework for developing parallel programs on two-dimensional arrays. Int. J. Parallel Program. 35(6), 615–658 (2007)CrossRefMATHGoogle Scholar
  7. 7.
    Emoto, K., Matsuzaki, K.: An automatic fusion mechanism for variable-length list skeletons in sketo. Int. J. Parallel Program. 42(4), 546–563 (2014). In Proc. HLPP ’13CrossRefGoogle Scholar
  8. 8.
    Gibbons, J., Cai, W., Skillicorn, D.B.: Efficient parallel algorithms for tree accumulations. Sci. Comput. Program. 23(1), 1–18 (1994)MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    Gregor, D., Lumsdaine, A.: Lifting sequential graph algorithms for distributed-memory parallel computation. In: Proceedings of OOPSLA ’05, pp. 423–437. ACM (2005)Google Scholar
  10. 10.
    Harshvardhan, Fidel, A., Amato, N.M., Rauchwerger, L.: The STAPL parallel graph library. In: Languages and Compilers for Parallel Computing (LCPC ’12, Revised Selected Papers). Lecture Notes in Computer Science, vol. 7760, pp. 46–60. Springer (2013)Google Scholar
  11. 11.
    Kakehi, K., Matsuzaki, K., Emoto, K.: Efficient parallel tree reductions on distributed memory environments. In: Computational Science—ICCS 2007. Lecture Notes in Computer Science, vol. 4488, pp. 601–608. Springer (2007)Google Scholar
  12. 12.
    Matsuzaki, K.: Implementation of tree accumulations on distributed-memory parallel computers. In: Computational Science—ICCS 2007. Lecture Notes in Computer Science, vol. 4488, pp. 609–616. Springer (2007)Google Scholar
  13. 13.
    Matsuzaki, K.: Parallel programming with tree skeletons. Ph.D. thesis, University of Tokyo (2007)Google Scholar
  14. 14.
    Matsuzaki, K., Emoto, K.: Implementing fusion-equipped parallel skeletons by expression templates. In: Implementation and Application of Functional Languages (IFL ’09, Revised Selected Papers). Lecture Notes in Computer Science, vol. 6041, pp. 72–89. Springer (2010)Google Scholar
  15. 15.
    Morihata, A., Matsuzaki, K.: A practical tree contraction algorithm for parallel skeletons on trees of unbounded degree. In: Proceedings of ICCS ’11, pp. 7–16. Elsevier (2011)Google Scholar
  16. 16.
    Morihata, A., Matsuzaki, K.: Balanced trees inhabiting functional parallel programming. In: Proceedings of ICFP ’11, pp. 117–128. ACM (2011)Google Scholar
  17. 17.
    Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: The third homomorphism theorem on trees. In: Proceedings of POPL ’09, pp. 177–185. ACM (2009)Google Scholar
  18. 18.
    Nomura, Y., Emoto, K., Matsuzaki, K., Hu, Z., Takeichi, M.: Parallelization of XPath queries with tree skeletons. Comput. Softw. 24(3), 51–62 (2007). In JapaneseGoogle Scholar
  19. 19.
    Prokopec, A., Bagwell, P., Rompf, T., Odersky, M.: A generic parallel collection framework. In: Euro-Par 2011 Parallel Processing. Lecture Notes in Computer Science, vol. 6853, pp. 136–147. Springer (2011)Google Scholar
  20. 20.
    Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeleotns for Parallel and Distributed Computing. Springer, Berlin (2002)Google Scholar
  21. 21.
    Reif, J.H.: List ranking and parallel tree contraction. In: Synthesis of Parallel Algorithms, chap. 3, Morgan Kaufmann Publishers (1993)Google Scholar
  22. 22.
    Rodrigues, C., Jablin, T., Dakkak, A., Hwu, W.M.: Triolet: A programming system that unifies algorithmic skeleton interfaces for high-performance cluster computing. In: Proceedings of PPoPP ’14, pp. 247–258. ACM (2014)Google Scholar
  23. 23.
    Skillicorn, D.B.: The Bird-Meertens formalism as a parallel model. In: Software for Parallel Computation. NATO ASI Series, vol. 106, pp. 120–133. Springer (1993)Google Scholar
  24. 24.
    Skillicorn, D.B.: Parallel implementation of tree skeletons. J. Parallel Distrib. Comput. 39(2), 115–125 (1996)CrossRefMATHGoogle Scholar
  25. 25.
    Skillicorn, D.B.: Structured parallel computation in structured documents. J. Univers. Comput. Sci. 3(1), 42–68 (1997)MATHGoogle Scholar
  26. 26.
    Stroustrup, B., Sutton, A.: A Concept Design for the STL. Tech. Rep. N3351=12-0041, JTC1/SC22/WG21—The C++ Standards Committee (2012)Google Scholar
  27. 27.
    Syme, D., Neverov, G., Margetson, J.: Extensible pattern matching via a lightweight language extension. In: Proceedings of ICFP ’07, pp. 29–40. ACM (2007)Google Scholar
  28. 28.
    Tanase, G., Buss, A., Fidel, A., Harshvardhan, Papadopoulos, I., Pearce, O., Smith, T.G., Thomas, N., Xu, X., Mourad, N., Vu, J., Bianco, M., Amato, N.M., Rauchwerger, L.: The STAPL parallel container framework. In: Proceedings of PPoPP ’11, pp. 235–246. ACM (2011)Google Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  1. 1.University of Electro-CommunicationsTokyoJapan
  2. 2.School of InformationKochi University of TechnologyKochiJapan

Personalised recommendations