CN110392084B - 在分布式***中管理地址的方法、设备和计算机程序产品 - Google Patents

在分布式***中管理地址的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110392084B
CN110392084B CN201810362380.1A CN201810362380A CN110392084B CN 110392084 B CN110392084 B CN 110392084B CN 201810362380 A CN201810362380 A CN 201810362380A CN 110392084 B CN110392084 B CN 110392084B
Authority
CN
China
Prior art keywords
address
physical memory
destination
memory
source
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.)
Active
Application number
CN201810362380.1A
Other languages
English (en)
Other versions
CN110392084A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810362380.1A priority Critical patent/CN110392084B/zh
Priority to US16/383,238 priority patent/US10838873B2/en
Publication of CN110392084A publication Critical patent/CN110392084A/zh
Application granted granted Critical
Publication of CN110392084B publication Critical patent/CN110392084B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实现涉及在分布式***中管理地址的方法、设备和计算机程序产品。提供了一种用于在分布式***中管理地址的方法。该分布式***包括客户端和资源池,资源池包括多个主机,多个主机中的主机包括计算节点。该方法包括:接收来自客户端的访问请求,访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据;基于第一虚拟地址来确定物理存储器;以及基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址,其中计算节点是图形处理单元,以及物理存储器是图形处理单元的存储器。进一步,提供了在分布式***中管理地址的设备和计算机程序产品。以此方式,可以解决多个计算节点的存储设备中地址重叠的问题。

Description

