PaRV: Parallelizing Runtime Detection and Prevention of Concurrency Errors

  • Ismail Kuru
  • Hassan Salehe Matar
  • Adrián Cristal
  • Gokcen Kestor
  • Osman Unsal
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7687)

Abstract

We present the PaRV tool for runtime detection of and recovery from data races in multi-threaded C and C++ programs. PaRV uses transactional memory technology for parallelizing runtime verification and for buffering write accesses during race checking. Application threads are slowed down only due to instrumentation, but not due to the computation performed by runtime verification algorithms since the latter are run concurrently on different threads. Buffering writes allows us to recover from races and to safeguard against later ones.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bekar, U.C., Elmas, T., Okur, S., Tasiran, S.: Kuda: Gpu accelerated split race checker. In: Workshop on Determinism and Correctness in Parallel Programming (WoDet), London, England, UK (March 2012)Google Scholar
  2. 2.
    Bruening, D.L.: Efficient, transparent and comprehensive runtime code manipulation. Technical report (2004)Google Scholar
  3. 3.
    Chen, S., Falsafi, B., Gibbons, P.B., Kozuch, M., Mowry, T.C., Teodorescu, R., Ailamaki, A., Fix, L., Ganger, G.R., Lin, B., Schlosser, S.W.: Log-based architectures for general-purpose monitoring of deployed code. In: Proc. 1st Workshop on Architectural and System Support for Improving Software Dependability, ASID 2006, pp. 63–65. ACM, New York (2006)CrossRefGoogle Scholar
  4. 4.
    Flanagan, C., Freund, S.N.: Fasttrack: efficient and precise dynamic race detection. SIGPLAN Not. 44, 121–133 (2009)CrossRefGoogle Scholar
  5. 5.
    Kestor, G., Gioiosa, R., Harris, T., Unsal, O.S., Cristal, A., Hur, I., Valero, M.: Stm2: A parallel stm for high performance simultaneous multithreading systems. In: 2011 International Conference on Parallel Architectures and Compilation Techniques (PACT), pp. 221–231 (October 2011)Google Scholar
  6. 6.
    Sánchez, D., Aragón, J.L., García, J.M.: A log-based redundant architecture for reliable parallel computation. In: HiPC, pp. 1–10. IEEE (2010)Google Scholar
  7. 7.
    Veeraraghavan, K., Chen, P.M., Flinn, J., Narayanasamy, S.: Detecting and surviving data races using complementary schedules. In: Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles, SOSP 2011, pp. 369–384. ACM, New York (2011)CrossRefGoogle Scholar
  8. 8.
    Vlachos, E., Goodstein, M.L., Kozuch, M.A., Chen, S., Falsafi, B., Gibbons, P.B., Mowry, T.C.: Paralog: enabling and accelerating online parallel monitoring of multithreaded applications. In: Proceedings of the Fifteenth Edition of ASPLOS, ASPLOS 2010, pp. 271–284. ACM, New York (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Ismail Kuru
    • 1
  • Hassan Salehe Matar
    • 1
  • Adrián Cristal
    • 2
  • Gokcen Kestor
    • 2
  • Osman Unsal
    • 2
  1. 1.Koç UniversityİstanbulTurkey
  2. 2.Barcelona Supercomputing CenterBarcelonaSpain

Personalised recommendations