Concise Analysis Using Implication Algebras for Task-Local Memory Optimisation

  • Leo White
  • Alan Mycroft
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7935)


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.


Logic Program Logic Programming Predicate Symbol Call Graph Implication Algebra 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Supertech Research: Cilk 5.4.6 Reference Manual (1998)Google Scholar
  2. 2.
    Podobas, A., Brorsson, M., Faxén, K.F.: A comparison of some recent task-based parallel programming models (2010)Google Scholar
  3. 3.
    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)CrossRefGoogle Scholar
  4. 4.
    OpenMP Architecture Review Board: OpenMP Application Program Interface. Technical report (2008)Google Scholar
  5. 5.
    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)Google Scholar
  6. 6.
    Kowalski, R.: Predicate logic as programming language. Edinburgh University (1973)Google Scholar
  7. 7.
    Apt, K.R., Blair, H.A., Walker, A.: Towards a theory of declarative knowledge. IBM TJ Watson Research Center (1986)Google Scholar
  8. 8.
    Gelfond, M., Lifschitz, V.: The stable model semantics for logic programming. In: Proceedings of the 5th International Conference on Logic Programming, vol. 161 (1988)Google Scholar
  9. 9.
    Damásio, C., Pereira, L.: Antitonic logic programs. Logic Programming and Nonmotonic Reasoning, 379–393 (2001)Google Scholar
  10. 10.
    Stallman, R.M.: GNU compiler collection internals. Free Software Foundation (2002)Google Scholar
  11. 11.
    Addison, C., LaGrone, J., Huang, L., Chapman, B.: OpenMP 3.0 tasking implementation in OpenUH. In: Open64 Workshop at CGO 2009 (2009)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Leo White
    • 1
  • Alan Mycroft
    • 1
  1. 1.Computer LaboratoryUniversity of CambridgeCambridgeUK

Personalised recommendations