• 제목/요약/키워드: 경합탐지

검색결과 40건 처리시간 0.027초

OpenMP프로그램의 디버깅을 위한 효과적 경합 시각화 (Effective Race Visualization for Debugging OpenMP Programs)

  • 김금희;김영주;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 가을 학술발표논문집 Vol.31 No.2 (1)
    • /
    • pp.13-15
    • /
    • 2004
  • OpenMP 프로그램에서 수행되는 스레드들간에 적절한 동기화 없이 적어도 하나의 쓰기 사건으로 동일한 공유변수에 접근하는 경우에 발생되는 오류인 경합은 비결정적인 수행결과를 초래하므로 디버깅을 위해서 반드시 탐지되어야 한다. 이러한 경합탐지를 위한 기존의 디버깅 도구는 프로그램의 복잡한 수행구조 및 디버깅 정보를 시각화하기 위한 공간이 제한적이므로 효과적인 시각화를 제공하지 못한다. 본 논문에서는 경합 시각화를 위해서 3차원적 시각화와 스레드 및 이벤트 둥의 추상화 기능으로 공간적 제약성을 해결하는 도구를 제안한다. 제안된 도구는 추상적 시각화 정보를 제공하므로 프로그램의 이해가 용이하고 효과적인 경합디버깅 환경을 제공한다.

  • PDF

내부적 비결정성을 가진 공유 메모리 병렬 프로그램에서 잠재적 경합탐지를 위한 전처리기 (A Preprocessor for Detecting Potential Races in Shared Memory Parallel Programs with Internal Nondeterminism)

  • 김영주;정민섭;전용기
    • 정보처리학회논문지A
    • /
    • 제17A권1호
    • /
    • pp.9-18
    • /
    • 2010
  • OpenMP와 같은 공유 메모리 기반의 병렬 프로그램에서 발생하는 경합은 프로그래머가 의도하지 않은 비결정적인 수행 결과를 초래하므로 반드시 탐지되어야한다. 이러한 경합의 존재를 수행 중에 검증하는 기존의 기법들은 내부적 비결정성이 존재하지 않는 프로그램에 대해서만 가능하다. 하지만 이 조건을 만족하지 못한다면 경합검증을 위해서 각 임계구역마다 적어도 N! 만큼의 프로그램 수행이 필요하다. 여기서 N은 탐지 대상 프로그램이 가진 최대 병렬성을 의미한다. 본 논문에서는 프로그램 슬라이싱을 이용하여 내부적 비결정성을 가진 프로그램에 존재하는 비결정적 접근사건을 정적으로 분석하고, 이 정보를 이용하여 한번의 수행으로 실제 경합뿐만 아니라 잠재적 경합까지 탐지할 수 있는 경합 전처리기를 제안한다. 제안된 도구는 OpenMP 병렬 프로그램에서 발생할 수 있는 비결정적 접근사건들에 대해서 항상 결정적으로 감시할 수 있으므로 임계구역 가진 프로그램 모델에 적용할 수 있는 어떠한 경합탐지 프로토콜을 사용하더라도 경합 검증이 가능하다. 본 도구의 실험적 증명을 위해서 비결정성이 포함된 합성 프로그램, 공인된 벤치마크 프로그램인 OpenMP Microbenchmark, NAS Parallel Benchmark, 그리고 OpenMP 응용 프로그램을 이용하여 제안된 도구의 정확성을 보인다.

공유메모리 프로그램의 최초경합 탐지를 위한 접근역사 분석 (Analyzing Access Histories for Detecting First Races in Shared-memory Programs)

  • 강문혜;김영주;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제31권1_2호
    • /
    • pp.41-50
    • /
    • 2004
  • 공유메모리 병렬프로그램의 디버깅을 위해서 비결정적인 수행결과를 초래하는 경합을 탐지하는 것은 중요하다. 특히, 프로그램 수행에서 가장 먼저 발생하는 최초경합은 이후에 발생하는 경합에 영향을 줄 수 있으므로 반드시 탐지되어야 한다. 이러한 최초경합을 탐지하기 위해 최초경합에 참여할 가능성이 있는 후보사건들을 수행 중에 수집하는 기존의 기법은 접근사건들을 감시하여 후보사건들을 수집하고, 그들간의 병행성 관계만을 검사하여 경합을 보고한다. 그러나 이렇게 보고된 경합은 경차들간의 영향관계가 고려되지 않으므로 최초경합임을 보장하지 못한다 본 논문에서는 내포병렬성을 가진 병렬프로그램의 수행 중에 수집된 후보사건들을 프로그램 수행 후에 각 내포수준에서 분석하여 영향 받지 않은 경합만을 보고하는 기법을 제안한다. 제안된 기법은 임의의 내포수준까지 분석하여 보고된 최초경합이 그 내포수준 까지는 영향 받지 않은 경합임을 보장하므로, 상위 내포수준에 대한 재분석이 필요 없는 효율적인 최초경합 탐지기법이다. 본 기법은 내포병렬성에서 후보사건들만 수집되면 최초경합을 탐지할 수 있으므로 기존의 기법에 비해서 현실적이고 효과적인 디버깅을 가능하게 한다.

