Misplaced Pages

Unified Parallel C

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
(Redirected from Parallel C) Extension of the C programming language
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (April 2023) (Learn how and when to remove this message)
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources.
Find sources: "Unified Parallel C" – news · newspapers · books · scholar · JSTOR (December 2011) (Learn how and when to remove this message)
(Learn how and when to remove this message)
Unified Parallel C (UPC)
Paradigmparallel, message passing, imperative (procedural), structured
Designed byUPC Consortium
Stable release2022.10.0/October 28, 2022 (2022-10-28)
Typing disciplinestatic, weak, manifest
OSCross-platform
Websiteupc-lang.org
Major implementations
Clang UPC, GNU UPC, IBM XL UPC Compilers, HP UPC, Berkeley UPC, Michigan Tech MuPC, Cray UPC
Influenced by
C, AC, Split-C, Parallel C Preprocessor

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 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 (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 (shared storage qualifier) with thread-local parts (normal variables)
  • 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.

See also

External links

C programming language
Features
Standard library
Implementations
Compilers
IDEs
Comparison with
other languages
Descendant
languages
Designer
Parallel computing
General
Levels
Multithreading
Theory
Elements
Coordination
Programming
Hardware
APIs
Problems
Categories: