International Journal of Parallel Programming

, Volume 41, Issue 1, pp 89–110 | Cite as

Transaction Scheduling Using Dynamic Conflict Avoidance

  • Daniel Nicácio
  • Alexandro Baldassin
  • Guido Araújo
Article

Abstract

Software transaction memory (STM) systems have been used as an approach to improve performance, by allowing the concurrent execution of atomic blocks. However, under high-contention workloads, STM-based systems can considerably degrade performance, as transaction conflict rate increases. Contention management policies have been used as a way to select which transaction to abort when a conflict occurs. In general, contention managers are not capable of avoiding conflicts, as they can only select which transaction to abort and the moment it should restart. Since contention managers act only after a conflict is detected, it becomes harder to effectively increase transaction throughput. More proactive approaches have emerged, aiming at predicting when a transaction is likely to abort, postponing its execution. Nevertheless, most of the proposed proactive techniques are limited, as they do not replace the doomed transaction by another or, when they do, they rely on the operating system for that, having little or no control on which transaction to run. This article proposes LUTS, a lightweight user-level transaction scheduler. Unlike other techniques, LUTS provides the means for selecting another transaction to run in parallel, thus improving system throughput. We discuss LUTS design and propose a dynamic conflict-avoidance heuristic built around its scheduling capabilities. Experimental results, conducted with the STAMP and STMBench7 benchmark suites, running on TinySTM and SwissTM, show how our conflict-avoidance heuristic can effectively improve STM performance on high contention applications.

Keywords

Multiprocessor systems Concurrent programming Transactional memory Contention management 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Anderson T.E., Bershad B.N., Lazowskax E.D., Levy H.M.: Scheduler activations: effective kernel support for the user-level management of parallelism. SIGOPS Oper. Syst. Rev. 25, 95–109 (1991)CrossRefGoogle Scholar
  2. 2.
    Ansari, M., Lujan, M., Kotselidis, C., Jarvisx, K., Kirkham, C., Watson, I.: Steal-on-Abort: Improving transactional memory performance through dynamic transaction reordering. In: Proceedings of the 4th International Conference on High Performance Embedded Architectures and Compilers, pp. 4–18 (2009)Google Scholar
  3. 3.
    Blake, G., Dreslinski, R.G., Mudge, T.: Proactive transaction scheduling for contention management In: Proceedings of the 42nd ACM/IEEE International Symposium on Microarchitecture, pp. 156–167 (2009)Google Scholar
  4. 4.
    Bland J.M., Altman D.G.: Statistical methods for assessing agreement between two methods of clinical measurement. Int. J. Nurs. Stud. 47(8), 931–936 (2010)CrossRefGoogle Scholar
  5. 5.
    Christie, D., Chung, J.W., Diestelhorst, S., Hohmuth, M., Pohlack, M., Fetzer, C., Nowack, M., Riegel, T., Felber, P., Marlier, P., Riviere, E.: Evaluation of AMD’s advanced synchronization facility within a complete transactional memory stack. In: Proceedings of the 5th European Conference on Computer Systems, pp. 27–40 (2010)Google Scholar
  6. 6.
    Darema, F.: The SPMD model: past, present and future. In: Proceedings of the 8th European PVM/MPI Users’ Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface, p. 1 (2001)Google Scholar
  7. 7.
    Dolev, S., Hendler, D., Suissa, A.: CAR-STM: scheduling-based collision avoidance and resolution for software transactional memory. In: Proceedings of the 27th Annual Symposium on Principles of Distributed Computing, pp. 125–134 (2008)Google Scholar
  8. 8.
    Dragojevic, A., Guerraoui, R., Kapalka, M.: Stretching transactional memory. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 155–165 (2009)Google Scholar
  9. 9.
    Dragojevic, A., Guerraoui, R., Singh, A.V., Singh, V.: Preventing versus curing: Avoiding conflicts in transactional memories. In: Proceedings of the 28th Annual Symposium on Principles of Distributed Computing, pp. 7–16 (2009)Google Scholar
  10. 10.
    Felber, P., Fetzer, C., Riegel, T.: Dynamic performance tuning of word-based software transactional memory. In: Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming, pp. 237–246 (2008)Google Scholar
  11. 11.
    Guerraoui, R., Herlihy, M., Pochon, B.: Polymorphic contention management. In: 19th International Symposium on Distributed Computing, pp. 303–323 (2005)Google Scholar
  12. 12.
    Guerraoui, R., Herlihy, M., Pochon, B.: Toward a theory of transactional contention managers. In: Proceedings of the 24th Annual Symposium on Principles of Distributed Computing, pp. 258–264 (2005)Google Scholar
  13. 13.
    Guerraoui, R., Kapalka, M., Vitek, J.: STMBench7: a benchmark for software transactional memory. In: Proceedings of the 2nd European Conference on Computer Systems, pp. 315–324 (2007)Google Scholar
  14. 14.
    Harris, T., Larus, J., Rajwar, R.: Transactional Memory, 2nd edn. Morgan & Claypool Publishers (2010)Google Scholar
  15. 15.
    Herlihy, M., Luchangco, V., Moir, M., Scherer, W.N.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing, pp. 92–101 (2003)Google Scholar
  16. 16.
    Maldonado, W., Marlier, P., Felber, P., Suissa, A., Hendler, D., Fedorova, A., Lawall, J.L., Muller, G.: Scheduling support for transactional memory contention management. In: Proceedings of the 15th Symposium on Principles and Practice of Parallel Programming, pp. 79–90 (2010)Google Scholar
  17. 17.
    Mellor-Crummey J.M., Scott M.L.: Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Trans. Comput. Syst. 9(1), 21–65 (1991)CrossRefGoogle Scholar
  18. 18.
    Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: stanford transactional applications for multi-processing. In: Proceedings of the IEEE International Symposium on Workload Characterization, pp. 35–46 (2008)Google Scholar
  19. 19.
    Nicacio, D., Baldassin, A., Arajo, G.: LUTS: a lightweight user-level transaction scheduler. In: Proceedings of the 11th International Conference on Algorithms and Architectures For Parallel Processing, pp. 144–157 (2011)Google Scholar
  20. 20.
    Scherer, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: Proceedings of the 24th Annual Symposium on Principles of Distributed Computing, pp. 240–248 (2005)Google Scholar
  21. 21.
    Spear, M.F., Dalessandro, L., Marathe, V.J., Scott, M.L.: A comprehensive strategy for contention management in software transactional memory. In: Proceedings of the 14th Symposium on Principles and Practice of Parallel Programming, pp. 141–150 (2009)Google Scholar
  22. 22.
    Yoo, R.M., Lee, H.H.S.: Adaptive transaction scheduling for transactional memory systems. In: Proceedings of the 20th Annual ACM Symposium on Parallel Algorithms and Architectures, pp. 169–178 (2008)Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Daniel Nicácio
    • 1
  • Alexandro Baldassin
    • 2
  • Guido Araújo
    • 1
  1. 1.Institute of Computing, UNICAMPCampinasBrazil
  2. 2.Univ Estadual PaulistaRio ClaroBrazil

Personalised recommendations