Hyoun Kyu Cho Awarded Rackham Predoctoral Fellowship for research aimed at improving the programmability of parallel systems

Hyoun Kyu Cho Enlarge
Hyoun Kyu Cho

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.”

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.