CN111459649B - 管理计算资源的存储器的方法、设备和计算机可读介质 - Google Patents

管理计算资源的存储器的方法、设备和计算机可读介质 Download PDF

Info

Publication number
CN111459649B
CN111459649B CN201910053006.8A CN201910053006A CN111459649B CN 111459649 B CN111459649 B CN 111459649B CN 201910053006 A CN201910053006 A CN 201910053006A CN 111459649 B CN111459649 B CN 111459649B
Authority
CN
China
Prior art keywords
memory
computing
computing resource
target
resource
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
CN201910053006.8A
Other languages
English (en)
Other versions
CN111459649A (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 CN201910053006.8A priority Critical patent/CN111459649B/zh
Priority to US16/397,820 priority patent/US11106500B2/en
Publication of CN111459649A publication Critical patent/CN111459649A/zh
Application granted granted Critical
Publication of CN111459649B publication Critical patent/CN111459649B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本公开的实现涉及用于管理计算资源的存储器的方法、设备和计算机程序产品。根据本公开的一个示例性实现,提供了一种用于管理计算资源的存储器的方法。在该方法中,确定由一组计算资源中的第一计算资源所处理的计算任务;响应于已经将一组计算资源中的第一计算资源以外的第二计算资源的第二存储器分配用于计算任务,确定第一计算资源访问第二存储器的第二访问速度;基于访问速度而从一组计算资源中选择目标计算资源,其中第一计算资源访问目标计算资源的目标存储器的访问速度高于第二访问速度;以及将第二存储器中的至少一部分数据迁移至目标存储器。根据本公开的一个示例性实现,提供了用于管理计算资源的存储器的设备和计算机程序产品。

Description

管理计算资源的存储器的方法、设备和计算机可读介质
技术领域
本公开的实现方式概括地涉及包括专用计算资源的计算系统,并且更具体地,涉及用于管理专用计算资源的存储器的方法、设备以及计算机程序产品。
背景技术
随着计算机技术的发展,计算资源的种类越来越丰富,并且已经不再局限于传统的诸如中央处理单元的通用计算资源。例如,目前图形处理单元(Graphic ProcessingUnit,GPU)的计算能力越来越强。由于GPU特有性质,GPU特别适合于处理多种类型的计算任务。这些计算任务例如可以是机器学习(Machine Learning)、深度学习(Deep Learning)、数据挖掘(Data Mining)、高性能计算(High Performance Computing)等任务。
目前已经提出了包括专用计算资源的资源池的概念,不同用户可以根据需要来租赁专用计算资源用以运行各自的应用。然而,专用计算资源的存储器的容量并不能无限制地扩展。此时,当利用专用计算资源执行需要较大存储空间的计算任务时,则专用计算资源不得不在自身的存储器(例如,GPU的存储器)以及速度较慢的外部存储器(例如,专用计算资源所在的设备的中央处理器)之间交换数据。数据交换过程将会产生额外的时间开销,这将降低执行计算任务的效率。因而,此时如何管理各个计算资源的存储器,以便以更为高效的方式处理计算任务成为一个研究焦点。
发明内容
本公开的实现提供了用于管理计算资源的存储器的方法、设备和相应的计算机程序产品。
根据本公开的第一方面,提供了一种用于管理存储器的方法。该方法包括:确定由一组计算资源中的第一计算资源所处理的计算任务;响应于已经将一组计算资源中的第一计算资源以外的第二计算资源的第二存储器分配用于计算任务,确定第一计算资源访问第二存储器的第二访问速度;基于访问速度而从一组计算资源中选择目标计算资源,其中第一计算资源访问目标计算资源的目标存储器的访问速度高于第二访问速度;以及将第二存储器中的至少一部分数据迁移至目标存储器。
根据本公开的第二方面,提供了一种用于管理计算资源的存储器的设备,包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:确定由一组计算资源中的第一计算资源所处理的计算任务;响应于已经将一组计算资源中的第一计算资源以外的第二计算资源的第二存储器分配用于计算任务,确定第一计算资源访问第二存储器的第二访问速度;基于访问速度而从一组计算资源中选择目标计算资源,其中第一计算资源访问目标计算资源的目标存储器的访问速度高于第二访问速度;以及将第二存储器中的至少一部分数据迁移至目标存储器。
根据本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实现进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实现中,相同的参考标号通常代表相同部件。
图1示意性示出了适于实现本公开的实现方式的示例性计算系统的框图;
图2A示意性示出了根据本公开的一个示例性实现的数据迁移之前的数据分布的框图;
图2B示意性示出了根据本公开的一个示例性实现的数据迁移之后的数据分布的框图;
图3示意性示出了根据本公开的一个示例性实现的用于管理计算资源的存储器的方法的流程图;
图4示意性示出了根据本公开的一个示例性实现的示出多个计算资源中的存储器的使用负载的排序的框图;
图5示意性示出了根据本公开的一个示例性实现的数据迁移之后的多个计算资源中的存储器的使用负载的排序的框图;
图6A示意性示出了根据本公开的一个示例性实现的多个计算资源的拓扑结构的框图;
图6B示意性示出了根据本公开的一个示例性实现的多个计算资源的拓扑结构的框图;
图7A示意性示出了根据本公开的一个示例性实现的数据迁移之前的数据分布的框图;
图7B示意性示出了根据本公开的一个示例性实现的数据迁移之后的数据分布的框图;以及
图8示意性示出了根据本公开的一个示例性实现的用于管理计算资源的存储器的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实现。虽然附图中显示了本公开的优选实现,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实现所限制。相反,提供这些实现是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实现”和“一个实现”表示“至少一个示例实现”。术语“另一实现”表示“至少一个另外的实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
专用计算资源可以在客户端本地或者可以由远程机器或系统提供。在一些示例中,可以部署基于云的计算系统,其中包括具有一个或多个专用计算资源的多个服务器。该计算系统的专用计算资源可以由不同客户端根据需要来使用,以将相应的应用调度到可用的专用计算资源上运行。为了方便表述,在下文中将专用计算资源称为计算资源。
图1示出了本公开的实现可以在其中被实现的示例计算系统100的示意图。在该计算系统100中部署了用于应用运行的多个服务器,包括服务器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之外,服务器110还可以包括诸如中央处理单元(CPU)的一个或多个通用计算资源(未示出)。
图1还示出了多个客户端120-1、120-2……、120-P等(以下统称或单独称为客户端120,其中P为大于1的自然数),分别具有要运行的应用150-1、150-2、……、150-Q(以下统称为或单独称为应用150,其中Q为大于1的自然数)。应用150可以是机器上可运行的任何应用,该应用可以被设计为执行相应数据处理或分析等任务。作为示例,应用150可以执行与高性能计算(HPC)、机器学习(ML)或深度学习(DL)以及人工智能(AI)等相关的数据处理或分析任务。将会理解,在此并不限制每个客户端仅具有一个应用,而是一个客户端可以具有一个或多个应用。因而,在此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作为一种专用处理器,其强大的计算能力源自其大量的核和高带宽的内存。在GPU硬件架构中,一个GPU通常具有大量的GPU核,例如5120或者接近10000个核。GPU核作为一种专用计算资源,是最基本的处理单元,也被称为流处理器(SP)。指令和任务最终都在GPU核上被处理。多个GPU核同时执行指令,从而实现了GPU的并行计算。多个SP加上一些其他资源,例如寄存器、共享内存,可以组成一个流多处理器(SM)。
但是,应当理解,GPU仅仅是一种示例性的专用计算资源,并非用于限制本公开的范围。在此描述的精神和原理可以应用于其他专用计算资源,例如诸如现场可编程门阵列(FPGA)之类的加速器中的计算资源,不论是目前已知的还是将来开发的,而并不仅仅限于GPU核。
将会理解,目前已经提供了多种方式来利用资源池中的计算资源160处理计算任务。然而,计算资源160中的存储器的容量存在限制。当存储器容量不足以服务于计算任务时,需要不断在计算资源160外部的存储空间(例如,服务器110的中央处理器的存储器)和计算资源160中的存储器之间交换数据。这将导致处理计算任务的性能下降。
基于现有技术中的不足,本公开提出了一种用于管理计算资源的存储器的方法。在该方法中,可以跨越多个计算资源的存储器来为计算任务分配存储空间,并且在计算任务的运行期间,可以重新分配存储器来用于服务于计算任务。在上述重新分配中,可以将原本具有较慢访问速度的存储器中的数据迁移至具有较快访问速度的存储器中。以此方式,一方面可以降低处理计算任务的处理时间,另一方面还可以提高多个计算资源的整体运行效率。在下文中,将参见图2A和图2B来介绍如何管理存储器。
图2A示意性示出了根据本公开的一个示例性实现的数据迁移之前的数据分布的框图200A。如图2A所示,在计算资源160-1和计算资源160-2的存储器220和230中,可以分别分配存储空间222和232来用于由计算任务210使用。可以指定由计算资源160-1来执行计算任务210,并且可以跨越多个存储器220和230来存储和访问与执行计算任务210相关联的数据。此时,由于存储器220位于计算资源160-1本地,而存储器230位于计算资源160-1的外部,因而计算资源160-1访问两个存储器220和230的访问速度将会存在较大的差异。将会理解,尽管在图2A中仅示出了向计算任务210分配存储器220和230的情况,计算资源160中的存储器还可以同时服务于多个计算任务,例如,可以服务于计算任务210和240。
当确定计算资源160-1的存储器220中存在可用空间时,可以将存储空间232中的数据迁移至该可用空间。图2B示意性示出了根据本公开的一个示例性实现的数据迁移之后的数据分布的框图200B。如图2B所示,当确定存储器220中存在可用空间时,可以将原本位于图2A的存储器230中的存储空间232中的数据迁移至具有较快访问速度的存储器220中的存储空间234中(如图2B所示)。利用上述示例性实现,可以将原本位于具有较慢访问速度的外部存储器(即,位于执行计算任务210的计算资源160-1外部的存储器)中的数据迁移至具有较快访问速度的本地存储器(即,位于执行计算任务210的计算资源160-1中的存储器)中。以此方式,可以降低数据传输的时间长度,并使得计算资源160-1在执行计算任务210时,可以以更快的速度来访问与计算任务210相关的数据。
根据本公开的一个示例性实现,提供了一种用于管理计算资源160的存储器的方法。在下文中,将参见图3描述该方法的流程。图3示意性示出了根据本公开的一个示例性实现的用于管理计算资源160的存储器的方法300的流程图。如图3所示,在方框310处,确定由一组计算资源160中的第一计算资源160-1所处理的计算任务210。根据本公开的示例性实现方式,可以针对一组计算资源160中的每个计算资源逐一地进行处理。备选地和/或附加地,还可以从一组计算资源160中首先选择有助于提高其上所运行的计算任务210的处理效率的计算资源来作为第一计算资源160-1。
根据本公开的示例性实现方式,可以首先获取一组计算资源160中的各个计算资源的存储器的使用负载。可以基于使用负载来将各个计算资源160进行排序,并且从排序的各个计算资源中选择第一计算资源160-1。通常而言,计算资源160中的存储器的使用负载越低,则更有可能将其他计算资源160的存储器中的数据迁移至该计算资源中的存储器。因而,可以选择使用负载较低的计算资源来作为第一计算资源160-1。
利用上述示例性实现,可以尽可能地将运行计算任务210的计算资源160-1外部的其他计算资源的存储器中的数据迁移至计算资源160-1的存储器220中。以此方式,可以加快计算任务210对于存储器中的数据的访问速度,进而提高处理性能。
在下文中,将参见图4详细描述如何按照使用负载来从一组计算资源160中选择第一计算资源160-1。图4示意性示出了根据本公开的一个示例性实现的示出多个计算资源160中的存储器的使用负载的排序的框图400。如图4所示,列410表示计算资源的标识符,而列420表示计算资源的存储器的使用负载。可以按照使用负载从低到高(或者从高到低)的顺序来将多个计算资源160进行排序。根据本公开的示例性实现方式,可以首先选择使用负载较低的计算资源。例如,可以首先选择计算资源160-1。
将会理解,随着计算系统100的运行,各个计算资源160的存储器的使用负载可以发生变化,进一步,数据迁移也会导致各个计算资源160中的存储器的使用负载的变化。根据本公开的示例性实现方式,可以周期性地监视一组计算资源160中的各个计算资源的存储器的使用负载。继而,还可以不断地更新如图4中所示的使用负载的排序。
假设已经将计算资源160-2的存储器中的一部分数据迁移至计算资源160-1中,则更新后的排序参见图5,该图示意性示出了根据本公开的一个示例性实现的数据迁移之后的多个计算资源160中的存储器的使用负载的排序的框图500。如图5所示,计算资源160-2和160-1的位置出现变化,并且此时计算资源160-2成为有待处理的计算资源。以此方式,可以实时地确定各个计算资源的存储器的最新使用负载,进而可以选择首先处理使用负载最低的计算资源上所运行的计算任务。
根据本公开的示例性实现方式,还可以在确定一组计算资源160中的某个计算资源160-1的存储器220中的存储空间被释放,而触发如图3所示的方法300。具体地,如果检测到一组计算资源160中的计算资源160-1的存储器中被释放的存储空间的大小满足预定条件,选择计算资源160-1以作为第一计算资源160-1。将会理解,在某个存储器中释放存储空间意味着,该存储器的使用负载下降并且有可能为数据迁移提供空间。因而,可以在检测到释放操作时触发如图3所示的方法。此时,释放存储空间的计算资源可以被选择为第一计算资源160-1。
通常而言,一组计算资源160中将会包括较多数量的存储器220、230,并且各个存储器220和230中可能会较为频繁地出现释放操作。此时,如果在每个释放操作之后都触发本公开所示的方法300,则过于频繁的数据迁移可能会对一组计算资源160的运行效率造成额外负担。因而,根据本公开的示例性实现方式,还可以利用释放空间的大小来限制触发条件,并且仅在释放空间的大小满足预定条件时才触发本公开的方法300。例如,可以设置阈值(例如,500M或者其他数值),并且仅在被释放的空间达到500M时,才触发后续的操作。利用上述示例性实现,可以有效地避免在一组计算资源160中出现过于频繁的数据迁移,进而避免对于一组计算资源160的整体性能提高较小甚至降低性能的潜在数据迁移。
返回图3,在框320处,可以确定是否已经向计算任务210分配了多个计算资源160中的存储器。换言之,除了将第一计算资源160-1中的存储器220分配用于计算任务210以外,是否还将一组计算资源160中的第一计算资源160-1以外的第二计算资源160-2的第二存储器230分配用于计算任务210。将会理解,在接收到处理特定计算任务的请求时,可以建立映射表来存储计算任务以及为该计算任务分配的存储器所在计算资源160的映射关系。例如,可以采用如下表1所示的数据结构来存储上述映射关系。
表1映射关系表的示例
序号 计算任务 存储器
1 计算任务210 计算资源160-1、160-2的存储器
2 计算任务240 计算资源160-1、160-3、160-4的存储器
如上表所示,第二列“计算任务”表示计算任务的标识符,而第三列“存储器”表示将哪个/哪些计算资源中的存储器分配用于在第二列中指定的计算任务。如表1所示,第二行表示已经将计算资源160-1、160-2的存储器分配用于计算任务210,第三行表示已经计算资源160-1、160-3、160-4的存储器分配用于计算任务240。
将会理解,表1仅仅示意性示出了各个计算任务和计算资源160之间的映射关系的示例,还可以采用其他的数据结构来存储上述映射关系。例如,还可以向表1中加入列“处理器”,以便指示由哪个计算资源中的处理器来处理计算任务。此时,可以采用如表2所示的数据结构来存储上述映射关系。
表2映射关系表的示例
将会理解,第一计算资源160-1上可能会运行多个计算任务,此时可以逐一针对每个计算任务来进行处理。进一步,对于计算任务210而言,除了第一计算资源160-1的存储器220以外,可以将多个计算资源上的存储器分配用于处理该计算任务210。此时,将涉及从多个计算资源选择哪个计算资源的存储器来作为第二存储器。
根据本公开的示例性实现方式,可以首先确定一组计算资源160中的多个存储器中的已经被分配用于计算任务的至少一个存储器。例如,可以从上文表1示出的映射表来确定向计算任务210分配了哪些存储器。例如,如表2的第2行所示,假设计算任务210运行于计算资源160-1之上,计算资源160-1和160-2的存储器220和230被分配用于计算任务210。此时,由于仅有计算资源160-2的存储器230是计算资源160-1外部的存储器,因而可以直接将计算资源160-2的存储器230选择作为第二存储器。
又例如,如表2的第3行所示,假设计算任务240运行于计算资源160-1之上,计算资源160-1、160-2、160-4的存储器被分配用于计算任务240。此时,由于计算资源160-2、160-4的存储器均为计算资源160-1外部的存储器,因而此时可以基于多种方式来从上述两个存储器中选择第二存储器。
根据本公开的示例性实现方式,可以基于至少一个存储器中的被分配用于计算任务210的存储空间的大小,来选择第二存储器。继续上文的示例,期望从计算资源160-2、160-4的存储器中选择第二存储器。此时,可以按照计算资源160-2、160-4的存储器中的被分配用于计算任务240的存储空间的大小,来确定选择哪个存储器。可以选择被分配了较少存储空间的存储器。假设计算资源160-2的存储器中的1G空间被分配用于计算任务240,而计算资源160-4的存储器中的500M空间被分配用于计算任务240。则此时可以将计算资源160-4的存储器作为第二存储器,并且首先将该第二存储器中的500M数据迁移至计算资源160-1的处理器对其具有更高访问速度的存储器。
根据本公开的示例性实现方式,可以基于大小与被分配用于计算任务的存储空间的总量的比例,来选择第二存储器。继续上文的示例,期望从计算资源160-2、160-4的存储器中选择第二存储器。此时,可以按照计算资源160-2、160-4的存储器中的被分配用于计算任务240的存储空间的大小与计算任务240所需的存储空间的总量,来确定选择哪个存储器。可以选择具有较小比例的存储器。假设计算资源160-2的存储器中的1G空间被分配用于计算任务240,计算资源160-4的存储器中的500M空间被分配用于计算任务240,而计算任务240所需的存储空间的总量为4G。则此时可以将计算资源160-4的存储器作为第二存储器,并且首先将该第二存储器中的500M数据迁移至计算资源160-1的处理器具有更高访问速度的存储器。利用上述示例性实现,可以首先将分散在多个外部存储器中的数据集中至某个或者某几个具有较高访问速度的存储器中,进而提高计算任务的处理性能。
根据本公开的示例性实现方式,可以基于至少一个存储器的使用负载,来选择第二存储器。继续上文的示例,期望从计算资源160-2、160-4的存储器中选择第二存储器。此时,可以按照计算资源160-2、160-4的存储器的使用负载来选择从哪个存储器中迁移数据。通常而言,存储器的使用负载越高,则运行效率越低,因而可以选择从使用负载较高的存储器中迁移数据。假设计算资源160-2的存储器的使用负载为90%,而计算资源160-4的存储器中的使用负载为80%。则此时可以将计算资源160-2的存储器作为第二存储器。利用上述示例性实现,可以从使用负载更高的存储器中迁移数据。以此方式,可以将数据迁移至访问速度较快并且使用负载较低的存储器,以便提高计算任务的性能。
根据本公开的示例性实现方式,可以基于至少一个存储器被计算任务访问的访问频率,来选择第二存储器。继续上文的示例,期望从计算资源160-2、160-4的存储器中选择第二存储器。此时,可以按照计算任务240对于计算资源160-2、160-4的存储器的访问频率,来选择从哪个存储器中迁移数据。通常而言,存储器的访问频率越高,则对于其中存储的数据的使用频率越高。此时,希望尽可能地将使用频率较高的数据迁移至具有更高访问速度的存储器,以便提高计算任务240的性能。假设计算资源160-2的存储器的访问频率为100次/秒,而计算资源160-4的存储器中的访问频率为200次/秒。则此时可以将计算资源160-4的存储器作为第二存储器。利用上述示例性实现,可以将访问频率较高的数据迁移至具有更高访问速度的存储器,以便提高计算任务的性能。
将会理解,在上文中示意性示出了用于选择第二存储器的多个方面。上述各个方面可以单独使用,或者还可以相结合地使用。例如,可以综合考虑上述一个或多个方面,来确定选择哪个存储器作为第二存储器。备选地和/或附加地,还可以为上述方面设置权重,并且采用例如加权求和的方式,确定选择哪个存储器。
继续参见图3,如果框320处的判断结果为是,则方法300前进至框330,以便确定第一计算资源160-1访问第二存储器的第二访问速度。将会理解,由于各个计算资源160之间可以采用不同类型的连接,在此可以基于连接的类型来确定访问速度。
在下文中,将参见图6A和图6B示意性示出两种典型的拓扑结构。图6A示意性示出了根据本公开的一个示例性实现的多个计算资源160的拓扑结构的框图600A。如图6A所示,计算资源160-1和160-2之间基于PCIe交换机610A建立PCIe连接,计算资源160-3和160-4之间基于PCIe交换机620A建立PCIe连接。PCIe交换机610A和620A之间基于SOCKET 612A和622A来建立快速通道互连(Quick Path Interconnection,QPI)连接。
图6B示意性示出了根据本公开的一个示例性实现的多个计算资源的拓扑结构的框图600B。如图6B所示,以NVIDIA的GPU为示例,计算资源160-1、160-2、160-3、160-4之间可以具有如实线所示的NVlink连接,该连接支持72GB/s的数据传输。进一步,在多个计算资源160之间还具有经由PCIe交换机610B建立的基于PCIe的如虚线所示的连接。
在此实现中,可以从如图6A和6B所示的拓扑结构中采集相关的拓扑信息。将会理解,在图6A和图6B中仅示意性示出了两个示例性拓扑结构。在其他的应用环境中,可以包括更多或者更少的计算资源160,并且各个计算资源160之间还可以存在其他的连接方式。
由于连接方式的不同,导致连接两端的两个计算资源160之间的访问速度存在差异。图3示意性示出了与不同连接相关联的带宽,可以基于表3中的带宽来确定两个计算资源160之间的访问速度。
表3连接类型的示例
根据本公开的示例性实现方式,可以基于各个计算资源160之间的拓扑结构,并按照表3所示的连接类型,确定第一计算资源访问第二存储器的第二访问速度。
返回图3,在框330处,可以基于访问速度而从一组计算资源160中选择具有更高访问速度的目标计算资源。换言之,在此第一计算资源160-1访问目标计算资源的目标存储器的访问速度高于第二访问速度。在此可以基于多种方式来确定目标计算资源。将会理解,第一计算资源160-1对于其自身的本地存储器的访问速度将高于对于其他外部存储器的访问速度。根据本公开的示例性实现方式,可以选择第一计算资源以作为目标计算资源。换言之,对于位于第一计算资源外部的第二存储器而言,可以将该第二存储器中的数据迁移至第一计算资源的本地存储器。利用上述示例性实现,可以确保第一存储器可以以更高的速度来访问运行期间所需的数据。
根据本公开的示例性实现方式,还可以首先确定一组计算资源中的各个计算资源与第一计算资源之间的连接类型,并且按照连接类型并参见如表3所示的带宽,来选择具有较高访问速度的目标计算资源。继续上文的示例,假设计算资源160-1至160-4采用如图6A所示的拓扑结构进行连接,并且已经向计算任务240分配了计算资源160-1、160-3和160-4的存储器。此时,由于计算资源160-1与计算资源160-2之间经由PCIE交换机610A直接连接,而计算资源160-1与计算资源160-4之间经由PCIE交换机610A、SOCKET 612A和SOCKET 622A和PCIE交换机620A间接连接,因而可以选择具有较快访问速度的计算资源160-2来作为目标计算资源。进一步,可以将具有较慢访问速度的计算资源160-4的存储器中的数据迁移至具有较快访问速度的计算资源160-2的存储器中。
将会理解,由于期望尽可能地将数据集中至较少数量的存储器中,以便提高计算任务的性能,因而,可以选择在被分配用于计算任务的各个存储器之间迁移数据。根据本公开的示例性实现方式,可以确定一组计算资源中的已经被分配用于计算任务的至少一个存储器,并且从上述至少一个存储器中的存储器所在的计算资源选择目标计算资源。以此方式,可以确保计算任务相关的数据不会以过为零散的方式分布在多个计算资源的存储器中。此时,计算任务仅需要维护与较少数量的外部存储器的连接。根据本公开的示例性实现方式,还可以选择在一组计算资源160的各个存储器之间迁移数据,只要将数据迁移至具有更高访问速度的存储器即可。
返回图3,在框340处,将第二存储器中的至少一部分数据迁移至目标存储器。具体地,可以首先确定第二存储器中的被分配用于计算任务的存储空间,并且从确定的存储空间中选择待迁移的数据。
在迁移数据期间,可以能会出现多种情况。根据本公开的示例性实现方式,在目标存储器中可能会存在大量可用空间,此时可以将确定的存储空间中的全部数据迁移至目标存储器中。可以采用多种方式来执行数据迁移。例如,可以采用计算资源的提供者提供的用于管理存储器的应用程序接口(Application Program Interface,API)来实现。例如,如果计算资源是由NVIDIA公司提供的GPU时,可以利用NVIDIA公司提供的函数CUDA APIcuMemAdvise和cuMemPrefetchAsync来执行数据迁移。
根据本公开的示例性实现方式,还可以自行编写用于执行数据迁移的函数。例如,该函数可以指定待迁移数据所在的源地址范围、用于容纳迁移后的数据的目的地地址范围,以便将源地址范围内的数据迁移至目的地地址范围。在迁移之后,还可以更新各个存储设备中的相应地址范围的状态。例如,可以将源地址范围的状态设置为“可用”,并将目的地地址范围的状态设置为“已使用”。根据本公开的示例性实现方式,在目标存储器中可能会存在较少可用空间,此时可以将确定的存储空间中的部分数据迁移至目标存储器中。
上文已经描述了有关执行一次数据迁移相关的细节,在下文中,将参见图7A和图7B描述在多个存储器之间执行多次数据迁移的情况。图7A示意性示出了根据本公开的一个示例性实现的数据迁移之前的数据分布的框图700A。如图7A所示,已经向计算任务240分配了位于多个计算资源的多个存储器中的存储空间:计算资源160-1的存储器220中的存储空间722、计算资源160-2的存储器230中的存储空间732、以及计算资源160-4的存储器710中的存储空间712。此时,计算任务240将不得不跨越多个计算资源的存储器来访问数据。
按照上文描述的方法,如果确定在计算资源160-1的存储器220中存在大量可用空间(例如,计算资源160-1的使用负载为各个计算资源中的最低值),则可以触发数据迁移的操作。将会理解,可以按照上文描述的方法来执行两次数据迁移。按照上文描述的方法,当由计算资源160-1的处理器来运行计算任务210时,则存储器220对于计算资源160-1而言是本地存储器,而存储器230和710对于计算资源160-1而言是外部存储器,此时可以分别将外部存储器230和710中的数据迁移至访问速度更快的存储器中。当在本地存储器220中存在足够的可用空间时,则可以分别将两个外部存储器230和710中的数据均迁移至该本地存储器。
图7B示意性示出了根据本公开的一个示例性实现的数据迁移之后的数据分布的框图700B。此时,可以将原本位于图7A中计算资源160-2的存储器230中的存储空间732中的数据迁移至图7B中的计算资源160-1的存储220中的存储空间734。进一步,还可以将原本位于图7A中计算资源160-3的存储器710中的存储空间712中的数据迁移至图7B中的计算资源160-1的存储220中的存储空间714。在数据迁移之后,与计算任务240相关联的全部数据都被存储至本地存储器220中。以此方式,计算任务240可以以更为高速的方式访问相关联的数据,进而提高计算任务240的性能。
将会理解,尽管图7B仅示意性示出了在本地存储器220中存在足够可用空间用于容纳与计算任务240相关的全部数据的情况。当在本地存储器220的可用空间不足以容纳全部数据时,还可以从存储器230和710中选择具有较慢访问速度的存储器,并迁移选择的存储器中的数据。
在上文中已经参见图2A至图7B详细描述了根据本公开的方法的示例。根据本公开的示例性实现方式,还提供了用于管理计算资源的存储器的设备。该设备包括:任务确定模块,配置用于确定由一组计算资源中的第一计算资源所处理的计算任务;速度确定模块,配置用于响应于已经将一组计算资源中的第一计算资源以外的第二计算资源的第二存储器分配用于计算任务,确定第一计算资源访问第二存储器的第二访问速度;选择模块,配置用于基于访问速度而从一组计算资源中选择目标计算资源,其中第一计算资源访问目标计算资源的目标存储器的访问速度高于第二访问速度;以及迁移模块,配置用于将第二存储器中的至少一部分数据迁移至目标存储器。在此的设备可以配置用于执行上文描述的方法中的各个步骤,在此不再赘述。
图8示意性示出了根据本公开的一个示例性实现的用于管理计算资源的存储器的设备的框图。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元801执行。例如,在一些实现中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实现中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法300的一个或多个步骤。备选地,在其他实现中,CPU 801也可以以其他任何适当的方式被配置以实现上述过程/方法。
根据本公开的一个示例性实现,提供了一种用于管理计算资源的存储器的设备,包括:至少一个处理器;易失性存储器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得设备执行动作。该动作包括:确定由一组计算资源中的第一计算资源所处理的计算任务;响应于已经将一组计算资源中的第一计算资源以外的第二计算资源的第二存储器分配用于计算任务,确定第一计算资源访问第二存储器的第二访问速度;基于访问速度而从一组计算资源中选择目标计算资源,其中第一计算资源访问目标计算资源的目标存储器的访问速度高于第二访问速度;以及将第二存储器中的至少一部分数据迁移至目标存储器。
根据本公开的示例性实现方式,该动作进一步包括:获取一组计算资源中的各个计算资源的存储器的使用负载;以及基于使用负载从一组计算资源中选择第一计算资源。
根据本公开的示例性实现方式,该动作进一步包括:响应于检测到一组计算资源的计算资源的释放存储器中的存储空间的大小满足预定条件,选择计算资源以作为第一计算资源。
根据本公开的示例性实现方式,该动作进一步包括:确定一组计算资源中的存储器中的已经被分配用于计算任务的至少一个存储器。
根据本公开的示例性实现方式,基于以下中的至少任一项,从至少一个存储器中选择第二存储器:至少一个存储器中的被分配用于计算任务的存储空间的大小;大小与被分配用于计算任务的存储空间的总量的比例;至少一个存储器的使用负载;以及至少一个存储器被计算任务访问的访问频率。
根据本公开的示例性实现方式,选择目标计算资源包括:选择第一计算资源以作为目标计算资源。
根据本公开的示例性实现方式,选择目标计算资源包括:确定一组计算资源中的各个计算资源与第一计算资源之间的连接类型;以及
基于连接类型,选择目标计算资源。
根据本公开的示例性实现方式,选择目标计算资源包括:确定一组计算资源中的已经被分配用于计算任务的至少一个存储器;以及从至少一个存储器中的存储器所在的计算资源选择目标计算资源。
根据本公开的示例性实现方式,将第二存储器中的至少一部分数据迁移至目标存储器包括:确定第二存储器中的被分配用于计算任务的存储空间;确定目标存储器中的可用空间;以及响应于存储空间的大小不高于可用空间的大小,将存储空间中的数据迁移至目标存储器中的可用空间。
根据本公开的示例性实现方式,将第二存储器中的至少一部分数据迁移至目标存储器进一步包括:响应于存储空间的大小高于可用空间的大小,将存储空间中的至少一部分数据迁移至目标存储器中的可用空间。
根据本公开的示例性实现方式,该动作进一步包括:在将第二存储器中的至少一部分数据迁移至目标存储器之后,更新一组计算资源中的各个计算资源的存储器的使用负载。
根据本公开的一个示例性实现,提供了一种计算机程序产品。该计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据本公开所述方法。
根据本公开的一个示例性实现,提供了一种计算机可读介质。计算机可读介质上存储有机器可执行指令,当机器可执行指令在被至少一个处理器执行时,使得至少一个处理器实现根据本公开所述方法。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实现中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。

Claims (19)

1.一种用于管理计算资源的存储器的方法,包括:
响应于检测到一组计算资源中的计算资源的释放存储器中的存储空间的大小满足预定条件,选择所述计算资源以作为第一计算资源,所述第一计算资源以第一访问速度访问所述释放存储器;
确定由所述第一计算资源所处理的计算任务;
响应于已经将所述一组计算资源中的所述第一计算资源以外的第二计算资源的第二存储器分配用于所述计算任务,确定所述第一计算资源访问所述第二存储器的第二访问速度;
基于目标访问速度而从所述一组计算资源中选择目标计算资源,其中所述第一计算资源访问所述目标计算资源的目标存储器的所述目标访问速度高于所述第二访问速度;以及
将所述第二存储器中的至少一部分数据迁移至所述目标存储器。
2.根据权利要求1所述的方法,进一步包括:
获取所述一组计算资源中的各个计算资源的存储器的使用负载;以及
基于所述使用负载从所述一组计算资源中选择所述第一计算资源。
3.根据权利要求1所述的方法,进一步包括:
确定所述一组计算资源中的存储器中的已经被分配用于所述计算任务的至少一个存储器;
基于以下中的至少任一项,从所述至少一个存储器中选择所述第二存储器:
所述至少一个存储器中的被分配用于所述计算任务的存储空间的大小;
所述大小与被分配用于所述计算任务的存储空间的总量的比例;
所述至少一个存储器的使用负载;以及
所述至少一个存储器被所述计算任务访问的访问频率。
4.根据权利要求1所述的方法,其中选择所述目标计算资源包括:选择所述第一计算资源以作为所述目标计算资源。
5.根据权利要求1所述的方法,其中选择所述目标计算资源包括:
确定所述一组计算资源中的各个计算资源与所述第一计算资源之间的连接类型;以及
基于所述连接类型,选择所述目标计算资源。
6.根据权利要求1所述的方法,其中选择所述目标计算资源包括:
确定所述一组计算资源中的已经被分配用于所述计算任务的至少一个存储器;以及
从所述至少一个存储器中的存储器所在的计算资源选择所述目标计算资源。
7.根据权利要求1所述的方法,其中将所述第二存储器中的至少一部分数据迁移至所述目标存储器包括:
确定所述第二存储器中的被分配用于所述计算任务的存储空间;
确定所述目标存储器中的可用空间;以及
响应于所述存储空间的大小不高于所述可用空间的大小,将所述存储空间中的数据迁移至所述目标存储器中的所述可用空间。
8.根据权利要求7所述的方法,其中将所述第二存储器中的至少一部分数据迁移至所述目标存储器进一步包括:
响应于所述存储空间的大小高于所述可用空间的大小,将所述存储空间中的至少一部分数据迁移至所述目标存储器中的所述可用空间。
9.根据权利要求2所述的方法,进一步包括:
在将所述第二存储器中的至少一部分数据迁移至所述目标存储器之后,更新所述一组计算资源中的各个计算资源的存储器的所述使用负载。
10.一种用于管理计算资源的存储器的设备,包括:
至少一个处理器;
易失性存储器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述设备执行动作,所述动作包括:
响应于检测到一组计算资源中的计算资源的释放存储器中的存储空间的大小满足预定条件,选择所述计算资源以作为第一计算资源,所述第一计算资源以第一访问速度访问所述释放存储器;
确定由所述第一计算资源所处理的计算任务;
响应于已经将所述一组计算资源中的所述第一计算资源以外的第二计算资源的第二存储器分配用于所述计算任务,确定所述第一计算资源访问所述第二存储器的第二访问速度;
基于目标访问速度而从所述一组计算资源中选择目标计算资源,其中所述第一计算资源访问所述目标计算资源的目标存储器的所述目标访问速度高于所述第二访问速度;以及
将所述第二存储器中的至少一部分数据迁移至所述目标存储器。
11.根据权利要求10所述的设备,其中所述动作进一步包括:
获取所述一组计算资源中的各个计算资源的存储器的使用负载;以及
基于所述使用负载从所述一组计算资源中选择所述第一计算资源。
12.根据权利要求10所述的设备,其中所述动作进一步包括:
确定所述一组计算资源中的存储器中的已经被分配用于所述计算任务的至少一个存储器;
基于以下中的至少任一项,从所述至少一个存储器中选择所述第二存储器:
所述至少一个存储器中的被分配用于所述计算任务的存储空间的大小;
所述大小与被分配用于所述计算任务的存储空间的总量的比例;
所述至少一个存储器的使用负载;以及
所述至少一个存储器被所述计算任务访问的访问频率。
13.根据权利要求10所述的设备,其中选择所述目标计算资源包括:选择所述第一计算资源以作为所述目标计算资源。
14.根据权利要求10所述的设备,其中选择所述目标计算资源包括:
确定所述一组计算资源中的各个计算资源与所述第一计算资源之间的连接类型;以及
基于所述连接类型,选择所述目标计算资源。
15.根据权利要求10所述的设备,其中选择所述目标计算资源包括:
确定所述一组计算资源中的已经被分配用于所述计算任务的至少一个存储器;以及
从所述至少一个存储器中的存储器所在的计算资源选择所述目标计算资源。
16.根据权利要求10所述的设备,其中将所述第二存储器中的至少一部分数据迁移至所述目标存储器包括:
确定所述第二存储器中的被分配用于所述计算任务的存储空间;
确定所述目标存储器中的可用空间;以及
响应于所述存储空间的大小不高于所述可用空间的大小,将所述存储空间中的数据迁移至所述目标存储器中的所述可用空间。
17.根据权利要求16所述的设备,其中将所述第二存储器中的至少一部分数据迁移至所述目标存储器进一步包括:
响应于所述存储空间的大小高于所述可用空间的大小,将所述存储空间中的至少一部分数据迁移至所述目标存储器中的所述可用空间。
18.根据权利要求11所述的设备,其中所述动作进一步包括:
在将所述第二存储器中的至少一部分数据迁移至所述目标存储器之后,更新所述一组计算资源中的各个计算资源的存储器的所述使用负载。
19.一种计算机可读介质,其上存储计算机可读指令,所述计算机可读指令在被执行时使计算机执行根据权利要求1至9中任一项所述的方法。
CN201910053006.8A 2019-01-21 2019-01-21 管理计算资源的存储器的方法、设备和计算机可读介质 Active CN111459649B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910053006.8A CN111459649B (zh) 2019-01-21 2019-01-21 管理计算资源的存储器的方法、设备和计算机可读介质
US16/397,820 US11106500B2 (en) 2019-01-21 2019-04-29 Managing memories of computing resources based on data access speeds

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910053006.8A CN111459649B (zh) 2019-01-21 2019-01-21 管理计算资源的存储器的方法、设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN111459649A CN111459649A (zh) 2020-07-28
CN111459649B true CN111459649B (zh) 2023-08-25

Family

ID=71609896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910053006.8A Active CN111459649B (zh) 2019-01-21 2019-01-21 管理计算资源的存储器的方法、设备和计算机可读介质

Country Status (2)

Country Link
US (1) US11106500B2 (zh)
CN (1) CN111459649B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996837B1 (en) * 2013-03-15 2015-03-31 Emc Corporation Providing multi-tenancy within a data storage apparatus
CN106066812A (zh) * 2015-04-20 2016-11-02 国际商业机器公司 基于应用的历史信息管理资源
CN106133696A (zh) * 2014-03-31 2016-11-16 微软技术许可有限责任公司 缩放云资源时动态标识目标容量
US9513968B1 (en) * 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage
US9703664B1 (en) * 2015-06-24 2017-07-11 EMC IP Holding Company LLC Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201751B1 (en) * 2011-04-18 2015-12-01 American Megatrends, Inc. Data migration between multiple tiers in a storage system using policy based ILM for QOS
WO2014141466A1 (ja) * 2013-03-15 2014-09-18 株式会社日立製作所 計算機システム
CN104754007A (zh) * 2013-12-26 2015-07-01 伊姆西公司 用于管理网络附加存储的方法和装置
US9542100B2 (en) * 2014-09-02 2017-01-10 International Business Machines Corporation Management of memory pages
US20170013046A1 (en) * 2014-11-18 2017-01-12 Primarydata, Inc. Data-centric data storage
US9916090B1 (en) * 2015-09-22 2018-03-13 EMC IP Holding Company LLC Techniques for dynamically adjusting slice size
US10353634B1 (en) * 2016-03-28 2019-07-16 Amazon Technologies, Inc. Storage tier-based volume placement
US11513692B2 (en) * 2016-06-30 2022-11-29 EMC IP Holding Company LLC Arranging SSD resources based on estimated endurance
US10210188B2 (en) * 2016-11-30 2019-02-19 Quest Software Inc. Multi-tiered data storage in a deduplication system
JP6814764B2 (ja) * 2018-04-06 2021-01-20 株式会社日立製作所 情報処理システム及びパス管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996837B1 (en) * 2013-03-15 2015-03-31 Emc Corporation Providing multi-tenancy within a data storage apparatus
CN106133696A (zh) * 2014-03-31 2016-11-16 微软技术许可有限责任公司 缩放云资源时动态标识目标容量
CN106066812A (zh) * 2015-04-20 2016-11-02 国际商业机器公司 基于应用的历史信息管理资源
US9703664B1 (en) * 2015-06-24 2017-07-11 EMC IP Holding Company LLC Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling
US9513968B1 (en) * 2015-12-04 2016-12-06 International Business Machines Corporation Dynamic resource allocation based on data transferring to a tiered storage

Also Published As

Publication number Publication date
US11106500B2 (en) 2021-08-31
CN111459649A (zh) 2020-07-28
US20200233713A1 (en) 2020-07-23

Similar Documents

Publication Publication Date Title
CN110389826B (zh) 用于处理计算任务的方法、设备和计算程序产品
CN110610449B (zh) 处理计算任务的方法、设备和计算机程序产品
KR102624607B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
CN109729106B (zh) 处理计算任务的方法、系统和计算机程序产品
US10025503B2 (en) Autonomous dynamic optimization of platform resources
US9641592B2 (en) Location of actor resources
WO2021012956A1 (zh) 云平台的资源处理方法、相关设备及存储介质
US8725875B2 (en) Native cloud computing via network segmentation
CN111459650B (zh) 管理专用处理资源的存储器的方法、设备和介质
CN106155811B (zh) 资源服务装置、资源调度方法和装置
US11311722B2 (en) Cross-platform workload processing
US11556391B2 (en) CPU utilization for service level I/O scheduling
US11411799B2 (en) Scalable statistics and analytics mechanisms in cloud networking
US20190286574A1 (en) Systems and methods for remote procedure call
CN112068765A (zh) 管理存储系统的方法、设备和计算机程序产品
JP2016504696A (ja) 分散コンピューティングアーキテクチャ
CN115686875A (zh) 用于在多个进程之间传输数据的方法、设备和程序产品
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
JP2016004328A (ja) タスク割当プログラム、タスク割当方法およびタスク割当装置
CN110609744B (zh) 处理计算任务的方法、设备和计算机程序产品
CN111459649B (zh) 管理计算资源的存储器的方法、设备和计算机可读介质
JP2015170054A (ja) タスク割当プログラム、タスク実行プログラム、タスク割当装置、タスク実行装置およびタスク割当方法
US9626226B2 (en) Cross-platform workload processing
CN116360973A (zh) 数据处理系统及其操作方法
WO2018173300A1 (ja) I/o制御方法およびi/o制御システム

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