Publication | Closed Access
Introduction to UPC and Language Specification
295
Citations
4
References
2000
Year
Unknown Venue
EngineeringComputer ArchitectureSemanticsLanguage SpecificationHardware SystemsFormal VerificationParallel AlgorithmsLanguage DocumentationParallel SoftwareLanguage StudiesParallel ComputingCompilersInstruction-level ParallelismProgramming LanguagesHigh-level Programming LanguageFormal SpecificationParallel CParallelizing CompilerComputer EngineeringComputer ScienceSpecification LanguageOperating SystemsAutomated ReasoningProgram AnalysisC Programming LanguageFormal MethodsParallel ProgrammingParallel Programming ModelLinguisticsSystem SpecificationParallel Extension
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1