Hyoun Kyu Cho, a graduate student in the Computer Science and Engineering program, has received a Rackham Predoctoral Fellowship to support his research while he completes his dissertation entitled, Combining Static Analysis and Dynamic Control for Avoidance of Concurrency Bugs. The Rackham Predoctoral Fellowship is awarded to outstanding doctoral candidates in the final stages of their program who are unusually creative, ambitious and risk-taking.
Hyoun Kyu's research interests include compiler and architecture techniques for improving programmability of parallel systems. He is currently working on a project to automatically detect and avoid concurrency bugs.
According to Hyoun Kyu, "One of the most difficult challenges facing software developers is writing correct and efficient multi-threaded programs. It is not only difficult to reason about high degrees of parallelism, but also concurrency bugs, such
as deadlocks, data races, and atomicity violations, are very common. Further, concurrency bugs are often
difficult to detect and debug as their manifestation depends on non-deterministic thread interleavings. As today's
programmers are writing ever increasingly complex parallel applications, automatic tools are needed to help
programmers detect and avoid concurrency bugs."
Automated Concurrency Bug Avoidance Through Static Analysis and Dynamic Control
Hyoun Kyu's research focuses on automatically detecting and avoiding concurrency bugs in programs through
the combination of static analysis and dynamic control mechanisms. By analyzing programs statically, his tool
can gather as much information as possible and infer the locations of potential concurrency bugs. Then, it
incorporates dynamic controllers into the target programs. At runtime, the dynamic controller monitors for
a possible occurrence of a concurrency bug and adapts the program’s thread interleaving to avoid them.
By combining static analysis and dynamic control, the avoidance of concurrency bugs can be both precise
and efficient. While static analysis does not impose any runtime overhead, it tends to generate false positives
due to the lack of runtime information. Dynamic mechanisms have fewer false positives but incur the cost
of runtime overhead needed for monitoring and controlling. Hyoun Kyu's approach attempts to minimize
the runtime overheads by performing expensive calculations offline with static analysis, while relying on
dynamic control to precisely detect and avoid actual concurrency bugs.
Hyoun Kyu Cho is advised by Prof. Scott Mahlke.
Posted: March 4, 2013