Causal Replay for Cyclic Debugging of MPI Parallel Programs

MPI 병렬 프로그램의 순환 디버깅을 위한 인과관계 재실행

  • 홍철의 (상명대학교 정보통신학부) ;
  • 김영준 (상명대학교 정보통신학부)
  • Published : 2001.10.01

Abstract

The cyclic debugging approach often fails for message passing parallel programs because they non-deterministic characteristics due to message race conditions. This paper identifies the MPI events that affect non-deterministic executions, and then converts the concurrent execution to the sequential one that is controlled in order to make it equivalent to a reference execution by keeping their orders of events in two executions identical. This paper also presents an efficient algorithm for the causal distributed breakpoint which is initiated by any sequential breakpoint in one process, and restores each process to the earliest state that reflects all events that happened causally before the sequential breakpoint. So a cyclic debugging approach can be used in debugging MPI parallel programs as like as in debugging sequential programming environments.

메세지 전달 병렬 프로그램은 프로세스 사이의 메세지 경합에 의하여 실행의 비결정성이 발생하여 순차 프로그램에서 널리 사용되는 순환 디버깅 기법을 사용하기 어렵다. 본 논무은 MPI 병렬 프로그램에서 비결정적 실행에 영향을 미치는 메세지 전달 사건을 정의한 후, 기본실행에서의 사건의 발생순서가 다음의 재실행시 똑 같이 유지되도록 병행실행을 순차생행으로 변환하여 결정적 재실행을 보장함으로써 실행시 마다 같은 오류가 재현되도록 한다. 또한 MPI 병렬 프로그램의 디버깅을 보다 쉽게 하기 위하여 임의의 프로세스를 정짓켰을 때, 다른 모든 프로세스는 정지점 이전에 발생한 모든 사건을 반영하는 최초의 상태에 정지하게 하는 인과관계 정지점을 구현한다. 따라서 인과관계 재실행 기법을 이용하여 병렬 프로그램에서도 순차 프로그램 환경에서와 같이 순환 디버깅 기법을 사용할 수 있게 한다.

Keywords

References

  1. C. McDowell and D. Helrnbold, 'Debugging Concurrent Programs,' ACM Computing Surveys, 21(4), pp.593-622, Dec. 1989 https://doi.org/10.1145/76894.76897
  2. L. Gunaseelan and R. J. LeBlanc, Jr., 'Debugging Objects and Threads in a Shared Memory System,' Proceedings of the USENIX Syrnp. on Experience with Distributed and Multiprocessor Systems, pp,175-194, Sep, 1993
  3. E. Fromentine, N. Plouzeau, and M. Raynal, 'Replaying Distributed Execution,' 2nd Intl. Workshop on Automated and Algorithmic Debugging, pp.1-18, May 1995
  4. 송후봉, 유재우, 백의현, '병행 프로그램 디버깅을 위한 결정적 재실행 시스템', 정보과학회 논문지(B), 제24권, 제2호, pp.218-230, 1997.2
  5. A. Claudio, J. Cunha, and M. Carmo, Monitoring and Debugging Message Passing Application with MPVisualizer, Proceedings of the gil Euromicro Workshop on Parallel and Distributed Processing, pp.376-382, Jan. 2000 https://doi.org/10.1109/EMPDP.2000.823433
  6. R. Konuru, H. Srinivasan, and J. Choi, 'Deterministic Replay of Distributed Java Applications,' Proceedings of the 14th International Parallel and Distributed Processing Symposium, pp.219-227, May 2000 https://doi.org/10.1109/IPDPS.2000.845988
  7. 최동순, 김남훈, 김명호, '분산환경에서 병렬 프로그램 재실행을 위한 자바 디버거', 정보과학회 춘계학술발표회, 2000
  8. Hood, R, 'The p2d2 Poiect: Building a Portable Distributed Debugger,' Proceedings of SPDT'96, May 1996 https://doi.org/10.1145/238020.238058
  9. http://www.tc.cornell.edu/Paralle.Tools
  10. Kranzlmuller, D., Hugel, R., Volkert, J, 'MAD-Atop Down Approach to Parallel Program Debugging,' Proceedings of the HPCN'99, April 1999
  11. J. Kohl, G. Geist, 'XPVM 1.0 User's Guide,' Oak Ridge National Laboratory, Oak Ridge, Tennessee, http://netlib.uow.edu.au/pvm3/xpvm
  12. MPI and PVM User's Guide, http://www.techpubs.sgi.com/library
  13. M. Snir, S. Otto, S. Huss-Lederrnan, D. Walker, and J. Dongarra, 'MPI: The Complete Reference,' The MIT Press, 1996
  14. L. Lamport, 'Time, Clocks and the Orderings of Events in a Distributed System.' Communications of the ACM, 21(7), pp.558-565, July 1978 https://doi.org/10.1145/359545.359563
  15. C. Fidge, 'Logical Time in Distributed Computing Systems,' IEEE Computer, pp.28-33, Aug. 1991 https://doi.org/10.1109/2.84874
  16. J. Fowler, W. Zwaenepoel, 'Causal Distributed Breakpoints,' Proceedings of the 10th International Conference on Distributed Computing Systems, pp.134-141, 1990
  17. R. Netzer and B. Miller, 'Optimal Tracing and Replay for Debugging Message-Passing Parallel Programs,' Proceedings of the International Conference on Supercomputing, pp.502-511, Nov. 1992 https://doi.org/10.1109/SUPERC.1992.236654