• Title/Summary/Keyword: 원자성 위배

Search Result 4, Processing Time 0.02 seconds

A Tool for On-the-fly Repairing of Atomicity Violation in GPU Program Execution

  • Lee, Keonpyo;Lee, Seongjin;Jun, Yong-Kee
    • Journal of the Korea Society of Computer and Information
    • /
    • v.26 no.9
    • /
    • pp.1-12
    • /
    • 2021
  • In this paper, we propose a tool called ARCAV (Atomatic Recovery of CUDA Atomicity violation) to automatically repair atomicity violations in GPU (Graphics Processing Unit) program. ARCAV monitors information of every barrier and memory to make actual memory writes occur at the end of the barrier region or to make the program execute barrier region again. Existing methods do not repair atomicity violations but only detect the atomicity violations in GPU programs because GPU programs generally do not support lock and sleep instructions which are necessary for repairing the atomicity violations. Proposed ARCAV is designed for GPU execution model. ARCAV detects and repairs four patterns of atomicity violations which represent real-world cases. Moreover, ARCAV is independent of memory hierarchy and thread configuration. Our experiments show that the performance of ARCAV is stable regardless of the number of threads or blocks. The overhead of ARCAV is evaluated using four real-world kernels, and its slowdown is 2.1x, in average, of native execution time.

On-the-fly Atomicity Violation Repairing Technique for Airborne Health Management Systems (항공기 건전성 관리시스템용 원자성 위배 자율 수리 소프트웨어 기법)

  • Choi, Eu-Teum;Lee, Dong-Su;Jun, Yong-Kee;Lee, Seongjin
    • Journal of the Korean Society for Aeronautical & Space Sciences
    • /
    • v.48 no.7
    • /
    • pp.547-554
    • /
    • 2020
  • Airborne health management system prevents functional failure caused by errors or faults in the airborne software. On-the-fly repairing atomicity violations (AV) in an ARINC-653 concurrent software is critical for guaranteeing correctness of execution of the software. This paper proposes Repairing-AV which efficiently repairs atomicity violations. The Repairing-AV can diagnose and prevent an error on-the-fly by utilizing the training results of the software and controls access to the shared variable of the thread where the error occurred. The evaluation of the Repairing-AV measures the time overhead by applying the previous work and the Repairing-AV to five synthesis programs containing the atomicity violation. As the result of evaluation, the RepairingAV constantly shows about 1.4x time overhead regardless of count of shared variable access.

A Technique to Generate Information of Safe Interleavings for On-the-fly Atomicity Violation Repairing in Airborne Software (항공기 소프트웨어의 원자성위배 자율수리 도구를 위한 안전한 인터리빙 정보를 생성하는 기법)

  • Baek, Hyoung-Jin;Choi, Eu-Teum;Lee, Keon-Pyo;Jun, Yong-Kee
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • 2019.01a
    • /
    • pp.11-12
    • /
    • 2019
  • 본 논문은 멀티스레드를 지원하는 항공기 소프트웨어에 적용될 수 있는 자율수리 도구의 문제의 해결방법을 제안하는 논문이다. 기존의 연구는 프로그램의 반복수행을 통해 안전한 인터리빙을 수집하여 프로그램의 동작을 제한한다. 하지만 테스트 단계에서 수집되지 않은 안전한 인터리빙을 잘못된 인터리빙으로 처리하여 수리를 수행함으로써 불필요한 오버헤드가 발생한다. 본 논문은 원자성위배 패턴을 사용하여 안전한 인터리빙을 예측하여 생성시키는 기법을 사용하여 수리기법에서 불필요한 수리로 인한 오버헤드를 감소하기 위한 안전한 인터리빙 정보를 생성하는 기법을 제안한다.

  • PDF

On-the-fly Monitoring Tool for Detecting Data Races in Multithread Programs (멀티 스레드 프로그램의 자료경합 탐지를 위한 수행 중 감시 도구)

  • Paeng, Bong-Jun;Park, Se-Won;Kuh, In-Bon;Ha, Ok-Kyoon;Jun, Yong-Kee
    • Journal of KIISE
    • /
    • v.42 no.2
    • /
    • pp.155-161
    • /
    • 2015
  • It is difficult and cumbersome to figure out whether a multithread program runs with concurrency bugs, such as data races and atomicity violations, because there are many possible executions of the program and a lot of the defects are hard to reproduce. Hence, monitoring techniques for collecting and analyzing the information from program execution, such as thread executions, memory accesses, and synchronization information, are important to locate data races for debugging multithread programs. This paper presents an efficient and practical monitoring tool, called VcTrace, that analyzes the partial ordering of concurrent threads and events during an execution of the program based on the vector clock system. Empirical results on C/C++ benchmarks using Pthreads show that VcTrace is a sound and practical tool for on-the-fly data race detection as well as for analyzing multithread programs.