Clang UPC Unified Parallel C
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
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 PowerPC
- 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.