• 제목/요약/키워드: data race detection

검색결과 20건 처리시간 0.025초

Experimental Performance Comparison of Dynamic Data Race Detection Techniques

  • Yu, Misun;Park, Seung-Min;Chun, Ingeol;Bae, Doo-Hwan
    • ETRI Journal
    • /
    • 제39권1호
    • /
    • pp.124-134
    • /
    • 2017
  • Data races are one of the most difficult types of bugs in concurrent multithreaded systems. It requires significant time and cost to accurately detect bugs in complex large-scale programs. Although many race detection techniques have been proposed by various researchers, none of them are effective in all aspects. In this paper, we compare the performance of five recent dynamic race detection techniques: FastTrack, Acculock, Multilock-HB, SimpleLock+, and causally precedes (CP) detection. We experimentally demonstrate the strengths and weaknesses of these dynamic race detection techniques in terms of their detection capability, running time, and runtime overhead using 20 benchmark programs with different characteristics. The comparison results show that the detection capability of CP detection does not differ from that of FastTrack, and that SimpleLock+ generates the lowest overhead among the hybrid detection techniques (Acculock, SimpleLock+, and Multilock-HB) for all benchmark programs. SimpleLock+ is 1.2 times slower than FastTrack on average, but misses one true data race reported from Mutilock-HB on the large-scale benchmark programs.

A Study on Filtering Techniques for Dynamic Analysis of Data Races in Multi-threaded Programs

  • Ha, Ok-Kyoon;Yoo, Hongseok
    • 한국컴퓨터정보학회논문지
    • /
    • 제22권11호
    • /
    • pp.1-7
    • /
    • 2017
  • In this paper, we introduce three monitoring filtering techniques which reduce the overheads of dynamic data race detection. It is well known that detecting data races dynamically in multi-threaded programs is quite hard and troublesome task, because the dynamic detection techniques need to monitor all execution of a multi-threaded program and to analyse every conflicting memory and thread operations in the program. Thus, the main drawback of the dynamic analysis for detecting data races is the heavy additional time and space overheads for running the program. For the practicality, we also empirically compare the efficiency of three monitoring filtering techniques. The results using OpenMP benchmarks show that the filtering techniques are practical for dynamic data race detection, since they reduce the average runtime overhead to under 10% of that of the pure detection.

Detection and Classification of Bearing Flaking Defects by Using Kullback Discrimination Information (KDI)

  • Kim, Tae-Gu;Takabumi Fukuda;Hisaji Shimizu
    • International Journal of Safety
    • /
    • 제1권1호
    • /
    • pp.28-35
    • /
    • 2002
  • Kullback Discrimination Information (KDI) is one of the pattern recognition methods. KDI defined as a measure of the mutual dissimilarity computed between two time series was studied for detection and classification of bearing flaking on outer-race and inner-races. To model the damages, the bearings in normal condition, outer-race flaking condition and inner-races flaking condition were provided. The vibration sensor was attached by the bearing housing. This produced the total 25 pieces of data each condition, and we chose the standard data and measure of distance between standard and tested data. It is difficult to detect the flaking because similar pulses come out when balls pass the defection point. The detection and classification method for inner and outer races are defected by KDI and nearest neighbor classification rule is proposed and its high performance is also shown.

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

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

  • PDF

병렬프로그램의 경합조건을 수행 중에 효율적으로 탐지하기 위한 레이블링 기법 (A Labeling Scheme for Efficient On-the-fly Detection of Race Conditions in Parallel Programs)

  • 박소희;우종정;배종민;전용기
    • 정보처리학회논문지A
    • /
    • 제9A권4호
    • /
    • pp.525-534
    • /
    • 2002
  • 병렬프로그램에서 경합 조건은 비결정적인 수행 결과를 초래하므로 디버깅을 위해 반드시 탐지되어야 한다. 이러한 경합을 수행 중에 탐지하는 기존의 기법들은 병행성 정보 생성 시에 공유 자료구조를 사용하여 심각한 병목현상을 발생시키거나, 병행성 정보 비교 시에 내포병렬성의 정도에 의존하는 비효율적인 시간 복잡도를 가진다. 본 논문에서는 개별 자료구조를 사용함으로써 병목현상을 제거하여 병행성 정보를 확장적으로 생성하며, 생성된 병행성 정보의 비교 시간을 상수적인 복잡도로 개선한 새로운 레이블링 기법을 제안한다. 그러므로 제안된 레이블링 기법의 확장성 및 효율성은 공유메모리와 메시지전달 프로그램뿐만 아니라 이를 혼합하여 사용하는 병렬프로그램에서도 효율적인 수행중 경합탐지를 가능하게 한다.

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

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)이므로 기능 및 성능적인 측면에서 실용적인 도구이다.

내포병렬성을 가진 공유메모리 프로그램에서 최초경합의 수행후 탐지도구 (A Post-mortem Detection Tool of First Races to Occur in Shared-Memory Programs with Nested Parallelism)

  • 강문혜;심갑식
    • 한국컴퓨터정보학회논문지
    • /
    • 제19권4호
    • /
    • pp.17-24
    • /
    • 2014
  • 본 논문에서는 고성능 컴퓨팅 시스템의 성능 향상을 위한 효율적인 동적 작업부하 균등화 정책을 제안한다. 이 정책은 시스템 자원인 CPU와 메모리를 효율적으로 사용하여 고성능 컴퓨팅 시스템의 처리량을 최대화하고, 각 작업의 수행시간을 최소화한다. 또한 이 정책은 수행중인 작업의 메모리 요구량과 각 노드의 부하상태를 파악하여 작업을 동적으로 할당한다. 이때 작업을 할당 받은 노드가 과부하 상태가 되면 다른 노드로 작업을 이주시켜 각 노드의 작업부하를 균등하게 유지함으로써 작업의 대기시간을 줄이고, 각 작업의 수행시간을 단축한다. 본 논문에서는 시뮬레이션을 통하여 제안하는 동적 작업부하 균등화 정책이 기존의 메모리 기반의 작업부하 균등화 정책에 비해 고성능 컴퓨팅 시스템의 성능 향상 면에서 우수함을 보인다.

대용량 훈련 데이타의 점진적 학습에 기반한 얼굴 검출 방법 (Face Detection Based on Incremental Learning from Very Large Size Training Data)

  • 박지영;이준호
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제31권7호
    • /
    • pp.949-958
    • /
    • 2004
  • 본 연구는 대용량 훈련 데이타를 사용하는 얼굴 검출 분류기의 학습과정에서 새로운 데이터의 추가 학습이 가능한 새로운 방법을 제안한다. 추가되는 데이타로부터 새로운 정보를 학습하여 이미 습득된 기존의 지식을 갱신하는 것이 점진적 학습의 목표이다. 이러한 학습 기법에 기반한 분류기의 설계에서는 최종 분류기가 전체 훈련 데이타 집합의 특성을 반영하는 것이 매우 중요한 문제이다. 제안하는 알고리즘은 최적화된 최종 분류기 획득을 위하여 훈련 집합의 전역적인 특성을 대표하는 검증집합을 생성하고, 이 집단 내에서의 분류성능을 기준으로 중간단계 분류기들의 가중치를 결정한다. 각 중간단계 분류기는 개변 데이타 집합의 학습 결과로써 가중치 기반 결합 방식에 의해 최종 분류기로 구성된다. 반복적인 실험을 통해, 제안한 알고리즘을 사용하여 학습한 얼굴 검출 분류기의 성능이 AdaBoost 및 Learn++기반의 분류기보다 우수한 검출 성능을 보임을 확인하였다.

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