LLOV는 LLVM OpenMP Verifier를 나타냅니다. OpenMP 프로그램을위한 LLVM의 정적 데이터 레이스 감지 도구입니다. 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
알려진 레이스 조건이있는 더 많은 Fortran 예를 보려면 MicroBenchmark Dataracebench Fortran을 확인하십시오.
UTPAL BORA [email protected].
다음 사람들은 다른 방식으로 llov에 닿았습니다.
pankaj kukreja <[email protected]>
Santanu das <[email protected]>
Saurabh Joshi 웹 사이트
Ramakrishna Upadrasta 웹 사이트
Sanjay Rajopadhye 웹 사이트
LLOV의 출처는 곧 BSD 라이센스에 따라 출시 될 예정입니다.
도커 레지스트리 : 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