并行计算结构算法编程
‘壹’ 用并行可实现的算法有哪些
首先,应用的场合和解决的问题不一样。分布式计算比较倾向于在计算寻找模式的东西,穷举暴力之类的计算。分布式的计算被分解后的小任务互相之间有独立性,节点之间的结果几乎不互相影响,实时性要求不高。而并行计算则比较倾向于一些海量数据进行分析处理的场合,每个节点的每一个任务块都是必要的,计算的结果相互影响,要求每个节点的计算结果要绝对正确,并且在时间上做到同步。举例来说,像MD5破解,就比较适合使用大规模的分布式计算来穷举,但对海量日志数据进行处理来分析用户行为就比较适合并行计算处理。 其次,实现方式区别比较大。分布式计算会是一个比较松散的结构,并行计算则是各节点之间通过高速网络或其它总线之类的东西连接。因此并行计算一般在企业内部进行,而分布式计算可能会跨越局域网,或者直接部署在互联网上,节点之间几乎不互相通信。很多公益性的项目,就是的使用分布式计算的方式在互联网上实现,比如以寻找外星人为目的的SETI项目。
‘贰’ 并行处理的并行算法的基本策略
在并行处理技术中所使用的算法主要遵循三种策略:
1.分而治之法:也就是把多个任务分解到多个处理器或多个计算机中,然后再按照一定的拓扑结构来进行求解。
2.重新排序法:分别采用静态或动态的指令词度方式。
3.显式/隐式并行性结合:显式指的是并行语言通过编译形成并行程序,隐式指的是串行语言通过编译形成并行程序,显式/隐式并行性结合的关键就在于并行编译,而并行编译涉及到语句、程序段、进程以及各级程序的并行性。
二、并行性描述定义
利用计算机语言进行并行性描述的时候主要有三种方案:
1.语言扩展方案:也就是利用各种语言的库函数来进行并行性功能的扩展。
2.编译制导法:也称为智能编译,它是隐式并行策略的体现,主要是由并行编译系统进行程序表示、控制流的分析、相关分析、优化分析和并行化划分,由相关分析得到方法库管理方案,由优化分析得到知识库管理方案,由并行化划分得到程序重构,从而形成并行程序。
3.新的语言结构法:这是显式并行策略的体现。也就是建立一种全新的并行语言的体系,而这种并行语言通过编译就能直接形成并行程序。
三、并行软件
并行软件可分成并行系统软件和并行应用软件两大类,并行系统软件主要指并行编译系统和并行操作系统,并行应用软件主要指各种软件工具和应用软件包。在软件中所牵涉到的程序的并行性主要是指程序的相关性和网络互连两方面。
1.程序的相关性:程序的相关性主要分为数据相关、控制相关和资源相关三类。
数据相关说明的是语句之间的有序关系,主要有流相关、反相关、输出相关、I/O相关和求知相关等,这种关系在程序运行前就可以通过分析程序确定下来。数据相关是一种偏序关系,程序中并不是每一对语句的成员都是相关联的。可以通过分析程序的数据相关,把程序中一些不存在相关性的指令并行地执行,以提高程序运行的速度。
控制相关指的是语句执行次序在运行前不能确定的情况。它一般是由转移指令引起的,只有在程序执行到一定的语句时才能判断出语句的相关性。控制相关常使正在开发的并行性中止,为了开发更多的并行性,必须用编译技术克服控制相关。
而资源相关则与系统进行的工作无关,而与并行事件利用整数部件、浮点部件、寄存器和存储区等共享资源时发生的冲突有关。软件的并行性主要是由程序的控制相关和数据相关性决定的。在并行性开发时往往把程序划分成许多的程序段——颗粒。颗粒的规模也称为粒度,它是衡量软件进程所含计算量的尺度,一般用细、中、粗来描述。划分的粒度越细,各子系统间的通信时延也越低,并行性就越高,但系统开销也越大。因此,我们在进行程序组合优化的时候应该选择适当的粒度,并且把通讯时延尽可能放在程序段中进行,还可以通过软硬件适配和编译优化的手段来提高程序的并行度。
2.网络互连:将计算机子系统互连在一起或构造多处理机或多计算机时可使用静态或动态拓扑结构的网络。静态网络由点一点直接相连而成,这种连接方式在程序执行过程中不会改变,常用来实现集中式系统的子系统之间或分布式系统的多个计算结点之间的固定连接。动态网络是用开关通道实现的,它可动态地改变结构,使之与用户程序中的通信要求匹配。动态网络包括总线、交叉开关和多级网络,常用于共享存储型多处理机中。在网络上的消息传递主要通过寻径来实现。常见的寻径方式有存储转发寻径和虫蚀寻径等。在存储转发网络中以长度固定的包作为信息流的基本单位,每个结点有一个包缓冲区,包从源结点经过一系列中间结点到达目的结点。存储转发网络的时延与源和目的之间的距离(段数)成正比。而在新型的计算机系统中采用虫蚀寻径,把包进一步分成一些固定长度的片,与结点相连的硬件寻径器中有片缓冲区。消息从源传送到目的结点要经过一系列寻径器。同一个包中所有的片以流水方式顺序传送,不同的包可交替地传送,但不同包的片不能交叉,以免被送到错误的目的地。虫蚀寻径的时延几乎与源和目的之间的距离无关。在寻径中产生的死锁问题可以由虚拟通道来解决。虚拟通道是两个结点间的逻辑链,它由源结点的片缓冲区、结点间的物理通道以及接收结点的片缓冲区组成。物理通道由所有的虚拟通道分时地共享。虚拟通道虽然可以避免死锁,但可能会使每个请求可用的有效通道频宽降低。因此,在确定虚拟通道数目时,需要对网络吞吐量和通信时延折衷考虑。
四、硬件技术在硬件技术方面主要从处理机、存储器和流水线三个方面来实现并行。
1.处理机:主要的处理机系列包括CISC、RISC、超标量、VL1W、超流水线、向量以及符号处理机。
传统的处理机属于复杂指令系统计算(CISC)结构。指令系统大,指令格式可变,通用寄存器个数较少,基本上使用合一的指令与数据高速缓存,时钟频率较低,CPI较高,大多数利用ROM 实现微码控制CPU,而当今的精简指令系统计算(RISC)处理机指令格式简单规范,面向寄存器堆,采用重叠寄存器窗口技术,具有多级Cache,多种流水线结构,强调编译优化技术,时钟频率快,CPI低,大多数用硬连线控制CPU。
CISC或RISC标量处理机都可以采用超标量或向量结构来改善性能。标量处理机在每个周期内只发射一条指令并要求周期只完成从流水线来的一条指令。而在超标量处理机中,使用了多指令流水线,每个周期要发射多条指令并产生多个结果。由于希望程序中有许多的指令级并行性,因此超标量处理机更要依靠优化编译器去开发并行性。
VL1W 结构是将水平微码和超标量处理这两种普遍采用的概念结合起来产生的。典型的超长指令字VL1W 机器指令字长度有数百位。在VLlW 处理机中,多个功能部件是并发工作的,所有的功能部件共享使用公用大型寄存器堆,由功能部件同时执行的各种操作是用VL1W 指令来同步的,每条指令可指定多个操作。VL1W 指令译码比超标量指令容易,但在开发不同数量的并行性时总是需要不同的指令系统。VL1W 主要是开发标量操作之间的并行性,它的成功与否很大程度取决于代码压缩的效率,其结构和任何传统的通用处理机完全不兼容。即使同一结构的不同实现也不大可能做到彼此二进制兼容。VL1W 的主要优点在于它的硬件结构和指令系统简单,在科学应用领域可以发挥良好作用,但在一般应用场合可能并不很好用。
向量处理机对数组执行向量指令,每条指令都包含一串重复的操作。它是专门设计用来完成向量运算的协处理机,通常用于多流水线超级计算机中。向量处理机可以利用循环级展开所得的并行性,它可以附属于任何标量处理机。专用的向量流水线可以在循环控制中消除某些软件开销,它的效果与优化编译器将顺序代码向量化的性能很有关系。从理论上说,向量机可以具有和超标量处理机同样的性能,因此可以说向量机的并行性与超标量机相同。
符号处理机是为AI应用而研制的,已用于定理证明、模式识别、专家系统、知识工程、文本检索、科学以及机器智能等许多应用领域。在这些应用中,数据和知识表达式、原语操作、算法特性、存储器、I/0和通信以及专用的结构特性与数值计算是不一样的,符号处理机也称为逻辑程序设计语言处理机、表处理语言处理机或符号变换器。符号处理并不和数值数据打交道,它处理的是逻辑程序、符号表、对象、剧本、黑板、产生式系统、语义网络、框架以及人工神经网络等问题。这些操作需要专门的指令系统,通常不使用浮点操作。
2.存储器:存储设备按容量和存取时间从低到高可分为寄存器、高速缓存、主存储器、磁盘设备和磁带机五个层次。较低层存储设备与较高层的相比,存取速度较快、容量较小,每字节成本较高、带宽较宽、传输单位较小。
存放在存储器层次结构中的信息满足三个重要特性:包含性、一致性和局部性。所谓包含性,指的是一个信息字的复制品可以在比它高的所有层中找到,而如果在高层中丢失了一个信息,则在比它低的所有层中此信息也将丢失。CPU 和高速缓存之间的信息传送是按字进行的,高速缓存和主存储器间用块作为数据传送的基本单位,主存和磁盘之间又是以页面为基本单位来传送信息的,而在磁盘和磁带机之间的数据传送则是按文件级处理的。所谓一致性要求的是同一个信息项与后继存储器层次上的副本是一致的。也就是说,如果在高速缓存中的一个字被修改过,那么在所有更高层上该字的副本也必须立即或最后加以修改。为了尽量减少存储器层次结构的有效存取时间,通常把频繁使用的信息放在较低层次。维护存储器层次结构一致性一般有两种策略,一种是写直达策略,也就是如果,则立即在所有高层存储器中进行同样的修改;另一种是写回策略,也就是在较低层中对信息进行修改后并不立即在高层存储器中进行相应的修改,而是等到该信息将被替换或将从低层中消失时才在所有高层存储器中进行同样的修改。甚至可以将写直达和写回策略的优点结合起来,形成写一次协议来维护存储器的一致性。
存储器的层次结构是在一种程序行为——访问的局部性基础上开发出来的。主要有时间局部性、空间局部性和顺序局部性。时间局部性指的是最近的访问项很可能在不久的将来再次被访问。它往往会引起对最近使用区域的集中访问。空间局部性表示一种趋势,指的是一个进程访问的各项其地址彼此很近。顺序局部性指的是在典型程序中,除非是转移指令,一般指令都是顺序执行的。
在多处理机系统中一般使用共享存储器。对共享存储器的组织一般采用低位交叉、高位交叉、高低位交叉三种方法。低位交叉又称并发存取,它是把相邻的地址放在相邻的存储器模块中,在访问时不容易产生冲突,并行性较好,但可靠性容错能力和扩展性均较差。高位交叉又称允许同时存取,它是把相邻地址分配到同一个存储器模块中,可靠性、容错能力和扩展性均较强,但访问时易产生冲突,带宽较窄,并行性较差。高低位交叉存取又称C—s存取,它是结合了高位交叉和低位交叉两种方法的优点,既解决了冲突问题,又能有效地提高容错能力和并行性,最适合于向量处理机结构。
3.流水线:流水线技术主要有指令流水线技术和运算流水线技术两种。
指令流水线技术主要目的是要提高计算机的运行效率和吞吐率。它主要通过设置预取指令缓冲区、设置多功能部件、进行内部数据定向、采取适当的指令调度策略来实现。指令调度的策略主要有静态和动态两种,静态词度是基于软件的,主要由编译器完成,动态词度是基于硬件的,主要是通过硬件技术进行。
运算流水线主要有单功能流水线和多功能流水线两种。其中多功能流水线又可分为静态流水线和动态流水线。静态流水线技术只用来实现确定的功能,而动态流水线可以在不同时间重新组合,实现不同的功能,它除流线连接外,还允许前馈和反馈连接,因此也称为非线性流水线。这些前馈和反馈连接使得进入流水线的相继事件的词度变得很不简单。由于这些连接,流水线不一定从最后一段输出。根据不同的数据流动模式,人们可以用同一条流水线求得不同功能的值。
并行计算机发展简述
40 年代开始的现代计算机发展历程可以分为两个明显的发展时代:串行计算时代、并行计算时代。每一个计算时代都从体系结构发展开始,接着是系统软件(特别是编译器与操作系统)、应用软件,最后随着问题求解环境的发展而达到顶峰。创建和使用并行计算机的主要原因是因为并行计算机是解决单处理器速度瓶颈的最好方法之一。
并行计算机是由一组处理单元组成的,这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。因此,并行计算机的两个最主要的组成部分是计算节点和节点间的通信与协作机制。并行计算机体系结构的发展也主要体现在计算节点性能的提高以及节点间通信技术的改进两方面。
60 年代初期,由于晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术发展的结果导致了并行计算机的出现,这一时期的并行计算机多是规模不大的共享存储多处理器系统,即所谓大型主机(Mainframe)。IBM360 是这一时期的典型代表。
到了60 年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了。与单纯提高时钟频率相比,这些并行特性在处理器内部的应用大大提高了并行计算机系统的性能。伊利诺依大学和Burroughs 公司此时开始实施IlliacIV 计划,研制一台64 个CPU 的SIMD 主机系统,它涉及到硬件技术、体系结构、I/O 设备、操作系统、程序设计语言直至应用程序在内的众多研究课题。不过,当一台规模大大缩小了的16CPU 系统终于在1975 年面世时,整个计算机界已经发生了巨大变化。
首先是存储系统概念的革新,提出虚拟存储和缓存的思想。IBM360/85 系统与360/91是属于同一系列的两个机型,360/91 的主频高于360/85,所选用的内存速度也较快,并且采用了动态调度的指令流水线;但是,360/85 的整体性能却高于360/91,唯一的原因就是前者采用了缓存技术,而后者则没有。
其次是半导体存储器开始代替磁芯存储器。最初,半导体存储器只是在某些机器被用作缓存,而CDC7600 则率先全面采用这种体积更小、速度更快、可以直接寻址的半导体存储器,磁芯存储器从此退出了历史舞台。与此同时,集成电路也出现了,并迅速应用到了计算机中。元器件技术的这两大革命性突破,使得IlliacIV 的设计者们在底层硬件以及并行体系结构方面提出的种种改进都大为逊色。
1976 年CRAY-1 问世以后,向量计算机从此牢牢地控制着整个高性能计算机市场15 年。CRAY-1 对所使用的逻辑电路进行了精心的设计,采用了我们如今称为RISC 的精简指令集,还引入了向量寄存器,以完成向量运算。这一系列全新技术手段的使用,使CRAY-1 的主频达到了80MHz。
微处理器随着机器的字长从4 位、8 位、16 位一直增加到32 位,其性能也随之显着提高。正是因为看到了微处理器的这种潜力,卡内基- 梅隆大学开始在当时流行的DECPDP11 小型计算机的基础上研制成功一台由16 个PDP11/40 处理机通过交叉开关与16 个共享存储器模块相连接而成的共享存储多处理器系统C.mmp。
从80 年代开始,微处理器技术一直在高速前进。稍后又出现了非常适合于SMP 方式的总线协议,而伯克利加州大学则对总线协议进行了扩展,提出了Cache 一致性问题的处理方案。从此,C.mmp 开创出的共享存储多处理器之路越走越宽;现在,这种体系结构已经基本上统治了服务器和桌面工作站市场。
同一时期,基于消息传递机制的并行计算机也开始不断涌现。80 年代中期,加州理工成功地将64 个i8086/i8087 处理器通过超立方体互连结构连结起来。此后,便先后出现了Intel iPSC 系列、INMOS Transputer 系列,Intel Paragon 以及IBM SP 的前身Vulcan 等基于消息传递机制的并行计算机。
80 年代末到90 年代初,共享存储器方式的大规模并行计算机又获得了新的发展。IBM将大量早期RISC 微处理器通过蝶形互连网络连结起来。人们开始考虑如何才能在实现共享存储器缓存一致的同时,使系统具有一定的可扩展性(Scalability)。90 年代初期,斯坦福大学提出了DASH 计划,它通过维护一个保存有每一缓存块位置信息的目录结构来实现分布式共享存储器的缓存一致性。后来,IEEE 在此基础上提出了缓存一致性协议的标准。
90 年代以来,主要的几种体系结构开始走向融合。属于数据并行类型的CM-5 除大量采用商品化的微处理器以外,也允许用户层的程序传递一些简单的消息;CRAY T3D是一台NUMA 结构的共享存储型并行计算机,但是它也提供了全局同步机制、消息队列机制,并采取了一些减少消息传递延迟的技术。
随着商品化微处理器、网络设备的发展,以及MPI/PVM 等并行编程标准的发布,机群架构的并行计算机出现。IBM SP2 系列机群系统就是其中的典型代表。在这些系统中,各个节点采用的都是标准的商品化计算机,它们之间通过高速网络连接起来。
今天,越来越多的并行计算机系统采用商品化的微处理器加上商品化的互连网络构造,这种分布存储的并行计算机系统称为机群。国内几乎所有的高性能计算机厂商都生产这种具有极高性能价格比的高性能计算机,并行计算机就进入了一个新的时代,并行计算的应用达到了前所未有的广度和深度。
并行计算机随着微处理芯片的发展,已经进入了一个新时代。目前并行计算机的性能已经突破20PFLOPS,正在向百亿亿次发展。我国并行计算机的研制已经走在世界前列。2003年由联想公司生产的深腾6800 在2003 年11 月世界TOP500 排名中位列第14 名,2004 年曙光公司生产的曙光4000A 在2004 年6 月的世界TOP500 排名中位列第10 名,这是我国公开发布的高性能计算机在世界TOP500 中首次进入前十名,这标志着我国在并行计算机系统的研制和生产中已经赶上了国际先进水平,为提高我国的科学研究水平奠定了物质基础。2013年国际超级计算机大会最新发布的世界超级计算机500强排名中,国防科技大学研制的天河二号超级计算机系统,以峰值计算速度每秒5.49亿亿次、持续计算速度每秒3.39亿亿次双精度浮点运算的优异性能位居榜首。
从TOP500 的前10 名来看,美国仍然是超级计算机的最大拥有者。按照世界TOP500 的统计数据来分析,美国在计算能力上占有近全世界的一半,在TOP500 中的所有计算机中拥有的数量超过50%。
‘叁’ 如何实现C语言的多处理器并行计算
使用系统的API
参考文章:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/26/2610336.html
‘肆’ 陈国良的主要成果
先后主持完成了10多项国家863计划、国家攀登计划、国家自然基金、教育部博士基金等科研项目。取得了多项被国内外广泛引用的、达到国际先进水平的科研成果,发表论文100多篇,出版着作7部,译着5部,参与主编计算机类辞典、词汇5部,主审、主编计算机类各种教材8部。
获国家级二等奖以及部、省、院级一等、二等、三等奖共14项。 [1] 陈国良等,《并行计算机体系结构》,高等教育出版社,2002。
[2] 陈国良,《并行计算:结构,算法,编程》,高等教育出版社,1999。
[3] 陈国良等,《遗传算法及其应用》,人民邮电出版社,1996。
[4] 陈国良,《并行算法的设计与分析》,高等教育出版社,1994。
[5] 陈国良,陈崚,《VLSI计算理论与并行算法》,中国科大出版社,1991。
[6] 陈国良,《并行算法:排序和选择》,中国科大出版社,1990。
[7] 王鼎兴,陈国良,《互连网络结构分析》,科学出版社,1990。 陈国良,基于曙光1000的中尺度数值气象预报系统及其在江淮流域适用性研究,小型微型计算机系统,Vol.21, No.11, p1121-1125, 2000.11。
陈国良,淮河中上游群库联合优化调度算法及其并行实现,小型微型计算机系统,Vol.21, No.6, p603-607, 2000.6。
陈国良,林洁,顾乃杰, 分布式存储的并行串匹配算法的设计与分析,软件学报, 11(6), pp. 771-778, 2000.6
Chen gouliang,Heuristics for Line Capacity Design of PWE Assembly Systems,J. of China Univ. of Sci. & Tech.,Vol.30, No.2, p142-150, 2000.4。
陈国良,桂孝生,杨勃,Walch变换的截断方法及其并行实现,中国科大学报,Vol.28,No.3,pp.270-276,1998
陈国良,许锦波,LogP模型上的一类蝶式计算的通信策略,计算机学报,Vol.20,No.8,pp.695-701,1997
陈国良,熊焰,顾乃杰,面向应用的神经信息处理系统(NIPS),计算机研究与发展,Vol. 33,No.12,pp.887-892,1996
陈国良,李晓峰,黄伟民,并行FFT算法在3种并行计算模型上的设计和分析,软件学报,Vol.7,增刊, pp.57-63,1996
陈国良,并行算法的可扩放性分析, 小型微型计算机系统,Vol.16,No.2,pp.10-16,1995
陈国良,梁维发,沈鸿,并行图论算法研究进展,计算机研究与发展,Vol.32,No.9,pp.1-16,1995
陈国良,更实际的并行计算模型,小型微型计算机系统,Vol.16,No.2,pp.1-9,1995
Chen Guoliang,Zhu Song-chun,Chin Shao-ou,On the Master-Slave Neural Network Models,proc.IJCNN’92,Beijing,1992
陈国良,熊焰,方祥,通用并行神经网络模拟系统GP2N2S2,小型微型计算机系统,Vol.13,No.12,pp.16-21,1992
陈国良,神经计算及其在组合优化中的应用,计算机研究与发展,Vol.29,No.5,pp.1-21,1992
陈国良,朱松纯,秦小鸥,主从通用神经网络模型,电子学报,Vol.20,No.10,pp.24-32,1992
陈国良,张永民,改进的多层栅格嵌入算法,计算机学报,Vol.14,No.5,pp.332-339,1991
陈国良,韩雅华,Benes网络的半自动选路法,计算机学报,Vol.13,No.3,pp.161-173,1990
G.L.Chen,An O(n) Switch setting Algorithm for the Benes Network,PPCC-3,Beijing,China,Vol. 8,pp.16-19,1989
陈国良,VLSI并行计算,计算机工程与应用,No.2, pp.1-35,1989
G.L.Chen,H.Shen,A Bitonic Selection Algorithm on Multiprocessors,J.of comput. Sci.&Tech.,Vol.4,No.4,pp.315-322,1989
陈国良,非数值计算的并行算法(下),计算机研究与发展,Vol.25,No.12,pp.1-10,1988
Chen Guoliang,A Partitioning Selection Algorithm on Multiprocessors,J.of comput. Sci.&Tech.,Vol.3,No.4,pp.241-250,1988
陈国良,刘峻,多处理器上的分组选择网络,计算机研究与发展,Vol.25,No.8,pp.1-9,1988
陈国良,王忠良,并行归并选择算法,计算机学报,Vol. 11,No.1,pp.14-21,1988
陈国良,沈鸿,SIMD机器上的双调选择算法,计算机研究与发展, Vol. 25,No.1,pp.1-14,1988
陈国良,沈鸿,双调选择网络及其在多处理器上实现的双调选择算法,计算机研究与发展,Vol. 24,No.9,pp.1-10,1987
陈国良,熊焰,两个不同机种局部区域网络Cnet和Omninet网际互连,小型微型计算机系统,No.2,pp.1-8,1987
K.L.Chen and H.Shang,Bitonic Selection Algorithm on SIMD machine,The Second International conf. On computers and applications,Beijing,China,pp.176-182,1987
陈国良,数据流计算机的互连结构,计算机研究与发展,Vol. 23,No.9,pp.2-10,1986
陈国良,计算机网络互连研究,计算机研究与发展,Vol. 23,No.11,pp.2-10,1986
陈国良,选择网络的比较研究,中国科大学报,pp.109-120,1985
陈国良,多处理机系统的互连网络,计算机研究与发展,Vol. 28,No.8,pp.30-50,1985
陈国良,计算机网络拓扑(上),计算机研究与发展,Vol. 22,No.10, pp.37-45,1985
陈国良,计算机网络拓扑(下),计算机研究与发展,Vol. 22,No.11, pp.7-15,1985
B.W.Wah and K.L.Chen,A partitioning approach to the design of selection networks, IEEE Trans. On-computers,Vol.c-23,No.3 pp.261-268,1984
陈国良,平衡递归选择算法,计算机研究与发展,Vol. 21,No.4,pp.7-17,1984
陈国良,并行排序算法,计算机工程与应用,pp.62-72,1984
B.W.Wah and K.L.Chen,Generalized parallel selection networks,The first International conf. On computers and applications,Beijing,China,pp.406-413,1984
数据流计算机,计算机研究与发展,Vol. 21,No.9,pp.34-46,1984
陈国良,平衡分组选择网络,计算机研究与发展,Vol. 21,No.11,pp.9-21,1984
个人荣誉
中国科学技术大学软件学院院长、国家高性能计算中心(合肥)主任陈国良教授,数十年来,他呕心沥血,勇攀科技高峰,培养了一大批优秀人才,为我国的科技发展和经济建设作出了重要贡献。
中国科学院院士、中国科技大学教授陈国良受聘南京邮电大学兼职教授暨院士学术报告会在学校科学会堂报告厅举行。副校长张顺颐教授主持仪式和报告会。副校长郑宝玉教授向陈国良教授颁发了兼职教授聘书。受聘后,陈院士将不定期到我校对计算机学科和信息与计算学科的学科建设、教学和科研等工作进行指导。
陈国良院士是我国计算机并行算法的理论、设计和应用方面杰出的科学家。最早提出并行算法研究的一系列新观点和新方法,形成了“并行算法—并行计算机—并行编程”一体化研究体系。在非数值并行算法和高性能计算及其应用的研究方面做出了系统的创造性成就和重大贡献。是全国100名名师之一。陈国良院士受聘我校兼职教授后,将会极大地促进计算机学科和信息与计算学科的发展。
研究成果
上世纪90年代中期,陈国良教授开展了高性能计算及其应用的研究,率先成立了我国第一个国家高性能计算中心,推进了我国该领域的发展;开发了自主版权的国产曙光并行机“用户开发环境”商用软件,为推广国产并行机应用做出了重要贡献。以陈国良为首席科学家的国家高性能计算中心(合肥)成立10年来,先后承担了国家863、国家自然科学基金等项目20多项,总经费达4000余万元。在国内高校率先开设了并行算法、并行体系结构等一系列高性能计算方面的专业课,形成了并行算法类教学体系,推动了我国高性能并行计算学科的研究与发展。
陈国良图册
陈国良教授将高性能计算的理论与方法应用于淮河流域的防洪、防污和水环境的治理。他与淮委合作研制开发的国家863重大项目安徽省防灾减灾智能信息与决策支持系统,在汛期对淮河中上游九大水库进行防洪调度,他负责研制的淮河流域防洪防污智能调度系统,以削峰、错峰调度为目标,将气象数值预报、水情信息的获取与分析、流域汇流计算与洪水预警预报、水库的联合调度等有机结合,在流域防洪调度决策工作中发挥了重要的作用。2003年夏,淮河流域遭受特大洪涝灾害。陈国良带领中国科大师生一行十多人跑到一线现场,为防洪调度决策提供高性能计算支持。为确保计算参数的准确性,他还与淮河水利委员会的技术人员一同到方邱湖、西大坝等防洪重点区域实地考察,提出了洪水演进计算方案,为这一区域的防洪调度工作提供了科学依据。
在陈国良眼里,教学永远是第一位的。30多年来,他一直站在教学一线。他培养的30多名博士生中,不少人已经成为学科带头人和技术骨干。1998年,陈国良荣获安徽省教育系统模范和安徽省模范教师称号,2003年,获得首届国家教学名师奖
人物语录
亦工亦农:农民出生,在农村长大,对农村情况非常的熟悉。陈老说,虽然自己经历了很多,做过很多职业,但自己骨子里却始终不该农民的本色。至于“工”,则是因为进过军工厂,当过工人。陈老说自己对工人也有深厚的感情,他觉得工人的感情十分的朴素真挚,人也很容易相处。
陈国良图册
亦文亦武:念了大学,还出过国深造,也算得上是一名知识分子。而且自1973年调入中国科学技术大学工作至今就一直在与“文”打交道。“武”方面是因为自己在大学毕业后参军在军队里呆了四五年时间,还到过福建前线。
亦强亦弱:进入大学,先是在电力系学强电,则是“强”,后来转学的无线电与计算机都是弱电压,所以称之为“弱”。
亦硬亦软:先是研究计算机硬件方面的知识,后来又研究了计算机软件方面的知识。
亦理亦实:既做理论,又实践。两手抓,两手都硬。
亦中亦西:虽然自己在国内外都没有取得博士学位,但是研究还是有一定的成就。经常到别的国家的高校进行学术交流,在中西两方面都有一定成果和影响。
陈老还与在场的所有听众分享了他的一些小小故事:学英语发音、教专业英语、在部队的种种经历……,他幽默诙谐的语言引来了一阵阵掌声。他还认真回答了互动环节中同学们的积极提问。
二十四个普通的汉字,堆砌的是陈老不平凡的一生。他的谦和、朴素、认真的品质尽现了大师风范,也是这次讲座座无虚席的理由。
个人影响
重奖成果中科院院士陈国良获得个人一等奖
中科院院士、中国科技大学教授、中国高性能计算机中心(合肥)主任陈国良教授申报的高性能并行计算及其应用项目获得个人首届“浪潮高性能计算创新奖”一等奖。陈国良教授及其开创的高性能并行计算及其应用,为推动中国高性能科学计算的发展做出了突出的贡献。在国际上,使我国的高性能并行算法达到国际先进水平。
高性能并行计算及其应用形成了并行计算理论--并行算法设计--并行计算实现--并行计算应用一套完整的学科研究体系,提出了并行机结构--并行算法--并行编程一体化的研究方法。高性能并行计算及其应用的重要内容涉及一些经典问题的并行算法研究,如网络与排序算法、图论算法、互联网络及其路由算法、VLS布局算法等,达到了国际领先水平。在国际上,高性能并行计算及其应用,将结构、算法和编程有机联系起来,解决了水科学、气象预报、石油开采钻探等实际科学工程计算问题,也在国际同行研究中独具特色。
陈国良图册
高性能并行计算及其应用目前在国内许多工程项目中得到广泛的应用,并取得了非常好的经济和社会效益。以高性能并行计算及其应用为基础的国家863重大项目安徽省防灾减灾智能信息与决策支持系统,这一系统将中尺度数值气象预报模式的计算结果作为水情预测和群库优化调度的决策参考依据,在汛期对淮河中上游九大水库进行防洪调度,取得了显着的社会和经济效益。
而淮河流域防洪防污智能调度系统,以削峰、错峰调度为目标,将气象数值预报、水情信息的获取与分析、流域汇流计算与洪水预警预报、水库的联合调度等有机结合,其研究结果作为预报的参考依据,在流域防洪调度决策工作中发挥了重要的作用。在战胜2004年夏季淮河遭受的超过50年一遇的特大洪水中,为政府部门防洪提供了及时有效的数据支持,为防洪决策提供了有力的支持。
众所周知,淮河流域是一个水患与污患并重的特殊流域,非汛期的防污、控污任务非常艰巨。以陈国良院士的并行计算为基础,利用计算网格、信息网格等网格计算技术,构建的流域数字化基础信息平台,开发水资源污染控制系统,为淮河污染治理提供了有力的决策支持。2004年夏,淮河遭受到10年一遇的特大污染,追踪污水团沿河顺流下洩的情况,为提前开闸泄污,消化与稀释污水团提供了高性能计算支持。
‘伍’ 毕业设计 我想阐述一下并行计算的发展
从20世纪40年代开始的现代计算机发展历程可以分为两个明显的发展时代:串行计算时代、并行计算时代。每一个计算时代都从体系结构发展开始,接着是系统软件(特别是编译器与操作系统)、应用软件,最后随着问题求解环境的发展而达到顶峰。
并行计算机是由一组处理单元组成的。这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。因此,并行计算机的两个最主要的组成部分是计算节点和节点间的通信与协作机制。并行计算机体系结构的发展也主要体现在计算节点性能的提高以及节点间通信技术的改进两方面。
节点性能不断进步
20世纪60年代初期,由于晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术发展的结果导致了并行计算机的出现。这一时期的并行计算机多是规模不大的共享存储多处理器系统,即所谓大型主机。IBM 360是这一时期的典型代表。
到了20世纪60年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了。与单纯提高时钟频率相比,这些并行特性在处理器内部的应用大大提高了并行计算机系统的性能。伊利诺依大学和Burroughs公司此时开始实施Illiac Ⅳ计划,研制一台64颗CPU的SIMD主机系统,它涉及到硬件技术、体系结构、I/O设备、操作系统、程序设计语言直至应用程序在内的众多研究课题。不过,当一台规模大大缩小的原型系统(仅使用了16颗CPU)终于在1975年面世时,整个计算机界已经发生了巨大变化。
首先是存储系统概念的革新,提出虚拟存储和缓存的思想。以IBM 360/85和IBM 360/91为例,两者是属于同一系列的两个机型,IBM 360/91的主频高于IBM 360/85,所选用的内存速度也较快,并且采用了动态调度的指令流水线。但是,IBM 360/85的整体性能却高于IBM 360/91,惟一的原因就是前者采用了缓存技术,而后者则没有。
其次是半导体存储器开始代替磁芯存储器。最初,半导体存储器只是在某些机器中被用作缓存,而CDC7600则率先全面采用这种体积更小、速度更快、可以直接寻址的半导体存储器,磁芯存储器从此退出了历史舞台。与此同时,集成电路也出现了,并迅速应用到计算机中。元器件技术的这两大革命性突破,使得Illiac Ⅳ的设计者们在底层硬件以及并行体系结构方面提出的种种改进都大为逊色。
处理器高速发展
1976年Cray-1问世以后,向量计算机从此牢牢地控制着整个高性能计算机市场15年。Cray-1对所使用的逻辑电路进行了精心的设计,采用了我们如今称为RISC的精简指令集,还引入了向量寄存器,以完成向量运算。这一系列技术手段的使用,使Cray-1的主频达到了80MHz。
微处理器随着机器的字长从4位、8位、16位一直增加到32位,其性能也随之显着提高。正是因为看到了微处理器的这种潜力,卡内基·梅隆大学开始在当时流行的DEC PDP-11小型计算机的基础上研制一台由16台PDP-11/40处理机通过交叉开关与16个共享存储器模块相连接而成的共享存储多处理器系统C.mmp。
从20世纪80年代开始,微处理器技术一直在高速前进。稍后又出现了非常适合于SMP方式的总线协议。而伯克利加州大学则对总线协议进行了扩展,提出了Cache一致性问题的处理方案。从此,C.mmp开创出的共享存储多处理器之路越走越宽。现在,这种体系结构已经基本上统治了服务器和桌面工作站市场。
通信机制稳步前进
同一时期,基于消息传递机制的并行计算机也开始不断涌现。20世纪80年代中期,加州理工学院成功地将64个i8086/i8087处理器通过超立方体互连结构连结起来。此后,便先后出现了Intel iPSC系列、INMOS Transputer系列,Intel Paragon以及IBM SP的前身Vulcan等基于消息传递机制的并行计算机。
20世纪80年代末到90年代初,共享存储器方式的大规模并行计算机又获得了新的发展。IBM将大量早期RISC微处理器通过蝶形互连网络连结起来。人们开始考虑如何才能在实现共享存储器缓存一致的同时,使系统具有一定的可扩展性。20世纪90年代初期,斯坦福大学提出了DASH计划,它通过维护一个保存有每一缓存块位置信息的目录结构来实现分布式共享存储器的缓存一致性。后来,IEEE在此基础上提出了缓存一致性协议的标准。
20世纪90年代至今,主要的几种体系结构开始走向融合。
属于数据并行类型的CM-5除大量采用商品化的微处理器以外,也允许用户层的程序传递一些简单的消息。
Cray T3D是一台NUMA结构的共享存储型并行计算机,但是它也提供了全局同步机制、消息队列机制,并采取了一些减少消息传递延迟的技术。
随着微处理器商品化、网络设备的发展以及MPI/PVM等并行编程标准的发布,集群架构的并行计算机出现开始。IBM SP2系列集群系统就是其中的典型代表。在这些系统中,各个节点采用的都是标准的商品化计算机,它们之间通过高速网络连接起来。
1.2 有限元并行计算的发展和现状
目前,在计算力学领域内,围绕着基于变分原理的有限元法
和基于边界积分方程的边界元法,以及基于现在问世的各种并行
计算机,逐渐形成了一个新的学科分支——有限元并行计算。它
是高效能的,使得许多现在应用串行计算机和串行算法不能解决
或求解不好的大型的、复杂的力学问题能得到满意的解答,故其
发展速度十分惊人。在国际上已经掀起了利用并行机进行工程分
析和研究的高潮。从1975到1995年的二十年间,有关有限元方法
和相应的数值并行计算的文章已发表1000余篇。
有限元并行计算正在向两个方向发展。一是对系统方程组实
施并行求解的各种算法。二是并行分析方法,包括有限元并行算
法和边界元并行算法,前者趋向成熟,而后者的研究较少。对这
一方面的研究,是为了挖掘有限元计算自身潜在的并行性,是有
限元并行计算的根本问题。
1.2.1国内
并行算法的设计和有效实现强烈地依赖于并行机的硬软件环
境。国内仅极少数单位拥有并行机,且机型杂乱,因此研究人员
少,起步晚,而且局限于特定的硬件环境。从有限元分析方法的
内容来看,发表的几十篇研究论文(报告)还未显示出较强的系
统性。
1)南京航空航天大学周树荃教授等在YH-1向量机上实现了刚度
矩阵计算、对称带状矩阵的Cholesky分解和线性方程组的求解等
并行处理。针对不规则结构工程分析问题,他们还采用了变带宽
存贮方法,并实现了刚度矩阵的并行计算以及求解变带宽稀疏线
性方程组的并行直接解法【20】。
2)中国科学院计算中心王荩贤研究员等在基于Transputer芯片
的分布式MIMD系统上,提出了有限元分析中变带宽线性方程组的
并行直接解法,初步完成了一个静力分析程序【21】。
3)重庆大学张汝清教授等借助于ELXSI-6400共享存贮器型MIMD
系统,先后开展了范围比较广泛的并行算法研究,主要成果有:
a)提出了静力分析中子结构解法的并行算法,以及动力分析中模
态综合子结构法的并行算法;
b)从波前法出发,发展了多波前并行算法以求解大型结构分析
问题;
c)从Jacobi块迭代法和加权残差法出发,导出了基于异步控制的
有限元方程并行解法和有限元并行迭代的基本格式;
d)利用图论中的着色理论,实现了刚度矩阵的并行计算;
e)实现了基于有色线剖分的SOR并行迭代解法;
f)实现了子空间迭代法、Lanczos法以及利用多项式割线迭代法
和矢量迭代法求解结构固有频率和模态的并行算法;
g)针对弹塑性分析,提出了一种多波前子结构并行算法;
h)针对弹性接触问题,提出了一种基于参数变分原理的并行解法;
i)实现了一步积分法的并行处理【22】。
4)南京航空航天大学乔新教授等借助于Transputer芯片的分布式
MIMD系统实现了有限元方程组的并行直接解法,并提出了基于子结
构的预处理共轭梯度法的并行计算方法【23】。
此外,浙江大学姚坚【24】、中国科学院西南计算中心马寅国、
东北工学院张铁以及国防科技大学六系也曾对有限元分析的并行计
算开展了一些研究。
上述研究结果表明,国内并行计算方法的研究,在硬件上基于
向量机、分布式并行机和共享存贮式并行机;在内容上,似乎面很
广,但系统性和深度还很不够,软件开发距实际应用和商品化还有
很大距离,对不依赖并行机具体环境的通用并行算法研究还很少,
同样对旨在进行结构有限元分析的并行计算的硬件研究也很少。
1.2.2国外
自从美国国家宇航局(NASA)的A.K.Noor于1975年发表第一篇
有限元并行计算的文章以来,有限元并行处理技术几乎与并行计算
机同步发展。距不完全统计,到1992年,国外已发表了400余篇这方
面的论文,其中后5年的文章篇数是前12年的总和。在研究内容上也
由过去的算法研究发展到了算法、软件和硬件相结合的研究,并针对
一些机型开发了一些实用的大型结构分析软件。
1)有限元机器FEM【25】(Finite Element Machine)。早在70年
代末,就有人发表了有关FEM的论文,1982年美国国家宇航局Langley
研究中心的O.O.Storaasli等撰文详细地介绍了该中心设计的供研究
用的FEM。该机器由1个处理器阵列、1台作为控制器的微机和1个并行
操作系统及一些模块化了的通用并行算法程序组成,用户使用系统的
文本编辑器和控制器的其它特殊功能,能建立有限元计算模型并进行
分析。10多年来,又有一些人在这一方面进行了不懈的努力,但FEM
的发展前景仍然不太令人乐观。
2)心动阵列并行机【26】。心动阵列并行机主要应用于信号和图象
的并行处理,但由于其高效的矩阵计算功能,近年来有人把它应用于
有限元分析,并作了一些有益的尝试。
3)巨型向量机【27】。在有限元分析中越来越显示出巨大的威力,
处于领先的是美国思维公司的CM-2。许多结构分析家把这个具有65536
个处理器的巨型向量机应用于有限元计算,如T.Belyschko等人采用显
式方法,完成了具有32768个单元的壳的非线性有限元计算,并行效率
极高,速度几乎比CRAY X-MP/14并行机高出1个数量级。
4)并行机网络和工作站网络【28】。日本东京大学矢川等借助高速网
络把3台CRAY Y-MP机联成网络进行有限元分析,有限元方程求解采用
的是基于区域分裂技术的共轭梯度法(CGM), 在求解三维弹性问题
时自由度个数超过了100万,系统平均运行速度高达1.74GFLOPS。另外,
他们还基于一个工程工作站网络,在并行环境下进行了类似的研究,
求解问题的自由度数高达20万个。
--
我左看右看前看后看可还是看不过来
这个....那个....我越看越奇怪....
不是我不明白,这世界变化快
‘陆’ 并行计算模型的C3模型
C3模型假定处理机不能同时发送和接收消息,它对超步的性能分析分为两部分:计算单元CU,依赖于本地计算量;通信单元COU,依赖与处理机发送和接收数据的多少、消息的延迟及通信引起的拥挤量。该模型考虑了两种路由(存储转发路由和虫蚀寻径路由)和两种发送/接收原语(阻塞和无阻塞)对COU的影响。 (1)用Cl和Cp来度量网络的拥挤对算法性能的影响;
(2)考虑了不同路由和不同发送或接收原语对通信的影响;
(3)不需要用户指定调度细节,就可以评估超步的时间复杂性;
(4)类似于H-PRAM模型的层次结构,C3模型给编程者提供了K级路由算法的思路,即系统被分为K级子系统,各级子系统的操作相互独立,用超步代替了H-PRAM中的Sub PRAM进行分割。 (1)Cl度量的前题假设为同一通信对中的2个处理机要分别位于网络对分后的不同子网络内;
(2)模型假设了网络带宽等于处理机带宽,这影响了正确描述可扩展系统;
(3)在K级算法中,处理机间顺序可以由多种排列,但C3模型不能区分不同排列的难易程度。
‘柒’ 并行计算机体系结构、并行计算模型、并行算法的关系
强烈推荐 业内知名人士刘其成博士主编的《并行计算与程序设计》,不用谢!
‘捌’ 并行算法的并行算法的研究内容
(1) 并行计算模型 并行算法作为一门学科,首先研究的是并行计算模型。并行计算模型是算法设计者与体系结构研究者之间的一个桥梁,是并行算法设计和分析的基础。它屏蔽了并行机之间的差异,从并行机中抽取若干个能反映计算特性的可计算或可测量的参数,并按照模型所定义的计算行为构造成本函数,以此进行算法的复杂度分析。
并行计算模型的第一代是共享存储模型,如SIMD-SM和MIMD-SM的一些计算模型,模型参数主要是CPU的单位计算时间,这样科学家可以忽略一些细节,集中精力设计算法。第二代是分布存储模型。在这个阶段,人们逐渐意识到对并行计算机性能带来影响的不仅仅是CPU,还有通信。因此如何把不同的通信性能抽象成模型参数,是这个阶段的研究重点。第三代是分布共享存储模型,也是我们目前研究所处的阶段。随着网络技术的发展,通信延迟固然还有影响,但对并行带来的影响不再像当年那样重要,注重计算系统的多层次存储特性的影响。
(2) 设计技术并行算法研究的第二部分是并行算法的设计技术。虽然并行算法研究还不是太成熟,但并行算法的设计依然是有章可循的,例如划分法、分治法、平衡树法、倍增法/指针跳跃法、流水线法破对称法等都是常用的设计并行算法的方法。另外人们还可以根据问题的特性来选择适合的设计方法。
(3)并行算法分为多机并行和多线程并行。多机并行,如MPI技术;多线程并行,如OpenMP技术。
以上是并行算法的常规研究内容。
‘玖’ 如何进行两台计算机并行计算
一、空间并行
这种方式就是将需要计算的内容按参数或解空间进行划分,每台机器执行一份数值空间的运算,这是两台机器就是空间并行计算。
举例:两台机器分段穷举一个Rar的解压密码,或者尝试另一台计算机的远程登录密码。
二、时间并行
这种方式比较复杂,需要有一台代理设备来进行负载均衡,这台代理主要就是分解请求,并将分解后的请求分为奇偶帧发送给不同的设备,最后再汇聚结果进行反馈,这是负责运算的两台计算设备就是时间并行计算。
举例:服务器集群处理数据库运算、大规模多媒体处理。其实,现在的显卡SLI级联技术,就相当于在一台计算机上,用多块显卡采取时间并行计算的方式完成显示渲染的,每块显卡都可以当作是一台完整的计算机。
更专业的解释请参考网络“并行计算”词条。
http://ke..com/link?url=meQLl7nf2vcpkzn7r3LJYb3l-7lpVGblPFjP1hj2IM3YeGmL9kgE8g_RrTol1hyUKNi8hNDRQsyo4HeL1n-qt_