http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
내포 병렬성 프로그램에서 수행 중 경합 탐지를 위한 효율적인 스레드 식별자 생성 기법
하옥균(Ok-Kyoon Ha),전용기(Yong-Kee Jun) 한국정보기술학회 2011 한국정보기술학회논문지 Vol.9 No.2
It is difficult and troublesome to detect data races occurred in an execution of parallel programs. Any of on-the-fly race detection techniques using Lamport's happens-before relation needs a thread labeling scheme for generating unique identifiers which maintaining logical concurrency of the parallel threads. Previous labeling schemes which are create and maintain thread labels for on-the-fly race detection in parallel program model with nested parallelism depend on the nesting depth on every fork and join operation. This paper presents e-NR (Extended Nest Region) labeling in which every thread generates and maintains its label in a constant amount of time and space. Experimental results using OpenMP programs show that presented labeling detects data races more practice and efficient, because it requires reduced time overhead about 10% and is smaller than previous labeling schemes in average space for race detection.
OpenMP 프로그램을 위한 경합탐지 도구의 실험적 비교와 분석
하옥균(Ok-kyoon Ha),강문혜(Moon-hye Kang),전용기(Yong-kee Jun) 한국정보기술학회 2009 한국정보기술학회논문지 Vol.7 No.4
The data races or races in parallel programs must be detected for debugging OpenMP programs, because they may lead to unpredictable results of program executions. Sun Thread Analyzer is an important tool that detects the races in OpenMP programs, but it has not been compared its race verification capability as well as efficiency with Thread Checker or RaceStand that we have been developing. This paper empirically analyzes the verification capability of Thread Analyzer with a set of synthetic programs which has nested parallelism or inter-thread coordination. And, we compares its efficiency with the other two tools through a set of benchmarks that measures the efficiency of loop scheduling and array operations. We could not find any case of programs in which Thread Analyzer does not verify the existence of races. For the efficiency of array operations, Thread Analyzer is faster than Thread Checker about five times and slower than RaceStand within two times. For the efficiency of loop scheduling, Thread Analyzer is similar with Thread Checker and slower than RaceStand about twenty times. During each monitored execution, the tools consume memory space which depends on the number of the created threads, in an increasing order from Thread Analyzer, Thread Checker, to RaceStand.
스레드 동기화가 없는 OpenMP 디렉티브 프로그램을 위한 효율적인 경합검증 도구
하옥균(OkKyoon Ha),강문혜(MoonHye Kang),김영주(YoungJoo Kim),전용기(YongKi Jun) 한국정보과학회 2008 정보과학회 컴퓨팅의 실제 논문지 Vol.14 No.3
OpenMP 디렉티브 프로그램에서 경합은 의도하지 않은 비결정적인 수행결과를 초래하므로 디버깅을 위해서 반드시 탐지되어야 한다. 하지만 이러한 경합을 탐지하는 기존의 도구인 Intel Thread Checker는 경합의 존재를 검증하지 못하며 경합을 탐지하는 비용이 크므로 비실용적이다. 이러한 문제를 해결하기 위해서 본 연구팀은 프로그램의 특성 및 사용자 요구사항의 분석결과를 이용하여 경합을 검증하는 도구를 개발하였으나 스레드 동기화가 없는 모델에서는 최적화되지 못하였다. 본 논문에서는 이러한 선행연구의 결과를 확장하기 위해서 스레드 동기화가 없는 프로그램 모델을 위한 효율적 레이블링 기법과 경합탐지 프로토콜 기법을 적용한다. 합성프로그램을 이용하여 실험한 결과로는 스레드 동기화가 없는 프로그램 모델에서 경합검증 시간이 기존의 도구보다 평균 250배 이상 빠르고, 총 접근사건 수가 동일하면 최대병렬성이 증가하여도 경합검증 시간이 감소함을 보인다. Races must be detected for debugging OpenMP programs with directives, because they may cause unintended nondeterministic results of programs. Intel Thread Checker, an existing tool that can detects races, can not verify the existence of races and is often time-consuming and tends to require large space. To solve these problems, we developed a tool that verifies the existence of races using user requirements and analyzed model of programs. However, the tool does not have optimal performance in programs which have no synchronization for interthread coordination. This paper presents an optimal tool that applies the optimum labeling and protocol for program models without interthread coordination. For synthetic programs without interthread synchronization, the tool verifies races over 250 times faster than the previous tool on the average, even if the maximum parallelism increases in every case of which the number of total accesses are identical.
OpenMP 프로그램을 위한 효율적 병행성 정보의 생성기법
하옥균(Ok-Kyoon Ha),김선숙(Sun-Sook Kim),전용기(Yong-Kee Jun) 한국정보과학회 2010 한국정보과학회 학술발표논문집 Vol.37 No.1C
OpenMP 프로그램의 수행 중에 발생하는 자료 경합과 같은 병행성 오류는 디버깅을 위하여 반드시 탐지되어야만 한다. 그러나 이를 탐지하는 것은 어려운 일이다. 접근사건의 발생 후 관계를 기반으로하는 경합 탐지 기법은 프로그램의 수행 중에 발생하는 스레드의 병행성 정보를 식별하기위한 레이블을 생성하고, 생성된 스레드의 레이블을 기반으로 공유변수에 접근하는 사건을 접근역사를 통해 감시함으로써 경합을 탐지한다. 이러한 경합 탐지의 방법에서 레이블 생성을 위한 NR 레이블링 기법은 병행성 정보생성 시에 지역자료 구조를 사용함으로써 병목현상이 발생하지 않으며, 접근역사에 저장하는 레이블의 크기가 상수 값을 갖는 공간적 효율성을 제공한다. 또한 부모스레드의 정보역사를 정렬된 리스트 형태로 가져 병행성 정보 비교 시에 이진탐색이 가능하므로 시간적 효율성을 가지는 우수한 기법이다. 그러나, NR 레이블링은 레이블의 생성시에 부모스레드의 정보역사를 유지하기 위해서 내포 병렬성의 깊이에 의존하는 시간적 비용이 요구된다. 본 논문에서는 부모스레드의 정보역사 유지를 위해 상수적인 시간 및 공간적 복잡도를 갖도록 NR 레이블링 기법을 개선한다. 합성 프로그램을 이용하여 실험한 결과에서 개선된 기법은 최대 병렬성의 증가에 따라 레이블의 생성과 유지시 기존의 기법보다 평균 4.5배 빠르고, 레이블링을 위해 평균 3배 감소된 기억공간을 요구하며, 내포 병렬성에 의존적이지 않음을 보인다.