Test-Driven Detection and Repair of Data Races in Structured Parallel Programs

R K Shyamasundar
Wednesday, 30 Jul 2014, 11:30 to 12:30
Abstract: In this talk, we focus on a programmability challenge for parallel computing that can be captured by the following question: how easy or difficult is it to identify and repair bugs when developing a parallel program? Our claim is that structured parallel programming greatly simplifies the task of writing correct and efficient parallel programs. We support this claim by first introducing a family of structured parallel programming models developed in the Habanero Extreme Scale Software Research project [1] at Rice University, and discussing semantic guarantees (e.g., deadlock freedom, datarace freedom, determinism, serial elision) for different subsets of these structured parallel programs. Then we discuss recent results for test-driven datarace detection [2] and repair [3] using structured parallelism. The results in [2,3] were demonstrated using the Habanero-Java language on single multicore nodes. If time permits, we will briefly discuss results for cluster-level parallelism using a novel integration of task parallelism with MPI in Habanero-C [4], as well as new research directions being pursued in the Habanero project (this work was done in collaboration with members of the Habanero Extreme Scale Software Research group).

Bio: Vivek Sarkar is Professor and Chair of Computer Science at Rice University. He conducts research in multiple aspects of parallel software including programming languages, program analysis, compiler optimizations and runtimes for parallel and high performance computer systems. He currently leads the Habanero Extreme Scale Software Research project at Rice University, and serves as Associate Director of the NSF Expeditions Center for Domain-Specific Computing. Prior to joining Rice in 2007, Vivek was Senior Manager of Programming Technologies at IBM Research. His prior research projects include the X10 programming language, the Jikes Research Virtual Machine for the Java language, the ASTI optimizer used in IBM’s XL Fortran product compilers, the PTRAN automatic parallelization system, and profile-directed partitioning and scheduling of Sisal programs. In 1997, he was on sabbatical as a visiting associate professor at MIT, where he was a founding member of the MIT Raw multicore project. Vivek became a member of the IBM Academy of Technology in 1995, the E.D. Butcher Chair in Engineering at Rice University in 2007, and was inducted as an ACM Fellow in 2008. He holds a B.Tech. degree from the Indian Institute of Technology, Kanpur, an M.S. degree from University of Wisconsin-Madison, and a Ph.D. from Stanford University. Vivek has been serving as a member of the US Department of Energy’s Advanced Scientific Computing Advisory Committee (ASCAC) since 2009.

References: [1] Habanero Extreme Scale Software Research project (http://habanero.rice.edu) [2] Scalable and Precise Dynamic Data Race Detection for Structured Parallelism. Raghavan Raman, Jisheng Zhao, Vivek Sarkar, Martin Vechev, Eran Yahav. PLDI 2012. [3] Test-Driven Repair of Data Races in Structured Parallel Programs. Rishi Surendran, Raghavan Raman, Swarat Chaudhuri, John Mellor-Crummey, Vivek Sarkar. PLDI 2014. [4] Integrating Asynchronous Task Parallelism with MPI. Sanjay Chatterjee, Sagnak Tasirlar, Zoran Budimlic, Vincent Cave , Milind Chabbi, Max Grossman, Yonghong Yan, Vivek Sarkar. IPDPS 2013.