OpenMP 디렉티브 프로그램을 위한 자료경합 검증도구 (A Verification Tool of Data Races in Programs with OpenMP Directives)

  • 김영주;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제34권9호
    • /
    • pp.395-406
    • /
    • 2007
  • OpenMP 디렉티브를 가진 프로그램에서 경합은 프로그램의 의도하지 않은 비결정적 수행결과를 초래하기 때문에 디버깅을 위해서 반드시 탐지되어야 한다. 하지만 이를 위한 기존의 경합탐지 도구인 Intel사의 Thread Checker는 경합의 존재를 검증하지 못하고 경합을 탐지하는 비용이 크므로 비실용적이다. 본 논문에서는 OpenMP 프로그램의 특성 및 사용자 요구사항의 분석결과를 이용하여 최적의 기능과 성능으로 경합을 검증하는 웹 기반 도구를 제시한다. 그리고 합성 프로그램을 이용하여 실험한 결과로서 Thread Checker는 경합의 존재를 검증하지 못하고 경합탐지 시에 소요되는 시간의 증가비율은 총 접근 사건수 n에 대해서 $O(n^2)$이지만 제안된 도구는 경합의 존재를 검증하고 소요되는 시간의 증가비율은 O(n)이므로 기능 및 성능적인 측면에서 실용적인 도구이다.

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

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

양안경합의 감각적 상충 경험에 기초한 시각적 변화탐지 경험에 대한 이해 (Understanding the Experience of Visual Change Detection Based on the Experience of a Sensory Conflict Evoked by a Binocular Rivalry)

  • 신영선;현주석
    • 감성과학
    • /
    • 제16권3호
    • /
    • pp.341-350
    • /
    • 2013
  • 본 연구는 시야에 발생하는 현저한 시각적 변화에 대한 탐지 경험과 양안경합이 초래한 감각적 상충에 대한 탐지 경험을 상호 비교함으로써 변화탐지 경험의 감각적 특성에 대한 이해를 시도하였다. 이를 위해, 실험 1에서는 2, 4, 6개의 항목을 단기파지 한 후 뒤이어 제시되는 검사항목과의 비교를 요구하는 변화탐지 과제가 사용되었다. 전체 변화탐지 시행 중 시각적 변화가 발생한 일부 시행에서는 검사항목 중 변화를 야기하는 한 항목에 양쪽 단안 분리 입력을 통해 서로 다른 항목이 제시되는 양안경합을 처치하였다. 실험 결과, 양안 경합이 처치되지 않은 경우 항목 개수 증가에 따른 변화탐지 정확도의 분명한 감소가 관찰된 반면 양안 경합이 처치된 경우 이러한 항목 개수 효과는 관찰되지 않았다. 실험 2에서는 항목 개수를 4, 8, 16개로 달리하는 탐색 배열 중 양안경합이 초래하는 감각적 상충을 보유한 표적 항목에 대한 탐색 효율성을 측정한 결과, 양안경합 처치 유무에 관계없이 탐색이 매우 효율적인 것이 관찰되었다. 실험 1과 2의 결과는 시야의 현저한 변화에 대한 탐지 경험은 기억부담의 증감에 따라 경우에 따라서는 양안경합 자극이 초래하는 감각적 상충에 대한 탐지 경험과 유사할 가능성을 시사한다.

  • PDF

OpenMP 디렉티브 병렬프로그램에서의 동적 자료경합 탐지를 위한 감시 필터링 기술의 실험적 비교 (An Empirical Comparison of Monitoring Filtering Techniques for Dynamic Data Race Detection in Parallel Programs with OpenMP Directives)

  • 조아라;하옥균
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2016년도 제54차 하계학술대회논문집 24권2호
    • /
    • pp.1-2
    • /
    • 2016
  • 다중 스레드 기반 병렬 프로그램에서의 자료경합 탐지는 동시에 수행되는 스레드 간의 비결정적인 상호작용 때문에 탐지하기 어려운 것으로 잘 알려져 있다. 동적 분석기술을 사용하여 자료경합을 탐지할 경우 프로그램 수행의 감시와 충돌하는 모든 메모리 연산의 분석을 위해 추가적인 오버헤드가 발생한다는 단점이 있다. 이러한 동적 분석의 추가적인 오버헤드를 줄이는 방법으로 감시 필터링 기술이 소개되고 있으며, 본 논문에서는 동적 자료경합 탐지를 위한 감시 필터링 기술 중 OpenMP 디렉티브 병렬 프로그램에 적용 가능한 두 기술을 대상으로 실용성과 효율성을 실험적으로 비교한다.

  • 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.

ANSI-C 동시 프로그램 내 경합 상황 탐지 (Detecting Race Conditions In ANSI-C concurrent program)

  • 안소진;심재환;남원홍;최진영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(D)
    • /
    • pp.306-307
    • /
    • 2011
  • 경합 상황, 교착 상태 등과 같은 동시 프로그램의 오류는 기존의 순차 프로그램에 적용되는 테스팅 방법으로는 탐지 및 재현이 힘들다. 하이젠버그라 불리는 이러한 오류는 프로그램의 안정성 및 신뢰성을 떨어뜨리는 원인이 될 수 있으므로 반드시 탐지하고 재현해야 한다. 본 논문은 SAT-solver와 경합 상태 탐지를 위한 Happens-before 알고리즘을 사용하여 ANSI-C 프로그램 내 존재하는 이러한 오류를 탐지하고 재현할 수 있는 방법을 제안한다.