Speaker: Baris Kasikci, EPFL Zuric
Stamping Out Concurrency Bugs
The shift to multi-core architectures in the past ten years pushed developers to write concurrent software to leverage hardware parallelism. The transition to multi-core hardware happened
at a more rapid pace than the evolution of associated programming techniques and tools, which made it difficult to write concurrent programs that are both efficient and correct. Failures due to concurrency bugs are often hard to reproduce and fix, and can cause significant losses.
In this talk, I will first give an overview of the techniques we developed for the detection, root cause diagnosis, and classification of concurrency bugs. Then, I will discuss how the techniques we developed have been adopted at Microsoft and Intel. I will then discuss in detail Gist, a technique for the root cause diagnosis of failures. Gist uses hybrid static-dynamic program analysis and gathers information from real user executions to isolate root causes of failures. Gist is highly accurate and efficient, even for failures that rarely occur in production. Finally, I will close by describing future work I plan to do toward solving the challenges posed to software systems by emerging technology trends.
Baris Kasikci completed his Ph.D. in the Dependable Systems Laboratory (DSLAB) at EPFL, advised by George Candea. His research is centered around developing techniques, tools, and environments that help developers build more reliable and secure software. He is interested
in finding solutions that allow programmers to better reason about their code, and that efficiently detect bugs, classify them, and diagnose their root cause. He especially focuses on bugs that manifest in production, because they are hard and time-consuming. He
is also interested in efficient runtime instrumentation, hardware and runtime
support for enhancing system security, and program analysis under various memory models.
Baris is one of the four recipients of the VMware 2014-2015 Graduate Fellowship. During his Ph.D., he interned at Microsoft Research, VMware, and Intel. Before starting his Ph.D., he worked as a software engineer for four years, mainly developing real-time embedded systems software. Before joining EPFL, he was working for Siemens Corporate Technology. More details can be found at http://www.bariskasikci.org/.