并行编程是通过同步执行计算机指令的方式来取得比串行编程更快速度的一种编程方法。并行编程是相对于传统的串行编程而提出的概念。在串行编程中,一个程序的指令在单一的 CPU 上按照先后顺序依次执行,而在并行编程则将一个程序分成独立的若干部分在一个或多个 CPU 上进行同步执行以取得更高的运算效率和性能。
根据底层的内存结构,并行编程可以分为以下三种程序设计类型:
Unified Parallel C (UPC) 是基于分布式共享内存程序设计模型,应用于超级计算机上进行高效能计算的并行编程语言。它提取了 AC, Split C, Parallel C Preprocessor 这三种并行语言的优点,对 C 语言(ISO C99 标准)进行扩展,增加了一些特性和概念使之既保留了原来 C 语言的简洁高效的优点,同时又可以支持并行编程。可以说 , UPC 并行编程语言是 C 语言的超集,任何语法正确的 C 语言在 UPC 中都是正确的。
为了支持并行编程,UPC 对 C 语言作了以下的扩充: