2000 · 299 citations · 4 references
ComputingComputer EngineeringComputer ScienceComputer ArchitectureParallel ComputingProgramming LanguagesConcurrent ProgrammingInterprocess CommunicationParallel ArchitecturesParallel Computer ArchitectureShared-memory MultiprocessingShared-memory ParallelismHigh PerformanceLow-level C ProgrammingMessage-passing AlgorithmsMessage-passing ModelsParallel Program SemanticsParallel ProgrammingShared Memory MultiprocessorsShared Memory Programming
UPC is a parallel extension of the C programming language intended for multiprocessors with a common global address space. UPC aims to provide efficient machine access and establish a common syntax and semantics for explicitly parallel C programming. UPC maps parallel features directly to low-level instructions when hardware supports remote memory access, and otherwise maps them onto message‑passing or shared memory to ensure portability across architectures. As a consequence, vendors who wish to implement an explicitly parallel C could use the syntax and semantics of UPC as a basis for a standard.
UPC is a parallel extension of the C programming language intended for multiprocessors with a common global address space. A descendant of Split-C [CDG 93], AC [CaDr 95], and PCP [BrWa 95], UPC has two primary objectives: 1) to provide efficient access to the underlying machine, and 2) to establish a common syntax and semantics for explicitly parallel programming in C. The quest for high performance means in particular that UPC tries to minimize the overhead involved in communication among cooperating threads. When the underlying hardware enables a processor to read and write remote memory without intervention by the remote processor (as in the SGI/Cray T3D and T3E), UPC provides the programmer with a direct and easy mapping from the language to low-level machine instructions. At the same time, UPC’s parallel features can be mapped onto existing message-passing software or onto physically shared memory to make its programs portable from one parallel architecture to another. As a consequence, vendors who wish to implement an explicitly parallel C could use the syntax and semantics of UPC as a basis for a standard.
4
Parallel programming in Split-C
Arvind Krishnamurthy, David Culler, Andrea C. Dusseau et al. · 1993 · 534 citations
Richard Stallman · 1998 · 185 citations
William W. Carlson, Jesse M. Draper · 1995 · 36 citations