LLOV
1.0.0
LLOV代表LLVM OpenMP驗證者。它是LLVM中用於OpenMP程序的靜態數據競賽檢測工具。 LLOV可以在用C/C ++和Fortran編寫的OpenMP v4.5程序中檢測數據競賽。
LLOV使用多面體彙編技術在編譯時檢測種族條件。
與其他種族檢測工具不同,LLOV可以將代碼區域標記為無數據競賽。
如果您的系統上未安裝OpenMP,或者未正確設置路徑,則可以指向帶有其他編譯器標誌的隨附的標頭和LIB。 -Iinclude/ -Llib/
./bin/clang -Xclang -disable-O0-optnone -Xclang -load -Xclang ./lib/OpenMPVerify.so
-fopenmp -g test/1.race1.c
./bin/clang++ -Xclang -disable-O0-optnone -Xclang -load -Xclang ./lib/OpenMPVerify.so
-fopenmp -g test.cpp
./bin/clang -fopenmp -S -emit-llvm -g test/1.race1.c -o test.ll
./bin/opt -mem2reg test.ll -S -o test.ssa.ll
./bin/opt -load ./lib/OpenMPVerify.so -openmp-forceinline
-inline -openmp-resetbounds test.ssa.ll -S -o test.resetbounds.ll
./bin/opt -load ./lib/OpenMPVerify.so
-disable-output
-openmp-verify
test.resetbounds.ll
flang -fopenmp -S -emit-llvm -g test.f95 -o test.ll
./bin/opt -O1 test.ll -S -o test.ssa.ll
./bin/opt -load ./lib/OpenMPVerify.so -openmp-forceinline
-inline -openmp-resetbounds test.ssa.ll -S -o test.resetbounds.ll
./bin/opt -load ./lib/OpenMPVerify.so
-disable-output
-openmp-verify
test.resetbounds.ll
有關已知種族條件的更多示例,請查看我們
UTPAL BORA [email protected]。
以下人以不同的方式秘密地對LLOV遺體。
pankaj kukreja <[email protected]>
santanu das <[email protected]>
Saurabh Joshi網站
Ramakrishna Upadrasta網站
Sanjay Rajopadhye網站
LLOV的來源將很快根據BSD許可發布。
Docker註冊表:Hub.docker.com
存儲庫:LLVM
標籤:llov
Docker Image Contians Llov,以及以下種族檢測工具 -
tsan-llvm,Archer,Sword,Helgrind和Valgrind Drd。
有三個用於實驗的OpenMP基準
dataracebench v1.2,
dataracebench fortran和
OMPSCR v2.0。
@article{Bora/taco/2020,
author = {Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay},
title = {{LLOV: A Fast Static Data-Race Checker for OpenMP Programs}},
year = {2020},
issue_date = {November 2020},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {17},
number = {4},
issn = {1544-3566},
url = {https://doi.org/10.1145/3418597},
doi = {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.},
journal = {ACM Trans. Archit. Code Optim.},
month = dec,
articleno = {35},
numpages = {26},
keywords = {OpenMP, program verification, polyhedral compilation, static analysis, data race detection, shared memory programming}
}
以下是當前版本的LLOV的局限性。
如果您有任何查詢,請聯繫“ utpal bora” <[email protected]>。
如果您發現比賽檢查器無法按需要工作,請提起錯誤。
問候,
UTPAL