LLOV تعني LLVM OpenMP Verifier. إنها أدوات اكتشاف سباق البيانات الثابتة في LLVM لبرامج OpenMP. يمكن لـ LLOV اكتشاف سباقات البيانات في برامج OpenMP V4.5 المكتوبة في C/C ++ و Fortran.
يستخدم LLOV تقنيات تجميع polyhedral للكشف عن ظروف السباق في وقت الترجمة.
على عكس أداة اكتشاف السباق الأخرى ، يمكن لـ 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]>
موقع سوراب جوشي
موقع 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