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.
The GCC UPC toolset provides a compilation and execution environment for programs written in the UPC (Unified Parallel C) language. The GCC UPC compiler extends the capabilities of the GNU GCC compiler. The GCC UPC compiler is implemented as a C Language dialect translator, in a fashion similar to the implementation of the GNU Objective C compiler.
The Kent Retargettable Occam Compiler is a multi-platform Occam 2.1 compiler that is designed to allow the Occam programming language to be used on non-Transputer platforms. Extensions from a subset of the Occam 3 specification and from pi calculus have been added over time. As a result, the version of the language supported by the compiler is also sometimes referred to as Occam 2.5 or Occam-pi.
distcc is a parallel build system that distributes compilation of C/C++/ObjC code across machines on a network. It can be set up in just a few minutes and makes builds up to ten times faster. It does not require machines to share a filesystem or have the same libraries or header files, and installation does not need superuser privileges.