fortranbenchmarkingthread-sanitizer

How should I use DataRaceBench 1.3.2?


I am trying to install and to learn how to use DataRaceBench 1.3.2 which is a benchmark suite designed to systematically and quantitatively evaluate the effectiveness of data race detection tools as shown here enter link description here. I have a code called poisson_openmp.f90 which is a Fortran code which computes an approximate solution to the Poisson equation in a rectangle, and is intended as the starting point for the creation of a parallel version.

In order to install it, I followed this link: https://github.com/LLNL/dataracebench/blob/master/user_guide.md

So, I installed ThreadSanitizer, Archer, ROMP and Coderrect Scanner.

Now I should:

Double-check the file location and the added path for the correct environment variables setup. To run the DRB, use: ./check-data-race.sh --toolname language (./check-data-race.sh --romp fortran)

Use below to see all the possible options:

#show more helpful information for this script

./check-data-races.sh --help

We can even run partial test programs using the--customize flag. One should enter the test programs to run in the list.def and tools to test in the tool.def file. Rest all the steps remain the same and can be referred to from the above --help option.

I don't understand how I should adapt all this to my code and how to test it. I don't understand what are the things that I installed. I don't know what a container is. I don't also know how to use DataRaceBench 1.3.2 to evaluate my code. I cloned the git, I have the folder but I ignore what to do next especially with the file check-data-races.sh.

I don't have an exact question but I need some clarification on this.


Solution

  • This software is not intended to be used to check your code.

    Instead this is a benchmark that checks how other tools (that you could use to check your OpenMP code) are able to find problems. The software comes with various programs that contain known problems and the DataRaceBench software checks whether the tools being benchmarked are or are not able to find these known problems.