多核计算机上并行计算的实现与分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

 第18卷第3期

2009年9月

淮海工学院学报(自然科学版)

Journal of Huaihai Institute of Technology (Nat ural Science Edition )Vol.18 No.3Sep.2009

DOI :10.3969/j.issn.167226685.2009.03.009

多核计算机上并行计算的实现与分析

王顺绪

(淮海工学院理学院,江苏连云港 222005)

摘 要:研究多核计算机上OpenM P 编程模式和M PI 消息传递机制编程模式的运行效能,并在双

核和四核计算机上,分别使用传统算法和并行算法计算了和式

∑n

i =1

i 和n ×n 矩阵的乘积以及矩阵

的Cholesky 分解,数值试验结果表明,传统的串行程序只能利用二分之一的双核CPU 资源和四分

之一的四核CPU 资源,而并行程序在双核和四核计算机上的并行效率很高,并且OpenM P 编程模式的运行效率比M PI 编程模式的运行效率稍高。关键词:多核编程;OpenMP ;M PI 中图分类号:TP338;O246 文献标识码:A 文章编号:167226685(2009)0320030204

Implementation and Analyses of Parallel Computation on

Multi 2core Computers

WAN G Shun 2xu

(School of Science ,Huaihai Institute of Technology ,Lianyungang 222005,China )

Abstract :Parallel programming in Fort ran using OpenM P and M PI on multi 2core comp uters are st udied.The serial and concurrent experiment s of matrix 2mat rix multiplication ,summation of 1+2+…+n and Cholesky factorization are implemented on 22core and 42core comp uters respec 2tively.Experiment result s show t hat t he serial p rogram can only use one core of multi 2core com 2p uters.Meanwhile ,t he parallel efficiency of the program using OpenMP and MPI is very high ,and the efficiency of the program using OpenMP is a little higher than that of the program using MPI.K ey w ords :multi 2core programming ;OpenMP ;M PI

20世纪90年代前,国内只有为数不多的几个重要部门才拥有并行计算机。PVM (parallel virt u 2al machine )和M PI (message passing interface )的出现给需要使用并行计算的科技工作者带来了方便,人们可使用这两个软件在实验室建立并行环境。

由于单核CPU 速度提升的局限性,提升计算机速度的主要途径是使用多核CPU 。多核CPU 的普及对数值计算的发展产生了历史性的改变,由于多核和单核CPU 设计理念的不同,单核CPU 上运

行良好的软件或者以前的算法不能使多核CPU 发挥其最大效能,要想高效利用多核CPU ,就必须改进原有的老程序,融进并行算法的思想。著名的软件开发专家SU T TER H 在文献[1]中指出,并行计算的时代终于到来,在这个时代人们购买新的计算机是并行机,这需要人们转换观念,将编程思想从“串行”转变到“并行”。并行算法和多核编程已受到人们普遍的关注,高等学校及研究机构是并行编程或多核编程的强力推动者[223]。

3收稿日期:2008212216;修订日期:2009207204

基金项目:淮海工学院科研经费资助项目(KQ08031);淮海工学院教学改革立项课题(5509002)

作者简介:王顺绪(1962-),男,江苏连云港人,淮海工学院理学院副教授,主要从事计算数学方面的研究,(E 2mail )wsxlyg @ 。

1 多核处理器简介

111 多核处理器的诞生

最近几年,AMD 和Intel 公司推出了拥有大型机品质的用于个人计算机的多核CPU 。多核处理器将多个执行核嵌入到同一个处理器芯片内,这些核是相互独立的处理器,它们可以共享或单独拥有自己的Cache ,并共享一个主存,每个指令都具有一个完整的硬件执行环境,线程间实现了真正意义上的并行[4]。多核CPU 结构如图1和图2所示[4]

112 多核计算机上实现并行计算的一般方法

可以使用M PI 在多核计算机上实现并行计算,但简单有效的多核编程方法是使用OpenM P +For 2t ran 或OpenM P +C 的方法设计并行程序。充分使

用!$OM P paralle do ,!$OM P end parallel do 并行引导语句,对一些大型复杂的问题,还要使用其它的OpenM P 并行引导语句,同时要考虑单元的存取冲突问题。在编程的细节问题上可以参考相应的

用户手册,OpenM P +Fort ran 的编程问题可参阅文

献[5]。

113 多核处理器中并行计算加速比分析

一个算法使用多核的效果可以用加速比

S p =t 1/t p

(1)

来衡量,其中:t 1代表最佳串行计算时间,t p 代表使用p 个核并行计算的时间。实际操作时,t 1也往往表示使用一个核计算的时间。文献[4]根据式(1)和Amdahl 定律讨论了拥有多核CPU 计算机的并行计

算加速比,假设算法中串行部分的比例为s ,处理器的核数为p ,在不考虑系统开销的情况下,多核处理器上并行算法的理论加速比为

S ′p =

1

s +(1-s )/p

,(2)

S p 和S p ′的差距反映系统的性能和算法的优劣。

下面通过算例,讨论多核环境下串行程序和并行程序的执行情况,通过加速比分析多核计算机的并行计算效果,并对OpenM P 编程模式和使用MPI 编程模式的效果作了比较。

2 多核计算的几个算例

数值试验的环境是两台多核计算机,一台是主频为2GHz ,内存1G B 的双核计算机,另一台是主频为213GHz ,内存2G B 的四核计算机。对数列求和,采用的算法是每个核计算和的一个部分,理论加速比S p ′=p 。对矩阵乘积而言,其理论加速比S p ′

=p 。通过这两个算例的实际加速比和理论加速比

大小的比较可以看出多核CPU 并行计算的实际效果。算法1至3分别描述求和运算的串行算法、OpenM P 通讯机制的求和算法和M PI 并行模式下

的求和算法,算法4到6描述的是矩阵乘积的串行算法、OpenM P 通讯机制的矩阵乘法和M PI 分布式并行模式下矩阵相乘算法,所有算法都使用Fort ran 语言代码描述,其中的Nproc 代表创建的进程或线程数。

211 归约求和算例

算例1分别使用串行编程模式、OpenM P 编程

模式以及M PI 编程模式计算

∑n

i =1

i ,实现该计算的3

种编程模式的算法如算法1、算法2和算法3。

算法1(串行的归约求和算法)

for i =1,n sum =sum +i 3110

1

3 第3期王顺绪:多核计算机上并行计算的实现与分析

相关文档
最新文档