- Unified Parallel C
Unified Parallel C (UPC) is an extension of the C programming language designed for
high-performance computing on large-scaleparallel machine s, including those with a common globaladdress space (SMP and NUMA) and those withdistributed memory (eg. clusters). Theprogrammer 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
*Memory management primitivesThe 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 asuperset 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 overdata layout and performance of themessage passing programming paradigm .Compiler support
UPC has been implemented in some commercial and research compilers, including
* [http://www.hp.com/go/upc HP Unified Parallel C (UPC)]
* Cray UPC
* [http://www.alphaworks.ibm.com/tech/upccompiler IBM XL UPC Compilers]
* [http://upc.lbl.gov/ Berkeley UPC]
* [http://www.intrepid.com/upc.html GCC UPC]
* [http://www.upc.mtu.edu/ Michigan Tech MuPC]See also
*
Co-array Fortran
* High Performance Fortran
*OpenMP
*Parallel programming model
*Software transactional memory
*Partitioned global address space External links
* [http://upc.gwu.edu/ Primary webpage of the Unified Parallel C]
* [https://upc-wiki.lbl.gov/UPC/index.php/Main_Page UPC Wiki]
Wikimedia Foundation. 2010.