Skip to main content
QUICK REVIEW

[논문 리뷰] Automatically finding atomic regions for fixing bugs in Concurrent programs

Saurabh Joshi, Akash Lal|arXiv (Cornell University)|2014. 03. 07.
Parallel Computing and Optimization Techniques참고 문헌 15인용 수 3
한 줄 요약

이 논문은 사용자가 제공한 어述션과 검증 도구를 활용하여 동시성 버그를 수정하기 위해 최소한의 원자적 영역을 자동으로 추론하는 AtomicInf 기법을 제안한다. 이 기법은 정확성과 최대한의 동시성을 확보하면서도 평균 1.7배 빠른 성능을 보이며 이전 방법보다 뛰어난 성능을 발휘하는 최소 강한 원자성 수정과 최적화된 약한 원자성 확장 수단을 효율적으로 계산한다.

ABSTRACT

This paper presents a technique for automatically constructing a fix for buggy concurrent programs: given a concurrent program that does not satisfy user-provided assertions, we infer atomic blocks that fix the program. An atomic block protects a piece of code and ensures that it runs without interruption from other threads. Our technique uses a verification tool as a subroutine to find the smallest atomic regions that remove all bugs in a given program. Keeping the atomic regions small allows for maximum concurrency. We have implemented our approach in a tool called AtomicInf. A user of AtomicInf can choose between strong and weak atomicity semantics for the inferred fix. While the former is simpler to find, the latter provides more information about the bugs that got fixed. We ran AtomicInf on several benchmarks and came up with the smallest and the most precise atomic regions in all of them. We implemented an earlier technique to our setting and observed that AtomicInf is 1.7 times faster on an average as compared to an earlier approach.

연구 동기 및 목표

  • 새로운 동작을 유도하지 않고도 의미 있고 최소한의 수정을 자동으로 생성하는 데 도전한다.
  • 수정이 모든 정상적인 프로그램 동작을 유지하면서 오직 버그가 발생하는 인터리빙만 제거함을 보장한다.
  • 원자 블록의 크기를 최소화하여 동시성을 극대화하고 성능 저하를 방지한다.
  • 강한 원자성과 약한 원자성 의미 체계를 모두 지원하며, 약한 원자성은 버그의 근본 원인을 더 깊이 있게 파악할 수 있도록 한다.
  • 데이터 레이스와 같은 증상에 의존하지 않고 사용자가 정의한 성질에 기반하여 검증 기반의 확장 가능한 접근법을 개발한다.

제안 방법

  • 검증 도구(예: Poirot)를 서브루틴으로 사용하여 반복적으로 동시 프로그램 내의 버그가 발생하는 추적 경로를 탐색한다.
  • 이중 단계 접근법을 적용한다: 먼저 알고리즘 1을 사용해 강한 원자성 하에서 최소 수정을 계산하고, 그 다음 알고리즘 2와 3을 사용해 약한 원자성 하에서 이를 확장한다.
  • 약한 원자성의 경우, 강한 원자성 수정의 초집합으로서의 검색 범위를 제한하여 계산 비용을 줄이면서도 최소성은 유지한다.
  • 모든 버그 발생 추적 경로를 차단하는 최소 프로그램 포인트 집합을 식별하기 위해 최소 충족 집합(MHS) 계산을 활용한다.
  • 사용자가 강한 원자성과 약한 원자성 의미 체계 중에서 선택할 수 있도록 지원하며, 강한 원자성은 전체 블록의 고립을 보장하고 약한 원자성은 다른 약한 블록의 동시 실행을 允허한다.
  • 상용 검증 도구와 통합하며, 반복적 정밀화를 통해 비용이 많이 드는 검증 쿼리를 최소화한다.

실험 결과

연구 질문

  • RQ1우리는 동시 프로그램 내의 모든 어述션 위반을 수정할 수 있는 가장 작은 원자적 영역을 자동으로 추론할 수 있는가?
  • RQ2추론된 수정이 모든 정상적인 프로그램 동작을 유지하고 새로운 버그를 유도하지 않는다는 것을 어떻게 보장할 수 있는가?
  • RQ3수정 품질과 계산 비용 측면에서 강한 원자성과 약한 원자성 의미 체계 사이의 상호 교환 관계는 어떠한가?
  • RQ4비용이 많이 드는 검증 쿼리의 수를 줄일 수 있을까? 동시에 최소이고 정밀한 수정을 찾을 수 있을까?
  • RQ5기존의 데이터 레이스 또는 원자성 위반 히وري스틱에 의존하는 접근법과 비교해 본다면, 제안된 방법은 성능과 수정 품질 측면에서 어떻게 다른가?

주요 결과

  • AtomicInf는 테스트한 모든 벤치마크에 대해 가장 작은 최소한의 원자적 영역을 계산하여 이전 방법보다 수정 품질에서 뛰어난 성능을 발휘한다.
  • 평균적으로 AtomicInf는 이전 기법보다 1.7배 더 빠르며, 알고리즘 2는 쿼리 수와 런타임을 알고리즘 1에 비해 크게 줄였다.
  • 강한 원자성의 경우, 알고리즘 1과 알고리즘 2는 동일한 최소 수정에 수렴하지만, 알고리즘 2는 쿼리 수를 평균 20% 감소시키고 시간은 74% 감소시켰다.
  • 약한 원자성의 검색 범위를 강한 원자성 수정의 초집합으로 제한하는 최적화 조치는 수정 품질을 유지하면서 과도한 계산을 방지하며 해답 크기에 거의 영향을 주지 않는다.
  • 모든 벤치마크에서 계산된 수정은 수작업으로 검증되었으며, 잘못된 프로그램 포인트가 포함되지 않은 정확하고 최소한의 수정임이 확인되었다.
  • 이상치 벤치마크인 BankAccount에서, 알고리즘 1은 알고리즘 2에 비해 평균적으로 두 배 많은 쿼리가 필요했으며, 이는 최적화된 접근법의 확장성 향상을 뚜렷이 보여준다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.