"The Deterministic User-level Replay of Concurrent Programs"

A user-level deterministic log/replay system is able to faithfully re-enact a past multithreaded execution without any modifications to the underlying OS or hardware. As concurrent software gets increasingly popular, such capability is highly useful and sometimes pivotal in understainding and fixing concurrency bugs. In this talk, I will present some of the major research challenges of the user-level replay together with three techniques, developed by our research group, that make significant improvements over the prior art. I will first describe LEAP, an order-based replay tool, that works for many popular multithreaded Java programs. I will then describe STRIDE, a hybrid technique that achieves a lower recording overhead by permiting the concurrent-read-exclusive-write (CREW) semantic. Finally, I will present CLAP, a search-based and light weight replaying technique for C/C++ programs, that uses SMT solvers and thread-local profiles to achieve the replay determinism.

Short Bio:

Charles Zhang is an assistant professor in the department of computer science and engineering at the Hong Kong University of Science and Technology. His major research area is software engineering with the current focus on concurrent systems. He has published extensively at premium conferences and journals such as TOSEM, TSE, IEEE TPDS, ICSE, FSE, ISSTA, OOPSLA, ECOOP, ACM/USENIX MIDDLEWARE, and AOSD. He has served on the organizational and technical committees of OOPSLA, FSE, ISSTA, PLDI, AOSD, and APSEC. Charles obtained his Ph.D, M.Sc, and B.Sc. with honors, all from University of Toronto.