一种并行计算通信优化策略.docx
- 文档编号:25015561
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:12
- 大小:68.56KB
一种并行计算通信优化策略.docx
《一种并行计算通信优化策略.docx》由会员分享,可在线阅读,更多相关《一种并行计算通信优化策略.docx(12页珍藏版)》请在冰豆网上搜索。
一种并行计算通信优化策略
一种并行计算通信优化策略
第30卷第2期辽宁工程技术大学学报(自然科学版2011年4月
Vol.30No.2Journal
ofLiaoningTechnicalUniversity(NaturalScienceApr.2011收稿日期:
2010-11-22
基金项目:
辽宁省博士科研启动基金资助项目(20051058;辽宁省教育厅科研项目(20060479
作者简介:
刘青昆(1971-,男,河北清苑人,博士,副教授,主要从事并行计算与分布式处理等方面研究;通讯作者:
王佳(1984-,女,辽宁抚
文章编号:
1008-0562(201102-0268-04
一种并行计算通信优化策略
刘青昆,王佳,韩颖,杨雷
(辽宁师范大学计算机与信息技术学院,辽宁大连116081
摘要:
为了解决在ABEEMσπ模型电荷分布计算中,基于Cholesky分解并行算法在通信过程中不断增长引起的通信开销和同步开销问题,采用linux并行计算集群系统层通信优化方法,设计并实现了系统层零拷贝通讯优化方法,以及可卸载的LKM模块机制缩短开发和测试时间,减少数据拷贝冗余的基于地址映射的零拷贝技术,解决了通讯延迟等问题。
测试结果表明:
基于零拷贝的通讯优化方法保证了数据信息的及时性、高效性与准确性,大大提高了Cholesky分解并行算法的通信性能。
关键词:
Cholesky分解;通讯优化;零拷贝;LKM机制;通信延迟中图分类号:
TP393文献标识码:
A
Astrategyofparallelcomputerizationforoptimizingcommunication
LIUQingkun,WANGJia,HANYing,YANGLei
(SchoolofComputerandInformationTechnology,LiaoningNormalUniversity,Dalian116081,ChinaAbstract:
TosolvetheproblemofthecommunicationoverheadandsynchronousoverheadincreaseinelectronchargedistributioncalculationofABEEMσπmodel,thisstudyappliesLinuxparallelcomputingsystemcommunicationtodevelopasystemlayerzerocopycommunicationoptimizationmethodbasedonCholeskydecompositionparallelalgorithmincommunicationprocess.Inaddition,aLKMmodule,whichcanberemoved,isdevelopedtoshortendevelopmenttimeandtesttime,andreducedatacopiesbasedontheaddressmappingzerocopytechnology.Ithassolvedtheproblemofcommunicationdelay.Thestudyresultsshowthatthecommunicationoptimizationmethoddevelopedbasedonzerocopytechnologycanachieveatimely,efficientlyandaccuratelydatacommunicationandgreatlyimprovetheperformanceofCholesydecomposingparallelalgorithm.
Keywords:
Choleskydecomposition;communicationoptimization;zerocopy;LKM;communicationlatency
0引言
基于并行计算的集群系统具有高效率、低消耗等优点,并且越来越受到科研工作者的重视。
在理想情况下,并行计算机的性能是所有节点计算性能之和。
假设应用总是处在计算和通信两种状态之一,一个并行程序的运行时间为calccommTTT=+,而
comm1(Nc
SBCTTTL=+∑,式中,rsSOOT+=是启动开销(包括发送和接收,TB是网络上传输一个字节的时间,Lc是消息的长度(字节数,Nc是通信的
次数[1]
即calc1(NcSBCTTTTL=++∑。
由上式,不难看出,假设在计算和通信不重叠的前提下,要缩短并行程序执行时间,必须缩短计算和通信时间。
在消息传递模式中,计算量和通信量以及它们之间的关系起着极其重要的作用[2]。
通信性能不仅直接影响了并行计算的加速比和效率,且对集群系统的计算性能有很大影响。
当对一个问题进行求解时,其并行算法的好坏决定了并行性能的高低。
通过对ABEEMσπ模型电荷分布计算的Cholesky分解并行算法的加速比性能
进行通信评测[3],
找出该算法的缺点,进行改进以提高并行程序的性能。
该算法计算过程中通信相当频繁,当CPU数目增加时处理器之间的通信开销、同步开销等会增加,当这些开销增大到一定程度时就会对并行性能产生很大的影响,大大限制了并行性能的提高,成为影响并行算法性能提高的瓶颈[4]。
1Cholesky分解并行算法
在ABEEMσπ模型电荷分布计算中,从分子模型
中提取系数矩阵,当阶数为6875×6875时,
Cholesky分解并行算法的加速比性能与CPU数的关系见图1。
可以看出Cholesky分解并行算法性能最好的是CPU数等于64时,其次是CPU数等于32时。
由此得出,
第2期刘青昆,等:
一种并行计算通信优化策略
269
CPU数与通信开销成正比,通信性能则成为影响算法并行效率进一步提高的主要因素。
图1加速比与CPU数的关系Fig.1relationofspeedupratioandCPU
MPI广播通信时间(系数矩阵阶数为6875×6875见图2。
如果CPU数小于32,广播通信时间在1000ms上下波动;CPU数等于32时通信时间为最小值
(400ms左右
CPU数通信开销较小,对并行性能的影响不大,加速比呈上升状态;当CPU数在32和64之间时,广播通信时间开始增加;当广播时间为最大值(17s左右时,CPU数等于62,CPU数通信开销变得越来越大,并行性能的影响同时逐渐增大,加速比呈现下降趋势;当CPU数等于64时广播通信时间降到最小值(300ms左右,加速比突然提升到最大值。
CPU数量/个
024*********
10
20
304050
60
70
图2基于Cholesky分解的MPBench广播通信测试
Fig.2MPBenchRadiocommunicationtestbasedon
Choleskydecomposition
实验结果表明:
在CPU增长到一定数目后,处理器之间的通信开销、同步开销都会增大,当它们达到一定程度时,这些通信开销严重影响了此算法并行性能的提高[4]。
为了进一步提高该算法的并行性能,以减少通信次数、通信数据量和降低通信开销为前提,对并行应用层次结构中的通信系统层进行通信优化。
但由于低效的通信软件不能有效的利用物理层网络的通信性能,使得通信系统性能受到影响。
因此,提高通信系统的性能是提高整个并行计算性能的关键因素之一。
文献[5-6]提出zero-copy通信优化技术,文献[7-8]采用的方法是优化传统协议栈,即对TCP/IP协议的
精简,文献[9]针对特定的网络硬件特点或应用要求设
计了新的通信协议机制。
以上提出的针对用户态的通信方法,通常提供了专用的通信结构,不利于上层应用的移植。
本文提出一种针对高速网络环境下的用户级并行集群系统层零拷贝通信优化方法,省去内核空间在数据报文传输过程中的拷贝处理过程,利用LKM机制[10]开发零拷贝通信优化虚拟接口模块,可动态卸载的实现用户态和内核态的地址转换,并维护逻辑上独立存在的发送环和接收环,实现内核态和用户态在共享缓存进行直接交互。
2Cholesky分解并行算法通信优化
零拷贝原理见图3。
零拷贝技术的实现需要消除报文中的内存拷贝、设置用户态和内核态的共享缓存、解决物理地址和虚拟地址翻译以及由于网卡中断频繁引起的中断淹没等问题。
针对以上问题采取相应的策略进行解决,首先绕开系统协议栈处理等操作;其次,设计一个零拷贝通信优化虚拟接口模块用来实现物理地址和虚拟地址的地址翻译问题,并采用mmap映射机制的nopage方法[5],与逻辑上独立的两个接收和发送环,构建成为用户态与内核态可共享的内存缓冲区。
第三,相应的改进网卡中断处理方式,并减少中断次数。
图3零拷贝原理
Fig.3workingprinciplediagramofzerocopy
2.1零拷贝
零拷贝通信优化组件模块包括三部分:
虚拟接口模块VI(Virtualinterfacemodule,改进的网卡驱动程序和上层用户接口程序,见图4。
(1用户缓冲区(UserBuffer
在用户层,申请一块足够大的用户缓冲区
UserBuffer,存放接收和发送的数据包。
UserBuffer被分配成若干个存放一个帧格式的以太包且大小为2kb的块。
UserBuffer的分配依据不超过
1.514kb,这是因为路由器的MTU是1.5kb,加上以太包的14b。
因此,2kb字节大小刚好满足
05
CPU数量/个
加速性能比/%
辽宁工程技术大学学报(自然科学版第30卷270
包大小要求。
在LIUNX2.4内核中,内存每个页面大小为4Kb字节,这样块大小正好为页面大小的
图4零拷贝通信模块中的数据传输过程
Fig.4datatransmissioninzerocopycommunicationmodule
(2虚拟接口模块VI
虚拟设备VI位于内核,但由用户创建,并以LKM形式进行加载。
LIUNX的一个特点是在系统运行时,可以通过LKM机制,以加载模块的方式来增加系统功能。
VI模块即是以这种模块形式加载到内核中实现设备功能的。
虚拟接口模块VI有三个具体功能:
①让网卡能够直接访问用户态的UserBuffer;
②让用户能够直接访问内核态的接收和发送队列;
③还提供一个虚拟接口,可以允许网卡和应用程序无冲突地通过接收和发送队列访问UserBuffer。
虚拟接口模块VI维护三个环形队列为发送队列quene_t、接收队列quene_r、空闲队列quene_free。
待发送的数据包描述符挂入quene_t,接收到的数据包描述符挂入quene_r,没有数据块的描述符挂入quene_free。
为实现内核和用户能同时访问UserBuffer,而不产生冲突,虚拟接口模块VI的每个队列含有三个指针,只要指针不互相越界,就不会产生冲突。
虚拟接口模块VI的内存采用vmalloc进行分配,其进行内存分配的特点是,在不超过机器物理内存的前提下,可以一次分配很大的内存空间,分配了虚拟地址空间的连续区域,内核认为他们在地址上是连续的。
分配的内存空间被映射进入内核数据段中,通过内存映射方式将其映射到用户空间[6]。
虚拟接口模块VI还维护一张静态地址TAB,通过查找LINUX内核中的三级页表,虚拟接口模块VI获得用户缓冲区中每个虚拟页面的物理地址,并将该页面锁定于内存中,转换后的物理地址缓存在这张表中。
TAB地址表与被锁定的内存页面构成一套高效的地址映射机制。
上层用户和网卡都能访问这个虚拟设备得到自己需要的目的地址。
用户态到内核态使用的mmap地址映射机制不允许映射常规地址,系统采用vmalloc进行内存分配使得内存块不具有连续性。
为解决这些问题,虚拟模块接口先进行判断如果用户要访问的虚拟地址页面不在内存里,系统就产生一次缺页中断,nopage方法即被调用[6]。
用户得到的是虚拟设备映射到用户缓冲区的首地址。
nopage方法解决了用户态到内核态的访问,直接通过虚拟地址表查找用户空间的物理地址,即实现了网卡直接访问用户缓冲区。
网络接口DMA操作与用户缓冲区需要进行交互,但DMA操作是异步方式进行的,因此为防止操作系统将正在进行DMA传输的页面交换出去,必须将该页面锁定。
2.2网卡驱动修改
网卡驱动程序首先填充接收缓冲区描述符。
根据缓冲区数据大小向系统发出中断请求。
在网卡中断程序中将数据转移至RAM中。
数据发送与接收相似,不同的是在第一次发送时需要系统出发一次,每当数据发送完毕后,网卡会向系统发送中断。
改进的代码和数据层次见图5。
当中断频率不断上升时,CPU花费大部分时间去调度和执行相应中断处理程序,引起网卡控制器过载,产生丢包现象,导致系统暂时无法响应。
为缓解这种现象,当一个数据包到达时就打开一个定时器,如果在规定时间内没有轮询操作到来就产生一个中断。
每隔一定时间发送一次中断,每次同时处理多个数据包。
由于采用基于地址映射的零拷贝技术,那么,相应的需要修改网卡驱动程序,将原来网卡把数据送到内核缓冲的情况变成网卡向用户区直接传递数据。
其改进主要体现在网卡驱动的发送和接收的中断处理函数上,即改进后的是将VI的设备信息添加到网卡设备的私有域中,网卡进行DMA传输时,直接根据VI设备中的描述符找到真正的位于用户的缓冲区,然后直接将数据包从网卡传到用户缓冲区,数据包不再进入内核协议栈。
这样就省去了内存反复分配、拷贝、软中断、拷贝、释放的数据传输过程、从而提高系统的效率。
第2期刘青昆,等:
一种并行计算通信优化策略271
图5代码和数据层次
Fig.5hierarchyschematicofcodeanddata
3性能测试与分析
测试的硬件环境为IntelPentiumIV1.7GHz,128MB内存,RealTek8139网卡。
软件环境为RedHatLinux9.0操作系统,并搭建MPICH并行编程环境,分别进行Ping-Pong测试和并行测试。
3.1Ping-Pong测试
使用两台主机分别作为客户端和服务器,分别测试优化后的网络系统与原系统的通讯延迟,并进行分析对比。
由于2台计算机之间的时间存在同步的问题,对通讯延迟的测试采用Ping-Pong测试方法,即从客户端向服务器端发送数据,服务器端收到数据后向客户端回发数据[8]。
其中,客户端取两次时间之差的一半作为测试参数。
每种长度数据连续发送50次求其平均值作为该长度数据对应的延迟时间。
表1是原linux系统正常模式下和经过零拷贝优化后的系统的网络传输延迟时间的对比数据。
测试时,发送的文件大小分别固定为32mb、64mb、128mb、256mb。
表1Ping-Pong测试
Tab.1testofPing-Pong
通信延迟时间/ms
文件大小/mb
正常模式下零拷贝模式下
322541344022201600
645598273950271910
1287859525375831158
256138303166132962443
由表1看出,相对于原linux系统的网络通信,优化后的网络系统在通信延迟方面明显的小于原linux系统,且系统性能相较原系统更加的稳定。
3.2并行测试
表2是原linux集群通信系统和经过零拷贝优化的linux集群通信系统的网络传输延迟时间的对比数据。
测试时,使用两个节点机,系数矩阵A、B阶数为1793×1793,进行并行MPI程序时间测试,分别测试读文件的时间、转换A的通信时间、转换A的计算时间、计算B的时间和总时间。
表2并行测试结果
Tab.2resultofparalleltest
通信延迟时间/ms
并行程序测试
正常模式下零拷贝模式下
读文件的时间12.11768211.92203
转换A的通信时间5.2574734.585583
转换A的计算时间62.7956363.01179
转换A的时间68.05310367.59737
计算B的时间0.4499350.460287
总时间80.6207279.97969由表2可以看出,相对于原linux集群并行通信系统,优化后的并行系统在转换A的通信时间和读取文件时间方面都小于原linux系统。
4结论
本文针对linux环境下网络系统不断增大的通信开销和同步开销带来的系统通信延迟、中断淹没等问题,提出了对其进行优化的措施,节省了很多CPU时间,可以去处理其他许多复杂的计算程序,解决了整个系统的瓶颈,是具有现实意义、高容量和高速度的集群通信网络通信优化体系结构。
参考文献:
[1]EickenT,CullerDE.Activemessages:
Amechanismforintegrated
communicationandcomputation[C].Gramado:
Proceedingsofthe19thInternationalSymposiumonComputerArchitecture,1992:
256-266.[2]GuoQingping,YakupPaker.Concurrentcommunicationandgranularity
assessmentforatransputer-basedmultiprocessorsystem[J].JournalofComputerSystemsScience&Engineering,1990,5(1:
18-20.
[3]刘方爱,乔香珍,刘志勇.并行计算模型的层次分析及性能评价[J].
计算机科学,2000,27(8:
1-4.
[4]刘青昆,聂晓娜,马丽,等.Cholesky分解并行算法的性能评测[J].辽
宁师范大学学报:
自然科学版,2009,1(32:
58-60.
[5]王佰玲,方滨兴,云晓春.零拷贝报文捕获平台的研究[J].计算机学
报,2005,28(1:
46-52.
[6]李大斌.并行数据库通讯组件零拷贝技术的研究与实现[D].哈尔
滨:
哈尔滨工业大学,2005.
[7]江文毅,庞丽萍,高兰.基于集群系统的TCP/IP协议的优化[J].小
型微型计算机系统,2001,22(12:
1429-1431.
[8]曹阳,陈勇,曹蕙,等.基于TCP/IP网络协议的通信系统性能分
析与优化[J].武汉大学学报:
自然科学版,1999,45(3:
354-358.
[9]NanetteJ,Boden,DannyCohen,etal.Myrinet:
agigabit-per-secondlocal
areanetwork[J].IEEEMicro,1995,15(1:
29-36.
[10]刘天华,陈袅,朱宏峰,等.Linux可加载内核模块机制的研究与应用
[J].微计算机信息,2007,23(7:
48-49.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 并行 计算 通信 优化 策略