Clang UPC Tool Set
The Clang UPC toolset provides a compilation and execution environment for programs written in the UPC (Unified Parallel C) language. The Clang UPC compiler extends the capabilities of the Clang front-end for the LLVM compiler.
- 15 Sep 2016 » Clang UPC 3.8.1-0 Release
- 15 Oct 2015 » Clang UPC 3.6.2-0 Release
- 15 Apr 2015 » Clang UPC 3.5.1-0 Release
- 03 Nov 2014 » Clang UPC 3.4.1-1 Release
Clang UPC is the first implementation of the UPC language by using the Clang and LLVM framework. The current work is based on the LLVM 3.4 version of Clang/LLVM.
Two GitHub repositories (https://github.com/Intrepid/llvm-upc and https://github.com/Intrepid/clang-upc) are used for developing Clang UPC.
More info: Clang UPC webpage
UPC to C Translator
The UPC to C translator (https://github.com/Intrepid/upc2c) uses the Clang UPC infrastructure to translate UPC into the C code. Berkeley UPC is the framework for effective usage of the UPC2C translator.
More info: Clang UPC2C webpage
Clang OMP Support
The goal of this project is to allow interoperability between UPC and Open MP code. For this purpose an OpenMP/Clang branch (https://clang-omp.github.io/) has been merged into the Clang UPC.
More information on the UPC/OMP Project
LLVM IR Remote Access
The goal of this project is to allow UPC pointers-to-shared (or some other remote pointer) to be expressed in the LLVM IR and to in turn gain the benefits of LLVM optimizations that operate on memory references.
More information on the UPC IR Project
Portals 4 Runtime
The Clang UPC for Portals 4.0 (Portals4, Portals) is an implementation of Clang UPC that uses Portals interface for message passing between UPC threads running on separate nodes in a system area network.
More information on the Portals4 Runtime.
Clang UPC Libfabric Runtime is an implementation of Clang UPC that uses Libfabric API for message passing between UPC threads running on separate nodes in a system area network.
More information in the Libfabric Runtime.
Try it and get involved!
Once you have a chance to try it, consider getting involved in the Clang UPC community. Drop us a message with your ideas and observations.
Other UPC projects
Main UPC language web site with tutorials and references.
UPC Specification group website. Version 1.3 was recently released.
UPC compiler based on the GNU GCC. All the GNU UPC features are also available in Clang UPC.
Berkeley UPC project page. Clang UPC (both compiler and UPC2C translator) can be used together with the Berkeley UPC framework and runtime, allowing the execution of UPC programs on large-scale multiprocessors, PC clusters, and clusters of shared memory multiprocessors.