Konstantinos Sagonas - Multicore Day
Konstantin Sagonas, Associate Professor, UPMARC, Uppsala Universitet
Kostis Sagonas is an Associate Professor at the the Department of Information Technology of Uppsala University. His research interests are in programming language and software technology. His Ph.D. thesis work was in the implementation of tabling in logic programming. In the last fifteen years he has been heaviily involved in the design and implementation of the concurrent functional language Erlang, having made significant contributions both to the evolution of the language itself (in particular, he has designed its language of types and specs and bitstring pattern matching), its runtime system and virtual machine, its native code compiler (HiPE, ErLLVM), and to static analysis and transformation tools for the language (Dialyzer, TypEr and Tidier). In the last few years he has been working on developing novel techniques and tools for testing concurrent programs (Concuerror, PropEr, CutEr, Nifty, Target and Nidhugg), and the ArgoDSM system for scalable software distributed shared memory.
detecting concurrency errors using systematic testing
Testing and verification of concurrent programs is an important but also challenging problem. Effective techniques need to take into account not only all the different possible ways that threads may interleave (scheduling non-determinism) but also the effects that the relaxed memory model of the underlying architecture (memory model non-determinism) may introduce into the picture. In this talk we will focus on a particular verification technique known as stateless model checking (a.k.a. systematic concurrency testing) and we will present state-of-the-art tools (Concuerror and Nidhugg) for finding and reproducing errors in concurrent programs and briefly review the algorithms that these tools employ to deal with these two kinds of non-determinism.