Georgia Tech Researchers Develop Tool to Find Bugs in OpenMP
Georgia Tech researchers are at the forefront of making Open Multi-Processing (OpenMP) standard updates more usable for heterogeneous computing. Their new tool helps developers detect bugs related to hardware accelerator data mapping.
OpenMP Sanitizer (OMPSan) is a sanitizing tool that uses an advanced data flow analysis to determine the correctness of data mapping in OpenMP programs. It then reports diagnostics to help the developer understand and debug their data mapping specifications across heterogeneous devices.
The tool saves developers considerable effort and time. OMPSan found 15 errors in a common data race benchmark for accelerators. The tool has already been used in hackathons for application developers to try the latest OpenMP standard.
OpenMP Challenges for Heterogeneous Computing
This research is an important contribution to the burgeoning challenges of programming heterogeneous accelerators, according to School of Computer Science (SCS) Professor Vivek Sarkar, Stephen Fleming Chair for Telecommunications, and Co-Director for the Center for Research into Novel Computing Hierarchies (CRNCH).
“Heterogeneous computing is increasing in importance as we approach the end of Moore’s law, and there is a growing need for productive and portable approaches to programming computers with accelerators,” he said. “While the OpenMP standard offers a possible solution to the programming problem, the community appreciates that there are many challenges in using this standard and that OMPSan can help developers in using OpenMP’s new data mapping constructs.”
A key challenge in data mapping is managing the data movement to and from accelerators like graphic processing units (GPUs). Buggy data mappings can lead to incorrect data being used in the GPU, thereby resulting in erroneous outputs. Identifying and fixing these bugs requires considerable effort by the developer.
OMPSan is implemented in the LLVM tool chain and is comprised of several advancements that could have implications beyond the current version of the tool:
- an algorithm to analyze OpenMP runtime library calls
- a dataflow analysis to infer relationships between CPU and GPU memories
- a static analysis technique that compares dataflow information between sequential and parallel versions of the same OpenMP program
- diagnostic information for developers to understand mapping errors
Although OMPSan provides great strides in this area, Sarkar’s lab hopes to create a follow-on dynamic tool that can find more bugs and even fix them on the fly.
The research won a best paper award at the 2019 International Workshop on OpenMP (IWOMP). SCS Ph.D. student Prithayan Barua, Research Scientist Jun Shirako, and Sarkar authored the paper, OMPSan: Static Verification of OpenMP’s Data Mapping Constructs, along with IBM developers Whitney Tsang, Jeeva Paudel, and Wang Chen.
“I am delighted to see this positive recognition of the OMPSan research led by Prithayan and of the great team effort with our IBM collaborators,” Sarkar said.