Dynamic optimization for efficient strong atomicity

作者: Florian T. Schneider , Vijay Menon , Tatiana Shpeisman , Ali-Reza Adl-Tabatabai

DOI: 10.1145/1449764.1449779

关键词:

摘要: Transactional memory (TM) is a promising concurrency control alternative to locks. Recent work has highlighted important model issues regarding TM semantics and exposed problems in existing implementations. For safe, managed languages such as Java, there growing consensus towards strong atomicity sound, scalable solution. Strong presented challenge implement efficiently because it requires instrumentation of non-transactional accesses, incurring significant overhead even when program makes minimal or no use transactions. To minimize overhead, solutions require either sophisticated type system, specialized hardware, static whole-program analysis. These techniques do not translate easily into production setting on hardware. In this paper, we present novel dynamic optimizations that significantly reduce overheads make practical for language environments. We introduce analyses optimistically track which accesses can avoid instrumentation, describe lightweight speculation recovery mechanism applies these generate speculatively-optimized but safe code dynamically-loaded environment. show how mechanisms by leveraging optimization infrastructure Java system. Measurements set transactional workloads demonstrate our substantially the from factor 5x down 10% less over an efficient weak baseline.

参考文章(35)
Benjamin Hindman, Dan Grossman, Strong Atomicity for Java Without Virtual-Machine Support ,(2006)
Julian Dolby, Andrew Chien, An automatic object inlining optimization and its evaluation Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation - PLDI '00. ,vol. 35, pp. 345- 357 ,(2000) , 10.1145/349299.349344
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multithreaded programs ACM Transactions on Computer Systems. ,vol. 15, pp. 391- 411 ,(1997) , 10.1145/265924.265927
Christoph von Praun, Thomas R. Gross, Object race detection conference on object-oriented programming systems, languages, and applications. ,vol. 36, pp. 70- 82 ,(2001) , 10.1145/504282.504288
Jong-Deok Choi, Manish Gupta, Mauricio J. Serrano, Vugranam C. Sreedhar, Samuel P. Midkiff, Stack allocation and synchronization optimizations for Java using escape analysis ACM Transactions on Programming Languages and Systems. ,vol. 25, pp. 876- 910 ,(2003) , 10.1145/945885.945892
Igor Pechtchanski, Vivek Sarkar, Dynamic optimistic interprocedural analysis: a framework and an application conference on object-oriented programming systems, languages, and applications. ,vol. 36, pp. 195- 210 ,(2001) , 10.1145/504282.504297
Dave Clarke, Michael Richmond, James Noble, Saving the world from bad beans Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications - OOPSLA '03. ,vol. 38, pp. 374- 387 ,(2003) , 10.1145/949305.949339
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multi-threaded programs symposium on operating systems principles. ,vol. 31, pp. 27- 37 ,(1997) , 10.1145/268998.266641
C. Blundell, E.C. Lewis, M.M.K. Martin, Subtleties of transactional memory atomicity semantics IEEE Computer Architecture Letters. ,vol. 5, pp. 17- 17 ,(2006) , 10.1109/L-CA.2006.18
David G Clarke, John M Potter, James Noble, None, Ownership types for flexible alias protection Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA '98. ,vol. 33, pp. 48- 64 ,(1998) , 10.1145/286936.286947