基于硬件特性的分布式共享内存方法及系统技术方案

技术编号:15638986 阅读:404 留言:0更新日期:2017-06-15 20:41
本发明专利技术提供了一种基于硬件特性的分布式共享内存方法及系统,包括获取远端程序访问权限步骤:使用单边RDMA读操作和写操作绕过远端处理器访问和修改远端进程的页表项;内存共享步骤:实现不同多核处理器之间的分布式内存共享;线程同步操作步骤:使用原子RDMA操作实现线程同步操作。本发明专利技术能够绕过远端处理器(CPU)的干预直接控制远程计算机对内存的访问,使用层级化的共享内存模式,提供了基于RDMA的高效同步原语,具有低CPU占用率,易于编程,线程间同步性能好等特点。

【技术实现步骤摘要】
基于硬件特性的分布式共享内存方法及系统
本专利技术涉及分布式计算平台
,具体地,涉及基于硬件特性的分布式共享内存方法及系统。
技术介绍
在大数据计算领域,计算应用运行在由许多服务器或工作站构成的集群上或者数据中心里,共享内存技术是构成这些计算应用的下层基础框架的技术之一。共享内存技术为上层的应用提供一种统一的地址空间的抽象,使得运行在不同硬件单元上的计算任务可以用统一的寻址方式访问本地内存的内容以及远程硬件单元上的内存内容。单机共享内存方案已经广泛应用于多核处理器中;分布式共享内存也已被应用于分布式键值存储系统、分布式事务处理系统等应用场景中。早期的分布式共享内存技术是建立在传统的慢速网络之上的,例如目前广泛应用的以太网。早期的分布式共享内存技术主要目标是解决共享内存一致性问题,即保证多台机器同时对共享数据的读取和修改操作能最终得到正确的结果,就好像只有一个人在执行计算任务一样。这些技术让程序员可以像在单机上编程一样编写运行在分布式系统上的应用。早期分布式共享内存技术的主要缺点是完全使用软件来维护共享内存一致性,而维护的开销很大,导致使用这种技术的分布式计算性能差、运行时间长。近年来,随着支持远程直接内存访问(RDMA)技术的高速网络的逐渐普及,分布式共享内存技术又出现了新的设计。支持远程直接内存访问的高速网络不仅仅降低了网络传输的延迟,更加提供了高效的用户态接口使应用程序能绕过内核直接使用网络,进一步降低了延迟。基于远程直接内存访问技术的分布式共享内存技术,将高速网络提供的收发消息机制提供给计算任务。处于应用层的计算任务使用这种消息机制直接读取或者修改远程机器上的内存,但是并不维护严格的共享内存一致性,而是代之以事务处理一致性的接口。这种分布式共享内存技术的优点是降低了维护一致性的开销,但是程序员需要面向特定的软件接口编程,降低了程序的表达力和自由度。综上所述,现有的分布式共享内存技术或者无法利用现有的高速网络,或者增加了编程接口的复杂性,限制了应用程序的自由度。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于硬件特性的分布式共享内存方法。根据本专利技术提供的基于硬件特性的分布式共享内存方法,包括如下步骤:控制远端程序访问内存权限步骤:使用单边RDMA读操作和写操作绕过远端处理器读取和修改远端进程的页表项;内存共享步骤:实现不同多核处理器之间的层级化内存共享;线程同步操作步骤:使用原子RDMA操作实现线程同步操作。优选地,所述控制远端程序访问内存权限步骤中的单边RDMA操作是一种由RDMA网卡提供的底层接口,能够在不占用远程CPU资源的情况下读取或者修改远程内存的内容。优选地,所述内存共享步骤中同一台机器上的CPU核心通过本机的缓存一致性实现共享内存,位于不同的机器上的CPU核心之间通过一个通信协议实现分布式共享内存。优选地,所述线程同步操作步骤实现的线程同步操作包括:使用RDMA原子操作实现锁操作,并使用RDMA消息传递机制实现条件变量。根据本专利技术提供的基于硬件特性的分布式共享内存系统,应用上述的基于硬件特性的分布式共享内存方法,包括多台相连的多核处理器,所述多核处理器中包括多个核心,多台相连的多核处理器之间通过一个通讯协议实现分布式共享内存;同一多核处理器的多个核心通过本地缓存一致性协议实现共享内存;位于不同机器上的多核处理器之间使用RDMA原子操作实现线程同步。优选地,所述多核处理器通过内存总线读写本地内存,并通过PCI-E总线访问支持RDMA功能的网卡,该网卡通过DMA直接读取和修改本地内存,同时与其余服务器连接到同一个RDMA网络,通过RDMA直接读取和修改远端内存,实现分布式共享内存。与现有技术相比,本专利技术具有如下的有益效果:1、本专利技术中的方法在不需要远程机器上的CPU干预的情况下控制远程机器对内存的访问,降低了CPU占用率,使计算任务运行更高效;2、本专利技术中的方法采用与多核处理器相结合的层级化共享模式,充分发挥了多核处理器的伸缩性和分布式系统的伸缩性,最大化整个系统的伸缩性;3、本专利技术中的方法使用RDMA底层的操作来实现同步原语,更加高效,降低了分布式线程同步的开销。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为应用本专利技术中方法的硬件结构原理示意图;图2为本专利技术中方法的原理框图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。根据本专利技术提供的基于硬件特性的分布式共享内存方法,包括如下步骤:获取远端程序访问权限步骤:使用单边RDMA读操作和写操作绕过远端处理器访问和修改远端进程的页表项;内存共享步骤:实现不同多核处理器之间的分布式内存共享;线程同步操作步骤:使用原子RDMA操作实现线程同步操作。所述内存共享步骤中的单边RDMA操作是一种由RDMA网卡提供的底层接口,能够在不占用远程CPU资源的情况下读取或者修改远程内存的内容。所述内存共享步骤中同一台机器上的CPU核心通过本机的缓存一致性实现共享内存,不同的CPU核心之间通过共享一个通信协议端实现分布式共享内存。所述线程同步操作步骤实现的线程同步操作包括:上锁,并使用RDMA消息传递机制实现条件变量。如图1所示,为基于硬件特性的分布式共享内存技术的硬件装置连接图。下面以两台相连的多核服务器为例,结合图2对分布式共享内存系统的硬件连接进行详细描述:(1)多核处理器由多个处理核心组成,通过本地的缓存一致性协议实现共享内存;(2)多核处理器通过内存总线读写内存,同时通过PCI-E总线访问支持RDMA功能的网卡;(3)RDMA网卡通过DMA直接读取和修改内存,同时通过物理层连接与其余服务器相连,实现分布式共享内存。如图2所示,为基于硬件特性的分布式共享内存技术的架构图。下面以三台服务器构成的分布式集群为例,结合图1对分布式共享内存系统的实施步骤进行详细描述:(1)每一台服务器的计算资源为多核处理器的多个核心;(2)通信协议端是基于RDMA网卡实现的,维护多台服务器对同一份数据访问的一致性。主加载器负责启动主线程,并发送命令到副加载器,启动其余线程。以上对本专利技术的具体实施例进行了描述。需要理解的是,本专利技术并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本专利技术的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。本文档来自技高网
...
基于硬件特性的分布式共享内存方法及系统

