• 제목/요약/키워드: on-the-fly detection of first races

검색결과 9건 처리시간 0.02초

요약보고 방법에 의해 병목현상을 개선한 최초경합의 수행중 탐지기법 (On-the-fly Detection of the First Races for Reducing Bottlenecks by Summary Report Method)

  • 김정시;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제26권9호
    • /
    • pp.1042-1054
    • /
    • 1999
  • 공유메모리 병렬프로그램의 오류수정에서 경합의 탐지는 중요하다. 왜냐하면 경합은 잘못된 수행 결과를 초래할 뿐만 아니라, 의도하지 않은 프로그램의 비결정적인 수행을 유발하여 오류수정을 어렵게 하기 때문이다. 특히 최초경합의 탐지는 더욱 중요하다. 그 이유는 최초경합을 제거함으로써 나머지 경합들을 방지할 수도 있기 때문이다. 기존의 수행중 경합 탐지기법들은 접근별 보고방식을 기반으로 하는데, 이 기법들은 임의 공유변수에 대한 병행 쓰레드들의 모든 접근사건들을 검사하기 위해서 접근역사라는 유일한 공유정보를 이용하므로 탐지과정에 심각한 병목현상을 유발시킨다. 그러나, 최초경합 탐지를 위한 경우 이러한 병목현상은 크게 개선될 수 있다. 본 논문에서는, 각 접근사건 검사를 위해 각 쓰레드에 공유되지 않는 독립적인 접근역사를 별개로 두고, 경합을 보고하는 시점인 쓰레드 합류시점에서만 공유되는 접근역사를 이용하도록 함으로써 병목현상을 개선하여 최초경합을 탐지할 수 있는 새로운 수행중 탐지기법을 제안한다. 그러므로 본 기법은 최초경합을 보다 효율적으로 탐지할 수 있기 때문에 수행중 경합 탐지를 더욱 효율적이고 실용적으로 할 수 있다. Abstract Detecting races is important for debugging shared-memory parallel programs, because the races lead to unintended nondeterministic executions of the programs as well as erroneous result and then make debugging programs difficult. Especially, detecting the first races is more important. The reason is that the removal of the first races can make other races disappear. Most existing on-the-fly techniques to detect the races are based on per- access reporting method incurring the serious central bottleneck, because the techniques use unique shared information called access history for checking all accesses of concurrent threads to a shared variable. Such bottleneck, however, can be improved considerably in case of detecting first races. This paper presents a new on-the-fly technique which detects the first races with reduced bottleneck through checking each accesses with private access histories and finally reporting races with shared access histories. Therefore, this technique makes on-the-fly race detection more efficient and practical.

공유 메모리 병렬 프로그램의 수행중 오류 탐지를 위한 루프 분리 (Loop Splitting for On-the-fly Race Detection of Sharded-memory Parallel Programs)

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

내포병렬성을 가진 공유메모리 프로그램의 수행중 최초경합 탐지를 위한 효율적 기법 (Efficient On-the-fly Detection of First Races in Shared-Memory Programs with Nested Parallelism)

  • 하금숙;전용기;유기영
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제30권7_8호
    • /
    • pp.341-351
    • /
    • 2003
  • 내포병렬성을 가진 공유메모리 병렬프로그램의 효과적인 디버깅을 위해서, 프로그램의 비결정적 수행을 최초로 초래하는 경합을 효율적으로 탐지하는 것이 중요하다. 이러한 최초경합을 수행 중에 탐지하는 기존의 기법은 두 번의 프로그램 수행을 통해서 탐지하면서 각 공유변수마다 프로그램의 최대병렬성에 의존적인 크기의 접근역사를 유지하므로 비효율적인 수행시간과 기억공간을 요구한다. 본 논문에서는 두 번의 프로그램 수행을 통해서 수행 중에 각 공유변수에 대한 접근역사를 상수적 크기로 유지하므로, 각 접근사건의 수행 시에 상수적 복잡도의 사건비교 횟수와 기억 공간만을 요구하는 새로운 최초경합 탐지기법을 제안한다. 그러므로 본 기법은 내포병렬성을 가진 공유메모리 병렬프로그램의 디버깅을 위해서 보다 효율적이고 실용적인 경합탐지를 가능하게 한다

