DOI QR코드

DOI QR Code

On-the-fly Monitoring Tool for Detecting Data Races in Multithread Programs

멀티 스레드 프로그램의 자료경합 탐지를 위한 수행 중 감시 도구

  • 팽봉준 (경상대학교 정보과학과) ;
  • 박세원 (경상대학교 정보과학과) ;
  • 구인본 (경상대학교 정보과학과) ;
  • 하옥균 (경상대학교 공학연구원 리서치펠로우) ;
  • 전용기 (경상대학교 정보과학과)
  • Received : 2014.07.21
  • Accepted : 2014.11.14
  • Published : 2015.02.15

Abstract

It is difficult and cumbersome to figure out whether a multithread program runs with concurrency bugs, such as data races and atomicity violations, because there are many possible executions of the program and a lot of the defects are hard to reproduce. Hence, monitoring techniques for collecting and analyzing the information from program execution, such as thread executions, memory accesses, and synchronization information, are important to locate data races for debugging multithread programs. This paper presents an efficient and practical monitoring tool, called VcTrace, that analyzes the partial ordering of concurrent threads and events during an execution of the program based on the vector clock system. Empirical results on C/C++ benchmarks using Pthreads show that VcTrace is a sound and practical tool for on-the-fly data race detection as well as for analyzing multithread programs.

멀티 스레드 프로그램의 수행 중에 발생하는 자료경합과 원자성 위배 등과 같은 동시성 오류는 스레드들의 비결정적 수행으로 인해 다양한 수행 순서를 고려해야 하고 재생산 또한 어렵기 때문에 디버깅하기 어렵고 귀찮은 오류로 잘 알려져 있다. 이러한 자료경합을 디버깅하기 위해서는 스레드의 수행 순서와 메모리 접근 및 동기화 정보 등과 같은 프로그램의 수행 중에 발생한 정보를 수집 및 분석해야 한다. 본 논문에서는 멀티 스레드 프로그램의 수행 중에 벡터 클록 시스템을 기반으로 스레드의 병행성과 접근사건들 간의 순서관계를 생성 및 유지함으로써 정확하면서도 효율적인 감시와 분석이 가능한 도구인 VcTrace를 제시한다. 제시된 감시 도구를 사용하여 멀티 스레드 기반의 응용 프로그램을 대상으로 수행 중 발생한 스레드와 접근사건 등의 정보를 감시 및 유지하고, 자료경합을 탐지하는 기술과 접목하여 실용성을 분석한다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. R. H. B. Netzer and B. P. Miller, "What are Race Conditions? Some Issues and Formalizations," Letters on Prog. Lang. and Systems, Vol. 1, No. 1, pp. 74-88, ACM, Mar. 1992. https://doi.org/10.1145/130616.130623
  2. U. Banerjee, B. Bliss, Z. Ma, and P. Petersen, "A Theory of Data Race Detection," Proc. of the 2006 Workshop on Parallel and Distributed System: Testing and Debugging, pp. 69-78, ACM, Jul. 2006.
  3. O.-K. Ha, M.-H. Kang, Y.-J. Kim, and Y.-J. Jun, "An Efficient Tool for Verifying Races in OpenMP Directive Programs without Interthread Synchronization," Journal of KIISE: Computing Practices and Letters, Vol. 14, No. 3, pp. 301-305, KIISE, May 2008. (in Korean)
  4. E. Pozniznsky and M. Schuster, "MultiRace: Efficient On-the-fly Data Race Detection in Multithread C++ Programs," Proc. of the 9th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 179-190, ACM, Mar. 2007.
  5. A. Jannesari and W. F. Tichy, "On-the-fly Race Detection in Multi-threaded Programs," Proc. of the 2008 Workshop on Parallel and Distributed System: Testing and Debugging, pp. 6:1-6:10, ACM, Jul. 2008.
  6. O.-K. Ha, I.-B. Kuh, G. M. Tchamgoue, and Y.-K. Jun, "On-the-fly Detection of Data Races in OpenMP Programs," Proc. of the 2012 Workshop on Parallel and Distributed System: Testing and Debugging, pp. 1-10, ACM, Jul. 2012.
  7. C. Flanagan and S. N. Freund, "FASTTRACK: Efficient and Precise Dynamic Race Detection," Communications of the ACM, Vol. 53, No. 11, pp. 93-101, ACM, Nov. 2010. https://doi.org/10.1145/1839676.1839699
  8. K. Serevryany and T. Iskhodzhanov, "ThreadSanitizer: Data Race Detection in Practice," Proc. of the Workshop on Binary Instrumentation and Applications, pp. 62-71, ACM, Dec. 2009.
  9. R. Baldoni and M. Raynal, "Fundamentals of Distributed Computing: A Practical Tour of Vector Clock Systems," IEEE Distrubuted Systems Online, Vol. 3, No. 2, IEEE, Feb. 2002.
  10. L. Lamport, "Time, Clocks, and the Ordering of Events in a Distributed system," Communications of the ACM, Vol. 21, No. 7, pp. 558-565, ACM, Jul. 1978. https://doi.org/10.1145/359545.359563
  11. M. Bach, M. Charney, R. Chon, E. Demikhovsky, T. Devor, K. Hazelwood, A. Jaleel, C. Luk, G. Lyons, H. Patil, and A. Tal, "Analyzing Parallel Programs with Pin," Computer, Vol. 43, No. 3, pp. 34-41, IEEE, Mar. 2010. https://doi.org/10.1109/MC.2010.60
  12. C. Bienia, S. Kumar, J. P. Singh, and K. Li, "The PARSEC Benchmark Suite: Characterization and Architectural Implications," Proc. of the 17th International Conference on Parallel Architectures and Compilation Techniques, pp. 72-81, ACM, Oct. 2008.
  13. J. Yu and S. Narayanasamy, "A Case for an Interleaving Constrained Shared-Memory Multi-processor," Proc. of the 36th Annual International Symposium on Computer Architecture, pp. 325-336, ACM, Jun. 2009.