在分布式***中管理地址的方法、设备和计算机程序产品
技术领域
本公开的实现概括地涉及分布式***,并且更具体地,涉及用于在分布式***中管理地址的方法、设备以及计算机程序产品。
背景技术
客户端上的应用可以被设计用于利用处理和存储资源等计算资源来完成各种处理或分析任务。随着诸如机器学习、深度学习、数据挖掘等任务的需求和复杂度不断增加,需要大量和/或可变的计算节点来满足相应应用的运行。这可以通过具有多个计算节点的机器或***来实现,其中应用可以被调度到该机器或***的一个或多个计算节点上运行。例如,已经开发了基于云的分布式***,该分布式***包括具有一个或多个计算节点的机器。不同客户端可以根据需要来租赁该***的计算节点(例如,计算节点)用以运行各自的应用。
随着计算机技术的发展,计算节点的种类越来越丰富,并且已经不再局限于传统的诸如中央处理单元的计算节点。例如,目前图形处理单元(Graphic Processing Unit,GPU)的计算能力越来越强。由于GPU特有性质,GPU特别适合于执行有关深度学习(DeepLearning)、高性能计算(High Performance Computing)、以及机器学习(MachineLearning)等方面的计算任务。然而,对于普通的客户端设备以及常规的云计算设备而言,这些设备的图形处理单元的性能通常较为有限,并不具有高性能的处理能力。因而,此时如何利用(例如以远程方式)利用其他设备所具有的图形处理单元的计算能力来处理计算任务成为一个研究焦点。
然而,目前的一些技术方案并不能区分分布式***的资源池中的多个计算节点的地址之间的区别,进而导致无法以并行方式调用多个计算节点的处理能力。这将导致在资源池中可能会出现计算节点的闲置和/或工作负载不平衡的状况。因此,期望能够提供一种以简单并且有效的方式来在分布式***中管理地址的技术方案。
发明内容
本公开的实现提供了用于在分布式***中管理地址的方法、设备和相应的计算机程序产品。
根据本公开的第一方面,提供了一种用于在分布式***中管理地址的方法,分布式***包括客户端和资源池,资源池包括多个主机,多个主机中的主机包括计算节点。该方法包括:接收来自客户端的访问请求,访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据;基于第一虚拟地址来确定物理存储器;以及基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址,其中计算节点是图形处理单元,以及物理存储器是图形处理单元的存储器。
根据本公开的第二方面,提供了一种用于处理拷贝请求的方法,包括。该方法包括:响应于接收到来自客户端的拷贝请求,确定与拷贝请求相关联的源虚拟地址和目的地虚拟地址;利用根据本公开第一方面的方法,基于源虚拟地址确定源物理存储器和源物理地址,以及基于目的地虚拟地址确定目的地物理存储器和目的地物理地址;以及基于源物理存储器和目的地物理存储器来处理拷贝请求。
根据本公开内容的第三方面,提供了一种用于在分布式***中管理地址的设备,分布式***包括客户端和资源池,资源池包括多个主机,多个主机中的主机包括计算节点,包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:接收来自客户端的访问请求,访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据;基于第一虚拟地址来确定物理存储器;以及基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址,其中计算节点是图形处理单元,以及物理存储器是图形处理单元的存储器。
根据本公开的第四方面,提供了一种用于处理拷贝请求的设备,包括:至少一个处理器;根据本公开第三方面的设备;易失性存储器;及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:响应于接收到来自客户端的拷贝请求,确定与拷贝请求相关联的源虚拟地址和目的地虚拟地址;利用根据本公开第三方面的设备,基于源虚拟地址确定源物理存储器和源物理地址,以及基于目的地虚拟地址确定目的地物理存储器和目的地物理地址;以及基于源物理存储器和目的地物理存储器来处理拷贝请求。
根据本公开的第五方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据本公开第一方面方法。
根据本公开的第六方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据本公开第二方面方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实现进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实现中,相同的参考标号通常代表相同部件。
图1示意性示出了适于实现本公开内容实现方式的示例性分布式***的框图;
图2示意性示出了根据一个技术方案的用于在分布式***中管理地址的框图;
图3示意性示出了根据本公开的一个示例性实现的用于在分布式***中管理地址的框图;
图4示意性示出了根据本公开的一个示例性实现的用于在分布式***中管理地址的方法的流程图;
图5示意性示出了根据本公开的一个示例性实现的物理地址和虚拟地址之间的映射关系的框图;
图6示意性示出了根据本公开的一个示例性实现的在物理地址和虚拟地址之间进行映射的框图;
图7示意性示出了根据本公开的一个示例性实现的用于处理拷贝请求的方法的流程图;
图8至图10分别示意性示出了根据本公开的示例性实现的用于处理拷贝请求的框图;以及
图11A示意性示出了根据本公开的一个示例性实现的用于管理地址的设备的框图;
图11B示意性示出了根据本公开的一个示例性实现的用于处理拷贝请求的设备的框图;以及
图12示意性示出了根据本公开的一个示例性实现的用于在分布式***中管理地址以及处理拷贝请求的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
如上,计算节点可以在客户端本地或者可以由远程机器或***提供。在一些示例中,可以部署基于云的计算***,其中包括具有一个或多个计算节点的多个机器。该计算***的计算节点可以由不同客户端根据需要来使用,以将相应的应用调度到可用的计算节点上运行。
图1示出了本公开的实现可以在其中被实现的示例分布式***100的示意图。该计算***100可以包括资源池170,并且其中部署了用于应用运行的多个主机,包括主机110-1、主机110-2、主机110-3、...、主机110-U(以下统称为或单独称为主机110,其中U为大于1的自然数)。计算***100还包括计算节点160-1、计算节点160-2、计算节点160-3、...、计算节点160-V(以下统称为或单独称为计算节点160,其中V为大于1的自然数)。每个主机110上可以具有一个或多个计算节点160。
在图1的示例中,主机110-1具有计算节点160-1,主机110-2具有计算节点160-2,并且主机110-U具有计算节点160-V。将会理解,在此并不限制每个主机仅具有一个计算节点,而是一个主机可以具有一个或多个计算节点。因而,在此U和V的数值可以是不相等的。
在本公开的上下文中,计算节点160的示例可以包括但不限于图形计算节点(GPU)、现场可编程门阵列(FPGA)等。为便于讨论,某些实现将以GPU作为计算节点160的示例进行描述。除了计算节点160之外,主机110还可以包括诸如中央处理单元(CPU)的一个或多个通用处理单元(未示出)。
图1还示出了多个客户端120-1、120-2……、120-P等(以下统称或单独称为客户端120,其中P为大于1的自然数),分别具有要运行的应用150-1、150-2、……、150-Q(以下统称为或单独称为应用150,其中Q为大于1的自然数)。应用150可以是机器上可运行的任何应用,该应用可以被设计为执行相应数据处理或分析等任务。作为示例,应用150可以执行与神经网络相关的数据处理或分析任务。将会理解,在此并不限制每个客户端仅具有一个应用,而是一个客户端可以具有一个或多个应用。因而,在此P和Q的数值可以是不相等的。
为了能够快速高效运行这些应用和/或为了保留本地计算资源,客户端120可以请求主机110上的计算节点160来运行这些应用150。在这样的实现中,客户端120可以通过互连网络130连接到一个或多个主机110,并且将应用150交由主机110的一个或多个计算节点160运行。取决于客户端120、主机110和/或计算节点160所支持的接口,互连网络130可以支持基于诸如远程直接内存访问(RDMA)和传输控制协议(TCP)等各种网络传输技术的不同类型的有线或者无线连接。
应当理解,图1示出的设备和/或布置仅是一个示例。在其他示例中,该计算***100可以包括任意适当数目的主机110和客户端120。每个主机110可以具有任意适当数目的计算节点160,并且每个客户端120可以具有待运行的多个应用150。此外,尽管被单独示出,调度器140在实际应用中可以由独立于主机110的其他设备实现,或者可以被部分或全部实现在一个或多个主机110上。
为了描述清楚和简洁,将主要以GPU内为例来详细描述本公开的示例实现。但是,应当理解,GPU仅仅是一种示例性的计算节点,并非用于限制本公开的范围。在此描述的精神和原理可以应用于其他计算节点,例如诸如现场可编程门阵列(FPGA)之类的加速器中的计算节点,不论是目前已知的还是将来开发的,而并不仅仅限于GPU内核。
在如图1所示的分布式***100中,各个计算节点160是彼此独立,并且各个计算节点160的存储器的均类似于在单一计算节点160中的存储器。当客户端120处的应用150同时调用多个计算节点160来执行处理时,多个计算节点160的存储器的地址范围可能会产生重叠。
图2示意性示出了根据一个技术方案的用于在分布式***100中管理地址的框图200。图2示意性示出了两个计算节点160-1和160-2,并且假设两个节点的存储器的配置相同。此时两个计算节点160-1和160-2,的存储器的地址范围210-1和210-2将是相同的,并且均为0x00000000至0xFFFFFFFF。这将导致两个存储器的地址范围出现重叠。此时,当访问请求指示访问目标地址(例如,0x33000000)处的数据时,则在分布式***100中并不能区分该目标地址是位于哪个计算节点的存储器中。将会理解,尽管在图2中仅示意性示出了两个计算节点之间的地址重叠的现象,当分布式***100中包括更多计算节点160时,在任意两个计算节点160之间都将会出现地址重叠。
鉴于现有技术中的上述不足,期望开发出一种以更为准确并且有效的方式来在分布式***100中管理地址的技术方案。根据本公开的一个示例性实现,提供了一种用于在分布式***100中处理访问请求的方法。在此的分布式***100包括客户端120和资源池170,资源池170包括多个主机110,多个主机110中的主机包括计算节点160。
在分布式***100中,可以接收来自客户端120的访问请求,在此的访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据。继而,可以基于第一虚拟地址来确定物理存储器,并且基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址。在此示例性实现中,计算节点160可以是图形处理单元,以及物理存储器是图形处理单元的存储器。在下文中将参见图3详细描述基于虚拟地址来确定物理存储器和物理地址的操作的更多细节。
图3示意性示出了根据本公开的一个示例性实现的用于在分布式***100中管理地址的框图300。如图3所示,客户端处120以虚拟地址来描述数据的存储位置,并且物理存储器310使用物理存储器310的标识符和在物理存储器310中的物理地址来描述数据的存储位置。来自客户端120的访问请求中所指示的地址可以是虚拟地址。可以基于如图3中箭头320所示的操作来基于虚拟地址确定物理存储器310的标识符和相应的物理地址,以便用于由物理存储器310使用。如箭头322所示,当接收到来自物理存储器310的反馈结果时,可以基于物理存储器310的标识符以及物理地址确定虚拟地址,以用于由客户端120使用。将会理解,本方法所表示的虚拟地址和物理地址的寻址位的长度包括但不限于32位、64位及128位地址,并且根据具体应用环境的不同,虚拟地址和物理地址还可以包括更大或者更小的长度。
图4示意性示出了根据本公开的一个示例性实现的用于在分布式***100中管理地址的方法400的流程图。在方框410处,接收来自客户端的访问请求,访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据。在方框420处,基于第一虚拟地址来确定物理存储器。在方框430处,基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址,其中计算节点是图形处理单元,以及物理存储器是图形处理单元的存储器。
在此实现中,通过提供虚拟地址与物理地址之间的转换,可以在分布式***100中区分位于不同计算节点160的存储器。进而可以精确地确定访问请求所指向的目标数据的真正物理地址。可以以多种方式来将虚拟地址转换为物理地址。在一个简单实现中,在将物理地址转换为虚拟地址时,可以将物理存储器的标识符与物理地址进行拼接来形成虚拟地址;在将虚拟地址转换为物理地址时,可以将虚拟地址进行分割来确定物理存储器的标识符以及物理地址。
根据本公开的一个示例性实现,可以基于地址映射的方式来实现虚拟地址和物理地址之间的转换。为了基于第一虚拟地址来确定物理存储器,可用基于预定地址映射来确定第一虚拟地址属于的地址范围,地址映射包括物理存储器与地址范围之间的映射关系。在此实现中,可用简单地通过地址映射来实现虚拟地址和物理地址之间的转换,并且转换过程不会涉及过多计算量。
在下文中将参见图5描述更多细节,图5示意性示出了根据本公开的一个示例性实现的物理地址和虚拟地址之间的映射关系的框图500。如图5所示,其中两个计算节点160-1和160-2的存储器的地址范围210-1和210-2均为:0x00000000至0xFFFFFFFF并且存在重叠。为了解决地址范围存在重叠的问题,可以设置虚拟地址空间510,并且可以分别将两个地址范围210-1和210-2映射至第一地址范围512和第二地址范围514。
将会理解,尽管在图5中仅示意性示出了有关两个计算节点160-1和160-2的存储器的图示,根据本公开的一个示例性实现,还可以为资源池170中的多个计算节点160分别设置地址范围。尽管在图5中第一地址范围512和第二地址范围514是连续的地址范围,在其他示例性实现中,多个地址范围可以是连续的或者是不连续的。将会理解,在本发明的上下文中并不限制各个地址范围是否连续,而是只要各个地址范围之间不存在重叠,并且可以容纳与各个计算节点的存储器相关联的地址范围即可。
根据本公开的一个示例性实现,第一地址范围512和第二地址范围514的大小可以分别被设置为1TB或者其他数量。将会理解,目前诸如GPU的计算节点160的存储器的可用地址空间远小于1TB。进一步,随着硬件技术的发展,预计在未来数年内GPU的存储器的可用地址空间也不会达到1TB的数量级。因而,将各个地址范围的大小设置为1TB是安全并且可行的。
在下文中将参见图6描述更多细节,图6示意性示出了根据本公开的一个示例性实现的在物理地址和虚拟地址之间进行映射的框图600。如图6所示,可以基于地址范围确定物理存储器。例如,对于虚拟地址620-1而言,该虚拟地址表示为虚拟地址空间510内的一个数值“0x0...0033000000”。此时,基于地址映射关系可知,该虚拟地址620-1属于第一地址范围512,并且该地址范围是与计算节点160-1的存储器相关联的。因而,此时可以确定与虚拟地址620-1相关联的物理存储设备是计算节点160-1的物理存储器。
又例如,对于虚拟地址620-2而言,该虚拟地址表示为虚拟地址空间510内的一个数值“0x0...0133000000”。此时,基于地址映射关系可知,该虚拟地址620-2属于第二地址范围514,并且该地址范围是与计算节点160-2的存储器相关联的。因而,此时可以确定与虚拟地址620-2相关联的物理存储设备是计算节点160-2的物理存储器。
根据本公开的一个示例性实现,可以基于第一虚拟地址在地址范围内的偏移,确定第一物理地址。继续参见图6,对于虚拟地址620-1而言,已经确定了该虚拟地址对应于计算节点160-1的物理存储器,此时可以基于该虚拟地址620-1在第一地址范围512内的偏移来确定与虚拟地址620-1相关联的物理地址610-1。可以确定,与虚拟地址620-1相关联的目标数据位于计算节点160-1的物理存储器上,并且物理地址为610-1。
对于虚拟地址620-2而言,已经确定了该虚拟地址对应于计算节点160-2的物理存储器,此时可以基于该虚拟地址620-2在第二地址范围514内的偏移来确定与虚拟地址620-2相关联的物理地址610-2。可以确定,与虚拟地址620-2相关联的目标数据位于计算节点160-2的物理存储器上,并且物理地址为610-2。
上文已经描述了如何基于虚拟地址确定物理存储器以及物理存储器中的物理地址。在下文中将描述如何基于物理存储器和物理存储器中的物理地址来确定虚拟地址。在接收到来自物理存储器的反馈结果后,可以基于反馈结果定义物理存储器中的物理地址处确定相关联的虚拟地址。将会理解,基于物理存储器和物理地址确定虚拟地址是基于虚拟地址确定物理地址的相反的过程。可以基于预定义地址映射、物理存储器和物理地址来确定与反馈结果相关联的虚拟地址以用于返回至客户端120。
继续参见图6,为了将计算节点160-1的物理存储器的物理地址610-1转换为虚拟地址,可以根据地址映射确定与物理存储器相关联的第一地址范围512,并且确定该第一地址范围512的开始地址为“0x0...0000000000”。继而,可以在开始地址的基础上将物理地址610-1进行偏移,以便确定虚拟地址620-1。此时,确定的虚拟地址620-1为“0x0...0033000000”。
进一步,为了将计算节点160-2的物理存储器的物理地址610-2转换为虚拟地址,可以根据地址映射确定与物理存储器相关联的第二地址范围514,并且确定该第二地址范围514的开始地址为“0x0...0100000000”。继而,可以在开始地址的基础上将物理地址610-1进行偏移,以便确定虚拟地址620-1。此时,确定的虚拟地址620-1为“0x0...0133000000”。
根据本公开的一个示例性实现,访问请求是来自客户端的对图形处理单元的远程过程调用(Remote Procedure Call,缩写RPC)。在此实现中,运行于客户端120的应用150可以通过远程过程调用的方式,方便地调取资源池170中的各种资源。
在上文中已经参见附图2至图6描述了在虚拟地址和物理地址之间进行转换的技术方案的过程。在下文中将描述如何基于上文描述的地址转换方法来在分布式***100中执行数据拷贝操作。根据本公开的一个示例性实现,提供了一种用于处理拷贝请求的方法。图7示意性示出了根据本公开的一个示例性实现的用于处理拷贝请求的方法700的流程图。在方框710处,可以确定是否接收到来自客户端120的拷贝请求,如果判断结果为是,则流程前进至方框720。在方框720处,确定与拷贝请求相关联的源虚拟地址和目的地虚拟地址。在不同的***中,拷贝请求可用具有不同的格式。因而可以基于拷贝请求的定义来确定拷贝请求所涉及的源虚拟地址和目的地虚拟地址。将会理解,尽管在上文中仅描述执行数据拷贝操作的示例,根据本公开的一个示例性实现,上述方法还可以类似地应用于数据移动操作。
接着,在方框730处,可以利用上文描述的方法来确定拷贝请求所涉及的物理地址。具体地,可以基于源虚拟地址确定源物理存储器和源物理地址,并且可以基于目的地虚拟地址确定目的地物理存储器和目的地物理地址。本领域技术人员可以参见上文描述的方法来确定相应的物理地址,在此不再赘述。在方框740处,可以基于源物理存储器和目的地物理存储器来处理拷贝请求。
将会理解,基于源物理存储器和目的地物理存储器是否是相同的物理设备、以及基于两个设备之间是否存在直接连接,将会存在多个不同的处理方式。在下文中将参见图8至图10详细描述如何基于源物理存储器和目的地物理存储器来处理拷贝请求。
根据本公开的一个示例性实现,如果确定源物理存储器和目的地物理存储器相同,则可以在相同的物理存储器中执行数据拷贝。此时,在源物理存储器处,将与拷贝请求相关联的目标数据从源物理地址拷贝至目的地物理地址。在下文中将参见图8描述此情况下的数据拷贝。图8示意性示出了根据本公开的示例性实现的用于处理拷贝请求的框图800。如图8所示,此时源物理存储器和目的地物理存储器是相同的并且共同地以附图标记810表示。此时源物理地址812和目的地物理地址814是相同的物理存储器中的地址,进而可以直接在物理存储器810内执行数据拷贝操作。
根据本公开的一个示例性实现,如果确定源物理存储器和目的地物理存储器不相同,则需要进一步确定源物理存储器所在的源主机和目的地物理存储器所在的目的地主机之间的连接状态,并且基于连接状态来处理拷贝请求。在此实现中,连接状态是指在源主机和目的地主机之间是否存在直接连接。
在下文中将参见图9描述存在直接连接时的数据拷贝操作。图9示意性示出了根据本公开的示例性实现的用于处理拷贝请求的框图900。如图9所示,源物理存储器912位于源主机910处,并且该源主机具有存储器916。目的地物理存储器922位于目的地主机920处,并且该目的地主机具有存储器926。在源主机910和目的地主机920之间存在直接连接930,因而可以经由该直接连接930,将位于源物理地址处的目标数据914执行拷贝,以获得位于目的地地址处的目标数据924。
为了执行数据拷贝,可以将与拷贝请求相关联的目标数据914从源物理存储器912的源物理地址拷贝(如箭头942所示)至源主机910的存储器916以形成第一中间数据。接着,可以经由直接连接930将中间数据拷贝(如箭头944和946所示)至目的地主机920的存储器926以形成第二中间数据。继而,将第二中间数据拷贝至目的地物理存储器922的目的地物理地址处,以获得位于目的地地址处的目标数据924。
根据本公开的一个示例性实现,在存储器916和存储器926之间可能并不存在直接连接,此时需要借助于客户端120来执行数据拷贝。在下文中将参见图10描述不存在直接连接时的数据拷贝操作。图10示意性示出了根据本公开的示例性实现的用于处理拷贝请求的框图1000。图10所示的拷贝过程类似于图9的示例,不同之处在于在图10中需要经由客户端120来执行拷贝。例如,可以将与拷贝请求相关联的目标数据914从源物理存储器912的源物理地址拷贝客户端120以形成中间数据。继而,将中间数据拷贝至目的地物理存储器922的目的地物理地址处,以获得位于目的地地址处的目标数据924。
为了实现将目标数据拷贝至客户端120,可以将目标数据从源物理存储器912的源物理地址拷贝至源主机910的存储器916(如箭头942所示)以形成第一中间数据。继而,将第一中间数据拷贝至客户端120。进一步,为了实现将中间数据从客户端120拷贝至目的地物理存储器922,可以将中间数据从客户端120拷贝至目的地主机920的存储器926以形成第二中间数据。继而,将第二中间数据拷贝至目的地物理存储器922的目的地物理地址,以获得位于目的地地址处的目标数据924。
在上文中已经参见图2至图10详细描述了根据本公开的方法的示例,在下文中将参见图11A和图11B详细描述相应的设备的实现。图11A示意性示出了根据本公开的一个示例性实现的用于在分布式***中管理地址的设备1100A的框图。分布式***包括客户端和资源池,资源池包括多个主机,多个主机中的主机包括计算节点。
该设备1100A包括:接收模块1110A,配置用于接收来自客户端的访问请求,访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据;第一确定模块1120A,配置用于基于第一虚拟地址来确定物理存储器;以及第二确定模块的1130A,配置用于基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址,其中计算节点是图形处理单元,以及物理存储器是图形处理单元的存储器。在此的设备1100A可以配置用于执行上文描述的方法400中的各个步骤,在此不再赘述。
图11B示意性示出了根据本公开的一个示例性实现的用于处理拷贝请求的设备1100B的框图。该设备1100B包括:地址确定模块1110B,配置用于响应于接收到来自客户端的拷贝请求,确定与拷贝请求相关联的源虚拟地址和目的地虚拟地址;物理地址确定模块1120B,配置用于利用如图11A所示的设备1100A,基于源虚拟地址确定源物理存储器和源物理地址,以及基于目的地虚拟地址确定目的地物理存储器和目的地物理地址;以及处理模块1130B,配置用于基于源物理存储器和目的地物理存储器来处理拷贝请求。在此的设备1100B可以配置用于执行上文描述的方法700中的各个步骤,在此不再赘述。
图12示意性示出了根据本公开的一个示例性实现的用于在分布式***中管理地址以及处理拷贝请求设备1200的框图。如图所示,设备1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序指令或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序指令,来执行各种适当的动作和处理。在RAM1203中,还可存储设备1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400和700,可由处理单元1201执行。例如,在一些实现中,方法400和700可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实现中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序被加载到RAM 1203并由CPU 1201执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实现中,CPU 1201也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的一个示例性实现,提供了一种用于在分布式***中管理地址的设备,分布式***包括客户端和资源池,资源池包括多个主机,多个主机中的主机包括计算节点。该设备包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:接收来自客户端的访问请求,访问请求用于经由第一虚拟地址访问计算节点的物理存储器中的第一目标数据;基于第一虚拟地址来确定物理存储器;以及基于第一虚拟地址来确定第一目标数据在物理存储器中的第一物理地址,其中计算节点是图形处理单元,以及物理存储器是图形处理单元的存储器。
根据本公开的一个示例性实现,基于第一虚拟地址来确定物理存储器包括:基于预定地址映射来确定第一虚拟地址属于的地址范围,地址映射包括物理存储器与地址范围之间的映射关系;以及基于地址范围确定物理存储器。
根据本公开的一个示例性实现,确定第一物理地址包括:基于第一虚拟地址在地址范围内的偏移,确定第一物理地址。
根据本公开的一个示例性实现,动作进一步包括:接收来自物理存储器的反馈结果,反馈结果定义物理存储器中的第二物理地址处的第二目标数据;以及基于预定义地址映射、物理存储器和第二物理地址来确定与反馈结果相关联的第二虚拟地址以用于返回至客户端。
根据本公开的一个示例性实现,确定第二虚拟地址包括:根据地址映射确定与物理存储器相关联的地址范围的开始地址;以及在开始地址的基础上偏移第二物理地址以确定第二虚拟地址。
根据本公开的一个示例性实现,其中访问请求是来自客户端的对图形处理单元的远程过程调用。
根据本公开的一个示例性实现,提供了一种用于处理拷贝请求的设备,包括:至少一个处理器;用于在分布式***中管理地址的设备;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。动作包括:响应于接收到来自客户端的拷贝请求,确定与拷贝请求相关联的源虚拟地址和目的地虚拟地址;利用用于在分布式***中管理地址的设备,基于源虚拟地址确定源物理存储器和源物理地址,以及基于目的地虚拟地址确定目的地物理存储器和目的地物理地址;以及基于源物理存储器和目的地物理存储器来处理拷贝请求。
根据本公开的一个示例性实现,基于源物理存储器和目的地物理存储器来处理拷贝请求包括:响应于确定源物理存储器和目的地物理存储器相同,在源物理存储器处,将与拷贝请求相关联的目标数据从源物理地址拷贝至目的地物理地址。
根据本公开的一个示例性实现,基于源物理存储器和目的地物理存储器来处理拷贝请求包括:响应于确定源物理存储器和目的地物理存储器不相同,确定源物理存储器所在的源主机和目的地物理存储器所在的目的地主机之间的连接状态;以及基于连接状态来处理拷贝请求。
根据本公开的一个示例性实现,基于连接状态来处理拷贝请求包括:响应于确定源主机和目的地主机之间存在直接连接,将与拷贝请求相关联的目标数据从源物理存储器的源物理地址拷贝至源主机的存储器以形成第一中间数据;经由直接连接将中间数据拷贝至目的地主机的存储器以形成第二中间数据;以及将第二中间数据拷贝至目的地物理存储器的目的地物理地址。
根据本公开的一个示例性实现,基于连接状态来处理拷贝请求包括:响应于确定源主机和目的地主机之间不存在直接连接,将与拷贝请求相关联的目标数据从源物理存储器的源物理地址拷贝至客户端以形成中间数据;以及将中间数据拷贝至目的地物理存储器的目的地物理地址。
根据本公开的一个示例性实现,将目标数据从源物理存储器的源物理地址拷贝至客户端以形成中间数据包括:将目标数据从源物理存储器的源物理地址拷贝至源主机的存储器以形成第一中间数据;以及将第一中间数据拷贝至客户端。
根据本公开的一个示例性实现,将中间数据拷贝至目的地物理存储器的目的地物理地址包括:将中间数据从客户端拷贝至目的地主机的存储器以形成第二中间数据;以及将第二中间数据拷贝至目的地物理存储器的目的地物理地址。
根据本公开的一个示例性实现,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据本公开方法。
根据本公开的一个示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开方法。
本公开可以是方法、设备、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。

