Abstract
Task-based programming models for shared memory – such as Cilk Plus and OpenMP 3 – are well established and documented. However, with the increase in heterogeneous, many-core and parallel systems, a number of research-driven projects have developed more diversified task-based support, employing various programming and runtime features. Unfortunately, despite the fact that dozens of different task-based systems exist today and are actively used for parallel and high-performance computing, no comprehensive overview or classification of task-based technologies for HPC exists.
In this paper, we provide an initial task-focused taxonomy for HPC technologies, which covers both programming interfaces and runtime mechanisms. We demonstrate the usefulness of our taxonomy by classifying state-of-the-art task-based environments in use today.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Note that we use the term “language” for Cilk and Cilk Plus, even though they build on C/C++. The reasoning is that a Cilk Plus compiler is strictly required for compilation (unlike e.g. OpenMP).
- 2.
- 3.
- 4.
The AllScale EC-funded FET-HPC project: allscale.eu.
- 5.
We received feedback from their developers.
References
Bauer, M.E.: Legion: programming distributed heterogeneous architectures with logical regions. Ph.D. thesis, Stanford University (2014)
Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. J. ACM (JACM) 46(5), 720–748 (1999)
Cunningham, D.: Resilient X10: efficient failure-aware programming. In: Proceedings of PPoPP 2014, pp. 67–80. ACM (2014)
Dagum, L., Menon, R.: OpenMP: an industry standard API for shared-memory programming. IEEE Comput. Sci. Eng. 5(1), 46–55 (1998)
Duran, A., et al.: OmpSs: a proposal for programming heterogeneous multi-core architectures. Parallel Process. Lett. 21(02), 173–193 (2011)
Chamberlain, B.L., et al.: Parallel programmability and the chapel language. Int. J. HPC Appl. 21(3), 291–312 (2007)
Augonnet, C., Thibault, S., Namyst, R.: Automatic calibration of performance models on heterogeneous multicore architectures. In: Lin, H.-X., Alexander, M., Forsell, M., Knüpfer, A., Prodan, R., Sousa, L., Streit, A. (eds.) Euro-Par 2009. LNCS, vol. 6043, pp. 56–65. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-14122-5_9
Augonnet, C., et al.: StarPU: a unified platform for task scheduling on heterogeneous multicore architectures. Concurr. Comput.: Pract. Exp. 23(2), 187–198 (2011)
Bosilca, G., et al.: PaRSEC: exploiting heterogeneity to enhance scalability. Comput. Sci. Eng. 15(6), 36–45 (2013)
Kaiser, H., et al.: HPX: a task based programming model in a global address space. In: PGAS 2014, p. 6. ACM (2014)
Kasim, H., March, V., Zhang, R., See, S.: Survey on parallel programming model. In: Cao, J., Li, M., Wu, M.-Y., Chen, J. (eds.) NPC 2008. LNCS, vol. 5245, pp. 266–275. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88140-7_24
Paudel, J., et al.: On the merits of distributed work-stealing on selective locality-aware tasks. In: 42nd International Conference on Parallel Processing, pp. 100–109, October 2013
Planas, J., et al.: Self-adaptive OmpSs tasks in heterogeneous environments. In: IPDPS 2013, pp. 138–149. IEEE (2013)
Meyer, J.C., et al.: Implementation of an energy-aware OmpSs task scheduling policy. http://www.prace-ri.eu/IMG/pdf/wp88.pdf. Accessed 02 May 2017
Huck, K., et al.: An early prototype of an autonomic performance environment for exascale. In: Proceedings of ROSS13, p. 8. ACM (2013)
Huck, K., et al.: An autonomic performance environment for exascale. Supercomput. Frontiers Innov. 2(3), 49–66 (2015)
Subasi, O., et al.: NanoCheckpoints: a task-based asynchronous dataflow framework for efficient and scalable checkpoint/restart. In: PDP 2015, pp. 99–102 (2015)
Charles, P., et al.: X10: an object-oriented approach to non-uniform cluster computing. In: Proceedings of OOPSLA 2005, pp. 519–538. ACM (2005)
Blumofe, R.D., et al.: Cilk: an efficient multithreaded runtime system. J. Parallel Distrib. Comput. 37(1), 55–69 (1996)
Hukerikar, S., et al.: Opportunistic application-level fault detection through adaptive redundant multithreading. In: Proceedings of HPCS 2014, pp. 243–250 (2014)
General Acyclic Graphs of Tasks in TBB. https://software.intel.com/en-us/node/506110. Accessed 02 May 2017
Hoemmen, M., Heroux, M.A.: Fault-tolerant iterative methods via selective reliability. In: Proceedings of SC 2011, p. 9. IEEE Computer Society (2011)
Kale, L.V., Krishnan, S.: Charm++: a portable concurrent object oriented system based on c++. In: OOSPLA 1993, pp. 91–108. ACM (1993)
Robison, A.D.: Composable parallel patterns with intel cilk plus. Comput. Sci. Eng. 15(2), 66–71 (2013)
Willhalm, T., Popovici, N.: Putting Intel threading building blocks to work. In: IWMSE08, pp. 3–4. ACM (2008)
Acknowledgement
This work was partially supported by the AllScale project that has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 671603.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Thoman, P. et al. (2018). A Taxonomy of Task-Based Technologies for High-Performance Computing. In: Wyrzykowski, R., Dongarra, J., Deelman, E., Karczewski, K. (eds) Parallel Processing and Applied Mathematics. PPAM 2017. Lecture Notes in Computer Science(), vol 10778. Springer, Cham. https://doi.org/10.1007/978-3-319-78054-2_25
Download citation
DOI: https://doi.org/10.1007/978-3-319-78054-2_25
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-78053-5
Online ISBN: 978-3-319-78054-2
eBook Packages: Computer ScienceComputer Science (R0)