Runtime Detection of C-Style Errors in UPC Code
Unified Parallel C (UPC) extends the C programming language (ISO C 99) with explicit parallel programming support for the Partitioned Global Address Space (PGAS), which provides a global memory space with localized partitions to each thread. Like its ancestor C, UPC is a low-level language that emphasizes code efficiency. The absence of dynamic (and static) safety checks allows programmer oversights and software flaws that can be hard to spot. In this paper, the authors present an extension of a dynamic analysis tool, ROSE-Code Instrumentation and Runtime Monitor (ROSECIRM), for UPC to help programmers find C-style errors involving the global address space.