项目作者: LLNL

项目描述 :
Data race benchmark suite for evaluating OpenMP correctness tools aimed to detect data races.
高级语言: C
项目地址: git://github.com/LLNL/dataracebench.git
创建时间: 2017-05-26T09:24:22Z
项目社区:https://github.com/LLNL/dataracebench

开源协议:Other

下载


DataRaceBench 1.4.0

DataRaceBench is a benchmark suite designed to systematically and
quantitatively evaluate the effectiveness of data race detection
tools. It includes a set of microbenchmarks with and without data
races. Parallelism is represented by OpenMP directives. OpenMP is a
popular parallel programming model for multi-threaded applications.

Note that some microbenchmarks use OpenMP 4.5 and 5.0 features.
You may need a recent OpenMP compiler to compile them.

DataRaceBench also comes with an evaluation script
(check-data-races.sh). The script can be used to evaluate the tools
Helgrind, Archer, Thread Sanitizer, Intel Inspector, and Coderrect Scanner.
In addition a parameterized test harness (scripts/test-harness.sh) is
available which allows to provide a number of different parameters for
the evaluation. The test harness is used by the evaluation script with
some pre-defined values.

Quick Start

  1. ./check-data-races.sh
  2. Usage: ./check-data-races.sh [--run] [--help] language
  3. --help : this option
  4. --small : compile and test all benchmarks using small parameters with Helgrind, ThreadSanitizer, Archer, Intel inspector.
  5. --run : compile and run all benchmarks with gcc (no evaluation)
  6. --run-intel : compile and run all benchmarks with Intel compilers (no evaluation)
  7. --helgrind : compile and test all benchmarks with Helgrind
  8. --tsan-clang: compile and test all benchmarks with clang ThreadSanitizer
  9. --tsan-gcc : compile and test all benchmarks with gcc ThreadSanitizer
  10. --archer : compile and test all benchmarks with Archer
  11. --coderrect : compile and test all benchmarks with Coderrect Scanner
  12. --inspector : compile and test all benchmarks with Intel Inspector
  13. --romp : compile and test all benchmarks with Romp
  14. --customize : compile and test customized test list and tools

More information: User Guide

Latest Tool Evaluation Results

Data race detection tool dashboard

List of Benchmarks

Benchmark labels and lists - C/C++

Benchmark labels and lists - Fortran

Authors

DataRaceBench was created by Chunhua Liao, Pei-Hung Lin, Gaurav Verma, Yaying Shi, Joshua Asplund, Markus Schordan, and Ian Karlin.

Release

DataRaceBench is released under a BSD license. For more details see
the file LICENSE.txt. The microbenchmarks marked ‘Polyhedral’ in above
table were generated as optimization variants of benchmarks from the
PolyOpt benchmark suite. For those benchmarks see the license file
LICENSE.OSU.txt.

LLNL-CODE-732144

How to Cite DataRaceBench in a Publication

If you are referring to DataRaceBench in a publication, please cite the following paper:

If you use DataRaceBench v.1.4.0 or later, please additionally cite the following paper:

  • Pei-Hung Lin and Chunhua Liao, High-Precision Evaluation of Both Static and Dynamic Tools using DataRaceBench, International Workshop on Software Correctness for HPC Applications (Correctness) SC21, 2021 pdf

Other papers