DOI QR코드

DOI QR Code

A Study on Filtering Techniques for Dynamic Analysis of Data Races in Multi-threaded Programs

  • Ha, Ok-Kyoon (Dept. of Aeronautics & Software Engineering, Kyungwoon University) ;
  • Yoo, Hongseok (Dept. of Aeronautics & Software Engineering, Kyungwoon University)
  • 투고 : 2017.10.13
  • 심사 : 2017.11.14
  • 발행 : 2017.11.30

초록

In this paper, we introduce three monitoring filtering techniques which reduce the overheads of dynamic data race detection. It is well known that detecting data races dynamically in multi-threaded programs is quite hard and troublesome task, because the dynamic detection techniques need to monitor all execution of a multi-threaded program and to analyse every conflicting memory and thread operations in the program. Thus, the main drawback of the dynamic analysis for detecting data races is the heavy additional time and space overheads for running the program. For the practicality, we also empirically compare the efficiency of three monitoring filtering techniques. The results using OpenMP benchmarks show that the filtering techniques are practical for dynamic data race detection, since they reduce the average runtime overhead to under 10% of that of the pure detection.

키워드

참고문헌

  1. Netzer, Robert H. B. and Miller, Barton P, "What are Race Conditions?: Some Issues and Formalizations," in Proceeding of Letters on Programming Languages and Systems, LOPLAS 1992, pp. 74-88, ACM, 1992.
  2. E. Farchi, Y. Nir, and S. Ur, "Concurrent Bug Patterns and How to Test Them," in Proceeding of the 17th International Symposium on Parallel and Distributed Processing, IPDPS 2003. pp. 7. IEEE, 2003.
  3. U. Banerjee, B. Bliss, Z. Ma, and P. Petersen, "A Theory of Data Race Detection," in Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging, PADTAD 2006, pp. 69-78, ACM, 2006.
  4. N. G. Leveson, C. S. Turner, "An Investigation of the Therac-25 Accidents," IEEE Computer, vol. 26(7), pp. 18-41, July, 1993.
  5. U. S. A and Canada, "Final Report on the August 14, 2003 Blackout in the United States and Canada: Causes and Recommendations," Technical report, U.S.-Canada Power System Outage Task Force, August, 2003.
  6. D. Callahan and J. Sublok, "Static Analysis of Low-level Synchronization," SIGPLAN Not., vol. 24(1), pp. 100-111, ACM, November, 1988.
  7. C. E. McDowell, "A Practical Algorithm for Static Analysis of Parallel Programs," Journal of Parallel and Distributed Computing, vol. 6(3), pp. 515-536, Springer-verlag, June, 1989. https://doi.org/10.1016/0743-7315(89)90004-X
  8. D. Engler and Ken Ashcraft, "RacerX: Effective, Static Detection of Race Conditions and Deadlocks," in Proceedings of the nineteenth ACM symposium on Operating systems principles, SOSP 2003, pp. 237-252, ACM, 2003.
  9. Ha, O.-K., "Case Study of Dynamic Detectors for Data Races," in Proceeding of International Conference on Electronic Engineering and Computer Science (EECS 2013), IERI Procedia, Beijing, China, vol. 4, (2013), pp. 174-180.
  10. C. Flanagan and S. N. Freund, "FastTrack: Efficient and Precise Dynamic Race Detection," in Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2009, pp. 121-133, ACM, 2009.
  11. Ha, O.-K., Jun, Y.-K., "An Efficient Algorithm for On-the-fly Data Race Detection Using an Epoch-Based Technique," Journal of Scientific Programming, Article No. 13, January, 2015.
  12. T. Elmas, S. Qadeer, and S. Tasiran, "Goldilocks: A Race and Transaction-aware Java Runtime," in Proceedings of the 2007 ACM SIGPLAN Conf. on Programming Language Design and Implementation, PLDI 2007, pp. 245-255, ACM, 2007.
  13. A. Jannesari, B. Kaibin, V. Pankratius, and W. F. Tichy, "Helgrind+: An Efficient Dynamic Race Detector," in Proceedings of the 2009 IEEE International Symposium on Parallel & Distributed Processing, IPDPS 2009, pp. 1-13, IEEE, 2009.
  14. Ha, O.-K., Jun, Y.-K., "Effective Monitoring Memory Operations for Dynamic Race Detection through Hierarchical Filtering Method," International Journal of Multimedia and Ubiquitous Engineering, Vol. 9(4), pp. 199-208, April, 2014. https://doi.org/10.14257/ijmue.2014.9.4.21
  15. Ha, O.-K., Kuh, I.-B., G. M. Tchamgoue, Jun, Y.-K., "On-the-fly Detection of Data Races in OpenMP Programs," in Proceeding of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging (PADTAD'2012), pp. 1-10, ACM, Minneapolis, USA, July 2012.
  16. Park, S.-W., Ha, O.-K., and Jun, Y.-K., "A Loop Filtering Technique for Reducing Time Overhead of Dynamic Data Race Detection," in Proceeding of the 8th International Conference on Database Theory and Application (DTA 2015), pp. 29-32, IEEE, Jeju, Korea, 2015.
  17. H. Patil, C. Pereira, M. Stallcup, G. Lueck, and Cownie, "Pinplay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs," in Proceeding of the 8th annual IEEE/ACM international symposium on Code generation and optimization, CGO 2010, pp. 2-11, ACM, 2010.
  18. A. R. Bernat and B. P. Miller, "Anywhere, Any-time Binary Instrumentation," in Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools, PASTE 2011, pp. 9-16, ACM, 2011.
  19. A. J. Dorta, C. Rodriguez, F. d. Sande, A. Gonzalez-Escribano, "The OpenMP Source Code Repository," in Proceedings of the 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing, pp. 244-250, 2005.