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

검색결과 446건 처리시간 0.03초

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

  • 배수연;박미영;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (1)
    • /
    • pp.313-315
    • /
    • 2002
  • 메시지전달 프로그램에서 가장 먼저 발생하는 경합인 최초경합은 다른 경합에 영향을 주므로 반드시 탐지되어야 한다. 기존의 최초경합 탐지기법은 첫 번째 수행에서 각 프로세스에서 처음으로 발생하는 경합의 위치를 탐지하고, 두 번째 수행에서는 그 위치에서 해당 프로세스를 정지하여 경합하는 메시지를 보고한다. 그러나 이 기법은 프로세스를 중단하여 다른 경합에 영향을 주는 메시지의 전송을 단절시키므로 탐지된 경합들간의 영향관계를 알 수 없게 한다. 본 논문에서는 기존 기법의 두 번째 수행이 종료될 때까지 각 프로세스에서 처음으로 발생하는 경합들간의 영향관계를 추적화일에 기록하며, 수행이 종료된 후에 이 정보를 이용하여 경합들간의 영향관계와 상호 영향을 미치는 경합들을 추상적으로 시각화하는 기법을 제안한다. 이 기법은 경합들의 집합을 추상적으로나 구체적으로 시각화함으로써 경합들간의 영향관계를 확장적이고 직관적으로 알수 있게 한다. 따라서 본 기법은 최초경합을 수정함으로써 영향 받은 경합들을 사라지게 한 수 있으므로 메시지전달 프로그램의 효과적인 디버깅을 가능하게 한다.

  • PDF

OpenMP프로그램을 위한 경합디버깅 환경의 자동생성 (Automatic Generation of Race Debugging Environment for OpenMP Programs)

  • 강문혜;김영주;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (A)
    • /
    • pp.601-603
    • /
    • 2002
  • 공유메모리 병렬프로그램에서 경합은 프로그램의 비결정적인 수행을 초래하므로 디버깅을 위해서 반드시 탐지되어져야 한다. 경합을 수행 중에 디버깅하기 위한 기존의 도구들은 경합탐지 엔진과 시각화 엔진으로 구성된 경합디버깅 엔진을 특정 프로그램 모델에 의존적으로 적용하여 경합디버깅 환경을 구성한다. 이러한 도구들은 프로그램 모델의 변경 시에 경합디버깅 환경이 최적의 경합 디버깅 엔진으로 구성되지 못한다는 문제점이 있다. 본 논문에서는 OpenMP 병렬프로그랭에서 각 프로그램 모델에 따라 효과성, 효율성, 확장성 등을 고려한 경합탐지 엔진과 추상성을 고려한 시각화 엔진으로 경합디버깅 환경을 자동으로 생성하는 도구를 제안한다. 이 도구는 디버깅 대상이 되는 프로그램의 모델에 최적인 경합디버깅 엔진을 적용하므로 경합탐지 목적에 부합하는 최적의 성능과 효과적인 시각화를 제공한다. 따라서, 본 도구는 디버깅 환경을 생성하기 위한 부담을 줄여서 효과적인 디버깅을 할 수 있게 한다.

  • PDF

무인기 비행제어 소프트웨어를 위한 경합탐지 사례연구 (A Case Study on Detection of Races in Flight Control Software of Unmanned Aerial Vehicle)

  • 이병귀;강문혜;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(B)
    • /
    • pp.79-82
    • /
    • 2011
  • 무인기용 비행제어 소프트웨어는 인터럽트 핸들러에서 비결정적인 수행결과를 조래하는 경합이 발생될 수 있다. 이러한 유형의 경합을 탐지하기 위한 기존 방법은 원시 프로그램의 인터럽트 핸들러를 스레드로 변환하여 정적 경합탐지 도구를 사용하므로 프로그램 수행 시 실제 발생하지 않는 부정확한 경합(false positives)를 보고한다. 본 연구는 부정확한 경합 보고를 줄이기 위해서 원시 프로그램을 POSIX 실시간 스레브 프로그램으로 변환하고 Lockset기반 탐지기법 의해서 탐지된 공유변수를 대상으로 Happens-before 관계 분석기법을 이용하여 경합을 탐지하는 동적 경합탐지 도구를 사용한다. 제시된 방법의 실험을 위해서 Knob Assembly에 탑재되는 비행제어 소프트웨어를 대상으로 정적 경합탐지 도구와 동적 경합탐지 도구의 경합탐지 결과를 비교 분석한다.