Claims (22)

1.一种用于在分布式***中管理地址的方法,所述分布式***包括客户端和资源池,所述资源池包括多个主机,所述多个主机中的主机包括计算节点,所述方法包括:
接收来自所述客户端的访问请求,所述访问请求用于经由第一虚拟地址访问所述计算节点的物理存储器中的第一目标数据;
基于所述第一虚拟地址来确定所述物理存储器,包括:基于预定地址映射来确定所述第一虚拟地址属于的地址范围,所述地址映射包括所述物理存储器与所述地址范围之间的映射关系;以及基于所述地址范围确定所述物理存储器;
基于所述第一虚拟地址来确定所述第一目标数据在所述物理存储器中的第一物理地址,包括:基于所述第一虚拟地址在所述地址范围内的偏移,确定所述第一物理地址;
接收来自所述物理存储器的反馈结果,所述反馈结果定义所述物理存储器中的第二物理地址处的第二目标数据;以及
基于所述预定地址映射、所述物理存储器和所述第二物理地址来确定第二虚拟地址以用于返回至所述客户端;
其中所述计算节点是图形处理单元,以及所述物理存储器是所述图形处理单元的存储器。
2.根据权利要求1所述的方法,其中确定所述第二虚拟地址包括:
根据所述地址映射确定与所述物理存储器相关联的地址范围的开始地址;以及
在所述开始地址的基础上偏移所述第二物理地址以确定所述第二虚拟地址。
3.根据权利要求1所述的方法,其中所述访问请求是来自所述客户端的对所述图形处理单元的远程过程调用。
4.一种用于处理拷贝请求的方法,包括:
响应于接收到来自客户端的拷贝请求,确定与所述拷贝请求相关联的源虚拟地址和目的地虚拟地址;
利用根据权利要求1至3中的任一项所述的方法,基于所述源虚拟地址确定源物理存储器和源物理地址,以及基于所述目的地虚拟地址确定目的地物理存储器和目的地物理地址;以及
基于所述源物理存储器和所述目的地物理存储器来处理所述拷贝请求。
5.根据权利要求4所述的方法,其中基于所述源物理存储器和所述目的地物理存储器来处理所述拷贝请求包括:
响应于确定所述源物理存储器和所述目的地物理存储器相同,在所述源物理存储器处,将与所述拷贝请求相关联的目标数据从所述源物理地址拷贝至所述目的地物理地址。
6.根据权利要求4所述的方法,其中基于所述源物理存储器和所述目的地物理存储器来处理所述拷贝请求包括:
响应于确定所述源物理存储器和所述目的地物理存储器不相同,确定所述源物理存储器所在的源主机和所述目的地物理存储器所在的目的地主机之间的连接状态;以及
基于所述连接状态来处理所述拷贝请求。
7.根据权利要求6所述的方法,其中基于所述连接状态来处理所述拷贝请求包括:响应于确定所述源主机和所述目的地主机之间存在直接连接,
将与所述拷贝请求相关联的目标数据从所述源物理存储器的所述源物理地址拷贝至所述源主机的存储器以形成第一中间数据;
经由所述直接连接将所述中间数据拷贝至所述目的地主机的存储器以形成第二中间数据;以及
将所述第二中间数据拷贝至所述目的地物理存储器的所述目的地物理地址。
8.根据权利要求6所述的方法,其中基于所述连接状态来处理所述拷贝请求包括:响应于确定所述源主机和所述目的地主机之间不存在直接连接,
将与所述拷贝请求相关联的目标数据从所述源物理存储器的所述源物理地址拷贝至所述客户端以形成中间数据;以及
将所述中间数据拷贝至所述目的地物理存储器的所述目的地物理地址。
9.根据权利要求8所述的方法,其中将所述目标数据从所述源物理存储器的所述源物理地址拷贝至所述客户端以形成中间数据包括:
将所述目标数据从所述源物理存储器的所述源物理地址拷贝至所述源主机的存储器以形成第一中间数据;以及
将所述第一中间数据拷贝至所述客户端。
10.根据权利要求8所述的方法,其中将所述中间数据拷贝至所述目的地物理存储器的所述目的地物理地址包括:
将所述中间数据从所述客户端拷贝至所述目的地主机的存储器以形成第二中间数据;以及
将所述第二中间数据拷贝至所述目的地物理存储器的所述目的地物理地址。
11.一种用于在分布式***中管理地址的设备,所述分布式***包括客户端和资源池,所述资源池包括多个主机,所述多个主机中的主机包括计算节点,包括:
至少一个处理器;
易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行动作,所述动作包括:
接收来自所述客户端的访问请求,所述访问请求用于经由第一虚拟地址访问所述计算节点的物理存储器中的第一目标数据;
基于所述第一虚拟地址来确定所述物理存储器,包括:基于预定地址映射来确定所述第一虚拟地址属于的地址范围,所述地址映射包括所述物理存储器与所述地址范围之间的映射关系;以及基于所述地址范围确定所述物理存储器;
基于所述第一虚拟地址来确定所述第一目标数据在所述物理存储器中的第一物理地址,包括:基于所述第一虚拟地址在所述地址范围内的偏移,确定所述第一物理地址,
接收来自所述物理存储器的反馈结果,所述反馈结果定义所述物理存储器中的第二物理地址处的第二目标数据;以及
基于所述预定地址映射、所述物理存储器和所述第二物理地址来确定第二虚拟地址以用于返回至所述客户端;
其中所述计算节点是图形处理单元,以及所述物理存储器是所述图形处理单元的存储器。
12.根据权利要求11所述的设备,其中确定所述第二虚拟地址包括:
根据所述地址映射确定与所述物理存储器相关联的地址范围的开始地址;以及
在所述开始地址的基础上偏移所述第二物理地址以确定所述第二虚拟地址。
13.根据权利要求11所述的设备,其中所述访问请求是来自所述客户端的对所述图形处理单元的远程过程调用。
14.一种用于处理拷贝请求的设备,包括:
至少一个处理器;
根据权利要求11至13中的任一项所述的设备;
易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行动作,所述动作包括:
响应于接收到来自客户端的拷贝请求,确定与所述拷贝请求相关联的源虚拟地址和目的地虚拟地址;
利用根据权利要求11至13中的任一项所述的设备,基于所述源虚拟地址确定源物理存储器和源物理地址,以及基于所述目的地虚拟地址确定目的地物理存储器和目的地物理地址;以及
基于所述源物理存储器和所述目的地物理存储器来处理所述拷贝请求。
15.根据权利要求14所述的设备,其中基于所述源物理存储器和所述目的地物理存储器来处理所述拷贝请求包括:
响应于确定所述源物理存储器和所述目的地物理存储器相同,在所述源物理存储器处,将与所述拷贝请求相关联的目标数据从所述源物理地址拷贝至所述目的地物理地址。
16.根据权利要求14所述的设备,其中基于所述源物理存储器和所述目的地物理存储器来处理所述拷贝请求包括:
响应于确定所述源物理存储器和所述目的地物理存储器不相同,确定所述源物理存储器所在的源主机和所述目的地物理存储器所在的目的地主机之间的连接状态;以及
基于所述连接状态来处理所述拷贝请求。
17.根据权利要求16所述的设备,其中基于所述连接状态来处理所述拷贝请求包括:响应于确定所述源主机和所述目的地主机之间存在直接连接,
将与所述拷贝请求相关联的目标数据从所述源物理存储器的所述源物理地址拷贝至所述源主机的存储器以形成第一中间数据;
经由所述直接连接将所述中间数据拷贝至所述目的地主机的存储器以形成第二中间数据;以及
将所述第二中间数据拷贝至所述目的地物理存储器的所述目的地物理地址。
18.根据权利要求16所述的设备,其中基于所述连接状态来处理所述拷贝请求包括:响应于确定所述源主机和所述目的地主机之间不存在直接连接,
将与所述拷贝请求相关联的目标数据从所述源物理存储器的所述源物理地址拷贝至所述客户端以形成中间数据;以及
将所述中间数据拷贝至所述目的地物理存储器的所述目的地物理地址。
19.根据权利要求18所述的设备,其中将所述目标数据从所述源物理存储器的所述源物理地址拷贝至所述客户端以形成中间数据包括:
将所述目标数据从所述源物理存储器的所述源物理地址拷贝至所述源主机的存储器以形成第一中间数据;以及
将所述第一中间数据拷贝至所述客户端。
20.根据权利要求18所述的设备,其中将所述中间数据拷贝至所述目的地物理存储器的所述目的地物理地址包括:
将所述中间数据从所述客户端拷贝至所述目的地主机的存储器以形成第二中间数据;以及
将所述第二中间数据拷贝至所述目的地物理存储器的所述目的地物理地址。
21.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至3中任一项所述的方法。
22.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求4至10中任一项所述的方法。
CN201810362380.1A 2018-04-20 2018-04-20 在分布式***中管理地址的方法、设备和计算机程序产品 Active CN110392084B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810362380.1A CN110392084B (zh) 2018-04-20 2018-04-20 在分布式***中管理地址的方法、设备和计算机程序产品
US16/383,238 US10838873B2 (en) 2018-04-20 2019-04-12 Method, apparatus, and computer program product for managing addresses in distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810362380.1A CN110392084B (zh) 2018-04-20 2018-04-20 在分布式***中管理地址的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN110392084A CN110392084A (zh) 2019-10-29
CN110392084B true CN110392084B (zh) 2022-02-15

