Unified Parallel C
Unified Parallel C is an extension of the C programming language designed for high-performance computing on large-scale parallel machines, including those with a common global address space and those with distributed memory. The programmer is presented with a single partitioned global address space, where shared 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 model of computation in which the amount of parallelism is fixed at program startup time, typically with a single thread of execution per processor.
In order to express parallelism, UPC extends ISO C 99 with the following constructs:
- An explicitly parallel execution model
- A shared address space with thread-local parts
- Synchronization primitives and a memory consistency model
- Explicit communication primitives, e.g.
- Memory management primitives