[5-10]Making Software Reliable in the Multicore Era
Date:2013-04-24
Title: Making Software Reliable in the Multicore Era
Speaker: Du Li (Carnegie Mellon University)
Time: 9:30, Friday, 10 May, 2013
Venue: Lecture Room, 3rd Floor, Building #5, State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences
Abstract:
Multi-threading is the most common way to utilize the capability of multicore systems. Therefore, the prevalence of multicore systems comes with challenges for software reliability due to the well-known difficulty of developing correct multi-threaded programs, in particular, identifying and fixing concurrency faults. Yet, software has been becoming further integrated into the fabric of our daily life. The society's reliance on software demands highly reliable programs, intensifying the challenge for software reliability in the multicore era.
In this talk, I will introduce our work on concurrency fault detection and healing. We build a dynamic race detector based on a key observation that a large number of objects, namely stationary objects, cannot participate races, so race detectors can avoid monitoring these objects in order to improve efficiency without losing race coverage. The experiment results show that our race detector can detect up to 6 times more races in comparison to FastTrack, a state-of-the-art race detector, with the same overhead budget. Furthermore, we propose a self-healing framework, RaceDr, aiming to automatically fix atomicity violations on the fly. RaceDr fixes atomicity violations as soon as they are detected, and ensures that the fix does not introduce new faults like deadlocks.
Biography:
Du Li is a Post Doctorate Associate at School of Computer Science in Carnegie Mellon University. He received a PhD degree from University of Nebraska-Lincoln in 2012, a M.E. degree from Institute of Software, Chinese Academy of Sciences in 2007, and a B.E degree from National University of Defense Technology in 2002, all in computer science. His research interests include program analysis, runtime systems and program language design. His recent work mainly focuses on improving the reliability and security of concurrent programs.