Advertisement

Space-Efficient On-the-fly Race Detection Using Loop Splitting

  • Yong-Cheol Kim
  • Sang-Soo Jun
  • Yong-Kee Jun
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 151)

Abstract

Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic execution of the programs. Previous on-the-fly techniques to detect races in parallel programs with general inter-thread coordination shows serious space overhead which is dependant on the maximum parallelism of the program. This paper proposes a two-pass algorithm which splits a parallel loop with just one event variable into a series of two serializable loops, preserving the semantics of the original program. The first serializable loop contains all the original dynamic blocks which are executed before the first wait operation in every thread. And, the next serializable loop contains all the original dynamic blocks which are executed after the first wait operation in every thread.

Keywords

parallel program inter-thread coordination on-the-fly race detection space efficiency two-pass loop splitting serializable loop 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Callahan, D., Kennedy, K., Subhlok, J.: Analysis of Event Synchronization in a Parallel Programming Tool. In: 2nd Symposium on Principles and Practice of Parallel Programming, pp. 21–30. ACM, New York (1990)Google Scholar
  2. 2.
    Chen, F., Serbanuta, T.F., Rosu, G.: jPredictor: A Predictive Runtime Analysis Tool for Java. In: 30th International Conference on Software Engineering (ICSE), pp. 221–230. ACM, New York (2008)Google Scholar
  3. 3.
    Dagum, L., Menon, R.: OpenMP: An Industry-Standard API for Shared-Memory Programming. Computational Science and Engineering 5(1), 46–55 (1998)Google Scholar
  4. 4.
    Dabrowski, F., Pichardie, D.: A Certified Data Race Analysis for a Java-like Language. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 212–227. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    Dinning, A., Schonberg, E.: An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection. In: 2nd Symp. on Principles and Practice of Parallel Programming, pp. 1–10. ACM, New York (1990)Google Scholar
  6. 6.
    Grunwald, D., Srinivasan, H.: Efficient Computation of Precedence Information in Parallel Programs. In: 6th Workshop on Languages and Compilers for Parallel Computing, pp. 602–616. Springer, Heidelberg (1993)Google Scholar
  7. 7.
    Ha, K., Jun, Y., Yoo, K.: Efficient On-the-fly Detection of First Races in Nested Parallel Programs. In: Workshop on State-of-the-Art in Scientific Computing (PARA), Copenhagen, Denmark, pp. 75–84. Springer, Heidelberg (2004)Google Scholar
  8. 8.
    Jun, Y., McDowell, C.E.: On-the-fly Detection of the First Races in Programs with Nested Parallelism. In: 2nd International Conference on Parallel and Distributed Processing Techniques and Applications, pp. 1549–1560. CSREA, USA (1996)Google Scholar
  9. 9.
    Kim, D., Jun, Y.: An Effective Tool for Debugging Races in Parallel Programs. In: 3rd International Conference on Parallel and Distributed Processing Techniques and Applications, pp. 117–126. CSREA, USA (1997)Google Scholar
  10. 10.
    Kim, Y., Jun, Y.: Restructuring Parallel Programs for On-the-fly Race Detection. In: 5th International Conference Parallel Computing Technologies, pp. 446–452. Russian Academy of Science, Russia (1999)CrossRefGoogle Scholar
  11. 11.
    Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21(7), 558–565 (1978)CrossRefzbMATHGoogle Scholar
  12. 12.
    Marino, D., Musuvathi, M., Narayanasamy, S.: LiteRace: Effective Sampling for Lightweight Data-Race Detection. In: ACM Sigplan Confernece on Programming Language Design and Implementation (PLDI), Dublin, Ireland. ACM, New York (2009)Google Scholar
  13. 13.
    Netzer, R.H.B., Ghosh, S.: Efficient Race Condition Detection for Shared-Memory Programs with Post/Wait Synchronization. In: International Conference on Parallel Processing, pp. 242–246. Pennsylvannia State University, USA (1992)Google Scholar
  14. 14.
    Netzer, R.H.B., Miller, B.P.: Improving the Accuracy of Data Race Detection. In: 3rd Symp. on Principles and Practice of Parallel Programming, pp. 133–144. ACM, New York (1991)Google Scholar
  15. 15.
    Park, H., Jun, Y.: Detecting the First Races in Parallel Programs with Ordered Synchronization. In: 6th International Conference on Parallel and Distributed Systems, pp. 201–208. IEEE, Alamitos (1998)Google Scholar
  16. 16.
    Parallel Computing Forum: PCF Parallel Fortran Extensions. Fortran Forum 10(3) (1991)Google Scholar
  17. 17.
    Qadeer, S., Wu, D.: KISS: Keep It Simple and Sequential. In: Sigplan Conference on Programming Language Design and Implementation (PLDI). ACM, New York (2004); Washington D.C. Sigplan Notices 39(6), 14–24 (2004)Google Scholar
  18. 18.
    Sack, P., Bliss, B.E., Ma, Z., Petersen, P., Torrellas, J.: Accurate and Efficient Filtering for the Intel Thread Checker Race Detector. In: 1st Workshop on Architectural and System Support for Improving Software Dependability (ASID), San Jose, California, pp. 34–41. ACM, New York (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Yong-Cheol Kim
    • 1
  • Sang-Soo Jun
    • 2
  • Yong-Kee Jun
    • 3
  1. 1.Dept. of Computer EngineeringInternational Univ. of KoreaJinjuSouth Korea
  2. 2.Dept. of Computer EngineeringKyung Hee Univ.SeoulSouth Korea
  3. 3.Dept. of InformaticsGyeongsang National Univ.JinjuSouth Korea

Personalised recommendations