Skip to main content

Design Patterns and Algorithmic Skeletons: A Brief Concordance

  • Chapter
  • First Online:
Modeling and Simulation in HPC and Cloud Systems

Part of the book series: Studies in Big Data ((SBD,volume 36))

Abstract

Having been designed as abstractions of common themes in object-oriented programming, patterns have been incorporated into parallel programming to allow an application programmer the freedom to generate parallel codes by parameterising a framework and adding the sequential parts. On the one hand, parallel programming patterns and their derived languages have maintained, arguably, the best adoption rate; however, they have become conglomerates of generic attributes for specific purposes, oriented towards code generation rather than the abstraction of structural attributes. On the other hand, algorithmic skeletons systematically abstract commonly-used structures of parallel computation, communication, and interaction. Although there are significant examples of relevant applications—mostly in academia—where they have been successfully deployed in an elegant manner, algorithmic skeletons have not been widely adopted as patterns have. However, the ICT industry expects graduates to be able to easily adapt to its best practices. Arguably, this entails the use of pattern-based programming, as it has been the case in sequential programming where the use of design patterns is widely considered the norm, as demonstrated by a myriad of citations to the seminal work of Gamma et al. [6] widely known as the Gang-of-Four. We contend that an algorithmic skeleton can be treated as a structural design pattern where the degree of parallelism and computational infrastructure are only defined at runtime. The purpose of this chapter is to explain how design patterns can be mapped into algorithmic skeletons. We illustrate our approach using a simple example using the visitor design pattern and the task farm algorithmic skeleton.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Alexander, C., Ishikawa, S., Silverstein, M.: A Pattern Language: Towns, Buildings, Construction. Oxford University Press, New York (1977)

    Google Scholar 

  2. Asanovic, K., Bodik, R., Demmel, J., Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D., Sen, K., Wawrzynek, J., Wessel, D., Yelick, K.: A view of the parallel computing landscape. Commun. ACM 52(10), 56–67 (2009)

    Article  Google Scholar 

  3. Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation, Research Monographs in Parallel and Distributed Computing. MIT Press/Pitman, London (1989)

    MATH  Google Scholar 

  4. Cole, M.: Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Comput. 30(3), 389–406 (2004)

    Article  Google Scholar 

  5. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Abstraction and reuse of object-oriented design. ECOOP’93. Lecture Notes in Computer Science, vol. 707, pp. 406–431. Springer, Kaiserslautern (1993)

    Google Scholar 

  6. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman, Boston (1995)

    MATH  Google Scholar 

  7. González-Vélez, H., Leyton, M.: A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablers. Softw., Pract. Exper. 40(12), 1135–1160 (2010)

    Article  Google Scholar 

  8. Goswami, D., Singh, A., Preiss, B.R.: From design patterns to parallel architectural skeletons. J. Parallel Distrib. Comput. 62(4), 669–695 (2002)

    Article  MATH  Google Scholar 

  9. Hammond, K., Aldinucci, M., Brown, C., Cesarini, F., Danelutto, M., González-Vélez, H., Kilpatrick, P., Keller, R., Rossbory, M., Shainer, G.: The ParaPhrase Project: Parallel Patterns for Adaptive Heterogeneous Multicore Systems, Lecture Notes in Computer Science, vol. 7542, pp. 218–236. Springer, Torino (2013)

    Google Scholar 

  10. Mattson, T.G., Sanders, B., Massingill, B.: Patterns for Parallel Programming. Software Patterns Series. Addison-Wesley Professional, Boston (2004)

    MATH  Google Scholar 

  11. Mittal, S., Vetter, J.S.: A survey of CPU-GPU heterogeneous computing techniques. ACM Comput. Surv. 47(4), 69:1–69:35 (2015)

    Article  Google Scholar 

  12. Rabhi, F.A., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, London (2003)

    MATH  Google Scholar 

Download references

Acknowledgements

The authors would like to acknowledge the contribution of the ICT COST Action IC1406 “High-Performance Modelling and Simulation for Big Data Applications (cHiPSet)” http://chipset-cost.eu/.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Adriana E. Chis .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Chis, A.E., González–Vélez, H. (2018). Design Patterns and Algorithmic Skeletons: A Brief Concordance. In: Kołodziej, J., Pop, F., Dobre, C. (eds) Modeling and Simulation in HPC and Cloud Systems. Studies in Big Data, vol 36. Springer, Cham. https://doi.org/10.1007/978-3-319-73767-6_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-73767-6_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-73766-9

  • Online ISBN: 978-3-319-73767-6

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics