Unified Parallel C (UPC) is an extension of the C programming language designed for high performance computing on large-scale parallel machines. The language provides a uniform programming model for both shared and distributed memory hardware. The programmer is presented with a single shared, partitioned address space, where variables may be directly read and written by any processor, but each variable is physically associated with a single processor. UPC uses a Single Program Multiple Data (SPMD) model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor. Berkeley UPC provides a portable, high-performance compiler for developing UPC software on systems ranging from clusters to custom supercomputers and even laptop-grade systems.
| Tags | Software Development Compilers Clustering/Distributed Networks |
|---|---|
| Licenses | BSD Original |
| Operating Systems | Mac OS X Windows POSIX Unix |
| Implementation | C |
Recent releases


Release Notes: This release adds support for the Gemini interconnect of the Cray XE and assorted minor bugfixes.


Release Notes: Numerous bugfixes and enhancements.


Release Notes: Numerous bugs were fixed, and several performance and portability improvements were made.


Release Notes: Support was extended to Mac OS X 10.6 (Snow Leopard) and to more recent systems software releases on Cray XT and IBM BG/P. Performance improvements and bugfixes were made on many supported networks. Numerous code generation bugs were fixed. Usability fixes were made for many platforms.


Release Notes: Native support for IBM BlueGene/P was added via the new "dcmf" network. Portals network support was upgraded to cache local memory registration. Performance and correctness problems in Myrinet/GM and LAPI support were fixed. InfiniBand support was extended to Qlogic InfiniPath. Support for MIPSEL/Linux platforms, including SiCortex, was added and improved. GCCUPC support was extended to GCCUPC 4.2.0.2 and newer. Experimental support for ARM processors was added. Improvements and fixes were made for MIPS, Alpha, PPC, and SPARC processors. Many codegen and error message bugs in the UPC translator were fixed. Numerous minor bugs were fixed.