【技术保护点】
一种基于硬件特性的分布式共享内存方法,其特征在于,包括如下步骤:控制远端程序访问内存权限步骤:使用单边RDMA读操作和写操作绕过远端处理器读取和修改远端进程的页表项;内存共享步骤:实现不同多核处理器之间的层级化内存共享;线程同步操作步骤:使用原子RDMA操作实现线程同步操作。

【技术特征摘要】
1.一种基于硬件特性的分布式共享内存方法,其特征在于,包括如下步骤:控制远端程序访问内存权限步骤:使用单边RDMA读操作和写操作绕过远端处理器读取和修改远端进程的页表项;内存共享步骤:实现不同多核处理器之间的层级化内存共享;线程同步操作步骤:使用原子RDMA操作实现线程同步操作。2.根据权利要求1所述的基于硬件特性的分布式共享内存方法,其特征在于,所述控制远端程序访问内存权限步骤中的单边RDMA操作是一种由RDMA网卡提供的底层接口,能够在不占用远程CPU资源的情况下读取或者修改远程内存的内容。3.根据权利要求1所述的基于硬件特性的分布式共享内存方法,其特征在于,所述内存共享步骤中同一台机器上的CPU核心通过本机的缓存一致性实现共享内存,位于不同的机器上的CPU核心之间通过一个通信协议实现分布式共享内存。4.根据权利要求1所述的基于硬件特性的分布式共享内存方法,其特征...

【专利技术属性】
技术研发人员:洪扬陈海波陈榕
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1