Abstract
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.
Similar content being viewed by others
Notes
Neither MPI-based implementation was able to run with a single process.
References
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)
Blelloch, G.E.: Vector Models for Data-Parallel Computing. The MIT Press, Cambridge (1990)
Blelloch, G.E.: Prefix sums and their applications. In: Synthesis of Parallel Algorithms, chap. 1, Morgan Kaufmann Publishers (1993)
Celko, J.: Joe Celko’s Trees and Hierarchies in SQL for Smarties, 2nd edn. Morgan Kaufmann Publishers, Burlington (2012)
Cole, M.I.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press & Pitman, Cambridge (1989)
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)
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 ’13
Gibbons, J., Cai, W., Skillicorn, D.B.: Efficient parallel algorithms for tree accumulations. Sci. Comput. Program. 23(1), 1–18 (1994)
Gregor, D., Lumsdaine, A.: Lifting sequential graph algorithms for distributed-memory parallel computation. In: Proceedings of OOPSLA ’05, pp. 423–437. ACM (2005)
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)
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)
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)
Matsuzaki, K.: Parallel programming with tree skeletons. Ph.D. thesis, University of Tokyo (2007)
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)
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)
Morihata, A., Matsuzaki, K.: Balanced trees inhabiting functional parallel programming. In: Proceedings of ICFP ’11, pp. 117–128. ACM (2011)
Morihata, A., Matsuzaki, K., Hu, Z., Takeichi, M.: The third homomorphism theorem on trees. In: Proceedings of POPL ’09, pp. 177–185. ACM (2009)
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 Japanese
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)
Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeleotns for Parallel and Distributed Computing. Springer, Berlin (2002)
Reif, J.H.: List ranking and parallel tree contraction. In: Synthesis of Parallel Algorithms, chap. 3, Morgan Kaufmann Publishers (1993)
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)
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)
Skillicorn, D.B.: Parallel implementation of tree skeletons. J. Parallel Distrib. Comput. 39(2), 115–125 (1996)
Skillicorn, D.B.: Structured parallel computation in structured documents. J. Univers. Comput. Sci. 3(1), 42–68 (1997)
Stroustrup, B., Sutton, A.: A Concept Design for the STL. Tech. Rep. N3351=12-0041, JTC1/SC22/WG21—The C++ Standards Committee (2012)
Syme, D., Neverov, G., Margetson, J.: Extensible pattern matching via a lightweight language extension. In: Proceedings of ICFP ’07, pp. 29–40. ACM (2007)
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)
Acknowledgments
We thank Hideya Iwasaki for his comprehensive support to this work and Kento Emoto for his helpful comments on this work.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sato, S., Matsuzaki, K. A Generic Implementation of Tree Skeletons. Int J Parallel Prog 44, 686–707 (2016). https://doi.org/10.1007/s10766-015-0365-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-015-0365-6