Reconciling transactional conflicts with compiler's help


Autoria(s): Mannarswamy, Sandya S; Govindarjan, R
Data(s)

2012

Resumo

Software transactional memory(STM) is a promising programming paradigm for shared memory multithreaded programs. While STM offers the promise of being less error-prone and more programmer friendly compared to traditional lock-based synchronization, it also needs to be competitive in performance in order for it to be adopted in mainstream software. A major source of performance overheads in STM is transactional aborts. Conflict resolution and aborting a transaction typically happens at the transaction level which has the advantage that it is automatic and application agnostic. However it has a substantial disadvantage in that STM declares the entire transaction as conflicting and hence aborts it and re-executes it fully, instead of partially re-executing only those part(s) of the transaction, which have been affected due to the conflict. This "Re-execute Everything" approach has a significant adverse impact on STM performance. In order to mitigate the abort overheads, we propose a compiler aided Selective Reconciliation STM (SR-STM) scheme, wherein certain transactional conflicts can be reconciled by performing partial re-execution of the transaction. Ours is a selective hybrid approach which uses compiler analysis to identify those data accesses which are legal and profitable candidates for reconciliation and applies partial re-execution only to these candidates selectively while other conflicting data accesses are handled by the default STM approach of abort and full re-execution. We describe the compiler analysis and code transformations required for supporting selective reconciliation. We find that SR-STM is effective in reducing the transactional abort overheads by improving the performance for a set of five STAMP benchmarks by 12.58% on an average and up to 22.34%.

Formato

application/pdf

Identificador

http://eprints.iisc.ernet.in/47826/1/Cod_Gene_Optim_53_2012.pdf

Mannarswamy, Sandya S and Govindarjan, R (2012) Reconciling transactional conflicts with compiler's help. In: CGO '12 Proceedings of the Tenth International Symposium on Code Generation and Optimization, 2012, New York, NY, USA.

Publicador

Association for Computing Machinery

Relação

http://dx.doi.org/10.1145/2259016.2259024

http://eprints.iisc.ernet.in/47826/

Palavras-Chave #Computer Science & Automation (Formerly, School of Automation)
Tipo

Conference Paper

PeerReviewed