Clang Unified Parallel C (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 LLVM C compiler.


  • UPC Language Specification version 1.3 compliant
  • LLVM licensed
  • Fast bit packed pointer-to-shared support
  • Configurable pointer-to-shared representation
  • Support for uniprocessor and symmetric multiprocessor systems
  • Runtime support for Infiniband based clusters with Portals 4.0 library support.
  • Support for many large scale machines and clusters in conjunction with Berkeley UPC runtime
  • Runtime support for UPC collectives
  • Runtime support for UPC thread affinity via Linux scheduling affinity and NUMA package
  • Runtime support for UPC thread backtrace
  • Optional LLVM remote pointer generation to gain benefits of LLVM optimizations

Supported Platforms

At this time, Clang UPC is available on the following platforms:

Intel x86_64
  • Linux 64 bit uniprocessor or multiprocessor systems (RHEL, SUSE, Fedora, CentOS, Ubuntu)
  • Apple Mac OS X system (Snow Leopard, Lion, and Mountain Lion)
  • Free BSD, Open BSD, and Net BSD platforms
Intel x86
Linux 32 bit systems (Redhat based distributions)
IBM Power6/Power7 Linux based systems (including PERCS)

If you would like to learn of future ports to other platforms, or would like to discuss the feasibility of implementing Clang UPC on a platform of interest to you, please send us a note.

More on Clang UPC