Unified Parallel C

Unified Parallel C (UPC) 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 (SMP and NUMA) and those with distributed memory (e.g. clusters). 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.

In order to express parallelism, UPC extends ISO C 99 with the following constructs:

  • An explicitly parallel execution model
  • A shared address space
  • Synchronization primitives and a memory consistency model
  • Explicit communication primitives, e.g. upc_memput
  • Memory management primitives

The UPC language evolved from experiences with three other earlier languages that proposed parallel extensions to ISO C 99: AC, Split-C, and Parallel C Preprocessor (PCP). UPC is not a superset of these three languages, but rather an attempt to distill the best characteristics of each. UPC combines the programmability advantages of the shared memory programming paradigm and the control over data layout and performance of the message passing programming paradigm.

Famous quotes containing the words unified and/or parallel:

    Under weak government, in a wide, thinly populated country, in the struggle against the raw natural environment and with the free play of economic forces, unified social groups become the transmitters of culture.
    Johan Huizinga (1872–1945)

    There is a parallel between the twos and the tens. Tens are trying to test their abilities again, sizing up and experimenting to discover how to fit in. They don’t mean everything they do and say. They are just testing. . . . Take a good deal of your daughter’s behavior with a grain of salt. Try to handle the really outrageous as matter-of-factly as you would a mistake in grammar or spelling.
    Stella Chess (20th century)