The runtime abort graph and its application to software transactional memory optimization

CGO(2011)

引用 16|浏览47
暂无评分
摘要
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.
更多
查看译文
关键词
compiler instrumentation,runtime characteristic,atomic section,software transactional memory optimization,transactional memory reference,abort pattern,stm implementation,software transactional memory,application performance,runtime abort graph,stm policy change,strontium,multi threading,deadlocks,concurrency control,transactional memory,graphs,optimization,radiation detectors
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要