CN106844048A - 基于硬件特性的分布式共享内存方法及系统 - Google Patents

基于硬件特性的分布式共享内存方法及系统 Download PDF

Info

Publication number
CN106844048A
CN106844048A CN201710025548.5A CN201710025548A CN106844048A CN 106844048 A CN106844048 A CN 106844048A CN 201710025548 A CN201710025548 A CN 201710025548A CN 106844048 A CN106844048 A CN 106844048A
Authority
CN
China
Prior art keywords
rdma
memory
shared memory
distributed shared
remote
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710025548.5A
Other languages
English (en)
Other versions
CN106844048B (zh
Inventor
洪扬
陈海波
陈榕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201710025548.5A priority Critical patent/CN106844048B/zh
Publication of CN106844048A publication Critical patent/CN106844048A/zh
Application granted granted Critical
Publication of CN106844048B publication Critical patent/CN106844048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

基于硬件特性的分布式共享内存方法及系统
技术领域
本发明涉及分布式计算平台技术领域,具体地,涉及基于硬件特性的分布式共享内存方法及系统。
背景技术
在大数据计算领域,计算应用运行在由许多服务器或工作站构成的集群上或者数据中心里,共享内存技术是构成这些计算应用的下层基础框架的技术之一。共享内存技术为上层的应用提供一种统一的地址空间的抽象,使得运行在不同硬件单元上的计算任务可以用统一的寻址方式访问本地内存的内容以及远程硬件单元上的内存内容。单机共享内存方案已经广泛应用于多核处理器中;分布式共享内存也已被应用于分布式键值存储系统、分布式事务处理系统等应用场景中。
早期的分布式共享内存技术是建立在传统的慢速网络之上的,例如目前广泛应用的以太网。早期的分布式共享内存技术主要目标是解决共享内存一致性问题,即保证多台机器同时对共享数据的读取和修改操作能最终得到正确的结果,就好像只有一个人在执行计算任务一样。这些技术让程序员可以像在单机上编程一样编写运行在分布式系统上的应用。早期分布式共享内存技术的主要缺点是完全使用软件来维护共享内存一致性,而维护的开销很大,导致使用这种技术的分布式计算性能差、运行时间长。
近年来,随着支持远程直接内存访问(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网卡实现的,维护多台服务器对同一份数据访问的一致性。
主加载器负责启动主线程,并发送命令到副加载器,启动其余线程。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (6)

1.一种基于硬件特性的分布式共享内存方法,其特征在于,包括如下步骤:
控制远端程序访问内存权限步骤:使用单边RDMA读操作和写操作绕过远端处理器读取和修改远端进程的页表项;
内存共享步骤:实现不同多核处理器之间的层级化内存共享;
线程同步操作步骤:使用原子RDMA操作实现线程同步操作。
2.根据权利要求1所述的基于硬件特性的分布式共享内存方法,其特征在于,所述控制远端程序访问内存权限步骤中的单边RDMA操作是一种由RDMA网卡提供的底层接口,能够在不占用远程CPU资源的情况下读取或者修改远程内存的内容。
3.根据权利要求1所述的基于硬件特性的分布式共享内存方法,其特征在于,所述内存共享步骤中同一台机器上的CPU核心通过本机的缓存一致性实现共享内存,位于不同的机器上的CPU核心之间通过一个通信协议实现分布式共享内存。
4.根据权利要求1所述的基于硬件特性的分布式共享内存方法,其特征在于,所述线程同步操作步骤实现的线程同步操作包括:使用RDMA原子操作实现锁操作,并使用RDMA消息传递机制实现条件变量。
5.一种基于硬件特性的分布式共享内存系统,其特征在于,应用权利要求1至4中任一项所述的基于硬件特性的分布式共享内存方法,包括多台相连的多核处理器,所述多核处理器中包括多个核心,多台相连的多核处理器之间通过一个通讯协议实现分布式共享内存;同一多核处理器的多个核心通过本地缓存一致性协议实现共享内存;位于不同机器上的多核处理器之间使用RDMA原子操作实现线程同步。
6.根据权利要求5所述的基于硬件特性的分布式共享内存系统,其特征在于,所述多核处理器通过内存总线读写本地内存,并通过PCI-E总线访问支持RDMA功能的网卡,该网卡通过DMA直接读取和修改本地内存,同时与其余服务器连接到同一个RDMA网络,通过RDMA直接读取和修改远端内存,实现分布式共享内存。
CN201710025548.5A 2017-01-13 2017-01-13 基于硬件特性的分布式共享内存方法及系统 Active CN106844048B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710025548.5A CN106844048B (zh) 2017-01-13 2017-01-13 基于硬件特性的分布式共享内存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710025548.5A CN106844048B (zh) 2017-01-13 2017-01-13 基于硬件特性的分布式共享内存方法及系统

Publications (2)

Publication Number Publication Date
CN106844048A true CN106844048A (zh) 2017-06-13
CN106844048B CN106844048B (zh) 2020-11-06

Family

ID=59123368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710025548.5A Active CN106844048B (zh) 2017-01-13 2017-01-13 基于硬件特性的分布式共享内存方法及系统

Country Status (1)

Country Link
CN (1) CN106844048B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582592A (zh) * 2018-10-26 2019-04-05 华为技术有限公司 资源管理的方法和装置
CN110069440A (zh) * 2019-03-11 2019-07-30 胡友彬 基于异构多核的气象海洋资料处理算法硬件化系统及方法
WO2019205448A1 (zh) * 2018-04-27 2019-10-31 江苏华存电子科技有限公司 一种提升多核处理器的信息管理方法
CN110471779A (zh) * 2019-07-22 2019-11-19 阿里巴巴集团控股有限公司 用于实现锁资源处理的方法和装置
WO2020108124A1 (zh) * 2018-11-29 2020-06-04 阿里巴巴集团控股有限公司 数据备份方法及装置
CN111352578A (zh) * 2018-12-24 2020-06-30 深圳先进技术研究院 一种全新服务器之间的内存借用策略
CN112636949A (zh) * 2020-11-30 2021-04-09 中国电力科学研究院有限公司 一种电磁暂态实时并行仿真数据的通信方法及装置
CN112817887A (zh) * 2021-02-24 2021-05-18 上海交通大学 分离可组合式架构下的远内存访问优化方法及系统
CN114885007A (zh) * 2022-03-31 2022-08-09 阿里云计算有限公司 用于实时的强一致性会话同步的方法和电子设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236063A1 (en) * 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
CN1928839A (zh) * 2005-09-09 2007-03-14 中国科学院计算技术研究所 一种远程内存服务器及其实现方法
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US8131814B1 (en) * 2008-07-11 2012-03-06 Hewlett-Packard Development Company, L.P. Dynamic pinning remote direct memory access
CN103607428A (zh) * 2013-10-30 2014-02-26 华为技术有限公司 一种访问共享内存的方法和装置
CN104202391A (zh) * 2014-08-28 2014-12-10 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合系统间的rdma通信方法
US9170950B2 (en) * 2013-01-16 2015-10-27 International Business Machines Corporation Method, apparatus and computer programs providing cluster-wide page management
CN105404546A (zh) * 2015-11-10 2016-03-16 上海交通大学 基于rdma和htm的分布式并发控制方法
CN105408880A (zh) * 2013-07-31 2016-03-16 甲骨文国际公司 对共享存储装置的持久存储器的直接访问
CN105426321A (zh) * 2015-11-13 2016-03-23 上海交通大学 采用远程位置信息的rdma友好缓存方法
CN105446936A (zh) * 2015-11-16 2016-03-30 上海交通大学 基于htm和单向rdma操作的分布式哈希表方法
US9432183B1 (en) * 2015-12-08 2016-08-30 International Business Machines Corporation Encrypted data exchange between computer systems

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US20060236063A1 (en) * 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
CN1928839A (zh) * 2005-09-09 2007-03-14 中国科学院计算技术研究所 一种远程内存服务器及其实现方法
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US8131814B1 (en) * 2008-07-11 2012-03-06 Hewlett-Packard Development Company, L.P. Dynamic pinning remote direct memory access
US9170950B2 (en) * 2013-01-16 2015-10-27 International Business Machines Corporation Method, apparatus and computer programs providing cluster-wide page management
CN105408880A (zh) * 2013-07-31 2016-03-16 甲骨文国际公司 对共享存储装置的持久存储器的直接访问
CN103607428A (zh) * 2013-10-30 2014-02-26 华为技术有限公司 一种访问共享内存的方法和装置
CN104202391A (zh) * 2014-08-28 2014-12-10 浪潮(北京)电子信息产业有限公司 共享系统地址空间的非紧耦合系统间的rdma通信方法
CN105404546A (zh) * 2015-11-10 2016-03-16 上海交通大学 基于rdma和htm的分布式并发控制方法
CN105426321A (zh) * 2015-11-13 2016-03-23 上海交通大学 采用远程位置信息的rdma友好缓存方法
CN105446936A (zh) * 2015-11-16 2016-03-30 上海交通大学 基于htm和单向rdma操作的分布式哈希表方法
US9432183B1 (en) * 2015-12-08 2016-08-30 International Business Machines Corporation Encrypted data exchange between computer systems

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GANG SHI ET AL.: "《2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935)》", 30 September 2004 *
RONALD VELDEMA ET AL.: "《Languages and Compilers for Parallel Computing》", 31 December 2007 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019205448A1 (zh) * 2018-04-27 2019-10-31 江苏华存电子科技有限公司 一种提升多核处理器的信息管理方法
CN109582592A (zh) * 2018-10-26 2019-04-05 华为技术有限公司 资源管理的方法和装置
WO2020108124A1 (zh) * 2018-11-29 2020-06-04 阿里巴巴集团控股有限公司 数据备份方法及装置
CN111352578A (zh) * 2018-12-24 2020-06-30 深圳先进技术研究院 一种全新服务器之间的内存借用策略
CN110069440A (zh) * 2019-03-11 2019-07-30 胡友彬 基于异构多核的气象海洋资料处理算法硬件化系统及方法
CN110471779A (zh) * 2019-07-22 2019-11-19 阿里巴巴集团控股有限公司 用于实现锁资源处理的方法和装置
CN110471779B (zh) * 2019-07-22 2023-11-14 创新先进技术有限公司 用于实现锁资源处理的方法和装置
CN112636949A (zh) * 2020-11-30 2021-04-09 中国电力科学研究院有限公司 一种电磁暂态实时并行仿真数据的通信方法及装置
CN112817887A (zh) * 2021-02-24 2021-05-18 上海交通大学 分离可组合式架构下的远内存访问优化方法及系统
CN112817887B (zh) * 2021-02-24 2021-09-17 上海交通大学 分离可组合式架构下的远内存访问优化方法及系统
CN114885007A (zh) * 2022-03-31 2022-08-09 阿里云计算有限公司 用于实时的强一致性会话同步的方法和电子设备

Also Published As

Publication number Publication date
CN106844048B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN106844048A (zh) 基于硬件特性的分布式共享内存方法及系统
US10546361B2 (en) Unified memory systems and methods
TW594492B (en) System and method for data synchronization for a computer architecture for broadband networks
CN102375800B (zh) 用于机器视觉算法的多处理器片上系统
JP4597553B2 (ja) コンピュータ・プロセッサ及び処理装置
CN114580344B (zh) 测试激励生成方法、验证方法、验证系统及相关设备
US8301717B2 (en) Extended virtual memory system and method in a computer cluster
DE69427606T2 (de) Rechnersystem, das den Schreibschutzstatus im Systemverwaltungszustand übergeht
US20040098575A1 (en) Processor cache memory as RAM for execution of boot code
US9563569B2 (en) Memory transformation in virtual machine live migration
US20150212839A1 (en) Tracking transformed memory pages in virtual machine chain migration
US9208088B2 (en) Shared virtual memory management apparatus for providing cache-coherence
US20080162877A1 (en) Non-Homogeneous Multi-Processor System With Shared Memory
CN103377157A (zh) 一种用于嵌入式数控系统的双核数据通信方法
US20220179792A1 (en) Memory management device
US20190266000A1 (en) Guest intermediate address tagging for guest applications
US10628314B2 (en) Dual clusters of fully connected integrated circuit multiprocessors with shared high-level cache
US9183150B2 (en) Memory sharing by processors
TWI436281B (zh) 注入異動以支援實體裝置控制器之虛擬化的技術
CN115934366A (zh) 服务器存储扩展方法、装置、设备、介质及整机柜系统
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
CN111279323B (zh) 通过多个处理器对共享高速缓存行的并发修改
CN105094993B (zh) 一种多核处理器、数据同步的方法及装置
US20220237126A1 (en) Page table manager
Kohler et al. Low-latency collectives for the intel scc

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant