Skip to main content
Log in

Formalised Composition and Interaction for Heterogeneous Structured Parallelism

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Deployed through skeleton frameworks, structured parallelism yields a clear and consistent structure across platforms by distinctly decoupling computations from the structure in a parallel programme. Structured programming is a viable and effective means of providing the separation of concerns, as it subdivides a system into building blocks (modules, skids or components) that can be independently created, and then used in different systems to drive multiple functionalities. Depending on its defined semantic, each building block wraps a unit of computing function, where the valid assembly of these building blocks forms a high-level structural parallel programming model. This paper proposes a grammar to build block components to execute computational functions in heterogeneous multi-core architectures. The grammar is validated against three different families of computing models: skeleton-based, general purpose, and domain-specific. In conjunction with the protocol, the grammar produces fully instrumented code for an application suite using the skeletal framework FastFlow.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. A full working implementation of the SKIP framework, called PEI, is freely available as open-source software at: https://github.com/mehdi-goli/MC-FastFlow-PEI.

References

  1. Alba, E., Almeida, F., Blesa, M.J., Cotta, C., Díaz, M., Dorta, I., Gabarró, J., León, C., Luque, G., Petit, J.: Efficient parallel LAN/WAN algorithms for optimization. The MALLBA project. Parallel Comput. 32(5–6), 415–440 (2006)

    Article  Google Scholar 

  2. Aldinucci, M., Campa, S., Danelutto, M., Dazzi, P., Laforenza, D., Tonellotto, N., Kilpatrick, P.: Behavioural skeletons for component autonomic management on grids. In: Danelutto, M., Fragopoulou, P., Getov, V. (eds.) Making Grids Work, pp. 3–15. Springer, Berlin (2008)

    Chapter  Google Scholar 

  3. Aldinucci, M., Campa, S., Danelutto, M., Kilpatrick, P., Torquati, M.: Design patterns percolating to parallel programming framework implementation. Int. J. Parallel Program. 42(6), 1012–1031 (2014)

    Article  Google Scholar 

  4. Aldinucci, M., Campa, S., Danelutto, M., Vanneschi, M.: Behavioural skeletons in GCM: autonomic management of grid components. In: PDP 2008, Toulouse, pp. 54–63. IEEE, Washington (2008)

  5. Aldinucci, M., Danelutto, M., Kilpatrick, P.: Autonomic management of non-functional concerns in distributed and parallel application programming. In: IPDPS 2009, Rome, pp. 1–12. IEEE, Washington (2009)

  6. Aldinucci, M., Danelutto, M., Kilpatrick, P.: Semi-formal models to support program development autonomic management within component based parallel and distributed programming. In: de Boer, F.S., Bonsangue, M.M., Madelaine, E. (eds.) Formal methods for components and objects. Volume 5751 of LNCS, pp. 204–225. Springer, Berlin (2009).

  7. Aldinucci, M., Danelutto, M., Kilpatrick, P., Meneghin, M., Torquati, M.: Accelerating code on multi-cores with FastFlow. In: Euro-Par 2011. Volume 6853 of LNCS, Bordeaux, pp. 170–181. Springer, Berlin (2011)

  8. Backus, J.: Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Commun. ACM 21(8), 613–641 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  9. Bassett, L.: Introduction to JavaScript Object Notation: A To-the-Point Guide to JSON. O’Reilly Media, Sebastopol (2015). ISBN 1491929480

    Google Scholar 

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

    MATH  Google Scholar 

  11. Danelutto, M., Torquati, M.: A RISC building block set for structured parallel programming. In: PDP 2013, Belfast, pp. 46–50. IEEE, Washington (2013)

  12. Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008)

    Article  Google Scholar 

  13. Garba, M.T., González-Vélez, H.: Asymptotic peak utilisation in heterogeneous parallel CPU/GPU pipelines: a decentralised queue monitoring strategy. Parallel Process. Lett. 22(2), 1240008 (2012)

    Article  MathSciNet  Google Scholar 

  14. Goli, M.: Autonomic behavioural framework for structural parallelism over heterogeneous multi-core systems. Ph.D. thesis, Robert Gordon University, Aberdeen (2015). http://hdl.handle.net/10059/1373

  15. Goli, M., Garba, M.T., González-Vélez, H.: Streaming dynamic coarse-grained CPU/GPU workloads with heterogeneous pipelines in FastFlow. In: HPCC 2012, Liverpool, pp. 445–452. IEEE, Washington (2012)

  16. Goli, M., González-Vélez, H.: N-body computations using skeletal frameworks on multicore CPU/graphics processing unit architectures: an empirical performance evaluation. Concurr. Comput. Pract. Exp. 26(4), 972–986 (2014)

    Article  Google Scholar 

  17. Goli, M., González-Vélez, H.: Autonomic coordination of skeleton-based applications over CPU/GPU multi-core architectures. Int. J. Parallel Program. 45(2), 203–224 (2017)

    Article  Google Scholar 

  18. Goli, M., McCall, J., Brown, C., Janjic, V., Hammond, K.: Mapping parallel programs to heterogeneous CPU/GPU architectures using a Monte Carlo tree search. In: 2013 IEEE Congress on Evolutionary Computation (CEC), pp. 2932–2939. IEEE, Washington (2013)

  19. Hammond, K., Al Zain, A., Cooperman, G., Petcu, D., Trinder, P.: Symgrid: a framework for symbolic computation on the grid. In: Euro-Par 2007. Volume 4641 of LNCS, Rennes. pp. 457–466. Springer, Berlin (2007)

  20. McCool, M., Reinders, J., Robison, A.: Structured Parallel Programming: Patterns for Efficient Computation. Morgan Kaufmann, Waltham (2012). ISBN 0124159931

    Google Scholar 

  21. Nowostawski, M., Poli, R.: Parallel genetic algorithm taxonomy. In: KES’99, Adelaide, pp. 88–92. IEEE, Washington (1999)

  22. Ranger, C., Raghuraman, R., Penmetsa, A., Bradski, G., Kozyrakis, C.: Evaluating MapReduce for multi-core and multiprocessor systems. In: HPCA 2007, Scottsdale, pp. 13–24. IEEE, Washington (2007)

  23. Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103–111 (1990)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Horacio González-Vélez.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Goli, M., González-Vélez, H. Formalised Composition and Interaction for Heterogeneous Structured Parallelism. Int J Parallel Prog 46, 120–151 (2018). https://doi.org/10.1007/s10766-017-0511-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-017-0511-4

Keywords

Navigation