메시지전달 프로그램의 영향받지 않은 경합조건 탐지를 위한 경합상태 전이기법 (Race State Transition for Detecting Unaffected Race Conditions in Message-Passing Programs)

  • 박미영;강현석;전용기
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제33권8호
    • /
    • pp.495-504
    • /
    • 2006
  • 메시지전달 프로그램에서 발생하는 임의의 메시지경합은 다른 경합의 발생에 영향을 줄 수 있으므로, 효과적인 디버깅을 위해서 영향받지 않은 경합을 탐지하는 것이 중요하다. 이러한 경합을 효율적으로 탐지하기 위한 기존의 기법은 각 프로세스에서 가장 먼저 발생하는 경합의 수신사건에서 수행을 중단하여 경합하는 메시지들을 탐지한다. 그러나 프로세스의 수행 중단은 경합들간에 존재하는 영향관계의 단절을 초래하므로, 탐지된 모든 경합이 영향받지 않은 경합임을 보장하지 못한다. 본 논문은 탐지된 경합의 상태를 프로그램의 수행 종료까지 수신하는 메시지들의 영향 여부에 따라 전이하는 새로운 기법을 제안한다. 본 기법은 경합을 탐지하고 그들간의 영향관계를 프로그램 종료까지 유지하므로, 영향받지 않은 경합만을 효율적으로 탐지한다.

병렬 프로그램의 메시지경합 탐지기법에 대한 시험도구 (A Testbed for Message Race Detection Techniques of Parallel Programs)

  • 배수연;박미영;전용기
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (A)
    • /
    • pp.598-600
    • /
    • 2002
  • 메시지전달 병렬프로그램에서는 메시지들의 경합으로 인해서 의도하지 않은 다결정적인 수행결과가 초래되므로, 메시지들의 경합을 탐지하는 것은 중요하다. 이전 연구에서 경합을 탐지하는 다양한 기법들을 제안하였으나, 각 탐지기법의 기능을 검증할 수 있는 방법은 없다. 이는 기존 경합 탐지기법과 새롭게 개발되는 경합 탐지기법의 기능을 검증하기 어렵게 한다. 본 연구는 기존의 경합 탐지기법들을 구현하여 각 기법들의 탐지결과를 비교함으로써 그 기능을 검증할 수 있게 하는 시험도구를 제안한다. 본 시험도구의 사용자는 기존의 경합 탐지기법과 새로운 탐지기법을 선택하여 적용할 수 있고, 탐지된 결과에 대한 시각화 정보의 비교를 통해서 탐지기법들의 기능을 검증할 수 있다. 그러므로 본 도구는 새로운 경합 탐지기법의 개발을 위한 효과적인 기능시험을 가능하게 한다.

  • PDF

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

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

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

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

요약보고 방법에 의해 병목현상을 개선한 최초경합의 수행중 탐지기법 (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.

리눅스 클러스터 시스템을 위한 병렬프로그램의 메시지경합 탐지 도구 (A Detection Tool of Message Races in Parallel Programs for Linux Cluster Systems)

  • 박소희;김영주;박미영;김성대;이승렬;전용기
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2000년도 추계학술발표논문집 (상)
    • /
    • pp.645-648
    • /
    • 2000
  • 병렬 오류인 메시지경합을 가진 메시지전달 프로그램은 비결정적인 수행결과를 보이므로, 이를 탐지하고 수정하는 것이 어렵다. 기존의 메시지경합 탐지 도구들은 메시지경합에 관련된 간접적인 정보를 제공하는 수준이며, 메시지경합의 원인을 자동으로 탐지하지 못한다. 그리고 탐지과정 중에 부가적인 메시지전달 작업이 발생하며, 대상 프로그램을 수정해야 하는 부담이 있다. 본 논문에서 제안된 탐지 도구는 리눅스 클러스터 시스템을 위한 병렬 프로그램의 메시지경합을 자동으로 탐지하여 직접적인 경합 정보를 제공한다. 그리고 탐지 엔진 부분을 리눅스 커널에 설치함으로써 경합 탐지를 위한 부가적인 메시지전달의 필요성을 제거하고, 대상 프로그램의 수정없이 경합을 탐지할 수 있는 투명성을 제공한다.

  • PDF

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

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

  • PDF