More about HKUST
Efficient and Scalable Methods for Concurrent Program Debugging
PhD Thesis Proposal Defence
Title: "Efficient and Scalable Methods for Concurrent Program Debugging"
by
Mr. Shaoming Huang
ABSTRACT:
Multicore is here to stay. To keep up with the hardware innovation,
software developers are undertaking 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 proposal, we develop efficient and scalable methods in dealing
with the Heisenbugs along four directions: multiprocessor deterministic
replay, predictive trace analysis, trace simplification, and data sharing
reduction. We first propose LEAP, a lightweight record and replay system
that makes Heisenbugs reproducible in general multiprocessor environments.
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 the state of
the art.
We second propose PECAN, a persuasive predictive trace analysis system
that is able to predict Heisenbugs from normal executions. The salient
feature of PECAN is that, in addition to predict Heisenbugs, it generates
``bug hatching clips" that instruct the program to deterministically
exercise 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. To further address the
schedule space explosion problem in predicting bugs, we propose
TraceFilter, an efficient algorithm that significantly improves the
scalability of general predictive trace analysis by removing the trace
redundancy with respect to the Heisenbugs.
We third propose SimTrace, a static trace simplification technique that
effectively reduces the number of thread context switches in the buggy
trace. A simplified trace with fewer context switches greatly lessens the
debugging effort by prolonging the sequential reasoning of concurrent
program execution and reducing the number of places in the trace where we
need to look for the cause of the bug. More importantly, through reasoning
about the computation equivalence of the trace offline, SimTrace
dramatically improves the efficiency of trace simplification. SimTrace
scales well to traces with more than 1M events, making it attractive to
practical use.
We fourth propose Privateer, an execution privatization technique that
soundly privatizes a subset of shared data accesses in a vast category of
concurrent programs - scheduler-oblivious programs. Underpinned by a
privatization theorem, Privateer is able to reduce the data sharing in
scheduler-oblivious programs without introducing any additional program
behavior. Moreover, the non-deterministic thread interleavings on the
privatized accesses are isolated without adding any synchronization. With
Privateer, many real world Heisenbugs are fixed and a wide range of
concurrency problems are alleviated without impairing the execution
parallelism.
Date: Tuesday, 22 May 2012
Time: 2:00pm - 4:00pm
Venue: Room 1504
lifts 25/26
Committee Members: Dr. Charles Zhang (Supervisor)
Dr. Lin Gu (Chairperson)
Prof. Shing-Chi Cheung
Dr. Sunghun Kim
**** ALL are Welcome ****