The evolution of processor architectures from multi-core to many-core requires programmers to use concurrency to achieve performance. Unfortunately, shared memory parallel programs are difficult to implement correctly, and so is detecting concurrency bugs (e.g., data races, deadlocks, order violations, atomicity violations). In practice, the most common concurrency bugs are a) data races that arise due to unguarded or improperly guarded memory updates and b) deadlocks that arise due to circular dependencies among locks. While data races can be ameliorated by appropriate synchronization (a challenging problem in itself), deadlocks require fairly complex deadlock avoidance techniques, which may fail when the order of lock acquisitions is not known a priori. Furthermore, due to the potential for deadlocks, programmers cannot arbitrarily compose lock based codes without knowing the internal locking structure. Hence, composability is limited by deadlocks. The goal of this research is to achieve composability of lock based codes.
Hari Pyla is a Principal Software Engineer R&D, at AdaptiveApps, a startup in virtualization and cloud computing. His research interests are in the areas of systems research, concurrent programming, multi/many core architectures, compilers, runtime systems, programming models, and high-end computing. Prior to his tenure at AdaptiveApps, he worked at Microsoft Research, IBM Research Lab, Microsoft, and NetApp. He has co-authored several peer-reviewed research papers and he serves as a technical reviewer and program committee member for technical conferences. He has a Ph.D. in Computer Science from Virginia Tech.