Skip to main content
Log in

Weighted adaptive concurrency control for software transactional memory

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

References

  1. Ansari M (2009) Efficient execution of concurrent applications using transactional memory. Ph.D. thesis, School of Computer Science, The University of Manchester

  2. 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

  3. 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

  4. 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

  5. Atoofian E (2012) Improving performance of software transactional memory through contention locality. J Supercomput 1–21

  6. 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

  7. Attiya H, Milani A (2012) Transactional scheduling for read-dominated workloads. J Parallel Distrib Comput

  8. 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

  9. 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

    Article  Google Scholar 

  10. 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

  11. Didona D (2012) Scientific report for STSM project. In: Euro-TM workshop on transactional memory (WTM 2012)

  12. 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

  13. 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

  14. Felber P, Fetzer C, Marlier P, Riegel T (2010) Time-based software transactional memory. IEEE Trans Parallel Distrib Syst 21(12):1793–1807

    Article  Google Scholar 

  15. 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

  16. Fraser K, Harris T (2007) Concurrent programming without locks. ACM Trans Comput Syst 25(2):5

    Article  Google Scholar 

  17. 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

  18. Guerraoui R, Herlihy M, Pochon B (2005) Polymorphic contention management. In: DISC ’05: 19th international symposium on distributed computing. LNCS, Springer, pp 303–323

  19. 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

  20. Haring R, Team B (2011) The blue gene/q compute chip. In: Hot Chips

  21. Harris T, Larus JR, Rajwar R (2010) Transactional Memory, 2nd edn. Morgan and Claypool

  22. Heber T, Hendler D, Suissa A (2012) On the impact of serializing contention management on stm performance. J Parallel Distrib Comput

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. Reinders J (2012) Transactional synchronization in Haswell. http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell

  29. Scherer W III, Scott M (2004) Contention management in dynamic software transactional memory. In: CSJP ’04: workshop on concurrency and synchronization in java programs

  30. 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

  31. 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

  32. 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

  33. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohammad Ansari.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-014-1138-5

Keywords

Navigation