Abstract
OpenMP is a pragma-based extension to C to support parallelism. The OpenMP standard recently added support for task-based parallelism but in a richer way than languages such as Cilk. Naïve implementations give each task its own stack for task-local memory, which is very inefficient.
We detail a program analysis for OpenMP to enable tasks to share stacks without synchronisation—either unconditionally or dependent on some cheap run-time condition which is very likely to hold in busy systems.
The analysis is based on a novel implication-algebra generalisation of logic programming which allows concise but easily readable encodings of the various constraints. The formalism enables us to show that the analysis has a unique solution and polynomial-time complexity.
We conclude with performance figures.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Supertech Research: Cilk 5.4.6 Reference Manual (1998)
Podobas, A., Brorsson, M., Faxén, K.F.: A comparison of some recent task-based parallel programming models (2010)
Olivier, S.L., Prins, J.F.: Evaluating OpenMP 3.0 Run Time Systems on Unbalanced Task Graphs. In: Müller, M.S., de Supinski, B.R., Chapman, B.M. (eds.) IWOMP 2009. LNCS, vol. 5568, pp. 63–78. Springer, Heidelberg (2009)
OpenMP Architecture Review Board: OpenMP Application Program Interface. Technical report (2008)
Blumofe, R.D., Leiserson, C.E.: Space-efficient scheduling of multithreaded computations. In: Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, pp. 362–371 (1993)
Kowalski, R.: Predicate logic as programming language. Edinburgh University (1973)
Apt, K.R., Blair, H.A., Walker, A.: Towards a theory of declarative knowledge. IBM TJ Watson Research Center (1986)
Gelfond, M., Lifschitz, V.: The stable model semantics for logic programming. In: Proceedings of the 5th International Conference on Logic Programming, vol. 161 (1988)
Damásio, C., Pereira, L.: Antitonic logic programs. Logic Programming and Nonmotonic Reasoning, 379–393 (2001)
Stallman, R.M.: GNU compiler collection internals. Free Software Foundation (2002)
Addison, C., LaGrone, J., Huang, L., Chapman, B.: OpenMP 3.0 tasking implementation in OpenUH. In: Open64 Workshop at CGO 2009 (2009)
Teruel, X., Martorell, X., Duran, A., Ferrer, R., Ayguadé, E.: Support for OpenMP tasks in Nanos v4. In: Proceedings of the 2007 Conference of the Center for Advanced Studies on Collaborative Research, pp. 256–259 (2007)
Duran, A., Teruel, X., Ferrer, R., Martorell, X., Ayguade, E.: Barcelona OpenMP Tasks Suite: A Set of Benchmarks Targeting the Exploitation of Task Parallelism in OpenMP. In: Proceedings of the 2009 International Conference on Parallel Processing, ICPP 2009, pp. 124–131. IEEE Computer Society, Washington, DC (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
White, L., Mycroft, A. (2013). Concise Analysis Using Implication Algebras for Task-Local Memory Optimisation. In: Logozzo, F., Fähndrich, M. (eds) Static Analysis. SAS 2013. Lecture Notes in Computer Science, vol 7935. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38856-9_23
Download citation
DOI: https://doi.org/10.1007/978-3-642-38856-9_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38855-2
Online ISBN: 978-3-642-38856-9
eBook Packages: Computer ScienceComputer Science (R0)