@inproceedings{a906e8593be242a69c421e95ccab6f35,
title = "OpenSHMEM checker - A clang based static checker for OpenSHMEM",
abstract = "Compilers are generally not aware of the semantics of library-based parallel programming models such as MPI and OpenSHMEM, and hence are unable to detect programming errors related to their use. To alleviate this issue, we developed a custom static checker for OpenSHMEM programs based on LLVM's Clang Static Analyzer framework (CSA). We leverage the Symbolic Execution engine of the core Static Analyzer framework and its path-sensitive analysis to check for bugs on all OpenSHMEM program paths. We have identified common programming mistakes in OpenSHMEM programs that are detectable at compile-time and provided checks for them in the analyzer. They cover: utilization of the right type of memory (private vs. symmetric memory); safe/synchronized access to program data in the presence of asynchronous, one-sided communication; and double-free of memories allocated using OpenSHMEM memory allocation routines. Our experimental analysis showed that the static checker successfully detects bugs in OpenSHMEM code.",
keywords = "Compiler Analysis, OpenSHMEM, Static Analysis, Static Checker",
author = "Bari, \{Md Abdullah Shahneous\} and Ujjwal Arora and Varun Hegde and Tony Curtis and Barbara Chapman",
note = "Publisher Copyright: {\textcopyright} 2021 IEEE.; 20th International Symposium on Parallel and Distributed Computing, ISPDC 2021 ; Conference date: 28-07-2021 Through 30-07-2021",
year = "2021",
month = jul,
day = "28",
doi = "10.1109/ISPDC52870.2021.9521645",
language = "English",
series = "Proceedings - 2021 20th International Symposium on Parallel and Distributed Computing, ISPDC 2021",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "41--48",
editor = "Rodica Potolea and Bogdan Iancu and Slavescu, \{Radu Razvan\}",
booktitle = "Proceedings - 2021 20th International Symposium on Parallel and Distributed Computing, ISPDC 2021",
}