The Clang UPC toolset provides a compilation and execution environment for programs written in the UPC language. The Clang UPC compiler extends the capabilities of the Clang front-end for the LLVM compiler.

Latest News

  • Jan 21, 2022: Clang UPC2C 9.0.1-2 released
  • Jan 21, 2022: Clang UPC 3.9.1-2 released


Clang UPC to C Translator (Clang UPC2C)

The Clang UPC to C translator uses the Clang UPC infrastructure to translate UPC into C code.

Berkeley UPC provides a compiler driver and UPC runtime library for effective usage of the Clang UPC2C translator, including for distributed UPC applications.

More info: Clang UPC2C webpage

Clang UPC

Clang UPC is an implementation of the UPC language using the Clang and LLVM framework.

As with Clang UPC2C, Berkeley UPC provides a compiler driver and UPC runtime library which can be used with Clang UPC for distributed environments. However, Clang UPC can also be used alone for single-node application runs.

More info: Clang UPC webpage

Past Projects

Info on past projects related to the Clang UPC infrastructure is available here

  • UPC Language

    Main UPC language web site with tutorials and references.

  • UPC Specification

    This link downloads version 1.3 of the UPC language and library specifications.

  • Berkeley UPC

    Berkeley UPC project page. Clang UPC2C and Clang UPC can both be used together with the Berkeley UPC compiler driver and runtime, allowing the execution of UPC programs on large-scale multiprocessors, PC clusters, and clusters of shared memory multiprocessors.


    UPC compiler based on the GNU GCC. All the GNU UPC features are also available in Clang UPC.