Publications

Enhancing DataRaceBench for Evaluating DataRace Detection Tools

Published in International Workshop on Software Correctness for HPC Applications (Correctness) SC20, 2010

DataRaceBench is a dedicated benchmark suite to evaluate tools aimed to find data race bugs in OpenMP programs. Since its initial release in 2017, DataRaceBench has been widely used by tool developers to find the strengths and limitations of their tools. The results also provide an apple-to-apple comparison of the state-of-the-art of data race detection tools. In this paper, we discuss our latest efforts to enhance DataRaceBench. In particular, we have added support for Fortran language and some of the newest OpenMP 5.0 language features. We have also added new kernels representing new patterns from literature and other benchmarks (e.g., NAS Parallel Benchmark). To reduce duplicated code patterns in the benchmark suite, we have designed a distance-based code similarity analysis, combining both static and dynamic code features. Finally, we dockerize tools and streamline the entire benchmarking process to quickly generate a dashboard showing the state-of-the-art of data race detection of OpenMP programs. The enhanced DataRaceBench is released as v 1.3.0, with 222 newly added benchmarks. 56 of them are in C, and the remaining 166 are in Fortran, reproducing the C programs’ nature. Our experiments show that this new version can spot more limitations of the current data race detection tools, with significantly reduced user efforts needed to run experiments.

Recommended citation: Gaurav Verma, Yaying Shi, Chunhua Liao, Barbara Chapman, and Yonghong Yan. (2010). "Enhancing DataRaceBench for Evaluating DataRace Detection Tools." International Workshop on Software Correctness for HPC Applications (Correctness) SC20. 1(2). https://conferences.computer.org/scwpub/pdfs/Correctness2020-7w4N9SxLsNAh5SqG4rrKiF/104400a020/104400a020.pdf

Ompparser: A Standalone and Unified OpenMP Parser

Published in International Workshop on OpenMP, 2009

ompparser is a standalone and unified OpenMP parser for both C/C++ and Fortran. It can be used as an independent tool as well as an integral component of an OpenMP compiler. It has syntax and semantics checking functionalitity for OpenMP constructs for validating and verifying usage of existing constructs. The formal grammar included in ompparser, developed with Flex and Bison tools, can help interpretation of the OpenMP standard. The implementation supports the full and latest OpenMP 5.0 and is released as open-source with BSD-license.

Recommended citation: Anjia Wang, Yaying Shi, Xinyao Yi, Yonghong Yan, Chunhua Liao and Bronis R. de Supinski. (2019). "Ompparser: A Standalone and Unified OpenMP Parser." IWOMP. 1(1). https://link.springer.com/chapter/10.1007%2F978-3-030-28596-8_10