More about HKUST
Effective and Scalable Methods for Debugging Concurrent Software Systems
The Hong Kong University of Science and Technology
Department of Computer Science and Engineering
PhD Thesis Defence
Title: "Effective and Scalable Methods for Debugging Concurrent Software Systems"
By
Mr. Shaoming Huang
Abstract
Multicore is here to stay. To keep up with the hardware innovation, software
developers are undergoing a revolution from sequential programming to
concurrent programming. This revolution, however, is slow and challenging due
to the exponential complexity in reasoning about concurrency. In particular,
Heisenbugs such as data races which are non-deterministic pervasively infect
concurrent software, making concurrent program debugging notoriously difficult.
In this dissertation, we develop several effective methods for debugging
concurrent programs along four directions: multiprocessor deterministic replay,
predictive trace analysis, trace simplification, and data sharing reduction. We
first present LEAP, a lightweight record and replay system that makes
Heisenbugs reproducible on multi-core and multi-processors. Underpinned by a
new local-order based replay theorem, LEAP is fast, portable, and
deterministic. As long as a Heisenbug manifests once, LEAP is able to
deterministically reproduce it in every subsequent execution, and more
importantly, with much lower overhead compared to previous approaches.
We second present PECAN and TraceFilter, a persuasive predictive trace analysis
system that predicts Heisenbugs from normal executions, and an efficient
algorithm that significantly improves the scalability of predictive analysis by
removing the trace redundancy. The salient feature of PECAN is that, in
addition to predict Heisenbugs, it generates "bug hatching clips" that
deterministically expose and validate the predicted bugs. With PECAN,
programmers are provided with the full execution history and context
information to understand the bug, which dramatically expedites the debugging
process.
We third present LEAN and SimTrace, a dynamic and a static technique for
simplifying concurrency bug reproduction through removing the computation
redundancy and validating the trace equivalence. A simplified execution with
fewer threads, fewer thread interleavings, and faster replay greatly reduces
the debugging effort by reducing the number of places in the trace where we
need to look for the cause of the bug and by speeding up the bug reproduction
process.
We finally present Privateer, an execution privatization technique that soundly
privatizes a subset of shared data accesses in a vast category of
scheduler-oblivious concurrent programs. Underpinned by a privatization
theorem, Privateer safely reduces the data sharing and isolates the erroneous
thread interleavings without introducing any additional synchronization. With
Privateer, many Heisenbugs are fixed and a wide range of concurrency problems
are alleviated without impairing but, instead, improving the program
performance.
Date: Thursday, 29 November 2012
Time: 9:00am - 11:00am
Venue: Room 3408
Lifts 17/18
Chairman: Prof. Xueqing Zhang (CIVL)
Committee Members: Prof. Charles Zhang (Supervisor)
Prof. Shing-Chi Cheung
Prof. Lin Gu
Prof. Jiang Xu (ECE)
Prof. Thomas Ball (Microsoft Research, USA)
**** ALL are Welcome ****