首页 理论教育信息技术实践:并行计算的特征与应用

信息技术实践:并行计算的特征与应用

【摘要】:并行计算是相对串行计算而言的,简单来讲,并行计算就是同时使用多个计算资源来解决一个计算问题,在CPU中可同时执行多个任务。并行计算具有以下特征。并行计算目前还是一门发展中的学科。空间上的并行计算是指由多个处理单元执行的计算,是以空间换时间。任务并行计算与实际应用需求紧密相关。并行程序的基本计算单位是进程。

在个人计算机(PC)诞生后的几十年里,程序员们编写了大量的应用软件,这些软件绝大部分采用串行计算方法。所谓串行,是指软件在PC上执行,在进入CPU前被分解为一条条指令,指令在CPU中一条条顺序执行。任一时间内,CPU只能够运行一条指令。这种方式很符合人们对现实世界的思考习惯。至于软件的运行速度,则依赖硬件的处理能力,尤其是CPU的处理速度。

到了2005年,受制造CPU的半导体材料的限制,CPU发展的摩尔定律开始失效了。但芯片业很快找到了一个变通的办法:在一块芯片中植入多个处理核心,通过多核的共同运算,提高运行速度。但是,许多软件仍然采用传统的串行方法编写,这就面临着一个因软硬件不匹配导致运行速度停滞不前的尴尬局面。而在互联网领域,由于网络数据极速膨胀,数据量已经远远超过一台或者几台大型计算机的处理能力,需要更大数量的计算机协同完成。面对这些问题,主要的解决方案就是,并行计算。

并行计算是相对串行计算而言的,简单来讲,并行计算就是同时使用多个计算资源来解决一个计算问题,在CPU中可同时执行多个任务。

并行计算具有以下特征。

(1)一个问题被分解成一系列可以并发执行的离散部分。

(2)每个部分可以进一步被分解成一系列离散指令。

(3)来自每个部分的指令可以在不同的处理器上被同时执行。

(4)需要一个总体的控制/协作机制来负责对不同部分的执行情况进行调度。(www.chuimin.cn)

“计算资源”可能是具有多处理器/多核的计算机,也可能是任意数量的被连接在一起的计算机。“计算问题”需具有3个特点:能够被分解成并发执行离散片段;不同的离散片段能够被在任意时刻执行;采用多个计算资源的花费时间要小于采用单个计算资源所花费的时间。

目前,广泛采用的多核处理器在体系结构、软件、功耗和安全性设计等方面面临着巨大的挑战。要想让多核完全发挥效力,需要硬件业和软件业更多革命性的更新。其中,可编程性是多核处理器面临的最大问题。尽管在并行计算上,人类已经探索了40多年,但编写、调试、优化并行处理程序的能力还非常弱。

并行计算目前还是一门发展中的学科。并行计算可以分为时间上的并行计算和空间上的并行计算。时间上的并行计算就是流水线技术,即采用指令预取技术,将每个指令分成多步,各步间叠加操作,当前指令完成前,后一指令准备就绪,缩小指令执行的时钟周期,典型的以时间换空间。空间上的并行计算是指由多个处理单元(不仅是CPU)执行的计算,是以空间换时间。空间上的并行计算分为两类:单指令多数据流和多指令多数据流。

空间并行计算技术包含数据并行计算和任务并行计算。数据并行计算是指将一个大的数据分解为多个小的数据,分散到多个处理单元执行。任务并行是将大的任务分解为小的任务,分散到多个处理单元执行,任务并行同时还要避免任务重复执行,协调数据的上下文关系,避免冲突发生。任务并行计算与实际应用需求紧密相关。所以,任务并行计算要比数据并行计算复杂得多。

能同时执行两个以上运算或逻辑操作的程序设计方法称为并行程序设计。所谓并行性,严格地说,有两种含义:一是同时性,亦即平行性,指两个或多个事件在同一时刻发生;二是并发性,指两个或多个事件在同一时间间隔内发生。

程序并行性分为控制并行性和数据并行性。并行程序的基本计算单位是进程。并行程序有多种模型,包括共享存储、分布存储 (消息传递)、数据并行和面向对象。与并行程序设计相适应的硬件也有不同类型,如多处理机、向量机、大规模并行机和机群系统等,相应有不同的并行程序设计方法。具体解题效率还与并行算法有关。

设计和实现并行程序是一个离不开人工操作的过程,程序员通常需要负责识别和实现并行化,而通常手动开发并行程序是一个耗时、复杂、易于出错并且迭代失败的过程。多年来,一些工具被开发出来,用以协助程序员将串行程序转化为并行程序,而最常见的工具就是可以自动并行化串行程序的并行编译器或者预处理器。最常见的由编译器生成的并行化程序是通过使用结点内部的共享内存和线程实现的。