Abstract
Transactional memory programs may have dynamic available parallelism, which is defined as the number of transactions that can be committed concurrently. Prior work presented adaptive concurrency control, which adapts the number of active threads at runtime, and thus the number of concurrently executing transactions, based on available parallelism. Reducing threads when available parallelism is low, and vice versa, improved speedup and reduced wasted work (in aborted transactions). However, prior work did not consider the case where individual threads exhibit dynamic available parallelism. Deactivating threads with low available parallelism, and vice versa, may improve speedup and reduce wasted work further. This paper introduces weighted adaptive concurrency control to exploit the variance in available parallelism between threads. Four algorithms are designed, implemented, and evaluated. They improve speedup and reduce wasted work over prior non-weighted algorithms in applications whose threads exhibit such variance, while maintaining performance parity in applications whose threads do not.
Similar content being viewed by others
References
Ansari M (2009) Efficient execution of concurrent applications using transactional memory. Ph.D. thesis, School of Computer Science, The University of Manchester
Ansari M, Kotselidis C, Jarvis K, Luján M, Kirkham C, Watson, I (2008) Advanced concurrency control for transactional memory using transaction commit rate. In: EUROPAR ’08: proceedings of the 14th European conference on parallel processing. LNCS, Springer
Ansari M, Kotselidis C, Jarvis K, Luján M, Kirkham C, Watson I, Lee TM (2008) A non-trivial benchmark for transactional memory. In: ICA3PP’08: Proceedings of the 7th international conference on algorithms and architectures for parallel processing. LNCS, Springer
Ansari M, Kotselidis C, Jarvis K, Luján M, Kirkham C, Watson I (2009) Steal-on-abort: improving transactional memory performance through dynamic transaction reordering. In: HIPEAC ’09: fourth international conference on high performance and embedded architectures and compilers, pp 4–18
Atoofian E (2012) Improving performance of software transactional memory through contention locality. J Supercomput 1–21
Attiya H, Epstein L, Shachnai H, Tamir T (2006) Transactional contention management as a non-clairvoyant scheduling problem. In: PODC ’06: Proceedings of the 25th annual ACM symposium on principles of distributed computing. ACM Press, pp 308–315. doi:10.1145/1146381.1146428
Attiya H, Milani A (2012) Transactional scheduling for read-dominated workloads. J Parallel Distrib Comput
Bai T, Shen X, Zhang C, Scherer W, Ding C, Scott M (2007) A key-based adaptive transactional memory executor. In: IPDPS ’07: proceedings of the 21st international parallel and distributed processing symposium, pp 70–84
Blumofe RD, Joerg CF, Kuszmaul BC, Leiserson CE, Randall KH, Zhou Y (1996) Cilk: an efficient multithreaded runtime system. J Parallel Distrib Comput 37(1):55–69
Chung J, Yen L, Diestelhorst S, Pohlack M, Hohmuth M, Christie D, Grossman D (2010) Asf: Amd64 extension for lock-free data structures and transactional memory. In: Microarchitecture (MICRO), 2010 43rd annual IEEE/ACM international symposium on. IEEE, pp 39–50
Didona D (2012) Scientific report for STSM project. In: Euro-TM workshop on transactional memory (WTM 2012)
Dolev S, Hendler D, Suissa A (2008) CAR-STM: Scheduling-based collision avoidance and resolution for software transactional memory. In: PODC ’07: proceedings of the 26th annual ACM symposium on principles of distributed computing, pp 125–134
Dragojević A, Guerraoui R, Singh AV, Singh V (2009) Preventing versus curing: avoiding conflicts in transactional memories. In: Proceedings of the 28th ACM symposium on principles of distributed computing. ACM, pp 7–16
Felber P, Fetzer C, Marlier P, Riegel T (2010) Time-based software transactional memory. IEEE Trans Parallel Distrib Syst 21(12):1793–1807
Felber P, Fetzer C, Riegel T (2008) Dynamic performance tuning of word-based software transactional memory. In: PPoPP ’08: proceedings of the 13th ACM SIGPLAN symposium on principles and practice of parallel programming. ACM Press, pp 237–246. doi:10.1145/1345206.1345241
Fraser K, Harris T (2007) Concurrent programming without locks. ACM Trans Comput Syst 25(2):5
Guerraoui R, Herlihy M, Kapałka M, Pochon B (2005) Robust contention management in software transactional memory. In: SCOOL ’05: workshop on synchronization and concurrency in object-oriented languages
Guerraoui R, Herlihy M, Pochon B (2005) Polymorphic contention management. In: DISC ’05: 19th international symposium on distributed computing. LNCS, Springer, pp 303–323
Guerraoui R, Herlihy M, Pochon B (2005) Toward a theory of transactional contention managers. In: PODC ’05: proceedings of the 24th annual symposium on principles of distributed computing. ACM Press, pp 258–264. doi:10.1145/1073814.1073863
Haring R, Team B (2011) The blue gene/q compute chip. In: Hot Chips
Harris T, Larus JR, Rajwar R (2010) Transactional Memory, 2nd edn. Morgan and Claypool
Heber T, Hendler D, Suissa A (2012) On the impact of serializing contention management on stm performance. J Parallel Distrib Comput
Herlihy M, Luchangco V, Moir M (2006) A flexible framework for implementing software transactional memory. In: OOPSLA ’06: proceedings of the 21st annual conference on object-oriented programming systems, languages, and applications. ACM Press, pp 253–262. doi:10.1145/1167473.1167495
Herlihy M, Luchangco V, Moir M, Scherer WN III (2003) Software transactional memory for dynamic-sized data structures. In: PODC ’03: proceedings of the 22nd annual symposium on principles of distributed computing. ACM Press, pp 92–101. doi:10.1145/872035.872048
Herlihy M, Moss JEB (1993) Transactional memory: architectural support for lock-free data structures. In: ISCA ’93: proceedings of the 20th annual international symposium on computer architecture. ACM Press, pp 289–300. doi:10.1145/165123.165164
Marathe V, Scherer W III, Scott M (2005) Adaptive software transactional memory. In: DISC ’05: proceedings of the 19th international symposium on distributed computing. LNCS, Springer
Minh CC, Chung J, Kozyrakis C, Olukotun K (2008) Stamp: Stanford transactional applications for multi-processing. In: IEEE International Symposium on, workload characterization, 2008. IISWC 2008. IEEE, pp 35–46
Reinders J (2012) Transactional synchronization in Haswell. http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell
Scherer W III, Scott M (2004) Contention management in dynamic software transactional memory. In: CSJP ’04: workshop on concurrency and synchronization in java programs
Scherer W III, Scott M (2005) Advanced contention management for dynamic software transactional memory. In: PODC ’05: proceedings of the 24th annual symposium on principles of distributed computing. ACM Press, pp 240–248. doi:10.1145/1073814.1073861
Shavit N, Touitou D (1995) Software transactional memory. In: PODC ’95: proceedings of the 14th annual ACM symposium on principles of distributed computing. ACM Press, pp 204–213. doi:10.1145/224964.224987
Watson I, Kirkham C, Luján M (2007) A study of a transactional parallel routing algorithm. In: PACT ’07: proceedings of the 16th international conference on parallel architectures and compilation techniques. IEEE Computer Society Press, pp 388–400
Yoo RM, Lee HHS (2008) Adaptive transaction scheduling for transactional memory systems. In: SPAA ’08: proceedings of the 20th annual symposium on parallelism in algorithms and architectures, pp 169–178
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Ansari, M. Weighted adaptive concurrency control for software transactional memory. J Supercomput 68, 1027–1047 (2014). https://doi.org/10.1007/s11227-014-1138-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-014-1138-5