내포 병렬성을 가지는 OpenMP 프로그램의 최초 경합 탐지 (Detecting the First Race in OpenMP Program with Nested Parallelism)

  • 천병규;우종정;전용기
    • 정보처리학회논문지A
    • /
    • 제8A권3호
    • /
    • pp.253-260
    • /
    • 2001
  • 공유 변수를 가지는 병렬 프로그램의 오류 수정에서 경합 탐지는 중요하다. 왜냐하면, 경합은 프로그램의 비결정적인 수행을 유발하기 때문이다. 기존에 제시된 병렬 프로그램의 오류 수정 기법인 수행중 탐지 기법은 내포된 병렬 프로그램에서 최초 경합 탐지를 보장할 수 없다. 최초 경합을 수정하면 이후에 발생하는 경합들이 나타나지 않을 수 있으므로, 최초경합의 탐지는 중요하다. 본 논문에서는 내포 병렬 루프 프로그램을 대상으로 반복 수행을 통해서 최초경합을 탐지하는 기법을 제시한다. 반복 수행의 횟수는 최악의 경우에 프로그램의 내포 깊이 만큼이며 각 수행시의 효율성은 공유변수의 개수를 V, 프로그램의 최대 병렬성을 T라 할 때, 공간 복잡도 O(VT)와 시간 복잡도 O(T)를 가지므로 기존의 수행중 탐지 기법과 동일하다. 그러므로 본 기법은 효과적이고 실용적인 오류 수정을 가능하게 한다.

  • PDF

순서적 동기화를 포함하는 공유 메모리 병렬프로그램에서의 수행중 최초경합 탐지 기법 (On-the -fly Detection of the First Races for Shared-Memory Parallel Programs with Ordered Synchronization)

  • 박희동;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제26권8호
    • /
    • pp.884-894
    • /
    • 1999
  • 순서적 동기화 및 내포 병렬성을 포함하는 공유메모리 병렬 프로그램에서의 경합(race)은 프로그램 수행에서 원하지 않은 비결정성(nondeterminism)을 야기할 수 있기 때문에 반드시 탐지되어져야 한다. 특히 프로그램 수행에서 최초경합(first race)을 탐지하는 것은 중요한데, 그 이유는 이 경합을 제거하면 다른 경합이 나타나지 않을 수도 있기 때문이다. 본 논문에서는 결정적 공유메모리 병렬프로그램을 위한 2단계 수행중 (two-pass on-the-fly) 최초경합 탐지 기법을 제시하며, 이것은 공유메모리 병렬 프로그램의 특정 수행에서 "최초로 발생되는" 경합들을 탐지하는 기법이다. 그리고 HPF 컴파일러를 이용하여 본 탐지 프로토콜을 공인된 벤치마크 프로그램에 적용하여, 병렬 프로그램 디버깅 시 고려하여야 할 파라미터들에 대한 실험으로부터 본 기법의 효율성을 보였다.Abstract Detecting races is important in debugging shared-memory parallel programs which have ordered synchronization and nested parallelism, because the races result in unintended non- deterministic executions of the programs. The first races are important in debugging, because the removal of such races may make other races disappear. It is even possible that all races reported would disappear once the first races are removed. This paper presents a new two-pass on-the-fly algorithm to detect the first races in such parallel programs. The algorithm reported in this paper is an on-the-fly algorithm that detects the races that "occur first" in a particular execution of shared-memory parallel programs. The experiment has accomplished, where two certified benchmark programs which can be executed under High Performance Fortran environments to get some parameters which improve debugging performance with our algorithm. with our algorithm.

