scispace - formally typeset
Open AccessJournal ArticleDOI

LLOV: A Fast Static Data-Race Checker for OpenMP Programs

TLDR
LLOV as mentioned in this paper is a fast, lightweight, language agnostic, and static data race checker for OpenMP programs based on the LLVM compiler framework, which can verify a C/C++ or FORTRAN program to be data race free.
Abstract
In the era of Exascale computing, writing efficient parallel programs is indispensable, and, at the same time, writing sound parallel programs is very difficult. Specifying parallelism with frameworks such as OpenMP is relatively easy, but data races in these programs are an important source of bugs. In this article, we propose LLOV, a fast, lightweight, language agnostic, and static data race checker for OpenMP programs based on the LLVM compiler framework. We compare LLOV with other state-of-the-art data race checkers on a variety of well-established benchmarks. We show that the precision, accuracy, and the F1 score of LLOV is comparable to other checkers while being orders of magnitude faster. To the best of our knowledge, LLOV is the only tool among the state-of-the-art data race checkers that can verify a C/C++ or FORTRAN program to be data race free.

read more

Citations
More filters
Proceedings ArticleDOI

OMPRacer: A Scalable and Precise Static Race Detector for OpenMP Programs

TL;DR: The OMPRACER tool as discussed by the authors is a static tool that uses flow-sensitive, interprocedural analysis to detect data races in OpenMP programs and achieves competitive precision with dynamic tools like Archer and ROMP with a total accuracy of 91%.
Proceedings ArticleDOI

Enhancing DataRaceBench for Evaluating Data Race Detection Tools

TL;DR: The latest efforts to enhance DataRaceBench have added support for Fortran language and some of the newest OpenMP 5.0 language features, and designed a distance-based code similarity analysis, combining both static and dynamic code features.
Book ChapterDOI

PatEC: Pattern-Based Equivalence Checking

TL;DR: In this article, the authors consider parallel design patterns when checking equivalence between a sequential program and its parallelization, but only a few approaches inspect functional equivalence in parallel programs.
Book ChapterDOI

Verifying Pipeline Implementations in OpenMP

TL;DR: In this paper, the authors propose a verification approach that aims at pipeline parallelism, mainly computes the dependencies that a sequential execution imposes on the pipeline stages and checks whether these dependencies are incorporated in the OpenMP parallelzation.
Proceedings ArticleDOI

Does it matter?: OMPSanitizer: an impact analyzer of reported data races in OpenMP programs

TL;DR: In this article, the authors present OMPSanitizer, which employs a novel and semantic-aware impact analysis mechanism to assess the potential impact of detected data races so that developers can focus on data races with a high probability to produce a harmful impact.
References
More filters
Journal ArticleDOI

Time, clocks, and the ordering of events in a distributed system

TL;DR: In this article, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
Journal ArticleDOI

Julia: A Fresh Approach to Numerical Computing

TL;DR: The Julia programming language as mentioned in this paper combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing, which is designed to be easy and fast and questions notions generally held to be “laws of nature" by practitioners of numerical computing.
Journal ArticleDOI

OpenMP: an industry standard API for shared-memory programming

L. Dagum, +1 more
TL;DR: At its most elemental level, OpenMP is a set of compiler directives and callable runtime library routines that extend Fortran (and separately, C and C++ to express shared memory parallelism) and leaves the base language unspecified.
Journal ArticleDOI

Cilk: An Efficient Multithreaded Runtime System

TL;DR: It is shown that on real and synthetic applications, the “work” and “critical-path length” of a Cilk computation can be used to model performance accurately, and it is proved that for the class of “fully strict” (well-structured) programs, the Cilk scheduler achieves space, time, and communication bounds all within a constant factor of optimal.
Journal ArticleDOI

Eraser: a dynamic data race detector for multithreaded programs

TL;DR: A new tool, called Eraser, is described, for dynamically detecting data races in lock-based multithreaded programs, which uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed.
Related Papers (5)