scispace - formally typeset

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不被人了解的主要原因是其开发公司不大,而且中文文档比较少,宣传也很少。

27 citations


Posted Content
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

Journal ArticleDOI
01 Aug 2007
TL;DR: A candidate list of desirable qualities for a parallel programming language is offered, and how these qualities are addressed in the design of the Chapel language is described, providing an overview of Chapel's features and how they help address parallel productivity.
Abstract: In this paper we consider productivity challenges for parallel programmers and explore ways that parallel language design might help improve end-user productivity. We offer a candidate list of desirable qualities for a parallel programming language, and describe how these qualities are addressed in the design of the Chapel language. In doing so, we provide an overview of Chapel's features and how they help address parallel productivity. We also survey current techniques for parallel programming and describe ways in which we consider them to fall short of our idealized productive programming model.

868 citations


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

  • ...We believe that the presented results can be extended to other taskparallel languages like HJ [Habanero 2009], Chapel [Chamberlain et al. 2007], and so on....

    [...]


Journal ArticleDOI
Richard N. Taylor1Institutions (1)
TL;DR: This paper formalizes the notion of the synchronization structure of concurrent programs that use the rendezvous (or similar) mechanism for achieving synchronization and presents complexity results which indicate what may be expected and shed light on the difficulty of correctly constructing concurrent systems.
Abstract: Foundational to verification of some aspects of communicating concurrent systems is knowledge of the synchronization which may occur during execution. The synchronization determines the actions that may occur in parallel, may determine program data flow, and may also lead to inherently erroneous situations (e.g. deadlock). This paper formalizes the notion of the synchronization structure of concurrent programs that use the rendezvous (or similar) mechanism for achieving synchronization. The formalism is oriented towards supporting verification as performed by automated static program analysis. Complexity results are presented which indicate what may be expected in this area and which also shed light on the difficulty of correctly constructing concurrent systems. Specifically, most of the analysis tasks considered are shown to be intractable.

170 citations


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

  • ...Both of which may lead to false-positives if the conservative assumption (used to keep MHP analysis tractable [Taylor 1983]) that all control paths are executable is violated....

    [...]


Proceedings ArticleDOI
Charles E. Leiserson1Institutions (1)
26 Jul 2009
TL;DR: This paper overviews the Cilk++ programming environment, which incorporates a compiler, a runtime system, and a race-detection tool, and provides a "hyperobject" library which allows races on nonlocal variables to be mitigated without lock contention or substantial code restructuring.
Abstract: The availability of multicore processors across a wide range of computing platforms has created a strong demand for software frameworks that can harness these resources. This paper overviews the Cilk++ programming environment, which incorporates a compiler, a runtime system, and a race-detection tool. The Cilk++ runtime system guarantees to load-balance computations effectively. To cope with legacy codes containing global variables, Cilk++ provides a "hyperobject" library which allows races on nonlocal variables to be mitigated without lock contention or substantial code restructuring.

166 citations


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

  • ...These techniques can also be used for the subsets of programs written in languages like Java or Cilk [Leiserson 2009], where the thread/task creation and termination follow a "tree" structure like X10....

    [...]


Proceedings ArticleDOI
23 May 2009
TL;DR: This paper introduces a new work-stealing scheduler with compiler support for async-finish task parallelism that can accommodate both work- first and help-first scheduling policies, and provides insights on scenarios in which the help- first policy yields better results than the work-first policy and vice versa.
Abstract: Multiple programming models are emerging to address an increased need for dynamic task parallelism in applications for multicore processors and shared-address-space parallel computing. Examples include OpenMP 3.0, Java Concurrency Utilities, Microsoft Task Parallel Library, Intel Thread Building Blocks, Cilk, X10, Chapel, and Fortress. Scheduling algorithms based on work stealing, as embodied in Cilk's implementation of dynamic spawn-sync parallelism, are gaining in popularity but also have inherent limitations. In this paper, we address the problem of efficient and scalable implementation of X10's async-finish task parallelism, which is more general than Cilk's spawn-sync parallelism. We introduce a new work-stealing scheduler with compiler support for async-finish task parallelism that can accommodate both work-first and help-first scheduling policies. Performance results on two different multicore SMP platforms show significant improvements due to our new work-stealing algorithm compared to the existing work-sharing scheduler for X10, and also provide insights on scenarios in which the help-first policy yields better results than the work-first policy and vice versa.

164 citations


Proceedings ArticleDOI
01 Jul 1993
TL;DR: This work presents a framework for non-concurrency analysis, capable of incorporating previous analysis algorithms [CS88, DS92] and improving upon them and exhibits dramatic accuracy improvements over [DS91], when the latter is used as a stand-alone algorithm.
Abstract: Non-concurrency analysis is a set of techniques for statically identifying pairs (or sets) of statements in a concurrent program which can never happen together. This information aids programmers in debugging and manually optimizing programs, improves the precision of data flow analysis, enables optimized translation of rendezvous, facilitates dead code elimination and other automatic optimizations, and allows anomaly detection in explicitly parallel programs. We present a framework for non-concurrency analysis, capable of incorporating previous analysis algorithms [CS88, DS92] and improving upon them. We show general theoretical results which are useful in estimating non-concurrency, and examples of non-concurrency analysis frameworks for two synchronization primitives: the Ada rendezvous and binary semaphores. Both of these frameworks have a low-order polynomial bound on worst-case solution time. We provide experimental evidence that static non-concurrency analysis of Ada programs can be accomplished in a reasonable time, and is generally quite accurate. Our framework, and the set of refinement components we develop, also exhibits dramatic accuracy improvements over [DS91], when the latter is used as a stand-alone algorithm, as demonstrated by our experiments.

113 citations


Network Information
Related Papers (5)
22 Oct 2011

Thomas Würthinger, Danilo Ansaloni +3 more

17 Jul 2011

Kazuaki Ishizaki, Shahrokh Daijavad +1 more

01 Oct 2000

Kazuaki Ishizaki, Motohiro Kawahito +3 more

Performance
Metrics
No. of citations received by the Paper in previous years
YearCitations
20211
20091