ProPS: A Progressively Pessimistic Scheduler for Software Transactional Memory

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8632)


Software Transactional Memory (STM) is one promising abstraction to simplify the task of writing highly parallel applications. Nonetheless, in workloads lacking enough parallelism, STM’s optimistic approach to concurrency control can adversely degrade performance as transactions abort and restart often.

In this paper, we describe a new scheduling-based solution to improve STM’s performance in high-contention scenarios. Our Progressively Pessimistic Scheduler (ProPS) uses a fine-grained scheduling mechanism that controls the amount of concurrency in the system gradually as transactions abort and commit with success.

Experimental results with the STMBench7 benchmark and the STAMP benchmark suite showed that current coarse-grained, conservative transaction schedulers are not suitable for workloads with long transactions, whereas ProPS is up to 40% faster than all other scheduling alternatives.


Performance Software Transactional Memory Transaction Conflict Transaction Scheduling 


  1. 1.
    Cascaval, C., Blundell, C., Michael, M., Cain, H., Wu, P., Chiras, S., Chatterjee, S.: Software transactional memory: Why is it only a research toy? Queue 6, 46–58 (2008)CrossRefGoogle Scholar
  2. 2.
    Dolev, S., Hendler, D., Suissa, A.: CAR-STM: Scheduling-based collision avoidance and resolution for software transactional memory. In: Proceedings of the 27th ACM Symposium on Principles of Distributed Computing, PODC 2008, pp. 125–134 (2008)Google Scholar
  3. 3.
    Dragojević, A., Felber, P., Gramoli, V., Guerraoui, R.: Why STM can be more than a research toy. Commun. ACM 54, 70–77 (2011)CrossRefGoogle Scholar
  4. 4.
    Dragojević, A., Guerraoui, R., Singh, A., Singh, V.: Preventing versus curing: Avoiding conflicts in transactional memories. In: Proceedings of the 28th ACM Symposium on Principles of Distributed Computing, PODC 2009, pp. 7–16 (2009)Google Scholar
  5. 5.
    Fernandes, S., Cachopo, J.: Lock-free and scalable multi-version software transactional memory. In: Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming, PPoPP 2011, pp. 179–188. ACM (2011)Google Scholar
  6. 6.
    Guerraoui, R., Kapalka, M., Vitek, J.: STMBench7: A benchmark for software transactional memory. SIGOPS Oper. Syst. Rev. 41, 315–324 (2007)CrossRefGoogle Scholar
  7. 7.
    McKenney, P., Michael, M., Triplett, J., Walpole, J.: Why the grass not be greener on the other side: A comparison of locking vs. transactional memory. SIGOPS Oper. Syst. Rev. 44, 93–101 (2010)CrossRefGoogle Scholar
  8. 8.
    Minh, C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: Stanford transactional applications for multi-processing. In: IEEE International Symposium on Workload Characterization, IISWC 2008, pp. 35–46. IEEE (2008)Google Scholar
  9. 9.
    Rito, H., Cachopo, J.: Memoization of methods using software transactional memory to track internal state dependencies. In: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010(2010)Google Scholar
  10. 10.
    Rito, H., Cachopo, J.: FlashbackSTM: Improving STM performance by remembering the past. In: Kasahara, H., Kimura, K. (eds.) LCPC 2012. LNCS, vol. 7760, pp. 266–267. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  11. 11.
    Shavit, N., Touitou, D.: Software transactional memory. In: Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, PODC 1995, pp. 204–213. ACM (1995)Google Scholar
  12. 12.
    Yoo, R., Lee, H.: Adaptive transaction scheduling for transactional memory systems. In: Proceedings of the 20th Annual Symposium on Parallelism in Algorithms and Architectures, SPAA 2008, pp. 169–178. ACM (2008)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  1. 1.INESC-ID, Instituto Superior TécnicoUniversidade de LisboaPortugal

Personalised recommendations