Title :
The runtime abort graph and its application to software transactional memory optimization
Author :
Chakrabarti, Dhruva R. ; Banerjee, Prithviraj ; Boehm, Hans-J ; Joisha, Pramod G. ; Schreiber, Robert S.
Abstract :
Programming with atomic sections is a promising alternative to locks since it raises the abstraction and removes deadlocks at the programmer level. However, implementations of atomic sections using software transactional memory (STM) support have significant bookkeeping overheads. Additionally, because of the speculative nature of transactions, aborts can be frequent greatly lowering application performance. Thus regardless of the STM implementation, tools need to be available to programmers that provide insights into the runtime characteristics of an application as well as provide means to improve performance. This paper attempts to identify the source of an abort at the granularity of a transactional memory reference. The resulting abort patterns are captured in the form of a runtime abort graph (RAG). We show how to build this graph efficiently using compiler instrumentation. We then describe a technique that works on the RAG and automatically recommends STM policy changes to improve performance. Detailed experimental results are presented showing the tradeoffs in building the RAG and its use in reducing aborts and improving performance.
Keywords :
concurrency control; graphs; multi-threading; optimisation; program compilers; shared memory systems; atomic sections; compiler instrumentation; deadlocks; programmer level; runtime abort graph; software transactional memory optimization; Buildings; Instruments; Optimization; Radiation detectors; Runtime; Software; Strontium;
Conference_Titel :
Code Generation and Optimization (CGO), 2011 9th Annual IEEE/ACM International Symposium on
Conference_Location :
Chamonix
Print_ISBN :
978-1-61284-356-8
Electronic_ISBN :
978-1-61284-358-2
DOI :
10.1109/CGO.2011.5764673