Concurrent programming is not new. It has been around for almost half a century. However, due to its challenges, concurrent programming is accessible to a handful of programmers. Since new processors are offering more and more cores rather than faster clock speeds, concurrent programming is on its way to become mainstream. Recent research indicates that message-passing based software development is gaining momentum as it provides a scalable and efficient alternative to shared-memory based software development.

The goal of my research is to alleviate the burden of debugging message-passing based concurrent programs. To that end, I am working on two research streams: enhancing traditional testing by applying SMT-based trace-driven predictive analysis and deterministic replay. My work targets and the new but promising MCAPI specifications.