- 내부적 비결정성을 가진 공유 메모리 병렬 프로그램에서 잠재적 경합탐지를 위한 전처리기
- ㆍ 저자명
- 김영주,정민섭,전용기,Kim. Young-Joo,Jung. Min-Sub,Jun. Yong-Kee
- ㆍ 간행물명
- 정보처리학회논문지. The KIPS transactions. Part A. Part A
- ㆍ 권/호정보
- 2010년|1호|pp.9-18 (10 pages)
- ㆍ 발행정보
- 한국정보처리학회
- ㆍ 파일정보
- 정기간행물| PDF텍스트
- ㆍ 주제분야
- 기타
OpenMP와 같은 공유 메모리 기반의 병렬 프로그램에서 발생하는 경합은 프로그래머가 의도하지 않은 비결정적인 수행 결과를 초래하므로 반드시 탐지되어야한다. 이러한 경합의 존재를 수행 중에 검증하는 기존의 기법들은 내부적 비결정성이 존재하지 않는 프로그램에 대해서만 가능하다. 하지만 이 조건을 만족하지 못한다면 경합검증을 위해서 각 임계구역마다 적어도 N! 만큼의 프로그램 수행이 필요하다. 여기서 N은 탐지 대상 프로그램이 가진 최대 병렬성을 의미한다. 본 논문에서는 프로그램 슬라이싱을 이용하여 내부적 비결정성을 가진 프로그램에 존재하는 비결정적 접근사건을 정적으로 분석하고, 이 정보를 이용하여 한번의 수행으로 실제 경합뿐만 아니라 잠재적 경합까지 탐지할 수 있는 경합 전처리기를 제안한다. 제안된 도구는 OpenMP 병렬 프로그램에서 발생할 수 있는 비결정적 접근사건들에 대해서 항상 결정적으로 감시할 수 있으므로 임계구역 가진 프로그램 모델에 적용할 수 있는 어떠한 경합탐지 프로토콜을 사용하더라도 경합 검증이 가능하다. 본 도구의 실험적 증명을 위해서 비결정성이 포함된 합성 프로그램, 공인된 벤치마크 프로그램인 OpenMP Microbenchmark, NAS Parallel Benchmark, 그리고 OpenMP 응용 프로그램을 이용하여 제안된 도구의 정확성을 보인다.
Races that occur in shared-memory parallel programs such as OpenMP programs must be detected for debugging because of causing unintended non-deterministic results. Previous works which verify the existence of these races on-the-fly are limited to the programs without internal non-determinism. But in the programs with internal non-determinism, such works need at least N! execution instances for each critical section to verify the existence of races, where N is the degree of maximum parallelism. This paper presents a preprocessor that statically analyzes the locations of non-deterministic accesses using program slicing and can detect apparent races as well as potential races through single execution using the analyzed information. The suggested tool can deterministically monitor non-deterministic accesses to occur in OpenMP programs so that this tool can verify the existence of races even if it is used any race detection protocol which can apply to programs with critical section. To prove empirically this tool, we have experimented using a set of benchmark programs such as synthetic programs that involve non-deterministic accesses, OpenMP Microbenchmark, NAS Parallel Benchmark, and OpenMP application programs.