Structured Data Access Annotations for Massively Parallel Computations

  • Marco Aldinucci
  • Sonia Campa
  • Peter Kilpatrick
  • Massimo Torquati
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7640)


We describe an approach aimed at addressing the issue of joint exploitation of control (stream) and data parallelism in a skeleton based parallel programming environment, based on annotations and refactoring. Annotations drive efficient implementation of a parallel computation. Refactoring is used to transform the associated skeleton tree into a more efficient, functionally equivalent skeleton tree. In most cases, cost models are used to drive the refactoring process. We show how sample use case applications/kernels may be optimized and discuss preliminary experiments with FastFlow assessing the theoretical results.


algorithmic skeletons parallel design patterns refactoring data parallelism cost models 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aldinucci, M., Danelutto, M., Kilpatrick, P., Torquati, M.: Targeting heterogeneous architectures via macro data flow. PPL 22(2) (2012)Google Scholar
  2. 2.
    Aldinucci, M.: Automatic program transformation: The Meta tool for skeleton-based languages. In: Gorlatch, S., Lengauer, C. (eds.) Constructive Methods for Parallel Programming. Advances in Computation: Theory and Practice, ch. 5, pp. 59–78. Nova Science Publishers, NY (2002)Google Scholar
  3. 3.
    Aldinucci, M., Danelutto, M.: An operational semantic for skeletons. Technical Report TR-02-13, University of Pisa, Dip. Informatica, Italy (July 2002)Google Scholar
  4. 4.
    Aldinucci, M., Danelutto, M.: Skeleton based parallel programming: functional and parallel semantic in a single shot. Computer Languages, Systems and Structures 33(3-4), 179–192 (2007)zbMATHCrossRefGoogle Scholar
  5. 5.
    Aldinucci, M., Danelutto, M., Kilpatrick, P., Meneghin, M., Torquati, M.: Accelerating Code on Multi-cores with FastFlow. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 170–181. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  6. 6.
    Aldinucci, M., Gorlatch, S., Pelagatti, S., Lengauer, C.: Towards parallel programming by transformation: The fan skeleton framework. Par. Algorithms and Applications (2001)Google Scholar
  7. 7.
    Bacci, B., Danelutto, M., Orlando, S., Pelagatti, S., Vanneschi, M.: P 3 L: A structured high-level parallel language, and its structured support. Concurrency - Practice and Experience 7(3), 225–255 (1995)CrossRefGoogle Scholar
  8. 8.
    Bromling, S., MacDonald, S., Anvik, J., Schaeffer, J., Szafron, D., Tan, K.: Pattern-based parallel programming. In: Proc. of Int. Conf. on Par. Processing. IEEE Comp. Society, Washington, DC (2002)Google Scholar
  9. 9.
    Ciechanowicz, P., Poldner, M., Kuchen, H.: The muenster skeleton library muesli - a comprehensive overview (07) (2009)Google Scholar
  10. 10.
    Cole, M.: Algorithmic skeletons: structured management of parallel computation. MIT Press, Cambridge (1991)Google Scholar
  11. 11.
    Díaz, M., Rubio, B., Soler, E., Troya, J.M.: Integrating Task and Data Parallelism by Means of Coordination Patterns. In: Müller, F. (ed.) HIPS 2001. LNCS, vol. 2026, pp. 16–27. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  12. 12.
    Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)CrossRefGoogle Scholar
  13. 13.
    Kuchen, H.: A Skeleton Library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  14. 14.
    Kuchen, H., Cole, M.: The Integration of Task and Data Parallel Skeletons. PPL 12, 141–155 (2002)Google Scholar
  15. 15.
    Leyton, M., Piquer, J.M.: Skandium: Multi-core programming with algorithmic skeletons. In: Proc. of PDP, pp. 289–296. IEEE Comp. Society (2010)Google Scholar
  16. 16.
    Matsuzaki, K., Iwasaki, H.: A library of constructive skeletons for sequential style of parallel programming. In: InfoScale 2006, p. 13. ACM Press (2006)Google Scholar
  17. 17.
    Rauber, T., Rünger, G.: A coordination language for mixed task and and data parallel programs. In: Proc. of the 1999 ACM Symposium on Applied Computing, SAC 1999, pp. 146–155. ACM, New York (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Marco Aldinucci
    • 1
  • Sonia Campa
    • 2
  • Peter Kilpatrick
    • 3
  • Massimo Torquati
    • 2
  1. 1.Computer Science DepartmentUniversity of TorinoItaly
  2. 2.Computer Science DepartmentUniversity of PisaItaly
  3. 3.Computer Science DepartmentQueen’s University BelfastUK

Personalised recommendations