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

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

동기화를 가진 공유메모리 병렬 프로그램의 최초경합을 위한 효율적인 수행중 탐지 기법 (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

OpenMP 프로그램을 위한 경합탐지 도구의 분석 (An Analysis of Race Detection Tool for OpenMP Programs)

  • 김영주;강문혜;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2003년도 가을 학술발표논문집 Vol.30 No.2 (1)
    • /
    • pp.478-480
    • /
    • 2003
  • 공유메모리 기반의 OpenMP 프로그램에서 발생하는 경합은 의도하지 않은 비결정적 수행 결과를 초래하므로 효과적으로 경합을 탐지하는 도구가 필요하다. 본 연구는 OpenMP 프로그램의 경합탐지를 위한 Intel 사의 Thread Checker를 내포병렬성의 여부와 접근사건들의 분포 형태를 기준으로 개발한 커널프로그램 집합을 이용하여 분석한 결과로서, 스레드들을 순서적으로 수행하면서 내포된 스레드를 부모 스레드와 동일한 스레드로 간주하고 적어도 하나의 읽기와 쓰기 접근사건들을 유지하면서 수행중에 경합을 탐지하는 도구임을 보인다. 이 도구는 접근사건의 발생 시에 이전 접근사건들과의 경합 여부를 검사한 후에 그 접근사건의 유지 여부를 결정하므로, 논리적 병행성 관계를 반영하지 못하는 내포된 스레드가 존재하지 않으면 경합의 존재를 검증한다.

  • PDF

메시지전달 프로그램의 디버깅을 위한 경합의 확장적 시각화 (Scalable Race Visualization for Debugging Message-Passing Programs)

  • 박미영;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제32권7호
    • /
    • pp.341-348
    • /
    • 2005
  • 메시지전달 프로그램에서 발생하는 임의의 메시지경합은 다른 경합의 발생에 영향을 줄 수 있으므로, 효과적인 디버깅을 위해서 영향받지 않은 경합을 탐지하는 것이 중요하다. 이러한 경합을 효율적으로 탐지하기 위한 기존의 기법은 각 프로세스에서 가장 먼저 발생하는 경차의 수신사건에서 수행을 중단하여 경합하는 메시지들을 탐지한다. 그러나 프로세스의 수행 중단은 경합들간에 존재하는 영향관계의 단절을 초래하므로, 탐지된 모든 경합이 영향받지 않은 경합임을 보장하지 못한다. 본 논문은 기존의 두 번째 수행을 위한 알고리즘에 각 프로세스에서 가장 먼저 발생한 경합의 영향관계 정보를 생성하는 알고리즘을 추가하여, 탐지된 경차들간의 관계를 효과적으로 시각화하는 기법을 제안한다. 이러한 시각화는 각 프로세스에서 최초로 발생한 경합들간에 형성된 영향관계를 보임으로써 영향받지 않은 경합을 시각적으로 탐지하는데 효과적이다.

MPIRace-Check V 1.0: MPI 병렬 프로그램의 메시지경합 탐지를 위한 도구 (MPIRace-Check V 1.0: A Tool for Detecting Message Races in MPI Parallel Programs)

  • 박미영;정상화
    • 정보처리학회논문지A
    • /
    • 제15A권2호
    • /
    • pp.87-94
    • /
    • 2008
  • 메시지전달 프로그램에서 발생하는 메시지경합은 프로그램의 비결정적 수행결과를 초래하므로 효과적인 디버깅을 위하여 탐지되어야 한다. 메시지경합을 탐지하는 기존의 도구는 임의의 메시지를 수신하는 모든 사건에서 경합이 발생한다고 보고한다. 그러나 메시지들이 전송되는 논리적인 통신채널이 서로 다르면 임의의 메시지를 수신하는 사건에서 경합이 발생하지 않을 수도 있으므로, 기존 도구의 부정확한 탐지정보는 프로그래머의 디버깅 작업을 더욱 어렵게 한다. 본 논문에서는 메시지 송수신 사건간의 병행성과 메시지들의 논리적 통신채널을 검사하여 보다 정확하게 메시지경합을 탐지하는 도구인 MPIRace-Check를 제안하다. 본 도구는 vector timestamp를 이용하여 프로그램 수행 중에 메시지를 전송하는 송수신 사건들간의 병행성을 검사하고, 메시지 부가정보를 이용하여 메시지들의 논리적인 통신채널이 동일한지를 검사하여 메시지경합을 탐지한다. 실험에서는 MPI_RTED와 벤치마크 프로그램을 이용하여 본 도구가 프로그램 수행 중에 효율적으로 모든 경합을 정확하게 탐지함을 보인다. 따라서 본 도구는 메시지경합을 정확하게 탐지하여 프로그래머의 디버깅 부담을 줄이고 신뢰성이 있는 병렬 프로그램의 개발을 가능하게 한다.

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

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

GPGPU 프로그램의 자료경합 탐지기법을 위한 벤치마크 모음 (A Benchmark Suite for Data Race Detection Technique in GPGPU Progrmas)

  • 이건표;최으뜸;전용기
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2019년도 제59차 동계학술대회논문집 27권1호
    • /
    • pp.7-8
    • /
    • 2019
  • 자료경합은 두 개 이상의 스레드가 같은 공유메모리에 적절한 동기화 없이 접근하고, 적어도 한 개의 접근사건이 쓰기일 때 발생할 수 있는 동시성 오류이다. 자료경합은 프로그래머가 의도하지 않은 비결정적인 수행결과를 초래하여, 항공기 소프트웨어와 같은 고신뢰성이 요구되는 프로그램에서 치명적인 오류를 발생시켜 인적 물적 손해로 이어질 수 있다. 자료경합 탐지기법은 이러한 문제를 사전에 탐지하여 수정하는데 사용되어진다. 하지만 GPGPU 프로그램에서의 자료경합은 CPU 병행프로그램에서보다 복잡한 실행구조를 가지고 있어 스레드 및 메모리 계층, 스케줄링, 동기화 기법 등의 많은 변수가 존재한다. 이로 인해 실세계 프로그램에 자료경합 탐지기법을 적용하여 검증 시 이러한 변수들을 반영하여 실험하는데 많은 노력이 소요된다. 본 논문은 실세계 프로그램에서의 자료경합을 대표하는 4가지 패턴의 합성프로그램으로 이루어지고 실행 시 스레드 및 메모리 계층, 스레드 구조, 메모리 사용량 및 동기화 방안을 지정할 수 있는 벤치마크 모음을 제시한다.

  • PDF

내부적 비결정성을 가진 공유 메모리 프로그램의 잠재적 경합 탐지 (Potential Races Detection in Shared-Memory Programs with Internal Nondeterminism)

  • 정민섭;김영주;하옥균;전용기
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2008년도 춘계학술발표대회
    • /
    • pp.553-556
    • /
    • 2008
  • 임계구역을 가진 공유 메모리 기반의 병렬 프로그램에서 발생하는 경합은 프로그래머가 의도하지 않은 비결정적인 수행 결과를 초래하므로 반드시 디버깅해야 한다. 이러한 경합을 수행 중에 탐지하는 기존의 기법들은 임계구역의 실행순서에 의해서 발생하는 내부적 비결정성이 존재하지 않는 프로그램에 대해서만 경합의 존재를 검증할 수 있다. 본 논문에서는 내부적 비결정성을 가진 프로그램에 존재하는 비결정적 접근사건을 정적으로 분석하고, 이 정보를 이용하여 수행 중에 경합을 탐지함으로써 잠재되어 있는 경합까지 탐지할 수 있는 도구를 제안한다. 제안한 도구는 비결정성이 포함된 합성프로그램과 공인된 OpenMP 벤치마크 프로그램인 Microbenchmark를 이용하여 경합 검증이 가능함을 보인다.

내포 병렬성을 가지는 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

스레드 동기화가 없는 OpenMP 디렉티브 프로그램을 위한 효율적인 경합검증 도구 (An Efficient Tool for Verifying Races in OpenMP Directive Programs without Interthread Synchronization)

  • 하옥균;강문혜;김영주;전용기
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제14권3호
    • /
    • pp.301-305
    • /
    • 2008
  • OpenMP 디렉티브 프로그램에서 경합은 의도하지 않은 비결정적인 수행결과를 초래하므로 디버깅을 위해서 반드시 탐지되어야 한다. 하지만 이러한 경합을 탐지하는 기존의 도구인 Intel Thread Checker는 경합의 존재를 검증하지 못하며 경합을 탐지하는 비용이 크므로 비실용적이다. 이러한 문제를 해결하기 위해서 본 연구팀은 프로그램의 특성 및 사용자 요구사항의 분석결과를 이용하여 경합을 검증하는 도구를 개발하였으나 스레드 동기화가 없는 모델에서는 최적화되지 못하였다. 본 논문에서는 이러한 선행연구의 결과를 확장하기 위해서 스레드 동기화가 없는 프로그램 모델을 위한 효율적 레이블링 기법과 경합탐지 프로토콜 기법을 적용한다. 합성프로그램을 이용하여 실험한 결과로는 스레드 동기화가 없는 프로그램 모델에서 경합검증 시간이 기존의 도구보다 평균 250배 이상 빠르고, 총 접근사건 수가 동일하면 최대병렬성이 증가하여도 경합검증 시간이 감소함을 보인다.

병행 Java 프로그램의 확장적 경합탐지를 위한 JDI 기반의 투명한 감시도구 (A Transparent Monitor Based on JDI for Scalable Race Detection of Concurrent Java Programs)

  • 김영주;구인본;배병진;전용기
    • 정보처리학회논문지A
    • /
    • 제16A권2호
    • /
    • pp.55-60
    • /
    • 2009
  • 병행 Java 프로그램의 경합은 프로그램의 비결정성을 초래하므로 반드시 탐지되어야 한다. 이러한 경합을 수행 중에 탐지하기 위해서는 스레드에 대한 수행양상과 모든 접근사건들을 감시할 수 있어야 한다. 기존의 경합탐지 기법들은 프로그램의 수행중에 기록된 파일들을 분석하거나 대상 프로그램을 수정하여 감시하므로 스레드나 모든 접근사건들에 대한 감시가 현실적으로 어렵다. 본 연구에서는 JDI(Java Debug Interface)를 이용하여 스레드에 대한 수행양상과 모든 접근사건을 감시하여 확장적 경합탐지를 할 수 있는 투명한 감시도구를 제안한다. 여기서 JDI는 JDPA(Java Platform Debugger Architecture)에서 제공하는 상위 레벨의 100% 순수 자바 인터페이스로써 자바프로그램의 수행중에 특정 정보를 제공할 수 있다. 그리고 제안된 도구의 투명성을 입증하기 위해서 벤치마크 프로그램으로 실험한 결과, 모든 스레드와 접근사건들을 프로그램 수정없이 감시할 수 있었고 프로그램의 감시시간이 20배 이상 증가되었다.