面向高效跨节点内存共享的软件设计和优化

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:ljn3125678
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机技术的发展,数据中心服务器在运行大数据应用时显现出了两个亟待解决的问题:内存容量小和内存资源利用率低。内存容量的增长速度无法赶上处理器处理速度的增长,使得内存容量成为性能提升的瓶颈;另一方面,不同负载在不同时刻对内存资源的需求不同,按照服务的峰值需求配置内存容量会导致资源利用率低的问题。高效的跨节点内存共享可以解决上述两个问题,实现内存资源的动态调度,从而提高数据中心资源利用率。  为实现数据中心资源动态调度,本文作者所在团队开发了Venice定制互连协议。该协议为上层软件系统提供了两种访问远程内存的方式:ICT(Instruction Cut Through)通道—读写指令直接访问远程内存,RDMA通道—远程内存RDMA访问。本文在Venice定制互连协议的基础上为这两种方式设计了相应的系统软件,实现高效跨节点内存共享系统;并使用跨节点内存共享系统模拟器TSMSim评估远程内存预取的性能。  本文主要工作如下:  1.为ARM Linux内核添加动态NUMA支持。本研究采用动态NUMA技术,为ARMFPGA原型系统提供一种远程内存和本地内存区别管理的方法。该方法主要思想是:操作系统使用一个动态NUMA节点管理本地的CPU和本地内存,使用额外的动态NUMA节点管理远程内存。Linux系统管理员和应用程序开发者可以通过numactl和libnuma库为应用分配合适的内存。  2.分别为ARM FPGA原型系统和X86服务器原型系统设计实现了Venice通过RDMA访问远程内存所需的驱动。在ARM FPGA原型系统中实现了阻塞式RDMA驱动,并在其基础上采用软硬件相结合的优化方法,进一步提出了链式RDMA驱动的设计方法,二者的不同之处在于:阻塞式RDMA在同一时刻链路上只允许存在一个RDMA请求,而链式RDMA驱动允许同一时刻链路上至多存在31个RDMA请求。Venice互连协议在X86服务器上作为一个PCIe外设通过PCIe接口连接到主机上,因此在X86平台上实现的RDMA驱动包括PCIe设备的相关驱动功能。  3.基于本文作者所在团队开发的跨节点内存共享模拟器TSMSim,本文为远程内存缓存实现了stream buffer预取器,并评估其性能。本文使用了以Hadoop和Spark为框架的10个有代表性的数据中心应用作为benchmark进行实验。实验结果表明,当远程内存cache容量有限时,添加预取器能够大幅度提高远程内存访问的效率,性能最高可提高将近8倍。
其他文献
随着集成电路工艺的迅速发展,系统芯片设计和验证的复杂度在日益增长,系统芯片推向市场的压力也在不断增大。为了提高设计的生产效率,人们对系统芯片(SoC:Systemonachip)设计流
我省传统的冬季绿肥——紫云英,历來以连作晚稻稻田套播,随着迟熟高产晚稻品种的推广和插秧密度的增加,紫云英苗期在稻底生长期延长,光照过弱,对幼苗生长极为不利。水稻收割
朴素贝叶斯分类器以其简单、在一些数据集上比其它复杂算法不逊色的性能而闻名,但是其内在的属性条件独立性假设在现实当中是很容易被违背的。当这种假设不在成立时,朴素贝叶斯
奥斯卡金像奖评比已经举行了81届,共有82部影片获得最佳影片奖.通过研究其中文译名,发现翻译方法共有三种:直译,意译,音译.分析这些方法,对于电影片名的翻译、研究及电影事业
近年来,Linux在嵌入式领域和个人计算机(PC)领域的应用越来越广。随着IJnux内核的不断丰富以及应用程序的不断膨胀,系统启动的时间越来越长。目前,Linux操作系统,尤其是包括图形
规模经济带来的效益促使越来越多的计算向数据中心转移,而数据中心的资源利用率一直偏低。通过负载聚合的方式使一个服务器内同时运行多个任务成为一种提高资源利用率的有效方
Internet的大量应用及相关技术的快速发展,使得Internet演变成了一个更加开放的软件协同环境,出现了很多像服务计算、普适计算、网构软件等新型的软件系统,这些系统都不再是通过
命名实体识别是自然语言处理领域的基本问题,主要是识别出人名、地名、组织机构名等命名实体的类别和位置。命名实体是含有完整语义的基本单元,对命名实体的识别至关重要,是实现
同位素和同素异形是物质分类中的两个不同概念,由于都有“同”和“素”字,所以常常造成混淆,以至于有的学生提出H2和D2是不是同素异形体的问题.下面围绕这两个概念进行深入探