Skip to main content

RCanalyser: A Flexible Framework for the Detection of Data Races in Parallel Programs

  • Conference paper
Reliable Software Technologies – Ada-Europe 2008 (Ada-Europe 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5026))

Included in the following conference series:

Abstract

Creating multiple threads for performance gain is not only common for complex computations on supercomputers but also for ordinary application programs. Multi-threaded/parallel programs have many advantages but also introduce new types of errors that do not occur in purely sequential programs. Race conditions are one important class of these special problems because the effects of race conditions occur nondeterministically and range from incorrect results to unexpected program behaviour. This paper presents RCanalyser, a tool for the detection of race conditions, which is based on a Must_Locks analysis using a flexible interface for the integration of different points-to analyses. As the problem of detecting race conditions is NP-hard in the general case, the tool is restricted to the detection of so-called data races [1]. The tool is able to analyse C/C++programs that use thread APIs for the implementation and synchronization of concurrent units. We applied the tool to a set of real programs, which use the POSIX thread API, and present results and statistics.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Netzer, R.H.B., Miller, B.P.: What are race conditions?: Some issues and formalizations. ACM Letters on Programming Languages and Systems 1, 74–88 (1992)

    Article  Google Scholar 

  2. Sun Microsystems, Inc.: Multithreaded Programming Guide (2002), http://docs.sun.com/app/docs/doc/806-6867/

  3. Sterling, N.: WARLOCK - A Static Data Race Analysis Tool. In: USENIX Winter Technical Conference, pp. 97–106 (1993)

    Google Scholar 

  4. Engler, D., Ashcraft, K.: RacerX: Effective, Static Detection of Race Conditions and Deadlocks. In: Proceedings of the 19th ACM Symposium on Operating Systems Principles, pp. 237–252. ACM Press, New York (2003)

    Google Scholar 

  5. Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs. In: Proceedings of the 16th ACM Symposium on Operating Systems Principles, pp. 27–37. ACM Press, New York (1997)

    Chapter  Google Scholar 

  6. Choi, J.D., Lee, K., Loginov, A., O’Callahan, R., Sarkar, V., Sridharan, M.: Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 258–269. ACM Press, New York (2002)

    Google Scholar 

  7. von Praun, C., Gross, T.R.: Object Race Detection. In: Proceedings of the 16th ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications, pp. 70–82. ACM Press, New York (2001)

    Chapter  Google Scholar 

  8. Naumovich, G., Avrunin, G.S.: A Conservative Data Flow Algorithm for Detecting All Pairs of Statements that May Happen in Parallel. In: Proceedings of the 6th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 24–34 (1998)

    Google Scholar 

  9. Masticola, S.P., Ryder, B.G.: Non-concurrency Analysis. In: Proceedings of the fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 129–138 (1993)

    Google Scholar 

  10. Burgstaller, B., Blieberger, J., Mittermayr, R.: Static Detection of Access Anomalies in Ada95. In: Pinho, L.M., González Harbour, M. (eds.) Ada-Europe 2006. LNCS, vol. 4006, pp. 40–55. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  11. Raza, A.: A Review of Race Detection Mechanisms. In: Grigoriev, D., Harrison, J., Hirsch, E.A. (eds.) CSR 2006. LNCS, vol. 3967, pp. 534–543. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  12. Pratikakis, P., Foster, J.S., Hicks, M.: LOCKSMITH: Context-Sensitive Correlation Analysis for Race Detection. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 320–331. ACM Press, New York (2006)

    Google Scholar 

  13. Raza, A., Vogel, G., Ploedereder, E.: Bauhaus – A Tool Suite for Program Analysis and Reverse Engineering. In: Pinho, L.M., González Harbour, M. (eds.) Ada-Europe 2006. LNCS, vol. 4006, pp. 71–82. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  14. Naik, M., Aiken, A., Whaley, J.: Effective static race detection for java. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 308–319. ACM Press, New York (2006)

    Google Scholar 

  15. Steensgaard, B.: Points-to Analysis in Almost Linear Time. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 32–41. ACM Press, New York (1996)

    Chapter  Google Scholar 

  16. Das, M.: Unification-based Pointer Analysis with Directional Assignments. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 35–46 (2000)

    Google Scholar 

  17. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Fabrice Kordon Tullio Vardanega

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Raza, A., Vogel, G. (2008). RCanalyser: A Flexible Framework for the Detection of Data Races in Parallel Programs. In: Kordon, F., Vardanega, T. (eds) Reliable Software Technologies – Ada-Europe 2008. Ada-Europe 2008. Lecture Notes in Computer Science, vol 5026. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68624-8_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-68624-8_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-68621-7

  • Online ISBN: 978-3-540-68624-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics