On Monitoring C/C++ Transactional Memory Programs

  • Jan FiedorEmail author
  • Zdeněk Letko
  • João Lourenço
  • Tomáš Vojnar
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8934)


Transactional memory (TM) is an increasingly popular technique for synchronising threads in multi-threaded programs. To address both correctness and performance-related issues of TM programs, one needs to monitor and analyse their execution. However, monitoring concurrent programs (including TM programs) may have a non-negligible impact on their behaviour, which may hamper the objectives of the intended analysis. In this paper, we propose several approaches for monitoring TM programs and study their impact on the behaviour of the monitored programs. The considered approaches range from specialised lightweight monitoring to generic heavyweight monitoring. The implemented monitoring tools are publicly available to the scientific community, and the implementation techniques used for lightweight monitoring of TM programs may be used as an inspiration for developing other specialised lightweight monitors.


Monitor Program Time Stamp Monitoring Approach Global Number Transaction Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cao Minh, C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: stanford transactional applications for multi-processing. In: Proc. of IISWC 2008 (2008)Google Scholar
  2. 2.
    Castro, M., Georgiev, K., Marangozova-Martin, V., Mehaut, J.-F., Fernandes, L.G., Santana, M.: Analysis and tracing of applications based on software transactional memory on multicore architectures. In: Proc. of PDP 2011. IEEE CS (2011)Google Scholar
  3. 3.
    Fiedor, J., Vojnar, T.: ANaConDA: a framework for analysing multi-threaded c/c++ programs on the binary level. In: Qadeer, S., Tasiran, S. (eds.) RV 2012. LNCS, vol. 7687, pp. 35–41. Springer, Heidelberg (2013)Google Scholar
  4. 4.
    Guerraoui, R., Kapalka, M.: Principles of Transactional Memory. Morgan and Claypool Publishers (2010)Google Scholar
  5. 5.
    Harris, T., Larus, J., Rajwar, R.: Transactional Memory, 2nd edn. Morgan and Claypool Publishers (2010)Google Scholar
  6. 6.
    Lourenço, J.M., Dias, R.J., Luís, J.A., Rebelo, M., Pessanha, V.: Understanding the behavior of transactional memory applications. In: Proc. of PADTAD 2009. ACM (2009)Google Scholar
  7. 7.
    Luk, C.-K., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V.J., Hazelwood, K.: Pin: building customized program analysis tools with dynamic instrumentation. In: Proc. of PLDI 2005. ACM (2005)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Jan Fiedor
    • 1
    Email author
  • Zdeněk Letko
    • 1
  • João Lourenço
    • 2
  • Tomáš Vojnar
    • 1
  1. 1.IT4Innovations Centre of ExcellenceFIT, Brno University of TechnologyBrnoCzech Republic
  2. 2.CITIUniversidade Nova de LisboaLisbonPortugal

Personalised recommendations