Family

ID=68236875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810362380.1A Active CN110392084B (zh) 2018-04-20 2018-04-20 在分布式***中管理地址的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US10838873B2 (zh)
CN (1) CN110392084B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127164B (zh) * 2020-01-15 2024-03-26 伊姆西Ip控股有限责任公司 管理应用节点中的任务的方法、设备和计算机程序产品
CN113939811A (zh) * 2020-05-08 2022-01-14 华为技术有限公司 带偏移值的远程直接内存访问
CN112395220B (zh) * 2020-11-18 2023-02-28 海光信息技术股份有限公司 共享存储控制器的处理方法、装置、***及存储控制器
CN115269174A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 一种数据传输方法、数据处理方法及相关产品
EP4352619A2 (en) * 2021-06-09 2024-04-17 Enfabrica Corporation Transparent remote memory access over network protocol
CN113256481A (zh) * 2021-06-21 2021-08-13 腾讯科技(深圳)有限公司 图形处理器中的任务处理方法、装置、电子设备及存储介质
CN113674133B (zh) * 2021-07-27 2023-09-05 阿里巴巴新加坡控股有限公司 Gpu集群共享显存***、方法、装置及设备
CN117170854A (zh) * 2022-05-26 2023-12-05 华为技术有限公司 一种内存访问方法及相关设备
WO2024113090A1 (zh) * 2022-11-28 2024-06-06 华为技术有限公司 访存方法、装置及***
CN117609122B (zh) * 2023-11-03 2024-06-18 摩尔线程智能科技(上海)有限责任公司 一种数据传输***及方法、电子设备和存储介质
CN117667423A (zh) * 2023-12-21 2024-03-08 摩尔线程智能科技(北京)有限责任公司 编解码器访问存储设备的方法、***、装置、设备和介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480943B1 (en) * 2000-04-29 2002-11-12 Hewlett-Packard Company Memory address interleaving and offset bits for cell interleaving of memory
CN1506849A (zh) * 2002-12-12 2004-06-23 国际商业机器公司 能够管理虚拟存储器处理方案的数据处理***
CN1622060A (zh) * 2003-11-26 2005-06-01 微软公司 转换后备缓冲器的惰性转储清除
CN101187902A (zh) * 2006-09-22 2008-05-28 英特尔公司 在虚拟机环境中的客户机之间共享信息
CN105335308A (zh) * 2014-05-30 2016-02-17 华为技术有限公司 对存储设备的访问信息处理方法和装置、***
CN105917319A (zh) * 2013-11-22 2016-08-31 斯瓦姆64有限责任公司 存储器单元和方法
CN106326140A (zh) * 2015-06-30 2017-01-11 华为技术有限公司 数据拷贝方法、直接内存访问控制器及计算机***
CN106663061A (zh) * 2014-08-18 2017-05-10 赛灵思公司 用于可编程逻辑的存储器的虚拟化
CN107533457A (zh) * 2015-01-20 2018-01-02 乌尔特拉塔有限责任公司 对象存储器数据流指令执行
CN107783913A (zh) * 2016-08-31 2018-03-09 华为技术有限公司 一种应用于计算机的资源访问方法和计算机

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60204687T2 (de) * 2002-09-06 2006-05-18 Sun Microsystems, Inc., Santa Clara Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
US11488008B2 (en) * 2017-05-05 2022-11-01 Intel Corporation Hardware implemented point to point communication primitives for machine learning

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480943B1 (en) * 2000-04-29 2002-11-12 Hewlett-Packard Company Memory address interleaving and offset bits for cell interleaving of memory
CN1506849A (zh) * 2002-12-12 2004-06-23 国际商业机器公司 能够管理虚拟存储器处理方案的数据处理***
CN1622060A (zh) * 2003-11-26 2005-06-01 微软公司 转换后备缓冲器的惰性转储清除
CN101187902A (zh) * 2006-09-22 2008-05-28 英特尔公司 在虚拟机环境中的客户机之间共享信息
CN105917319A (zh) * 2013-11-22 2016-08-31 斯瓦姆64有限责任公司 存储器单元和方法
CN105335308A (zh) * 2014-05-30 2016-02-17 华为技术有限公司 对存储设备的访问信息处理方法和装置、***
CN106663061A (zh) * 2014-08-18 2017-05-10 赛灵思公司 用于可编程逻辑的存储器的虚拟化
CN107533457A (zh) * 2015-01-20 2018-01-02 乌尔特拉塔有限责任公司 对象存储器数据流指令执行
CN106326140A (zh) * 2015-06-30 2017-01-11 华为技术有限公司 数据拷贝方法、直接内存访问控制器及计算机***
CN107783913A (zh) * 2016-08-31 2018-03-09 华为技术有限公司 一种应用于计算机的资源访问方法和计算机

