




已阅读5页,还剩47页未读, 继续免费阅读
(计算机系统结构专业论文)共享存储机群中用户级通信协议的实现和性能.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
共享存储机群中用户级通信协议的实现和性能:摘要 摘要 在机群环境中,所有的主机都通过一个高速的互连网络组成分布式系统,底层的网 络硬件通常具备几个微秒的网络硬件延迟和千兆比特每秒的带宽。然而传统的通信协议 在通信的关键路径上需要进行状态切换和数据拷贝,而且在接收数据时将会发生频繁的 中断,以至于通信软件不能充分地把网络硬件的高性能传递给用户进程。 本文将主要介绍用户级通信库的实现方法和性能的分析优化。本通信库通过在数据 的收发过程中绕过操作系统的干预,把原本需要由操作系统内核在系统态下完成的通信 协议处理转移到用户空间由用户进程在用户态下完成:通过建立地址映射关系,我们可 以使用户进程直接访问网络接口卡上的寄存器,同时也让网络接口卡直接访问用户进程 空间的数据。 在通信库的实现中,我们在机群内各结点间的通信过程中尽量避免中断的发生。这 一方面可以通过预先初始化接收缓冲区,减少其在接收消息时发生的中断数量;另一方 面可以由通信软件和网络接口硬件配合完成远程直接内存访问,减少共享存储机群中访 问远程数据而引起的中断和数据拷贝。 我们所设计实现的用户级通信库适用于共享存储机群环境,可以获得较好的性能: 在p i n g p o n g 测试程序下,最低单向延迟5 5 9 # s ,i o 总线的带宽利用率达到8 8 。 我们对获得的初步结果进行了进一步的优化,优化后单向延迟平均下降了0 7 # s ,i o 总线的带宽利用率超过9 4 。 本文的研究工作表明:在共享存储机群中,采用用户级通信技术可以有效地将网络 互连硬件的性能提供给上层应用程序。 关键词:用户级通信,远程直接内存访问,共享存储机群。 苎主查堡塑鲎主旦! 堑翌堕垫堡塑塞墨塑堡堕:竺! ! 竺! t h e i m p l e m e n t a t i o na n dp e r f o r m a n c e o fu s e r - l e v e lc o m m u n i c a t i o np r o t o c o lf o rs h a r e d m e m o r y c l u s t e r s h o n g d ay i n ( c o m p u t e r a r c h i t e c t u r e ) d i r e c t e db yp r o f z h i m i n t a n g i nc l u s t e r e n v i r o n m e n t s ,a l lh o s t sa r ec o n n e c t e dt ob ead i s t r i b u t e ds y s t e mb yt h e h i g h s p e e dn e t w o r k ;t h en e t w o r kh a r d w a r eu s u a l l yp r o v i d e sv e r yl o wl a t e n c ya n dh i g h b a n d w i d t h b u tt r a d i t i o n a lc o m m u n i c a t i o np r o t o c o l si n t r o d u c et h eo v e r h e a d so fp r o c e s s c o n t e x ts w i t c h ,m e m o r yc o p i e sa n df r e q u e n ti n t e r r u p t si nt h ec r i t i c a ld a t ap a t h ,t h ea b o v e o v e r h e a d sm a k et h ec o m m u n i c a t i o ns o t t w a r eu n a b l et o s u f f i c i e n t l y d e l i v e rt h eh a r d w a r e p e r f o r m a n c e t ou s e r p r o c e s s e s t h i st h e s i si l l u s t r a t e st h e i m p l e m e n t a t i o n a sw e l la st h e p e r f o r m a n c ea n a l y s i s a n d o p t i m i z a t i o no f u s e r - l e v e lc o m m u n i c a t i o nl i b r a r y t h em a i n i d e ao f u s e r - l e v e lc o m m u n i c a t i o n i s b y p a s s i n gt h e o sk e r n e lw h e np a s s i n gm e s s a g e s ,s ot h es o f t w a r e p r o c e s s i n gt h a t i s f o r m e r l ye x e c u t e di nt h ek e r n e lm o d e i sn o w i m p l e m e n t e d i nt h eu s e rs p a c e b y c r e a t i n gt h e a d d r e s sm a p p i n g p r o p e r l y , u s e rp r o c e s s i sa l l o w e dt oa c c e s st h er e g i s t e r so nn e t w o r ki n t e r f a c e d i r e c t l y , i n t h em e a nt i m e ,t h en e t w o r ki n t e r f a c ec a l la c c e s st h ed a t ai nt h eu s e r s p a c e s t r a i g h t w a y i nt h ei m p l e m e n t a t i o no fo u rc o m m u n i c a t i o nl i b r a r y , w ea l s or e d u c et h ef r e q u e n c yo f i n t e r r u p t sd u r i n gc o m m u n i c a t i o n t oa c h i e v et h i sg o a l ,t h e “p r e - p o s t ”t e c h n i q u ei sa d o p t e d t o a v o i di n t e r r u p t sw h e n r e c e i v i n gm e s s a g e s ;t h ec o m m u n i c a t i o ns o f t w a r ea n d n e t w o r ki n t e r f a c e c o o p e r a t et oi m p l e m e n tr e m o t ed i r e c tm e m o r y a c c e s so p e r a t i o n si no r d e rt or e d u c ei n t e r r u p t f r e q u e n c ya n dm e m o r yc o p i e si ns h a r e dm e m o r y c l u s t e r s w e i m p l e m e n t e d au s e r - l e v e lc o m m u n i c a t i o n l i b r a r ya n da c h i e v e de x c e l l e n tp e r f o r m a n c e t h a tu n d e rt h e “p i n g ? o n g ”b e n c h m a r k ,t h el o w e s to n e - w a yl a t e n c yi sa b o u t 5 5 9 # s ,t h e b a n d w i d t hu s e r a t i oo f i 0b u si sa b o v e8 8 w e o p t i m i z e dt h ep r e l i m i n a r yc o m m u n i c a t i o np e r f o r m a n c e ,m i dt h eo p t i m i z e dl a t e n c yi s 0 7 # sl o w e r o nt h ew h o l e t h eb a n d w i d t hu s e r a t i oo f i ob u si sn o wa b o v e9 4 t h i st h e s i ss h o w s t h a t ,i n t h es h a r e d m e m o r y c l u s t e r e n v i r o n m e n t ,u s e r - l e v e l c o m m u n i c a t i o nm e c h a n i s mc a n e f f e c t i v e l y d e l i v e rt h e h i 曲- p e r f o r m a n c e o fn e t w o r k i n g h a r d w a r et ou p p e r a p p l i c a t i o n s k e y w o r d s :u s e r - l e v e lc o m m u n i c a t i o n ,r e m o t ed i r e c tm e m o r ya c c e s s ,s h a r e dm e m o r y c l u s t e r 声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得 的研究成果。就我所知,除了文中特别加以标注和致谢的地方外,论文中 不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研 究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 作者答名:字兹邑 醐: 关于论文使用授权的说明 中国科学院计算技术研究所有权处理、保留送交论文的复印件,允许 论文被查阅和借阅;并可以公布论文的全部或部分内容,可以采用影印、 缩印或其它复制手段保存该论文。 作者签名:罗么屯导师签名: 第一章共享存储机群中通信系统的研究现状 由于个人工作站具有相对低廉的价格和较高的性能,越来越多的系统通过把若干个 人工作站互连成一个机群来满足日益增长的并行处理的需求并获得优良的性能价格比; 而共享存储机群提供给上层用户统一的存储器组织,极大地方便了应用程序的编写和移 植。 由n 台主机组成的机群理想的加速比是n 甚至大于n ,但是各个计算结点在协同 处理一个任务时由于控制相关和数据相关需要互相等待,在处理这些相关时需要通过机 群的通信系统来通知事件的发生和传送数据,这样,由于并行程序自身的原因和机群通 信系统的延迟等因素,加速比往往小于n 乃至出现负加速比。 在并行程序设计时,通过使计算和通信尽可能地重叠,可以减少结点问通信所带来 的总体性能损失。但是随着中央处理器性能的迅速提高,各结点间的通信越来越频繁和 迫切,机群底层互连网络的性能对整个系统性能的影响日益显著。近年来,高性能网络 硬件发展迅速,就硬件本身而言,具有很高的带宽和极低的延迟,但是传统的驱动程序 和通信软件未能充分地发挥硬件的优良性能,机群系统的通信层仍是机群计算的性能瓶 颈。 共享存储机群为维护存储一致性需要进行大量的通信,这使得共享存储机群系统对 于通信性能非常敏感。 本章首先介绍了共享存储机群中通信的特点并结合软硬件环境指出了共享存储机群 的性能瓶颈,然后介绍了国际上的相关研究进展和用户级通信技术。本章的结尾是论文 的主要贡献和组织形式。 1 1 共享存储机群通信系统的特点 机群系统的各个计算结点通常通过高速的系统域网( s y s t e m a r e a n e t w o r k ) 在一个 较小的范围内( 比如一个机房) 互连在一起。在这种相对集中的网络互联环境中,通信 协议可以设计得很简浩,而且由于机群系统是集中放置和管理的,机群通信系统的设计 可以比较灵活。 共享存储机群系统在处理并行任务时会产生大量的长度在几个到几十个字节之间 的消息,我们称之为小消息。这些小消息主要是产生于程序的控制相关。由于这些小消 息用于通知关键事件的发生,所以我们希望小消息的延迟尽可能地微小。我们这里所说 的延迟是用户进程的单向延迟,即从一个用户进程发送消息开始直到这个消息对于远程 结点上的用户进程可用所需要的时间,我们称之为用户级单向延迟。 在共享存储机群中,并行程序的数据相关性使得各个计算结点需要交换数据( 比如 一个数组的一部分) ,这种数据往往在数百字节以上,我们称之为大消息。在这种情况 中国科学院硕士论文麸享存储机群中用户级通信协议的实现和性能 下,我们除了希望大消息收发的延迟尽可能地低以外,还希望能够在传输大规模的数据 时尽可能多地利用带宽。我们这里所说的带宽是用户进程实际上所能利用的带宽。访问 远程数据常常需要产生中断,中断的开销一方面会增加访问远程内存的延迟,另一方面 还会打断主机处理器的当前任务以至于影响系统性能。 一般来讲,机群通信时的开销可以分解为三部分:在发送端,从在用户进程空间产 生这个消息,直到这个消息被网络接口卡开始发送,这一部分主要是发送消息时的软件 开销;消息从发送端的网络接口卡发送开始,直到这个消息被目的结点的网络接口卡接 收到,这一部分是网络硬件的固有的硬件开销;在接收端,从在网络接口卡接收到这个 消息,直到这个消息被用户进程感知,这一部分主要是接收消息时的软件开销。本文主 要讨论发送和接收消息时的软件开销。 图1 1 共享存储机群中通信过程与个人工作站体系结构 从图1 1 中我们可以看出,共享存储机群中的通信过程是和机群结点的体系结构密 切相关的,高速缓存的妥善利用、对称多处理机结构的采用、通信路径的优化、系统总 线和i o 总线的占用率都将对通信性能产生很大影响。 1 2 共享存储机群通信系统中存在的问题 根据我们以往的经验,建立在百兆快速以太网之上由u d p i p 协议互连的机群系统 中,用户进程所见的延迟超过6 0 # s ,有效带宽利用率为7 5 5 。性能的大幅度损失主要 是由于传统的通信协议过于复杂,没有对小消息和大消息区分对待并进行优化。另外, 对于共享存储机群内的读写远程内存操作,传统的通信软件没有做任何优化。下面我们 将对以上的问题逐一进行分析: 一鞋一 第一章共享存储机群中通信系统的研究现状 1 2 1 复杂的通信协议所带来的软件开销 在传统的通信协议( 比如t c p i p ) 中,用户进程的每次网络访问都要通过操作系统 来完成。以l i n u x 下使用s o c k e t 通信原语进行消息传递过程为例:发送方首先在用户空 间将欲发送的数据准备好,通过系统调用进入内核,由内核将发送的数据从用户空间拷 贝到内核空间,数据经t c p u d p 协议和口协议处理,最后由网卡驱动程序发送到网络; 当消息被接收方的网络接口卡收到后,产生硬件中断通知内核,接收方内核同样要经过 i p 协议和t c p u d p 协议的处理,然后才能将数据拷贝到接收方进程的用户空间中。整 个过程的软件开销可归结为两个主要方面:一方面是通信协议本身带来的开销,如组包 拆包、数据校验、拥塞控制以及路由选择等;另一方面是由操作系统引入的开销,包括 系统调用( 从用户态切换到系统态之后再返回到用户态,涉及到两次状态切换) 、数据 拷贝( 从用户空间拷贝到内核空间。除拷贝时间外,数据拷贝过程中要占用系统总线) 和中断处理( 中断会打断主机处理机当前执行的指令转而进入中断处理程序) 等。复杂 的协议栈处理开销和操作系统在通信主路上过多的干预,严重地降低了系统的通信性 能。 通过以上的分析,我们可以看出,如果能够允许用户进程直接读写网络接口卡的数 据寄存器和控制寄存器,就可以避免在通信的关键路径上进行系统调用所带来的开销。 另外,通过精简协议,比如在系统域网中可以采用比传统通信协议( 例如口) 更为简单 的寻址机制,以及减免所发送数据在协议栈中的拷贝,将大幅度降低通信协议本身所带 来的开销。再者,为了解决在数据接收时中断所带来的性能损失,我们考虑通过主动查 询网络接口卡上的状态寄存器感知消息的到来从而尽量避免中断发生。对于无法避免的 中断,也要优化中断处理例程,使中断服务迅速返回。 1 2 2 存取远程数据开销 在共享存储机群中,由于数据相关,用户进程需要频繁地访问远程结点上的数据。 在写远程数据时,源结点的用户进程把所要写的数据通过协议栈发送给目的结点的用户 进程,目的结点的网络接1 2 1 卡感知到消息的到来就把消息拷贝到上层的通信协议栈的接 收缓冲区中,经过通信协议的处理,目的结点的用户进程接收到这个消息并把消息体写 到对应的位置上。我们可以看出,在远程写数据的过程中,从网络接口卡把消息放入协 议栈的缓冲区开始直到协议处理完毕,耳的结点的主机处理器一直被占用着。 同理,在读远程数据时,源结点的用户进程把所要读的数据的地址和长度通过协议 栈打包发送给目的结点的用户进程,目的结点的网络接口卡感知到消息的到来就把消息 拷贝到上层的通信协议栈的接收缓冲区中,经过通信协议的处理,目的结点的用户进程 根据接收到的这个消息的内容把对方所要读取的数据打包并经过协议栈发给源结点,源 结点的用户进程在从协议栈接收到返回的消息后,把消息体写到对应的位置上。我们可 中国科学院硕士论文共享存储机群中用户级通信协议的实现和性能 以看出,在远程读取数据的过程中,源结点和目的结点的主机处理器都要被到来的消息 打断一次,并且多次经过协议栈的处理。 通过以上对于远程读写数据过程进行的分析,可以看出,访问远程数据需要严重打 断远程主机处理器当前正在执行的任务,所以有必要建立一种访问远程内存并且尽量减 少远程结点处理机干预的机制。另方面,从上述分析中我们发现,女u 果把远程数据访 问协议以硬件方式实现在网络接口卡上并采用简洁高效的用户级通信协议,将会极大地 减轻远程数据访问时主机处理器的负担。 1 2 3 缺乏针对消息类型的优化 在个人工作站系统中存在着两种数据传输方式,即p i o ( p r o g r a m m e di o ,由主机 处理器把数据逐个写入目的地址) 方式和d m a ( d i r e c t m e m o r y a c c e s s ,由主机处理器 向d m a 控制器发送命令,由d m a 控制器负责传输操作) 方式。d m a 方式由于需要一 个相对较长的启动时间,所以d m a 方式并非总是优于p i o 方式。对于小消息而言,由 于其长度较短而且主机处理器的速度很快,所以采用p i o 方式传输时不会占用过多的处 理器时间。而对于大消息,由于其消息体较长,采用p i o 方式传输将占用较多的处理器 时间,而d m a 方式启动时所需要的开销在这里则影响较小。传统的通信协议的实现并 没有针对消息的长度来进行数据通路的选择。 1 3 用户级通信技术 为了充分地把共享存储机群中网络硬件的性能发挥出来,就需要构建简单高效并充 分利用系统域网络特点的通信协议。为此,人们提出了用户级通信机制。用户级通信技 术的主要思想就是在数据的收发过程中绕过操作系统的干预,把原本需要由操作系统内 核在系统态下完成的软件操作转移到用户空间由用户进程在用户态下完成。 1 3 1 已有的高性能通信系统简介 u n e t e b v + 9 5 是由c o m e l l 大学设计开发的早期的轻量级通信协议,其在a t m 上的 实现获得了非常接近硬件极限的性能。u - n e t 把网络硬件和操作系统抽象为一个虚拟的 网络接口并使用虚拟的网络接口提供了各个进程之间对网络硬件的有保护访问,多个进 程可以同时使用网络。u ,n e t 可以在普通的快速以太网和a t m 网络上实现,具备较为广 泛的应用范围。 基于内存映射的机群互连网络,比如s c i ( s c a l a b l ec o h e r e n ti n t e r f a c e 【i e e e 9 2 , g a b + 9 8 ) 、t e l e g r a p h o s 【m k 9 6 和m e m o r y c h a n n e l 【g i l 9 6 】,通过把每个计算结点的部 分虚拟地址空间映射到一个独立而且共享的网络地址空间来建立结点间的连接。对于每 个连接,只有一个结点能够使用l o a d 或s t o r e 指令来透明地访问远程结点的内存,也就 4 第一章共享存储机群中通信系统的研究现状 是说,这种连接是单向的。这些通信结构不能有效地支持机群上的共享存储系统。 h a m l y n b u z 9 5 】是惠普实验室实现的提供有保护的低延迟高带宽的网络接口。 h a m l y n 的最重要的思想是:消息在发送之前就指定消息到达的目的内存地址,消息由接 收端的网络接口直接放到指定的主存中而不是在网络接口卡上,从而也可以避免接收方 接收缓冲区过载。通过把网络接口卡上寄存器和工作队列映射到用户空间实现用户级通 信。对于小消息用d i r e c ti o 方式以s t o r e 指令直接写到网络接口,对于大消息采用异步 d m a 方式发送。 s h r i m p b l a + 9 4 多机系统采用了基于e i s a 总线的内存映射网络接口来支持数据 的自动更新和主动更新操作。利用这种特殊的网络接口,s h r i m p 在传递小消息时获得 了很低的延迟。然而,虽然网络互连结构提供了2 0 0m b s 的高带宽,进程间通信的带 宽却受限于e i s a 总线的峰值传输带宽一3 3m b s 。 b i p 【p t 9 8 、f m 【p l c 9 5 1 、g m 【m y r i 0 2 等网络协议采用用户级通信手段来避免在 通信关键路径上的操作系统的干预。这些轻量级通信协议通常建立在特殊的网络硬件之 上,比如m y r i n e t d u b 9 8 就拥有一个板上的可编程处理器。通过这些用户级通信库,硬 件的性能可以比较充分地被用户进程所利用,比如b i p 可以获得约为4 3 “s 的最低单向 延迟和1 2 6m b s 的高带宽。然而,这里的网络协议需要由网络接口上的处理器运行, 这种软件或者固件的实现方法并没有硬件的实现高效,而且远程直接内存访问机制通常 在这些通信库中没有提供。 随着用户级通信技术 b r b 9 8 1 走向成熟,英特尔,微软和原康柏公司合作提出了用 户级通信库的标准一v i a i c m 9 7 ,i n t e l 9 8 1 ( v i r t u a li n t e r f a c ea r c h i t e c t u r e ) ,即虚拟网络 接口。v i a 标准中定义了一个包括若干发送描述符的发送队列和一个包括若干个接收描 述符的接收队y - 0 ,描述符指明了一次通信任务的类型、数据长度和数据地址等信息。在 发送方,用户进程在发送消息时需要填写完毕一个发送描述符,把它放入发送队列末尾; 在接收方,用户进程可以通过查询完成队列来接收消息。v i a 是一个可以灵活实现的标 准,比如v i a 标准没有规定具体的实现手段,可以用硬件,固件或软件实现,目前大都 采取固件和软件方法来实现。v i a 标准包括远程内存直接访问( r e m o t ed i r e c tm e m o r y a c c e s s ) 机制。远程内存直接访问使得用户进程可以直接访问位于远程结点上的数据, 避免了不必要的消息通信。 v i a 作为一种标准具备一定的复杂度,使得大多数v i a 实现的性能要略低于专门为 特定网络硬件平台上定制实现的用户级通信库,虽然如此,由于v i a 采用了用户级通信 技术并且协议处理简单,所以各种v i a 实现的性能还是要明显优于传统的通信库。 由于m y f i n e t 网络硬件为定制灵活的通信协议提供了比较充分的支持,很多v i a 的 实现也是建立在网络硬件之上的。 早期的v i a 实现中比较有代表性的是b e r k e l e yv i a b g 9 8 1 ,它是加州大学b e r k e l e y 分校的科研人员在基于3 3 m h zp c i 总线的m y r i n e t 网络硬件上以固件方式实现的v i a 标准,最小延迟为2 6 l s 。虽然性能不是很突出,但是它对v i a 标准进行了仔细的探讨。 中国科学院硕士论文共享存储机群中用户级通信协议的实现和性能 m v i a n e r s 9 9 是在以太网上实现的基于l i n u x 的个软件v i a 系统,m v i a 采用了 模块化的结构使得它可以方便地支持多种商业以太网卡,但是由于大部分的协议处理需 要由软件实现,所以性能不是很好。 近年来国内科研人员也对v i a 标准进行了实现和研究。清华大学的m y v i a c w i + 0 2 1 采取了用户级页表用于减少虚实地址转换时的开销,还采用了流水线机制和d m a 链技 术以提高带宽,此外还有一些其他优化性能的技术和手段,其p c i 总线的最高带宽利用 率超过9 4 ,最小延迟为8 4 6 s 。可见v i a 作为一种标准,在大幅度利用网络硬件的 同时,其相对复杂的协议处理仍将带来较大的软件开销。 c a s h m e r e 2 l k _ h s + 9 7 1 ,是r o c h e s t e r 大学一个基于m e m o r yc h a n n e l 的软件分布式共 享存储系统。c a s h m e r e 一2 l 在结点内部利用了s m p 结点的硬件共享存储支持,结点之间 利用m e m o r yc h a n n e l 的“远程写”功能来维护释放致性,但是没有实现远程读操作。 大约4 鹏的单向用户级延迟,虽然带宽性能不太理想,但是具备广播功能。 1 3 2 本文所实现的用户级通信库的设计简介 通过上文对机群通信系统中存在的问题的分析,并结合国际上已有的用户级通信库 的设计经验,我们提出了适用于共享存储机群通信特点的用户级通信库。我们所设计的 通信库完全实行用户级通信机制,使得用户进程在通信时不再需要通过操作系统的中 转:通信库在进行消息传递时提供给用户两套数据通路,一个是采取p i o 方式用于发送 长度较短的消息,以提高共享存储系统中的事件通知速度,另一个是采取d m a 数据传 输方式用来发送长度较长的消息;通信库将提供给用户进程远程直接内存访问功能,使 得存取远程内存的开销更小;而且我们将在实现用户级通信库的基础之上对其性能进行 进一步的优化,以提高带宽利用率并降低通信延迟。 l i n u x 提供了免费并高效的操作系统环境以及较为完善的内存映射机制,非常适用 于共享存储机群系统,这样既然可以充分发挥机群的性能价格比优势,又方便共享存储 系统的实现。另一方面l i n u x 提供了开放源代码的开发环境,并为内核程序员提供了丰 富的接口函数,可以方便地对内核进行扩展。基于以上诸多因素,本文所阐述的用户级 通信库选择构建在l i n u x 操作系统之上。 对称多处理机( s y m m e t f i c a lm u l t i p r o c e s s o r ) 即s m p 结构的出现使得机群更加适用 于并行处理环境,同时也对如何高效地构建基于s m p 结点的共享存储机群提出了挑战。 结合我们以往设计共享存储机群系统的经验,为了充分利用s m p 体系结构的特征,我 们在构建用户级通信库时采用了多线程结构。以往的经验表明 胡0 1 ,施0 1 ,h s z 0 1 , 在个基于双c p u 的s m p 结点的共享存储机群中,在每个计算结点上创建两个线程, 一个负责计算任务,另个负责通信任务,可以获得比较令人满意的效果。用户进程在 利用用户级通信库进行通信前需要调用通信库的初始化函数,我们在初始化函数中派生 出一个专门负责通信的线程。在l i n u x 系统中,线程是通过进程来实现的,也就是说, 第一章菇享存储机群中通信系统的研究现状 l i n u x 系统中的每个线程都拥有独立的进程控制块,而通过使用同一个进程页表来实现 线程地址空间的共享。在下文中,用户进程即是指专注于通信的线程。 考虑到目前存在着大量的单c p u 结构的机群系统,我们在实现充分发挥对称多处理 机系统特点的通信库的同时,也实现了适用于单处理机系统的用户级通信库。 我们所实现的用户级通信机制目前不支持多进程,这主要是因为机群系统通常是在 小范围内集中式管理的,对于系统的安全住要求不高,而且对于大多数机群而言,由于 其计算能力有限,我们暂时只考虑同一时刻只有一个并行计算任务在执行。 本文将以基于i 3 8 6 体系结构的个人工作站机群为例,介绍用户级通信库的设计实现 和性能。 1 。4 本文的贡献 本文通过分析共享存储机群中通信的特点、需求、以及目前存在的主要问题,参考 国内外主要的用户级通信库的设计和实现,在已有的高速网络硬件的基础上构建了适用 于共享存储机群的用户级通信库,充分发挥了底层网络硬件的性能,并对通信库进行了 深入地量化分析。主要的贡献包括以下方面: 1 分析了共享存储机群中通信的特点和传统的通信机制中存在的问题,并在此基础之 上提出了一种适合共享存储机群的用户级通信机制; 2 针对共享存储机群中普遍使用的l i n u x 操作系统,进行了内核扩展,使操作系统内 核能够充分地支持网络硬件的功能,并为用户级通信库的实现做了充分而必需的准 备; 3 设计并实现了适用于共享存储机群系统通信的用户级通信库,其中包括对于大消息 和小消息不同的发送通路,以及对于远程存取内存的支持: 4 对我们所实现的通信库的性能进行了初步的评估,针对其中存在的缺点和潜在的问 题进行了改进并且进行了性能优化; 5 分析了包的长度对于带宽利用率的影响,以及通信的关键区域是否在主机处理器的 高速缓存中对通信系统性能的影响; 6 与s c i ( s c a l a b l ec o h e r e n t i n t e r f a c e ) 通信系统进行了性能的对比分析。 1 5 论文的组织形式 论文的第一章介绍了共享存储机群通信的特点,通过研究传统通信机制的整个数据 传输过程分析了机群通信系统中存在的问题,包括复杂的协议处理和操作系统所带来的 开销,以及对快速远程存取数据机制的缺乏,并在研究国内外在用户级通信方面进展的 基础上提出了针对共享存储机群通信系统的缺点的高性能通信协议。 在第二章中,我们首先介绍了用户级通信库的硬件基础一我们已经设计实现的网络 接口卡和交换机,随后详细叙述了为实现用户级通信库而对操作系统进行的必要扩展, 其中包括内存的映射和锁定、虚实地址的翻译以及中断处理等。 中国科学院硕士论文共享存储机群中用户级通信协议的实现和性能 第三章主要讲述了通信库软件的设计目标和细节:我们力争让通信库提供给用户进 程一个低延迟而高带宽的通信环境,并且在存取远程数据的时候尽可能地不去打扰远程 主机处理器的当前工作。我们所设计的用户级通信库的具体实现方法也将在这一章进行 详细的描述,包括重要的数据结构和主要的协议算法。提供给用户进程的接口和使用方 法也将在本章介绍。 第四章则是对通信库性能的分析和优化,首先从带宽和延迟这两个重要的数量指标 对通信库性能进行了初步的评价和分析,然后结合机群结点的体系结构等因素对通信库 进行了深入的分析和迸一步的性能优化。 第五章是整个论文的总结和今后的工作。 第二章共享存储机群中用户级通信协议的硬件和软件基础 用户级通信协议的核心思想是用户进程在通信时可以绕过操作系统直接控制网络接 口卡,而且要求网络接口卡在发送和接收数据时能够直接访问用户空间,而不需要经过 操作系统中转,这就要求原本由操作系统实现的功能在用户空间实现,从而为用户级通 信协议的实现提供必要的支持。另一方面,为了实现远程内存直接读写以及中断的快速 返回等功能,网络接口卡需要采用定制的硬件结构并具备一定的智能。 本章首先简要介绍了用户级通信协议赖以实现的网络硬件基础一网络接口卡和交换 机,随后详细地介绍了操作系统为实现用户级通信协议而做出的扩展。 2 1 网络硬件基础 本文所阐述的用户级通信协议是建立在定制的网络硬件基础之上的,功能强大的网 络接口卡使得用户级通信协议的实现成为可能,简洁高效的交换机制使得用户级通信库 的性能得到大幅度的提高。 2 1 1 网络接口卡 网络接口卡是基于p c i 总线标准开发的,总体逻辑设计如图2 1 所示。该图的左边 表示主机的p c i 总线,与p c i 总线相连的是网卡的p c i 接口控制器。p c i 接口控制器还 有一条局部( 或本地) 总线,局部总线连接着网卡上的大部分逻辑和芯片,例如消息传递 控制逻辑、远程直接内存读写的控制逻辑、虚实地址转换逻辑、帧头分析逻辑、控制寄 存器逻辑和f i f o 缓冲器。 图2 1 网卡的总体设计 9 中国科学院硕士论文共享存储机群中用户级通信协议的实现和性能 网络接口卡提供给上层软件可利用的功能如下: 消息发送:网卡提供了两种可供上层用户选择的发送机制,对于长度较小的消息, 网络接口卡希望用户通过直接p i o 写板上寄存器方式将消息写到发送f i f o 进行发 送;对于长度较大的消息,用户可以通过写网络接口卡上的控制寄存器来启动d m a 操作,从而把数据从主存移动到网络接口卡的f o 中; 消息接收:如果有消息到来,网卡就自动启动d m a 将消息数据写入主存,写完之 后向主机内存的某个位置置上完成标志; 远程内存直接写:在发送端按大消息方式发送,接收方网络接口卡在收到该消息后, 根据消息头中的虚地址得到物理地址,然后由r d m a 写操作逻辑通过d m a 方式将 数据写入主存; 远程内存直接读:在源结点按小消息方式发送该远程读请求,目的结点的网络接口 接收到该请求后,根据远程虚地址信息获得物理地址,从而由目的结点的网卡直接 从该物理地址起始的空间中读取指定大小的数据发送回源结点;远程读得的数据返 回到请求方( 源结点) 网卡,在获得物理地址后,由r d m a 读操作逻辑将数据写回到 请求方的主存,并向主存中的一个远程读完成通知队列中置上本次远程读完成标志。 用户进程通过读写寄存器来完成通信过程,对寄存器的写操作将引起网络接口卡中 硬布线逻辑的状态机的变化。根据寄存器所在的功能模块,网络接口卡提供给用户的寄 存器可以划分如下: 地址配置寄存器:系统总线上o x 0 0 0 0 0 0 0 0 地址映射在p c i 局域总线上的地址。网 络接口卡硬件使用该寄存器,将系统总线上的一个物理地址加上该寄存器的内容就 得到p c i 局部总线上对应的地址,从而由网络接口直接发起访问系统主存的操作。 只要是网络接e l 直接访问主存,都需要用到该寄存器。目前,在以下几种情况下网 络接口需要用到该寄存器的内容: 发送大消息的消息体: 大消息发送完成后的通知; 消息接收; 消息接收完成后的通知; 取下一个接收描述符: r d m a 的读写; r d m a 读操作完成后的通知。 消息发送寄存器:负责消息传递发送模式的寄存器。 标志小消息发送起始的寄存器:写这个寄存器意味着发送一个小消息的开始 通信进程应该把消息头( 包括消息的类型和长度等信息) 写入这个寄存器; 1 0 第二章共享存储机群中用户级通信协议的软件和硬件基础 标志小消息发送内容的寄存器: 入这个寄存器; 标志小消息发送末尾的寄存器: 器,表示小消息发送的结束。 在写上一个寄存器后,就可以把消息体逐个写 消息体内容的末尾四个字节应该写到这个寄存 以上三个寄存器也用来参与远程直接内存读取的过程( 远程读请求也是一个小消 息) ,网络接口卡通过消息头的类型标志知道这是远程直接内存读取操作,随后将源 地址和目的地址逐个写入标志小消息发送内容的寄存器,并把其它相关信息写入标 志小消息发送末尾的寄存器。 标志大消息发送开始的寄存器:写这个寄存器意味着发送一个大消息的开始, 通信进程把消息头( 包括消息的类型和长度等信息) 写入这个寄存器: 标志大消息消息体的物理地址的寄存器:在写上一个寄存器后,就可以通过这 个寄存器把消息体的物理地址告诉网络接口卡; 标志远程写消息在远程结点上的虚地址的寄存器:只有在进行远程直接写内存 的时候才用到这个寄存器。 用于中断处理的寄存器: 存放当前中断状态的寄存器:产生中断时,驱动程序可以由此寄存器得到当前 中断信息,并根据中断的类型采取不同的动作。中断处理完毕后,应由中断处 理程序对此寄存器进行复位; 存放当前对网络接口各种中断的屏蔽状况的寄存器:在必要的情况下,可以设 置该寄存器屏蔽相应的中断。 用于虚实地址转换的寄存器:网络接口卡在完成远程直接内存访问时需要进行虚实 地址转换,这种转换是通过一个放置在网络接口卡上的转换表t l b 来实现的。 存放当前读t l b 表不命中虚地址的寄存器:当t l b 表不命中时,硬布线逻辑 把不命中的虚地址写入此寄存器,并引发中断。中断处理程序根据此寄存器的 内容进行虚实地址转换; 中断处理程序完成虚实转换后应该把物理地址写回此寄存器。 用于消息接收的寄存器:网络接口卡在收到消息时需要根据“接收描述符”这种数 据结构来把消息放入主存。 存放一个可用的接收描述符的前四个字节的寄存器,其中包括一些标志位,描 述符所指定的缓冲区长度等信息; 存放接收描述符所对应的缓冲区的物理地址的寄存器; 存放接收描述符的物理地址的寄存器。 中国科学院硕士论文共享存储机群中用户级通信协议的实现和性能 2 1 2 交换机 我们已有的定制的交换机采用交叉开关结构。交换机具备以下特点:采用穿透式包 交换方式;源路由寻址;采用简单高效的调度算法。目前的交换机有四个端口,而且很 容易扩展为八个端口。输入端口将到来的帧排队,由端口的解码器对到来的帧头进行解 析得到对应的输出端口号,之后向输出端口请求建立连接。 2 2 操作系统所提供的支持 由于用户级通信机制要求用户进程在通信时可以绕过操作系统直接读写网络接口卡 上的寄存器,而且为了减少数据在发送和接收时的拷贝次数,需要网络接口卡能够不经 过操作系统的中转而直接存取用户空间的数据。我们希望在进行通信之前利用操作系统 提供给内核程序员的编程接口,在用户进程和网络接口卡之间构建一个接口层提供原本 由操作系统内核所提供的功能。另一方面,网络接口卡的驱动程序设计也将在本节进行 简要介绍。 2 2 1 网络接口卡驱动 我们所实现的驱动程序是比较简单的,这主要是由于用户级通信机制把传统协议中 位于操作系统中的部分转移到用户进程中以用户态代码实现,数据的收发过程驱动程序 不进行参与,驱动程序只是提供了一个网络硬件的访问接口并为上层的用户级通信库的 实现提供必要的支持。 为了使网络接口卡能够被操作系统识别并且工作正常,我们需要通过烧录网络接口 卡上的e e p r o m 来对网络接口卡进行配置,配置信息主要包括如下内容: 1 厂商标识:用来唯一标识p c i 设备生产厂家的数值。由于我们的网络接口卡采用 p l x 9 0 5 4 作为p c i 接口芯片,所以厂商标志码为0 x 9 0 5 4 ; 2 设备标识:用来唯一标识设备的数值; 3 中断引脚:p c i 卡上的四个物理引脚可以将中断信号从板卡上带到p c i 总线上,这 四个引脚标准的标记分别为a 、b 、c 及d ,中断引脚域描述此p c i 设备使用的引 脚号;通常特定设备都是采用硬连接方式,这也是系统启动时设备总是使用相同中 断引脚的原因,中断处理子系统用它来管理来自该设备的中断;我们在这里配置为 使用b 引脚; 4 中断连线:本设备配置头中的中断连线域用于p c i 初始化代码、设备驱动以及l i n u x 中断处理子系统间传递中断处理过程;虽然本域中记录的这个数值对于设备驱动毫 无意义,但是它可以将中断从p c i 卡上正确路由到l i n u x 操作系统中相应的设备驱 动中断处理代码中,我们将其配置为由系统自动进行路由; 5 为了使p c i 总线作为主设备访问p l x 9 0 5 4 局域总线所进行的地址映射的长度; 12 第二章共享存储机群中用户级通信协议的软件和硬件基础 6 为了使p c i 总线作为主设备访问p l x 9 0 5 4 局域总线所进行的地址映射在p l x 9 0 5 4 局域总线上的起始地址; 7 以上两个配置是为了实现从p c i 总线访问p l x 9 0 5 4 局域总线而进行的,这里没有设 置在p c i 总线上的起始地址,这样可以避免硬性规定而引起多个p c i 设备的冲突, 这个地址在主机启动时进行自动分配; 8 为了使p l x 9 0 5 4 局域总线作为主设备访问p c i 总线所进行的地址映射的长度; 9 为了使p l x 9 0 5 4 局域总线作为主设备访问p c i 总线所进行的地址映射在p l x 9 0 5 4 局域总线上的起始地址: 1 0 为了使p l x 9 0 5 4 局域总线作为主设备访问p c i 总线所进行的地址映射在p c i 总线上 的起始地址。 主机在加电启动时,首先由p c ib i o s 中的代码来检查当前p c i 总线的每个插槽是 否已被占用。如果被占用则建立一个p c id e v 数据结构来描述此设备并将其链接到已知 p c i 设备链表中,b i o s 通过读取配置信息1 和配置信息2 并将其填入对应的p e i _ d e v 数 据结构中,来唯一标志这个p c i 卡所对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全知识与自救培训方法课件
- 二年级语文上册 课文7 23《纸船和风筝》说课稿 新人教版
- 海南中安科安全生产培训课件
- 海关设备使用培训课件
- 3 认识方向 第二课时(教学设计)-二年级下册数学苏教版
- Unit 7 What happened to the floor?Lesson 26(教学设计)-北京版英语四年级下册
- 安全监管专题培训课件
- 九年级历史下册 第四单元 第17课 干戈不息说课稿 北师大版
- 20.4性别和性别决定说课稿-北师大版生物八年级上册
- 职校入团申请书500字
- (2025)辅警笔试题库及参考答案
- 退役军人服务授课课件
- 劳动保障监察投诉书格式及写作范文
- 中班幼儿在角色游戏中同伴模仿行为研究
- 2026年高考语文备考之家庭伦理小说知识点
- 联名合作授权协议书范本
- 营救小羊中班课件
- 跟岗干部管理办法中组部
- 乐理知识入门教学课件
- 法律与道德教学课件
- 归档病案无纸化管理制度
评论
0/150
提交评论