Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Runtime Detection of C-Style Errors in UPC Code

Conference ·
OSTI ID:1037834
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 over safety. The absence of dynamic (and static) safety checks allows programmer oversights and software flaws that can be hard to spot. In this paper, we 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. Built on top of the ROSE source-to-source compiler infrastructure, the tool instruments source files with code that monitors operations and keeps track of changes to the system state. The resulting code is linked to a runtime monitor that observes the program execution and finds software defects. We describe the extensions to ROSE-CIRM that were necessary to support UPC. We discuss complications that arise from parallel code and our solutions. We test ROSE-CIRM against a runtime error detection test suite, and present performance results obtained from running error-free codes. ROSE-CIRM is released as part of the ROSE compiler under a BSD-style open source license.
Research Organization:
Lawrence Livermore National Laboratory (LLNL), Livermore, CA
Sponsoring Organization:
USDOE
DOE Contract Number:
W-7405-ENG-48
OSTI ID:
1037834
Report Number(s):
LLNL-CONF-502592
Country of Publication:
United States
Language:
English

Similar Records

UPC++: A PGAS extension for C++
Conference · Tue Dec 31 23:00:00 EST 2013 · OSTI ID:1523898

UPC++
Software · Wed Apr 30 20:00:00 EDT 2014 · OSTI ID:code-2804

Asynchronous Programming in UPC: A Case Study and Potential for Improvement
Conference · Wed Dec 31 23:00:00 EST 2008 · OSTI ID:961770