Faculty Candidate Seminar
Stamping Out Concurrency Bugs
Add to Google Calendar
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 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/.