DOI QR코드

DOI QR Code

공유 메모리 병렬 프로그램의 수행중 오류 탐지를 위한 루프 분리

Loop Splitting for On-the-fly Race Detection of Sharded-memory Parallel Programs

  • 송태섭 (한국국제대학교 조선해양공학과)
  • 투고 : 2011.11.15
  • 심사 : 2011.12.12
  • 발행 : 2012.03.31

초록

병렬 프로그램은 의도되지 않은 비결정적인 수행을 야기하므로 공유 메모리를 사용하는 병렬 프로그램에서는 경합을 탐지하는 것은 매우 중요하다. 수행 중 기법에서 경합을 탐지하기 위해서 요구되는 기억장소의 부담은 매우크다. 특히 동기화가 있는 병렬 프로그램에서 경합 탐지에 필요한 기억 공간의 문제는 더욱 심각하다. 그래서, 본 논문에서는 원시 프로그램의 시멘틱을 유지하면서 동기화를 가지는 공유 메모리 병렬 프로그램의 디버깅을 위한 루프 분리 기법을 제시한다. 이것은 동기화를 가지는 병렬 프로그램의 수행 중 경합 탐지에 필요로 하는 기억공간의 복잡성을 줄일 수 있고, 루프 분리된 프로그램을 수행 중에 감시하여 최초 경합들을 탐지할 수 있다.

Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended non-deterministic executions of the programs. Previous on-the-fly techniques to detect races in parallel programs with general inter-thread coordination show serious space overhead which depends on the maximum parallelism of the program. Therefore, this paper presents a loop splitting technique for on-the-fly race detection of parallel programs which is more efficient in space complexity than previous techniques. This loop splitting technique is the debugged program which preserves semantics of the original program. Monitering loop splitting program in on-the-fly can detect first races.

키워드

참고문헌

  1. Callahan, D. Kennedy K., Subhlok, J., "Analysis of Event Synchronization in a Parallel Programming Tool," 2nd Symp. on Principles and Practice of Parallel Programming, pp. 21-30, ACM, March 1990.
  2. Dagum, L., and R. Menon, "OpenMP: An Industry-Standard API for Shared-Memory Programming," Computational Science and Engineering, Vol. 5(1), pp. 46-55, IEEE, Jan.-Mar. 1998. https://doi.org/10.1109/99.660313
  3. Dinning, A., and E. schonberg, "An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection," 2nd Symp. on Principles and Practice of Parallel Programming, pp. 1-10, ACM, Mar. 1990.
  4. Grunwald, D., H. Srinivasan, "Efficient Computation of Precedence Information in Parallel Programs," 6th Workshop on Languages and Compilers for Parallel Computing, pp. 602-616, Springer-Verlag, Aug. 1993.
  5. Jun, Y., C. E. McDowell, "On-the-fly Detection of the First Races in Porgrams with Nested Parallelism," 2nd Int'l Conf. on Parallel and Distributed Processing Techniques and Applications, pp. 1549-1560, CSREA, Aug. 1996.
  6. Kim, D., and Y. Jun, "An Effective Tool for Debugging Races in Parallel Programs," 3rd Int'l Conf. on Parallel and Distributed Processing Techniques and Applications, pp. 117-126, CSREA, June 1997.
  7. Netzer, R. H. B., S. Ghosh, "Efficient Race Condition Detection for Shared-Memory Programs with Post/Wait Synchronization", Int'l. Conf. on Parallel Processing, pp. II-242-246, Penn. State Univ., Aug. 1992.
  8. Netzer, R. H. B., B. P. Miller, "Improving the Accuracy of Data Race Detection", 3rd Symp. on Principles and Practice of Parallel Programming, pp. 133-144, ACM, April 1991.
  9. Park, H., Y. Jun, "Detecting the First Races in Parallel Programs with Ordered Synchronization," 6th Intl. Conf. on Parallel and Distributed Systems, pp. 201-208, IEEE, Dec. 1998.
  10. Parallel Computing Forum, PCF Parallel Fortran Extensions, Vol. 10(3), ACM, July 1991.
  11. Kim, Y., and Y. Jun, "Restructuring Parallel Programs for On-the-fly Race Detection", 5th Int'l. Conf. Parallel Computing Technologies (PaCT-99), pp. 446-452, RAS, Sept. 1999.