scispace - formally typeset
Search or ask a question
Proceedings ArticleDOI

On the fly MHP analysis

19 Feb 2020-pp 173-186
TL;DR: This manuscript proposes a novel scheme to perform incremental MHP analysis (on the fly) of programs written in task parallel languages like X10 to keep the MHP information up to date, in an IDE environment and introduces two new algorithms that deal with addition and removal of parallel constructs like finish, async, atomic, and sequential constructs, on the fly.
Abstract: 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 IDEs (integrated-development-environments) 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 incremental MHP analysis (on the fly) of programs written in 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 incrementally recompute the MHP information (of a small set of statements) which depends on the statement added/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. Our evaluation shows that our algorithms run much faster than the repeated invocations of the fastest known MHP analysis for X10 programs [Sankar et al. 2016].
Citations
More filters
01 Jan 2009
TL;DR: Eclipse、IntelliJ IDEA、NetBeans:对于国内很多开发人员来说 ,Eclipse众所周知,Net beans次之LIntelli J IDEA确很少被人了解;IDEA
Abstract: 在目前的Java IDE市场已经形成三足鼎力:Eclipse、IntelliJ IDEA和NetBeans,对于国内很多开发人员来说,Eclipse众所周知,NetBeans次之,IntelliJ IDEA确很少被人了解。IDEA不被人了解的主要原因是其开发公司不大,而且中文文档比较少,宣传也很少。

31 citations

Posted Content
TL;DR: In this article, the authors present a data flow analysis based, fast, static data race checker in the LLVM compiler framework to detect race conditions in OpenMP programs and improve turnaround time and/or developer productivity.
Abstract: Data races, a major source of bugs in concurrent programs, can result in loss of manpower and time as well as data loss due to system failures. OpenMP, the de facto shared memory parallelism framework used in the HPC community, also suffers from data races. To detect race conditions in OpenMP programs and improve turnaround time and/or developer productivity, we present a data flow analysis based, fast, static data race checker in the LLVM compiler framework. Our tool can detect races in the presence or absence of explicit barriers, with implicit or explicit synchronization. In addition, our tool effectively works for the OpenMP target offloading constructs and also supports the frequently used OpenMP constructs. We formalize and provide a data flow analysis framework to perform Phase Interval Analysis (PIA) of OpenMP programs. Phase intervals are then used to compute the MHP (and its complement NHP) sets for the programs, which, in turn, are used to detect data races statically. We evaluate our work using multiple OpenMP race detection benchmarks and real world applications. Our experiments show that the checker is comparable to the state-of-the-art in various performance metrics with around 90% accuracy, almost perfect recall, and significantly lower runtime and memory footprint.
References
More filters
Proceedings ArticleDOI
01 Dec 1991
TL;DR: A safe, polynomial time approximation algorithm for static deadlock detection in a subset of the Ada language [MR90b] is designed and an automatic facility to accurately certify deadlock freedom for a large class of Ada programs is developed.
Abstract: We have designed a safe, polynomial time approximation algorithm for static deadlock detection in a subset of the Ada language [MR90b]. We extend the program representation to include nearly all of the Ada rendezvous primitives, and present preliminary experimental results for an implementation of our algorithm. Our goal is to develop an automatic facility to accurately certify deadlock freedom for a large class of Ada programs.

75 citations

Proceedings ArticleDOI
16 May 1999
TL;DR: An approach for analyzing Java programs that uses the constraint mechanism to model the possible communications among threads in Java programs, instead of representing them directly in the flow graph model is presented.
Abstract: In this paper we show how the FLAVERS data flow analysis technique, originally formulated for systems using a rendezvous concurrency model, can be applied to the various concurrency models used in Java programs. The general approach of FLAVERS is based on modeling a concurrent system as a flow graph and, using a data flow analysis algorithm over this graph, statically checking if a property holds on all (or no) executions of the program. The accuracy of this analysis can be iteratively improved, as needed, by supplying additional constraints, represented as finite state automata, to the data flow analysis algorithm. In this paper we present an approach for analyzing Java programs that uses the constraint mechanism to model the possible communications among threads in Java programs, instead of representing them directly in the flow graph model. We also discuss a number of error-prone thread communication patterns that can arise in Java and describe how FLAVERS can be used to check for the presence of these. A preliminary evaluation of this approach is carried out by analyzing some small concurrent Java programs for these error-prone communication patterns and other, program-specific, faults.

71 citations


"On the fly MHP analysis" refers background or methods in this paper

  • ...MHP analysis forms the basis for many optimizations and program-analysis problems like data race detection, deadlock detection, debugging, and so on [FloresMontoya et al. 2013; Masticola and Ryder 1991; Nandivada et al. 2013; Naumovich et al. 1999b]....

    [...]

  • ...…[Agarwal et al. 2007; Barik 2005; Duesterwald and Soffa 1991; Lin and Verbrugge 2004; Masticola and Ryder 1993; Naumovich and Avrunin 1998; Naumovich et al. 1999a,b; Sankar et al. 2016] have studied the problem of May-Happen-in-Parallel (MHP) analysis in the context of many different…...

    [...]

Book ChapterDOI
03 Jun 2013
TL;DR: This work builds a dependency graph such that the absence of cycles in the graph ensures deadlock freeness and integrates the MHP information within the dependency graph in order to discard unfeasible cycles that otherwise would lead to false positives.
Abstract: We present a novel deadlock analysis for concurrent objects based on the results inferred by a points-to analysis and a may-happen-in-parallel (MHP) analysis. Similarly to other analysis, we build a dependency graph such that the absence of cycles in the graph ensures deadlock freeness. An MHP analysis provides an over-approximation of the pairs of program points that may be running in parallel. The crux of the method is that the analysis integrates the MHP information within the dependency graph in order to discard unfeasible cycles that otherwise would lead to false positives. We argue that our analysis is more precise and/or efficient than previous proposals for deadlock analysis of concurrent objects. As regards accuracy, we are able to handle cases that other analyses have pointed out as challenges. As regards efficiency, the complexity of our deadlock analysis is polynomial.

53 citations

Book ChapterDOI
22 Sep 2004
TL;DR: An implementation of May Happen in Parallel analysis for Java is presented that attempts to address some of the practical implementation concerns of the original work and incorporates techniques for aiding a feasible implementation and expanding the range of acceptable inputs.
Abstract: In this paper we present an implementation of May Happen in Parallel analysis for Java that attempts to address some of the practical implementation concerns of the original work. We describe a design that incorporates techniques for aiding a feasible implementation and expanding the range of acceptable inputs. We provide experimental results showing the utility and impact of our approach and optimizations using a variety of concurrent benchmarks.

46 citations

Journal Article
TL;DR: This paper introduces a thread model that is both context and flow sensitive and efficiently compute May-Happen-in-Parallel information for the analysis of multi-threaded programs.
Abstract: Modeling of runtime threads in static analysis of concurrent programs plays an important role in both reducing the complexity and improving the precision of the analysis. Modeling based on type based techniques merges all runtime instances of a particular type and thereby introduces inaccuracy in the analysis. Other approaches model individual runtime threads explicitly in the analysis and are of high complexity. In this paper we introduce a thread model that is both context and flow sensitive. Individual thread abstractions are identified based on the context and multiplicity of the creation site. The interaction among these abstract threads are depicted in a tree structure known as Thread Creation Tree (TCT). The TCT structure is subsequently exploited to efficiently compute May-Happen-in-Parallel (MHP) information for the analysis of multi-threaded programs. For concurrent Java programs, our MHP computation algorithm runs 1.77x (on an average) faster than previously reported MHP computation algorithm.

43 citations