DOI QR코드

DOI QR Code

MPIRace-Check V 1.0: MPI 병렬 프로그램의 메시지경합 탐지를 위한 도구

MPIRace-Check V 1.0: A Tool for Detecting Message Races in MPI Parallel Programs

  • 박미영 (부산대학교 BK21 U-Port정보기술산학공동사업단) ;
  • 정상화 (부산대학교 정보컴퓨터공학부)
  • 발행 : 2008.04.30

초록

메시지전달 프로그램에서 발생하는 메시지경합은 프로그램의 비결정적 수행결과를 초래하므로 효과적인 디버깅을 위하여 탐지되어야 한다. 메시지경합을 탐지하는 기존의 도구는 임의의 메시지를 수신하는 모든 사건에서 경합이 발생한다고 보고한다. 그러나 메시지들이 전송되는 논리적인 통신채널이 서로 다르면 임의의 메시지를 수신하는 사건에서 경합이 발생하지 않을 수도 있으므로, 기존 도구의 부정확한 탐지정보는 프로그래머의 디버깅 작업을 더욱 어렵게 한다. 본 논문에서는 메시지 송수신 사건간의 병행성과 메시지들의 논리적 통신채널을 검사하여 보다 정확하게 메시지경합을 탐지하는 도구인 MPIRace-Check를 제안하다. 본 도구는 vector timestamp를 이용하여 프로그램 수행 중에 메시지를 전송하는 송수신 사건들간의 병행성을 검사하고, 메시지 부가정보를 이용하여 메시지들의 논리적인 통신채널이 동일한지를 검사하여 메시지경합을 탐지한다. 실험에서는 MPI_RTED와 벤치마크 프로그램을 이용하여 본 도구가 프로그램 수행 중에 효율적으로 모든 경합을 정확하게 탐지함을 보인다. 따라서 본 도구는 메시지경합을 정확하게 탐지하여 프로그래머의 디버깅 부담을 줄이고 신뢰성이 있는 병렬 프로그램의 개발을 가능하게 한다.

Message races should be detected for debugging effectively message-passing programs because they can cause non-deterministic executions of a program. Previous tools for detecting message races report that message races occur in every receive operation which is expected to receive any messages. However message races might not occur in the receive operation if each of messages is transmitted through a different logical communication channel so that their incorrect detection makes it a difficult task for programmers to debug programs. In this paper we suggest a tool, MPIRace-Check, which can exactly detect message races by checking the concurrency between send/receive operations, and by inspecting the logical communication channels of the messages. To detect message races, this tool uses the vector timestamp to check if send and receive operations are concurrent during an execution of a program and it also uses the message envelop to inspect if the logical communication channels of transmitted messages are the same. In our experiment, we show that our tool can exactly detect message races with efficiency using MPI_RTED and a benchmark program. By detecting message races exactly, therefore, our tool enables programmers to develop reliable parallel programs reducing the burden of debugging.

키워드

참고문헌

  1. Claudio, A.P., J.D. Cunha, and M.B. Carmo, “Monitoring and Debugging Message Passing Applications with MPVisualizer,” 8th Euromicro Workshop on Parallel and Distributed Processing, pp.376-382, IEEE, Jan., 2000
  2. Fidge, C. J., “Partial Orders for Parallel Debugging,” SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, pp.183-194, ACM, May, 1988 https://doi.org/10.1145/68210.69233
  3. Gropp, W., and E. Lusk, User's Guide for Mpich, A Portable Implementation of MPI, TR-ANL-96/6, Argonne National Laboratory, 1996
  4. Krammer, B., K. Bidmon, M.S. Muller, and M.M. Resch, “MARMOT: An MPI Analysis and Checking Tool,” In proceedings of PARCO'03, 13: 493-500, Elsevier, Sept., 2003
  5. Krammer, B., M.S. Muller, and M.M. Resch, “MPI Application Development Using the Analysis Tool MARMOT,” 4th International Conference on Computational Science, Lecture Notes in Computer Science, 3038: 464-471, Springer-Verlag, June, 2004
  6. Kranzluller, D., and M. Schulz, “Notes on Nondeterminism in Message Passing Programs,” 9th European PVM/MPI Users' Group Conf., Lecture Notes in Computer Science, 2474: 357-367, Springer-Verlag, Sept., 2002
  7. Kranzlmuller D., C. Schaubschlager, and J. Volkert, “A Brief Overview of the MAD Debugging Activities,” 4th International Workshop on Automated Debugging (AADEBUG 2000), Aug., 2000
  8. Lamport, L., “Time, Clocks, and the Ordering of Events in a Distributed System,” Communications of the ACM, 21(7): 558-565, ACM, July, 1978 https://doi.org/10.1145/359545.359563
  9. Netzer, R. H. B., T. W. Brennan, and S. K. Damodaran-Kamal, “Debugging Race Conditions in Message-Passing Programs,” SIGMETRICS Symp. on Parallel and Distributed Tools, pp.31-40, ACM, May, 1996 https://doi.org/10.1145/238020.238033
  10. Park, Mi-Young, and Yong-Kee Jun, “Detecting Unaffected Message Races in Parallel Programs,” Proc. of the 1st Int'l Conf. on Grid and Pervasive Computing (GPC'06), Lecture Notes in Computer Science, 3947: 187-196, Springer-Verlag, May, 2006 https://doi.org/10.1007/11745693_19
  11. Snir, M., S. Otto, S. Huss-Lederman, D. Walker, and J. Dongarra, MPI: The Complete Reference, MIT Press, 1996
  12. Tai, K. C., “Race Analysis of Traces of Asynchronous Message-Passing Programs,” 17th Int'l. Conf. Distributed Computing Systems, pp.261-268, IEEE, May, 1997
  13. HPC Group, MPI Run Time Error Detection Test Suites: http://rted.public.iastate.edu/MPI/, Iowa State University, USA, 2006