Have a Question?
Ask the Graduate
College at our new
Doctoral Dissertation Announcement
Candidate: Mohamed Medhat Elwakil
Doctor of Philosophy
Department: Computer Science
Title: Debugging Support for Message-Passing Based Concurrent Software
Dr. Zijiang Yang, Chair
Dr. Leszek T. Lilien
Dr. Li Yang
Dr. Liqiang Wang
Date: Monday, May 9, 2011 11:00 a.m. to 1:00 p.m.
Parkview Campus, Room D-210
Components of a concurrent program communicate either via shared memory or message passing. Emerging trends such as multicore computing, cloud computing, and grid computing are bringing a revival to message-passing software development as these new computing paradigms depend on message-passing as a primary mean of data exchange. Debugging message-passing software is notoriously difficult due to its inherent execution non-determinism; even with the same input, a message-passing program may behave differently when executed multiple times due to message-races and time-dependent events.
This dissertation contributes sound techniques and practical tools that ease the burden of debugging message-passing programs. In particular, we enhance traditional testing by detecting many more errors that could not be detected before, and we propose efficient techniques for deterministically replaying an execution in case of failure. In testing enhancement, we apply a novel predictive analysis technique in which a program execution model and a set of safety properties are encoded as a quantifier-free first-order logic formula, whose satisfiability determines if an execution exists in which at least one safety property is violated. Also, we have developed DR-MCAPI, the first tool to introduce the deterministic replay capability to message-passing programs for multicore systems. During a recording phase, an unobstructed execution of an input program is monitored to produce a trace. In case of a failure, the stored trace is used to enforce an execution that is logically equivalent to the one observed in the recording phase. We have successfully applied our techniques on multicore programs developed using the new MCAPI specification and Web Services described using the BPEL language.