LLOV ย่อมาจาก LLVM OpenMP Verifier มันเป็นเครื่องมือตรวจจับการแข่งขันข้อมูลแบบคงที่ใน LLVM สำหรับโปรแกรม OpenMP LLOV สามารถตรวจจับการแข่งขันข้อมูลในโปรแกรม OpenMP v4.5 ที่เขียนใน C/C ++ และ Fortran
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
Docker Registry: hub.docker.com
ที่เก็บ: LLVM
Tag: 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]>
โปรดยื่นข้อผิดพลาดหากคุณพบว่าตัวตรวจสอบการแข่งขันไม่ทำงานตามที่ต้องการ
ขอแสดงความนับถือ
อดิเรก