An Improving Method of Restructuring Parallel Programs for Data Race Detection

  • Ha, Keum-Sook;Lee, Sung woo;Yoo, Kee-Young
    • 대한전자공학회:학술대회논문집
    • /
    • 대한전자공학회 2000년도 ITC-CSCC -2
    • /
    • pp.715-718
    • /
    • 2000
  • Although shared memory parallel programs are designed to be deterministic both in their final results and intermediate states, the races that occur when different processes access a common memory location in an order not guaranteed by synchronization could result in unintended non-deterministic executions of the program. So, Detecting races, particularly first data races, is important for debugging explicit shared memory parallel programs. It is possible that all data races reported by other on-the-fly algorithms would disappear once the first races were removed. To detect races parallel programs with nested loops and inter-thread coordination, it must guarantee the order of synchronization operations in an execution instance. In this paper, we propose an improved restructuring method that guarantee ordering execution instance and preserve the semantics of original program. This method requires O(np) time and (s + up) space, where n is the number of total operations, s is the number of synchronization operations and p is the number of parallelism in the execution. Also, this method makes on-the-fly detection of parallel program with nested loops and inter-thread coordination more easily in space and time complexity.

  • PDF

메시지 전달 프로그램에서의 수행 중 경합탐지 (On-the-fly Detection of Race Conditions in Message-Passing Programs)

  • 박미영;강문혜;전용기;박혁로
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제34권7호
    • /
    • pp.267-275
    • /
    • 2007
  • 메시지전달 프로그램에서 발생하는 메시지경합은 프로그램의 비결정적 수행결과를 초래하므로 효과적인 디버깅을 위하여 탐지되어야 한다. 특히 각 프로세스에서 가장 먼저 발생하는 최초경합은 동일한 프로세스 내에서 다른 경합의 발생을 초래할 수 있으므로, 효과적인 경합탐지를 위해서 우선적으로 탐지되어야 한다. 이러한 경합을 탐지하기 위한 기존의 기법들은 적어도 프로그램을 두 번 수행하거나, 메시지들의 수에 비례한 크기의 추적 파일의 분석을 요구한다. 본 논문은 추적파일을 생성하지 않으면서 단 한번의 프로그램 수행으로 각 프로세스에서 발생하는 최초경합을 탐지하는 기법을 제시하고, 실험을 통해서 본 기법이 최초경합을 정확히 탐지함을 보인다.

OpenMP 디렉티브 프로그램의 최초경합 탐지를 위한 도구 (A Detection Tool of First Races in OpenMP Programs with Directives)

  • 강문혜;하옥균;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제37권1호
    • /
    • pp.1-7
    • /
    • 2010
  • OpenMP 디렉티브 프로그램의 디버깅을 위해서 비결정적인 수행결과를 초래하는 경합을 탐지 하는 것은 중요하다. 특히, 프로그램 수행에서 가장 먼저 발생하는 최초경합은 이후에 발생하는 경합에 영향을 줄 수 있으므로 효과적인 디버깅을 위해서 반드시 탐지되어야 한다. 그러나 기존의 경합탐지 도구들은 최초경합의 탐지를 보장하지 못한다. 본 논문에서는 내포병렬성을 포함한 프로그램을 두 번의 수행으로만 프로그램의 수행 중에 최초경합을 탐지하는 도구를 제시한다. 본 도구의 정당성을 합성프로그램을 이용하여 보이고, 기존 경합탐지 도구와 기능성을 비교한다.

동기화를 가진 공유메모리 병렬 프로그램의 최초경합을 위한 효율적인 수행중 탐지 기법 (Scalable On-the-fly Detection of the First Races in Parallel Programs with Synchronization)

  • 이승렬;김영주;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 1999년도 가을 학술발표논문집 Vol.26 No.2 (3)
    • /
    • pp.774-776
    • /
    • 1999
  • 공유메모리 병렬프로그램에서의 경합은 프로그램 수행에서 원하지 않는 비결정성을 야기할 수 있기 때문에 반드시 탐지되어져야 한다. 기존의 탐지 기법들은 경합을 탐지하기 위해서 공유 자료구조를 사용하므로 심각한 병목현상을 일으킨다. 본 논문에서는 동기화가 있는 프로그램에서 병목현상을 줄임으로써 탐지의 효율성을 높임과 동시에, 최초로 발생한 경합을 탐지하기 위해서 감시대상이 되는 접근사건들의 수를 감소시키는 기법을 제시한다. 이러한 목적을 위해서 사건선택 알고리즘과 실제적인 실험결과를 통해 본 기법의 효율성을 보인다.

  • PDF