Also Published As

Publication number Publication date
US10838873B2 (en) 2020-11-17
CN110392084A (zh) 2019-10-29
US20190324917A1 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
CN110392084B (zh) 在分布式***中管理地址的方法、设备和计算机程序产品
US11126353B2 (en) Method and apparatus for data copy
US10909066B2 (en) Virtual RDMA switching for containerized applications
US11055082B2 (en) Unified update tool for multi-protocol network adapter
US9313139B2 (en) Physical port sharing in a link aggregation group
US10341287B2 (en) Direct transmission of data between applications in a multi-tenant environment
US10824466B2 (en) Container migration
US9559940B2 (en) Take-over of network frame handling in a computing environment
US9648124B2 (en) Processing hybrid data using a single web client
CN109729040B (zh) 协议的选择的方法、设备以及计算机可读介质
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群***
CN112749145A (zh) 存储和访问数据的方法、设备和计算机程序产品
CN111459650B (zh) 管理专用处理资源的存储器的方法、设备和介质
CN109729110B (zh) 管理专用处理资源的方法、设备以及计算机可读介质
EP2942711B1 (en) Dynamic generation of proxy connections
US11048555B2 (en) Method, apparatus, and computer program product for optimizing execution of commands in a distributed system
US10228982B2 (en) Hyper-threaded processor allocation to nodes in multi-tenant distributed software systems
US11755522B1 (en) Method, electronic device, and computer program product for implementing blockchain system on switch

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