LLOV
Open Access
- 22 December 2020
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Architecture and Code Optimization
- Vol. 17 (4), 1-26
- https://doi.org/10.1145/3418597
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.Keywords
Funding Information
- Advanced Micro Devices (Faculty Grant)
- Ministry of Electronics and Information technology (PhD-MLA/04(02)/2015-16 and MeitY/R&D/HPC/2(1)/2014)
This publication has 36 references indexed in Scilit:
- GKLEEACM SIGPLAN Notices, 2012
- LOCKSMITHACM Transactions on Programming Languages and Systems, 2011
- FADAlib: an open source C++ library for fuzzy array dataflow analysisProcedia Computer Science, 2010
- Parallel Programmability and the Chapel LanguageThe International Journal of High Performance Computing Applications, 2007
- RaceTrackACM SIGOPS Operating Systems Review, 2005
- Valgrind: A Program Supervision FrameworkElectronic Notes in Theoretical Computer Science, 2003
- OpenMP: an industry standard API for shared-memory programmingIEEE Computational Science and Engineering, 1998
- EraserACM Transactions on Computer Systems, 1997
- Cilk: An Efficient Multithreaded Runtime SystemJournal of Parallel and Distributed Computing, 1996
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978