Trace Driven Approach for Testing and Debugging Concurrent Programs
Title: Trace Driven Approach for Testing and Debugging Concurrent Programs
Speaker: Dr. Zijiang Yang (Western Michigan University)
Time: 10:00, Thursday, June 14th, 2012
Venue: Lecture room, 3rd Floor, Building 5#, State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences
Abstract: In the era of multi-core systems, concurrent application development will most likely become the main archetype in software applications; and despite the effort and complexity required to develop concurrent software, utilizing the processing power of the rising rate of multi-core hardware will mandate that transition. Nevertheless, concurrent software is susceptible to concurrency problems and defects that can escape traditional testing and debugging techniques. Our research introduces practical tools and methodologies to enhance the capability of traditional testing through predicative analysis, and perform deterministic execution replay in case of system failure.
In the predictive framework, our approach searches for data races in non-erroneous execution trace of a program. If such schedule exists, it will generate a complete execution schedule, called witness, which later can be used to trigger the data race by deterministically replaying the execution. The proposed framework eliminates the need to re-run and track the execution until a data race manifests which is usually required to capture a trace containing such defect. Evaluation results show that our analysis is scalable enough for a post-Mortem analysis to help programmers better understand the data races.
Unfortunately, no matter how powerful the testing and verification techniques will be, hard-to-find concurrency bugs cannot be eliminated from software. In the second project we utilize symbolic analysis, based on SMT solvers, to deterministically replay a shared-memory multi-threaded program for multi-processor execution. More specifically, the record and replay solution can construct shared-memory dependencies between threads off-line, which significantly improves the performance and reduces the complexity of hardware support.
The ultimate goal of this research is to reduce the burden of testing and debugging concurrent programs so that it becomes comparable to (or at least not much harder than) the effort of debugging sequential programs.
Bio:
Dr. Zijiang Yang is an associate professor with tenure in computer science at Western Michigan University, and a visiting professor in the department of electrical engineering and computer science at the University of Michigan. He holds a Ph.D. degree from the University of Pennsylvania, a M.S. degree from Rice University and a B.S. degree from the University of Science and Technology of China, all in computer science.
Dr. Yang’s research interests are in the areas of software systems. The primary focus of his research is to develop formal method based tools to support the modeling, analysis and verification of complex software such as high performance computing programs. His research has been supported by National Science Foundation, Office of Naval Research and several industrial grants. Dr. Yang holds 10 U.S. patents and has published more 50 papers in technical journals and conference proceedings. He received ACM TODAES best paper award in 2008, PADTAD best paper award in 2010, and WMU CEAS Young Researcher Award in 2008. Dr. Yang is a senior member of IEEE.