May-Happen-in-Parallel (MHP) analysis forms the basis for many problems of program analysis and program understanding. MHP analysis can also be used by integrated-development-environments (IDEs) to help programmers to refactor parallel-programs, identify racy programs, understand which parts of the program run in parallel, and so on. Since the code keeps changing in the IDE, re-computing the MHP information after every change can be an expensive affair. In this manuscript, we propose a novel scheme to perform on-the-fly MHP analysis of programs written in APGAS based task parallel languages like X10 to keep the MHP information up to date, in an IDE environment.
The key insight of our proposed approach to maintain the MHP information up to date is that we need not rebuild (from scratch) every data structure related to MHP information, after each modification (addition or deletion of statements) in the source code. The idea is to reuse the old MHP information as much as possible and recompute the MHP information (of a small set of specific statements) which depends on the statement added or removed. We introduce two new algorithms that deal with addition and removal of parallel constructs like finish, async, atomic, and sequential constructs like loop, if, if-else and other sequential statements, on the fly. We have implemented these algorithms as part of a plugin for X10DT, a popular IDE (Integrated Development Environment) to develop X10 programs. Our evaluation shows that the proposed on-the-fly techniques run much faster than the repeated invocations of the fastest known MHP analysis for X10 programs.
Tue 25 FebDisplayed time zone: Tijuana, Baja California change
10:55 - 12:35
|On the fly MHP Analysis|
|Detecting and Reproducing Error-Code Propagation Bugs in MPI Implementations|
|Parallel and Distributed Bounded Model Checking of Multi-threaded Programs|
|Parallel Race Detection with Futures|