CN116339968A - 一种计算资源和缓存资源调度方法、装置及系统 - Google Patents
一种计算资源和缓存资源调度方法、装置及系统 Download PDFInfo
- Publication number
- CN116339968A CN116339968A CN202111602511.7A CN202111602511A CN116339968A CN 116339968 A CN116339968 A CN 116339968A CN 202111602511 A CN202111602511 A CN 202111602511A CN 116339968 A CN116339968 A CN 116339968A
- Authority
- CN
- China
- Prior art keywords
- task
- data
- cache
- computing
- node
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
Abstract
本申请公开了一种计算资源和缓存资源调度方法、装置及系统。在该方法中,调度单元获取包括多个任务的任务集;确定任务拓扑关系,任务拓扑关系用于表示所述多个任务的关联关系;确定每个任务涉及的数据;根据任务拓扑关系、数据和分配策略,为每个任务分配计算节点,为每个数据分配缓存节点,分配策略包括为第一任务分配计算节点和为第一任务的输入数据分配缓存节点时优先选择相同的节点,第一任务为所述多个任务中的任意一个任务。上述调度方法有助于减少跨节点缓存数据读写操作的情况,以提高计算效率。尤其是在大规模任务处理过程中,提高本地计算、缓存的命中率能够避免频繁的跨节点读写操作,提高执行效率、减少处理时长的优势更加突出。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种计算资源和缓存资源调度方法、装置及系统。
背景技术
随着云计算、云原生计算的快速发展,分离技术让应用感知的计算资源和存储资源不再有上限。
当大数据、人工智能(artificial intelligence,AI)、高性能计算(highperformance computing,HPC)在云计算、云原生平台上应用时,包括如图1所示的三层调度:1、任务调度,任务调度器用于对任务之间的依赖关系进行调度;2、任务资源调度,任务资源调度器根据任务依赖关系为各任务分配计算资源,即确定用于执行每个任务的节点;3、缓存资源调度,缓存调度器对任务执行过程中所需的数据进行分布式缓存的调度,即,为数据分配缓存资源。
在上述调度过程中,由于任务资源调度和数据资源调度是在不同的层分别进行的,因此,经常出现如下情况:为任务1分配的计算节点为节点0,而执行任务1所需的数据被分配的缓存节点为节点1,这就使得节点0在执行任务1的过程中,需要从节点1进行数据的读/写。尤其是大规模任务处理过程中,频繁的跨节点读写操作,会显著降低任务执行效率,增加任务处理时长。
发明内容
本申请实施例提供一种计算资源和缓存资源调度方法、装置及系统,用于提高本地计算、缓存的命中率,减少跨节点缓存数据读写操作。
第一方面,本申请实施例提供一种计算资源和缓存资源调度方法,该方法包括:获取任务集,所述任务集包括多个任务;确定任务拓扑关系,所述任务拓扑关系用于表示所述多个任务的关联关系;确定每个所述任务涉及的数据;根据所述任务拓扑关系、所述数据和分配策略,为每个所述任务分配计算节点,为每个所述数据分配缓存节点,所述分配策略包括为第一任务分配计算节点和为所述第一任务的输入数据分配缓存节点时优先选择相同的节点,所述第一任务为所述多个任务中的任意一个任务。
在分布式计算、分布式缓存系统中,一些节点既能够提供计算资源,作为计算节点,也能够提供缓存资源,作为缓存节点。在本申请实施例中,调度单元对计算资源和调度资源进行统一调度,优先将一个任务的计算资源和该任务的输入数据的缓存资源分配至同一节点中,如图9所示,使得在执行该任务时能够进行本地缓存读写操作,从而减少跨节点缓存数据读写操作的情况,以提高计算效率。尤其是在大规模任务处理过程中,如大数据、AI、HPC处理过程,提高本地计算、缓存的命中率能够避免频繁的跨节点读写操作,提高任务执行效率、减少任务处理时长的优势更加突出。
在一种可能的实现方式中,在确定每个所述任务涉及的数据之后,所述方法还包括:根据所述任务拓扑关系确定数据拓扑关系,所述数据拓扑关系表示数据与数据之间的关联关系和/或数据与任务的关联关系;所述根据所述任务拓扑关系、所述数据和分配策略,为每个所述数据分配缓存节点,包括:根据所述任务拓扑关系、所述数据拓扑关系和分配策略,为每个所述数据分配缓存节点。确定数据拓扑关系,在为数据分配缓存节点时,有助于将存在关联关系的数据、任务分配至相同的节点,从而减少跨节点操作。
在一种可能的实现方式中,所述数据拓扑关系包括:每个数据对应的任务列表、所需缓存资源的信息以及副本数量。
在一种可能的实现方式中,所述分配策略还包括:为所述第一任务分配计算节点和为所述第一任务的输出数据分配缓存节点时,优先选择相同的节点。将第一任务的输出数据优先分配至执行第一任务的节点,有助于减少跨节点的数据写操作。
在一种可能的实现方式中,所述分配策略还包括:为第二任务分配计算节点时,优先选择为所述第一任务分配的计算节点,所述第二任务为根据所述任务拓扑关系确定出的所述第一任务的下一个任务。由于第一任务与第二任务存在关联关系,优先将第一任务和第二任务分配至相同的节点执行,有助于减少跨节点的数据写操作,例如,第一任务的输出数据为第二任务输入数据时,若第一任务和第二任务能够分配至相同的节点,按照上述分配策略可以避免对该数据的跨节点读写操作。
在一种可能的实现方式中,所述为每个所述数据分配缓存节点,包括:确定每个任务对涉及的每个数据所需的副本数量,为每个所述数据的副本分配缓存节点。
在一种可能的实现方式中,所述分配策略还包括:若第一任务涉及的第一数据也是第三任务涉及的数据,且所述第一任务对所述第一数据所需的副本数量大于所述第三任务对所述第一数据所需的副本数量,优先将为所述第三任务分配的计算节点作为所述第一数据的一个副本的缓存节点。不同的数据可能有不同的副本数量需求,涉及不同任务的数据,不同任务对该数据的副本数量需求也可能不同,在分配缓存节点时,需要进行综合考虑,从而减少跨节点的数据读写操作。
在一种可能的实现方式中,所述任务拓扑关系还包括每个任务所需的计算资源。在任务拓扑关系中加入每个任务所需的计算资源,从而方便后续为任务分配计算节点时,能够直接根据任务拓扑关系中的计算资源进行分配。
在一种可能的实现方式中,在为每个所述任务分配计算节点之后,所述方法还包括:根据每个所述任务所需的计算资源,更新存储的所述计算节点的可用计算资源。
在一种可能的实现方式中,所述方法还包括:根据所述多个任务所需的计算资源,确定当前全部可用的计算资源是否能够满足当前的计算需求,若不满足,对计算资源进行扩容;和/或,根据所述数据的大小,确定当前全部可用的缓存资源大小是否能够满足当前的缓存需求,若不满足,对缓存资源进行扩容。
在一种可能的实现方式中,所述方法还包括:若确定当前计算资源的使用率小于或等于预设阈值,释放预设大小或预设比例的计算资源;和/或,若确定当前缓存资源使用率小于或等于预设阈值,释放预设大小或预设比例的缓存资源。
在一种可能的实现方式中,所述方法还包括:确定所述多个任务涉及的初始数据;将所述初始数据从远端集群缓存至本地集群中。
在一种可能的实现方式中,所述方法应用于云原生分布式缓存平台中。
在一种可能的实现方式中,所述任务拓扑关系满足有向无环关系。
第二方面,本申请实施例提供一种计算资源和缓存资源调度装置,所述装置包括执行上述第一方面以及第一方面的任意一种可能的实现方式的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
示例性的,该装置包括:获取模块,用于获取任务集,所述任务集包括多个任务;确定模块,用于确定任务拓扑关系,所述任务拓扑关系用于表示所述多个任务的关联关系,确定每个所述任务涉及的数据;分配模块,用于根据所述任务拓扑关系、所述数据和分配策略,为每个所述任务分配计算节点,为每个所述数据分配缓存节点,所述分配策略包括为第一任务分配计算节点和为所述第一任务的输入数据分配缓存节点时优先选择相同的节点,所述第一任务为所述多个任务中的任意一个任务。
第三方面,本申请实施例提供一种计算资源和缓存资源调度系统,所述系统包括第二方面所述的计算资源和缓存资源调度装置。
第四方面,本申请实施例提供一种计算资源和缓存资源调度设备,所述设备包括存储器和处理器;所述存储器存储有计算机程序;所述处理器用于调用所述存储器中存储的计算机程序,以执行如第一方面及第一方面任一实现方式所述的计算资源和缓存资源调度方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面及第一方面任一实现方式所述的计算资源和缓存资源调度方法。
上述第二方面至第五方面可以达到的技术效果,可以参照上述第一方面中以及第一方面中的任意可能实现方式可以达到的技术效果描述,这里不再重复赘述。
附图说明
图1为本申请实施例提供的分层调度示意图;
图2为本申请实施例提供的Spark的逻辑架构图;
图3为本申请实施例提供的跨节点读/写示意图;
图4为应用本申请实施例提供的调度方法后Spark的逻辑架构图;
图5为应用本申请实施例提供的调度方法后另一种Spark的逻辑架构图;
图6为本申请实施例所适用的系统的硬件结构示意图;
图7为本申请实施例提供的计算资源和缓存资源调度的方法流程示意图;
图8为本申请实施例提供的任务拓扑关系示意图;
图9为应用本申请实施例后的缓存数据读写示意图;
图10为本申请实施例提供的调度单元的逻辑架构示意图;
图11为本申请实施例提供的计算资源和缓存资源调度装置的结构示意图;
图12为本申请实施例提供的计算资源和缓存资源调度设备的结构示意图。
具体实施方式
目前的大数据、AI、HPC场景中,资源的调度,如计算资源和缓存资源的调度,是分层进行的。
下面以大数据处理过程中常用的Spark为例进行说明。Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark的逻辑架构图可以如图2所示,包括驱动(driver)、集群管理(cluster manager)、worker、源数据(data source)、分布式缓存(distributecache)以及shuffle service。其中,driver包括Spark上下文(SparkContext)、有向无环调度器(DAG Scheduler)、任务调度器(TaskScheduler)以及调度器后端(SchedulerBackend),cluster manager包括资源管理(ResourceManager)和调度器(Scheduler),worker可以包括若干个执行者(Executor)。
应用程序(Appliction)是指用户编写的Spark应用程序,其中包括一个Driver功能的代码和分布在集群中多个节点上运行的Executor代码。Spark中的Driver即运行上述Application的主(main)函数并创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境,在Spark中由SparkContext负责与ClusterManager通信,进行资源申请、任务的分配和监控等,当Executor部分运行完毕后,Driver同时负责将SparkContext关闭。
一个Application中可以产生一个或多个工作(job),一个job可以包含一个或多个任务(task)。每个job可以被拆分成多组task,每组task为一个任务集(TaskSet),其名称为Stage,Stage的划分和调度由DAGScheduler来负责。DAGScheduler根据job构建基于Stage的有向无环图(directed acyclic graph,DAG),并将Stage发送至TaskScheduler。TaskSchedulter将TaskSet提交给worker运行,每个task由哪个Executor运行由TaskScheduler进行分配。TaskScheduler维护所有TaskSet,当Executor向Driver发生心跳时,TaskScheduler会根据资源剩余情况分配相应的Task。SchedulerBackend与clustermanager交互取得应用被分配的资源。
Worker可以为集群中任何可以运行Application代码的节点,在Standalone模式中指的是通过slave文件配置的Worker节点,在Spark on Yarn模式下就是NoteManager节点。
Spark可以运行在Yarn或Kubernetes资源管理平台上,其源数据可以存储在容量较大的存储中,如OBS、Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),可以通过分布式缓存来提升数据加载速度;搭建Shuffle集群来管理临时数据。
由此可以看出,Spark的调度机制包括三层调度:一、DAG Scheduler根据宽转换操作或shuffle依赖边界将多个task划分成不同的stage;二、ClusterManager中的调度器将每个task调度至相应的Executor上运行;三、分布式缓存中的调度器将每个task所使用的缓存数据调度至相应的缓存节点上进行缓存。
分层的调度机制,使得task的执行计算节点跨节点进行缓存数据的读/写,如图3所示,节点3在执行任务task时需要从节点2进行缓存数据的读/写。跨节点的缓存数据读/写会增加任务处理时长;尤其是在大规模计算时,频繁的跨节点进行缓存数据的读/写将显著增加任务处理时长,降低计算效率。
有鉴于此,本申请实施例提供一种计算资源和缓存资源调度的方法,用于实现计算资源和缓存资源的统一调度,提高本地缓存的命中率,从而提高任务的计算效率。上述方法可以应用于能够实现分布式计算、分布式缓存的系统中,该方法可以由系统中的统一调度单元实现,或者,也可以由独立于该系统的统一调度单元实现,为了方便描述,以下均简称为调度单元。
当调度单元为系统中的功能单元时,以图1所示系统架构为例,该调度单元可以用于实现原系统中cluster manager和分布式缓存中的调度器的功能,如图4所示。进一步的,还可以用于实现derive中将job划分成不同的stage的功能。
当调度单元独立于系统时,原有系统的架构可以保持不变,在该系统上接入本申请实施例提供的调度单元,如图5所示,由该调度单元实现对系统中计算资源和缓存资源的调度,从而实现本申请实施例的目的。
图6示例性的提供了一种本申请实施例所适用的系统的硬件结构示意图,如图6所示,本实施例提供的分布式系统包括存储集群。存储集群包括一个或多个节点110(图6中示出了三个节点110,但不限于三个节点110),各个节点110之间可以相互通信。节点110是一种既具有计算能力又具有存储能力的设备,如服务器、台式计算机等。示例型的,节点110可以是ARM服务器或者X86服务器都可以作为这里的节点110。在硬件上,如图4所示,节点110至少包括处理器112、内存113、网卡114和硬盘115。处理器112、内存113、网卡114和硬盘115之间可以通过总线连接。
其中,处理器112和内存113用于提供计算资源。内存113和硬盘115用于提供存储资源,例如对数据进行缓存。
其中,处理器112可以是一个中央处理器(central processing unit,CPU),用于处理来自节点110外部(应用节点或者其他节点110)的数据访问请求,也用于处理节点110内部生成的请求。除此之外,处理器112还用于数据进行计算或处理,例如元数据管理、重复数据删除、数据压缩、数据校验、虚拟化存储空间以及地址转换等。图4中仅示出了一个CPU112,在实际应用中,CPU112的数量也可以是多个,其中,一个CPU112又可以具有一个或多个CPU核。本实施例不对CPU的数量,以及CPU核的数量进行限定。
内存113是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统或其他正在运行中的程序的临时数据存储器。内存可以包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(dynamic random accessmemory,DRAM),或者存储级存储器(storage class memory,SCM)。DRAM是一种半导体存储器,与大部分随机存取存储器(random access memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasable programmable read only memory,EPROM)等。另外,内存113还可以是双列直插式存储器模块或双线存储器模块(dual in-line memorymodule,简称DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(solid statedisk,SSD)。实际应用中,节点110中可配置多个内存113,以及不同类型的内存113。本实施例不对内存113的数量和类型进行限定。此外,可对内存113进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,内存113中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
硬盘115可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录硬盘等。
网卡114用于与其他节点110或其他设备通信。
参见图7,为本申请实施例提供的一种计算资源和缓存资源调度的方法流程示意图,如图所示,该方法可以包括以下步骤:
步骤701、调度单元获取任务集。
任务集即为taskset,又称stage,一个任务集可以包括多个任务。如前所述,从application获取到的job可以包括多个task;进一步的,每个job可以被划分为一个或多个任务集,即taskset。
在一些实施例中,若调度单元从application获取到job,那么该调度单元可以对获取到的job进行划分得到一个或多个任务集。例如,调度单元可以根据宽转换操作或shuffle依赖边界将job划分成不同的任务集。在另外一些实施例中,调度单元从application获取到的即为任务集,或者,本申请实施例中的调度单元也可以不直接与application进行通信,例如,调度单元可以从DAGScheduler获取已经划分好的任务集。
步骤702、调度单元确定任务拓扑关系。
任务集中的多个任务之间存在一定的关联,调度单元确定任务拓扑关系即为确定该多个任务之间的关联关系。
例如,任务集包含任务1、任务2、…、任务7;其中,任务1的输出数据为任务2的输入数据,任务2的输出数据是任务3、任务4的输入数据,任务3和任务4的输出数据均作为任务5的输入数据,任务5和任务6的输出数据均作为任务7的输出数据;该任务集的拓扑关系图可以如图8所示。在一个具体实施例中,调度单元的确定针对上述任务集确定出的任务拓扑关系,可以包括每个任务的下一个任务和/或上一个任务的信息,如任务1的下一个任务为任务2,任务2的下一个任务为任务3、任务4,任务2的上一个任务为任务1,任务5的上一个任务为任务3、任务4。
在图8所示的示例中,任务拓扑关系满足有向无环的关系,即,任务之间方向性,但不存在环路。本申请实施例尤其适用于任务集中的多个任务满足有向无环的情况,对于满足有向无环的拓扑关系的情况,对于任务的执行、分配计算资源/缓存资源更加有序、高效。
进一步的,任务拓扑关系还可以进一步包括每个任务所需的计算资源,从而方便后续根据任务拓扑关系为每个任务分配满足其计算资源的计算节点。例如,所需的计算资源可以包括任务对CPU、对内存大小的需求等。
步骤703、调度单元确定每个任务涉及的数据。
每个任务在执行过程中,可能涉及多个数据,如输入数据、中间数据、输出数据等。在本申请实施例中,需要在任务执行之前先为每个数据分配缓存资源,即分配缓存节点,因此,需要调度资源确定任务执行过程中所涉及到的需要缓存的数据。
步骤704、调度单元根据任务拓扑关系、每个任务涉及的数据和预设的分配策略,为每个任务分配计算节点,为每个数据分配缓存节点。
其中,预设的分配策略包括:为第一任务分配计算节点和为第一任务的输入数据分配缓存节点时,优先选择相同的节点。上述第一任务为任务集的多个任务中的任意一个任务。例如,任务2的输入数据为D2,则在为任务2分配计算节点、为数据D2分配缓存节点时,可以先确定是否至少存在一个节点既能够满足任务2所需的计算资源又满足数据D2所需的缓存资源。若存在,则将同时满足计算资源和缓存资源的节点,作为任务2的计算节点和数据D2的缓存节点,使得在执行任性2时,能够本地读取任务2所需的输入数据。在不存在同时满足计算资源和缓存资源的节点时,再将任务2的计算节点和数据2的缓存节点分配至不同的节点中。
进一步的,预设的分配策略还可以包括:为第一任务分配计算节点和为第一任务的输出数据分配缓存节点时,优先选择相同的节点。在这种情况下,优先将一个任务的计算资源、输入数据的缓存资源和输出数据的缓存资源分配至同一节点中。例如,任务5的输入数据为数据D3和数据D4,输出数据为D5,分配资源时,可以先确定是否至少一个节点既能够满足任务5所需的计算资源,又满足数据D3、数据D4、数据D5的缓存资源;若存在,则将同时满足计算资源、输入数据缓存资源和输出数据缓存资源的节点,作为任务2的计算节点和数据D3、数据D4、数据D5的缓存节点;若不存在,确定是否存在同时满足计算资源和输入数据缓存资源的节点,以实现将任务2的计算资源和数据3、数据4的缓存资源分配至同一节点中。
在一种可能的设计中,上述预设的分配策略,还可以包括:为第一任务和第二任务分配计算节点时,优先选择相同的节点。其中,第二任务为根据任务拓扑关系确定出的第一任务的下一个任务。根据任务拓扑关系确定出的上一个任务和下一个任务,是串行的关系,即,先执行完上一个任务才能够执行下一个任务,否则,下一个任务无法被执行。因此,将第一任务和第二任务分配至同一计算节点中,并不会影响计算效率、削弱分布式计算的优势;此外,由于第一任务与第二任务之间存在关联关系,将第一任务的计算资源和第二任务的计算资源分配至相同的节点,有利于提供计算效率。例如,第一任务的输出数据可以是第二任务的输入数据,由于分配资源时,优先将第一任务的计算资源、第一任务的输入数据缓存资源和第一任务的输出数据缓存资源分配至同一节点中,若将第二任务的计算资源也分配至同一节点中,那么在执行第二任务时,对第二任务的输入数据即第一任务的输出数据进行读取时,即可实现本地读取,不必跨节点读取而降低计算效率。
由于一个数据可能涉及多个任务,调度单元在为一个数据分配缓存节点时,需要考虑对多个任务的兼顾。例如,任务2是任务1的下一个任务,数据D2是任务1的输出数据,也是任务2的输入数据,那么调度单元在为数据D2分配缓存资源时,可以首先判断是否存在一个节点既能够满足任务1、任务2的计算需求,又能够满足数据D2的缓存需求,若节点1满足均满足上述条件,则调度单元可以将节点1作为任务1、任务2的计算节点,并将节点1作为数据D2的缓存节点。若不存在均同时满足上述条件的节点,那么可以判断是否存在一个节点既能够满足任务2的计算需求,又能够满足数据D2的缓存需求,优先将任务2与输入数据D2分配至相同的节点;或者,也可以判断是否存在一个节点同时满足任务1和任务2的计算需求,从而优先将任务1与任务2分配至相同的节点。
在分布式计算、分布式缓存系统中,一些节点既能够提供计算资源,作为计算节点,也能够提供缓存资源,作为缓存节点。在本申请实施例中,调度单元对计算资源和调度资源进行统一调度,优先将一个任务的计算资源和该任务的输入数据的缓存资源分配至同一节点中,如图9所示,使得在执行该任务时能够进行本地缓存读写操作,从而减少跨节点缓存数据读写操作的情况,以提高计算效率。尤其是在大规模任务处理过程中,如大数据、AI、HPC处理过程,提高本地计算、缓存的命中率能够避免频繁的跨节点读写操作,提高任务执行效率、减少任务处理时长的优势更加突出。
为了使得计算资源分配更加准确,调度单元在为每个任务分配了计算节点之后,可以根据该任务所需占用的计算资源更新相应计算节点的可用计算资源,从而在后续分配计算资源时,分配的计算节点能够满足任务所需的计算资源。类似的,调度单元在为每个数据分配了缓存节点之后,也可以根据该数据所需占用的缓存资源更新相应缓存节点的可用缓存资源,从而在后续分配缓存资源时,分配的缓存节点能够满足数据所需的缓存资源。
在一种可能的实现方式中,在确定每个任务涉及的数据之后,即步骤703之后,还可以进一步确定数据拓扑关系,数据拓扑关系可以用于表示数据与数据之间的关联关系和/或数据与任务之间的关联关系。例如,针对数据D1,该数据拓扑关系中可以包括数据D1作为输入数据所涉及的任务列表,作为输出数据所涉及的任务列表等。又例如,数据拓扑关系中还可以包括数据D1与数据D2的关联关系,如数据D1和数据D2的关联关系为同一任务输入数据、输出数据,或者,关联关系为同一任务的多重输入数据或多重输出数据等。
相应的,在确定了数据拓扑关系的情况下,调度单元在执行上述步骤704时,可以根据任务拓扑关系、数据拓扑关系和预设的分配策略进行计算资源分配和缓存资源分配。例如,调度单元可以优先将存在关联关系的数据分配至相同的缓存节点。
此外,数据拓扑关系还可以包括以下信息中的一种或任意组合:数据类型,数据所需的缓存资源的信息,数据所需的副本数量。其中,数据类型可以表示临时数据、预热数据或其他类型的数据。根据任务的需要、数据类型等因素,一些数据若仅缓存在一个缓存节点中可能无法满足应用的需求,因此,调度单元在为每个数据分配缓存节点时,可以根据其所需的副本数量,为每个数据副本分配一个缓存节点。例如,若任务1的输出数据为数据D2,任务1对数据D2的副本数量需求是3,即在3个缓存节点中缓存数据D2;数据D2还是任务2的输入数据,而任务2对数据D2的副本数量需求是5,故调度单元共需要为数据D2分配5个缓存节点。
由于一个数据可能涉及多个任务,而涉及的多个任务对该数据的副本数量需求可能相同,也可能不同,这就使得调度单元在为该数据分配缓存节点时,需要进行综合考虑。例如,若任务1的输出数据为数据D2,任务1对数据D2的副本数量需求是2,数据D2还是任务2的输入数据,而任务2对数据D2的副本数量需求是1;那么调度单元在为数据D2分配调度资源时,可以优先将任务1、任务2的计算资源和数据D2的一个副本分配至同一节点中,再为数据D2的其他副本分配缓存资源;若不能均分配至同一节点中,调度单元也可以优先将任务1的计算资源和数据D2一个副本的缓存资源分配至同一节点、将任务2的计算资源和数据D2另一个副本的缓存资源分配至同一节点,从而使得任务1和任务2在被执行时均能够进行缓存数据的本地读/写,以提高计算效率。
为了适应不同应用对计算资源、缓存空间大小的需求不同,还可以对分布式计算、分布式缓存系统中的计算资源、缓存资源进行扩容或缩容,从而避免计算资源或缓存资源不足,或者计算资源或缓存资源浪费的情况。
在一种可能的实现方式中,若调度单元根据获取的到的多个任务所需的计算资源,确定当前全部可用的计算资源不能够满足任务所需的计算资源,则调度单元还可以对系统的计算资源进行扩容。例如,调度单元可以将其他能够提供计算资源的节点纳入系统中,以提供更多的计算资源,或者,调度单元也可以系统中的其他功能单元实现计算资源的扩容。若调度单元根据获取到的任务所涉及的数据所需的缓存资源,确定当前全部可以的缓存资源不能够满足当前的缓存需求,则调度单元还可以对系统的缓存资源进行扩展。类似的,调度单元可以自己完成或通过其他功能单元实现缓存资源的扩容。
在另一种可能的实现方式中,若调度单元确定当前系统中的计算资源使用率小于或等于预设阈值,调度单元可以释放预设大小或预设比例的计算资源。例如,调度单元在释放计算资源时,可以将没有待执行任务的计算节点提供的计算资源释放掉,若每个节点均有待执行的任务,调度单元也进行重新调度,从而实现释放一个或多个计算节点提供的计算资源。或者,调度单元也可以通过系统中的其他功能单元实现计算资源的释放。若调度单元确定当前缓存资源的使用率小于或等于预设阈值,调度单元可以释放预设大小或预设比例的缓存资源。类似的,调度单元也可以对已缓存或待缓存的数据进行重新调度,从而实现释放缓存资源;调度单元可以自己完成或通过其他功能单元实现缓存资源的释放。
在一种可能的设计中,当调度单元应用的系统为云原生分布式缓存平台时,调度单元可以通过调用原系统的管理接口实现系统的计算资源、缓存资源的扩容、缩容。例如,将本申请实施例提供的调度单元集成在Kubernetes集群的批处理调度器(volcano)中,调度单元可以利用Kubernetes集群本身具有的弹性扩缩容的功能,以实现计算资源、缓存资源的扩容、缩容。
为了更加清楚理解本申请上述实施例,下面结合具体实施例及图10进行举例说明。
在一个具体实施例中,本申请实施例提供的调度单元的逻辑架构可以如图10所示,包括任务拓扑分析、数据分析、数据画像、资源画像、依赖画像、预热分析、资源分配、应用程序接口(Application Programming Interface,API)服务以及缓存弹性伸缩。
其中,API服务用于提供开放式的API。例如,当调度单元为独立于系统的装置时,可以通过API服务使得该调度单元接入分布式计算、分布式缓存的系统中。又例如,调度单元可以通过API服务获取上述步骤701中所述的任务集。再例如,调度单元可以通过API服务从系统的其他功能模块获取信息,如各节点的能够提供的计算资源、缓存资源大小等。
拓扑分析,用于对获取到的多个任务确定上述实施例中的任务拓扑关系。确定出的任务拓扑关系将被输入至数据画像、资源画像以及依赖画像。
数据分析,用于确定每个任务所涉及的数据。进一步的,还可以确定每个数据的数据类型(如输入数据、中间数据、输出数据等)。
数据画像,用于根据任务拓扑关系和确定出的每个数据,每个数据作为输入数据所涉及的任务列表,作为输出数据所涉及的任务列表。生成的数据画像,即为前述实施例所述的数据拓扑关系。
资源画像,用于根据任务拓扑分析、数据画像和系统集群资源,分别构建任务资源画像、集群资源画像和缓存数据画像。
其中,任务资源画像中包括每个任务的图谱属性,针对一个任务,其图谱属性可以包括:对CPU的需求,对内存的需求,输入数据,输出数据,上一个任务和下一个任务。
集群资源画像中包括每个节点的图谱属性,针对一个节点,其图谱属性可以包括:执行当前任务对CPU的需求、对内存的需求,分配给该节点的下一个任务对CPU的需求、对内存的需求。应当理解,对于单个节点来说,分配的下一个任务可以是当前执行的任务在任务拓扑关系中的下一个任务,也可以是其他任务。
缓存数据画像中包括每个缓存数据所需的缓存资源大小,以及该数据的下一阶段数据所需的缓存资源大小。
依赖关系画像,根据任务资源画像、集群资源画像、缓存数据画像,生成依赖关系画像。在生成的依赖关系画像中,每个任务可以包括如下信息:对CPU的需求,对内存的需求,输入数据,输入数据的副本数量需求,输出数据,输出数据的副本数量需求,执行该任务的节点列表,输入数据的缓存节点列表,输出数据的缓存节点列表,上一个任务,下一个任务。
由于生成依赖关系画像时,还未分配缓存节点,上述输入数据的缓存节点列表、输出数据的缓存节点列表为空,当为缓存数据分配了缓存节点并在缓存数据写入相应的节点后,可以对上述缓存节点列表进行更新,从而便于后续的资源调度。
资源分配,用于根据依赖关系画像和预设的分配策略,为每个任务分配计算节点,为每个数据分配缓存节点。
预热分析,用于根据依赖关系画像,确定数据预热方案。例如,以图8所示的任务拓扑关系图为例,任务1和任务6的输入数据为初始输入数据,可以预先将任务1和任务6的输入数据从远端集群缓存至本地集群中,从而便于任务1与任务6的执行。
缓存弹性伸缩,用于实现对缓存资源的扩容或缩容。
基于相同的技术构思,本申请实施例还提供了一种计算资源和缓存资源调度装置,用于实现上述方法实施例。该装置即为上述方法实施例中的调度单元。图11为本申请实施例提供的计算资源和缓存资源调度装置的结构示意图,如图所示,该装置可以包括:获取模块1101、确定模块1102和分配模块1103。
其中,获取模块1101,用于获取任务集,所述任务集包括多个任务。
确定模块1102,用于确定任务拓扑关系,所述任务拓扑关系用于表示所述多个任务的关联关系;确定每个所述任务涉及的数据。
分配模块1103,用于根据所述任务拓扑关系、所述数据和分配策略,为每个所述任务分配计算节点,为每个所述数据分配缓存节点,所述分配策略包括为第一任务分配计算节点和为所述第一任务的输入数据分配缓存节点时优先选择相同的节点,所述第一任务为所述多个任务中的任意一个任务。
在一种可能的实现方式中,所述确定模块1102还用于:根据所述任务拓扑关系确定数据拓扑关系,所述数据拓扑关系表示数据与数据之间的关联关系和/或数据与任务的关联关系。分配模块1103具体用于:根据所述任务拓扑关系、所述数据拓扑关系和分配策略,为每个所述数据分配缓存节点。
在一种可能的实现方式中,所述数据拓扑关系包括:每个数据对应的任务列表、所需缓存资源的信息以及副本数量。
在一种可能的实现方式中,所述分配策略还包括:为所述第一任务分配计算节点和为所述第一任务的输出数据分配缓存节点时,优先选择相同的节点。
在一种可能的实现方式中,所述分配策略还包括:为第二任务分配计算节点时,优先选择为所述第一任务分配的计算节点,所述第二任务为根据所述任务拓扑关系确定出的所述第一任务的下一个任务。
在一种可能的实现方式中,所述分配模块1103在为每个所述数据分配缓存节点时,具体用于:确定每个任务对涉及的每个数据所需的副本数量,为每个所述数据的副本分配缓存节点。
在一种可能的实现方式中,所述分配策略还包括:若第一任务涉及的第一数据也是第三任务涉及的数据,且所述第一任务对所述第一数据所需的副本数量大于所述第三任务对所述第一数据所需的副本数量,优先将为所述第三任务分配的计算节点作为所述第一数据的一个副本的缓存节点。
在一种可能的实现方式中,所述任务拓扑关系还包括每个任务所需的计算资源。
在一种可能的实现方式中,该装置还可以包括更新模块(图中未示出),用于在分配模块1103为每个所述任务分配计算节点之后,根据每个所述任务所需的计算资源,更新存储的所述计算节点的可用计算资源。
在一种可能的实现方式中,该装置还可以包括扩容模块(图中未示出),用于根据所述多个任务所需的计算资源,确定当前全部可用的计算资源是否能够满足当前的计算需求,若不满足,对计算资源进行扩容;和/或,根据所述数据的大小,确定当前全部可用的缓存资源大小是否能够满足当前的缓存需求,若不满足,对缓存资源进行扩容。
在一种可能的实现方式中,该装置还可以包括缩容模块(图中未示出),用于若确定当前计算资源的使用率小于或等于预设阈值,释放预设大小或预设比例的计算资源;和/或,若确定当前缓存资源使用率小于或等于预设阈值,释放预设大小或预设比例的缓存资源。
在一种可能的实现方式中,该装置还可以包括预热模块(图中未示出),用于确定所述多个任务涉及的初始数据;将所述初始数据从远端集群缓存至本地集群中。
在一种可能的实现方式中,所述装置应用于云原生分布式缓存平台中。
在一种可能的实现方式中,所述任务拓扑关系满足有向无环关系。
基于相同的技术构思,本申请实施例还提供一种计算资源和缓存资源调度系统,该系统为分布式计算、分布式缓存系统,且该系统包括上述任一实施例所述的计算资源和缓存资源调度装置。
基于相同的技术构思,本申请实施例还提供了一种计算资源和缓存资源调度设备,用于实现上述方法实施例。该设备即为上述方法实施例中的调度单元。图12为本申请实施例提供的计算资源和缓存资源调度设备的结构示意图,如图所示,该设备包括处理器121,以及与处理器121连接的存储器122。
处理器121可以是通用处理器,微处理器,特定集成电路(application specificintegrated circuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件,分立门或者晶体管逻辑器件,或一个或多个用于控制本申请方案程序执行的集成电路等。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器122,用于存储程序指令和/或数据,以使处理器121调用存储器122中存储的指令和/或数据,实现上述计算资源和缓存资源调度方法。存储器122可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器122可以是独立存在,例如片外存储器,通过通信总线与处理器121相连接。存储器122也可以和处理器121集成在一起。
进一步的,该设备还可以包括通信接口123,用于与其他设备进行通信,例如,当该设备独立于分布式计算、缓存系统时,该设备可以通过通信接口123与系统进行通信。进一步的,还可以包括通信总线124,通信总线124可包括一通路,在上述组件之间传送信息。
基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,当所述计算机可读指令在计算机上运行时,使得上述方法实施例中调度单元所执行的步骤被执行。
基于相同的技术构思,本申请实施例提供还一种包含指令的计算机程序产品,当其在计算机上运行时,使得上述方法实施例中编译器所执行的步骤被执行。
需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (31)
1.一种计算资源和缓存资源调度方法,其特征在于,包括:
获取任务集,所述任务集包括多个任务;
确定任务拓扑关系,所述任务拓扑关系用于表示所述多个任务的关联关系;
确定每个所述任务涉及的数据;
根据所述任务拓扑关系、所述数据和分配策略,为每个所述任务分配计算节点,为每个所述数据分配缓存节点,所述分配策略包括为第一任务分配计算节点和为所述第一任务的输入数据分配缓存节点时优先选择相同的节点,所述第一任务为所述多个任务中的任意一个任务。
2.根据权利要求1所述的方法,其特征在于,在确定每个所述任务涉及的数据之后,所述方法还包括:
根据所述任务拓扑关系确定数据拓扑关系,所述数据拓扑关系表示数据与数据之间的关联关系和/或数据与任务的关联关系;
所述根据所述任务拓扑关系、所述数据和分配策略,为每个所述数据分配缓存节点,包括:
根据所述任务拓扑关系、所述数据拓扑关系和分配策略,为每个所述数据分配缓存节点。
3.根据权利要求2所述的方法,其特征在于,所述数据拓扑关系包括:每个数据对应的任务列表、所需缓存资源的信息以及副本数量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述分配策略还包括:
为所述第一任务分配计算节点和为所述第一任务的输出数据分配缓存节点时,优先选择相同的节点。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述分配策略还包括:
为第二任务分配计算节点时,优先选择为所述第一任务分配的计算节点,所述第二任务为根据所述任务拓扑关系确定出的所述第一任务的下一个任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述为每个所述数据分配缓存节点,包括:
确定每个任务对涉及的每个数据所需的副本数量,为每个所述数据的副本分配缓存节点。
7.根据权利要求6所述的方法,其特征在于,所述分配策略还包括:
若第一任务涉及的第一数据也是第三任务涉及的数据,且所述第一任务对所述第一数据所需的副本数量大于所述第三任务对所述第一数据所需的副本数量,优先将为所述第三任务分配的计算节点作为所述第一数据的一个副本的缓存节点。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述任务拓扑关系还包括每个任务所需的计算资源。
9.根据权利要求1-8任一项所述的方法,其特征在于,在为每个所述任务分配计算节点之后,所述方法还包括:
根据每个所述任务所需的计算资源,更新存储的所述计算节点的可用计算资源。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
根据所述多个任务所需的计算资源,确定当前全部可用的计算资源是否能够满足当前的计算需求,若不满足,对计算资源进行扩容;和/或
根据所述数据的大小,确定当前全部可用的缓存资源大小是否能够满足当前的缓存需求,若不满足,对缓存资源进行扩容。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述方法还包括:
若确定当前计算资源的使用率小于或等于预设阈值,释放预设大小或预设比例的计算资源;和/或
若确定当前缓存资源使用率小于或等于预设阈值,释放预设大小或预设比例的缓存资源。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述方法还包括:
确定所述多个任务涉及的初始数据;
将所述初始数据从远端集群缓存至本地集群中。
13.根据权利要求1-12任一项所述的方法,其特征在于,所述方法应用于云原生分布式缓存平台中。
14.根据权利要求1-13任一项所述的方法,其特征在于,所述任务拓扑关系满足有向无环关系。
15.一种计算资源和缓存资源调度装置,其特征在于,所述装置包括:
获取模块,用于获取任务集,所述任务集包括多个任务;
确定模块,用于确定任务拓扑关系,所述任务拓扑关系用于表示所述多个任务的关联关系;确定每个所述任务涉及的数据;
分配模块,用于根据所述任务拓扑关系、所述数据和分配策略,为每个所述任务分配计算节点,为每个所述数据分配缓存节点,所述分配策略包括为第一任务分配计算节点和为所述第一任务的输入数据分配缓存节点时优先选择相同的节点,所述第一任务为所述多个任务中的任意一个任务。
16.根据权利要求15所述的装置,其特征在于,所述确定模块还用于:
在确定每个所述任务涉及的数据之后,根据所述任务拓扑关系确定数据拓扑关系,所述数据拓扑关系表示数据与数据之间的关联关系和/或数据与任务的关联关系;
所述分配模块具体用于:
根据所述任务拓扑关系、所述数据拓扑关系和分配策略,为每个所述数据分配缓存节点。
17.根据权利要求16所述的装置,其特征在于,所述数据拓扑关系包括:每个数据对应的任务列表、所需缓存资源的信息以及副本数量。
18.根据权利要求15-17任一项所述的装置,其特征在于,所述分配策略还包括:
为所述第一任务分配计算节点和为所述第一任务的输出数据分配缓存节点时,优先选择相同的节点。
19.根据权利要求15-18任一项所述的装置,其特征在于,所述分配策略还包括:
为第二任务分配计算节点时,优先选择为所述第一任务分配的计算节点,所述第二任务为根据所述任务拓扑关系确定出的所述第一任务的下一个任务。
20.根据权利要求15-19任一项所述的装置,其特征在于,所述分配模块在为每个所述数据分配缓存节点时,具体用于:
确定每个任务对涉及的每个数据所需的副本数量,为每个所述数据的副本分配缓存节点。
21.根据权利要求20所述的装置,其特征在于,所述分配策略还包括:
若第一任务涉及的第一数据也是第三任务涉及的数据,且所述第一任务对所述第一数据所需的副本数量大于所述第三任务对所述第一数据所需的副本数量,优先将为所述第三任务分配的计算节点作为所述第一数据的一个副本的缓存节点。
22.根据权利要求15-21任一项所述的装置,其特征在于,所述任务拓扑关系还包括每个任务所需的计算资源。
23.根据权利要求15-22任一项所述的装置,其特征在于,所述装置还包括更新模块;
在所述分配模块在为每个所述任务分配计算节点之后,所述更新模块用于根据每个所述任务所需的计算资源,更新存储的所述计算节点的可用计算资源。
24.根据权利要求15-23任一项所述的装置,其特征在于,所述装置还包括扩容模块,用于:
根据所述多个任务所需的计算资源,确定当前全部可用的计算资源是否能够满足当前的计算需求,若不满足,对计算资源进行扩容;和/或
根据所述数据的大小,确定当前全部可用的缓存资源大小是否能够满足当前的缓存需求,若不满足,对缓存资源进行扩容。
25.根据权利要求15-24任一项所述的装置,其特征在于,所述装置还包括缩容模块,用于:
若确定当前计算资源的使用率小于或等于预设阈值,释放预设大小或预设比例的计算资源;和/或
若确定当前缓存资源使用率小于或等于预设阈值,释放预设大小或预设比例的缓存资源。
26.根据权利要求15-25任一项所述的装置,其特征在于,所述装置还包括预热模块,用于:
确定所述多个任务涉及的初始数据;
将所述初始数据从远端集群缓存至本地集群中。
27.根据权利要求15-26任一项所述的装置,其特征在于,所述装置应用于云原生分布式缓存平台中。
28.根据权利要求15-27任一项所述的装置,其特征在于,所述任务拓扑关系满足有向无环关系。
29.一种计算资源和缓存资源调度设备,其特征在于,所述设备包括:处理器,以及分别与所述处理器耦合的存储器和通信接口;
所述存储器,存储有指令或程序;
所述通信接口,用于与其他设备进行通信;
所述处理器,用于运行所述存储器内的指令或程序,通过所述通信接口执行如权利要求1-14任一项所述的方法。
30.一种计算资源和缓存资源调度系统,其特征在于,所述系统包括如权利要求15-28任一项所述的计算资源和缓存资源调度装置。
31.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-14任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111602511.7A CN116339968A (zh) | 2021-12-24 | 2021-12-24 | 一种计算资源和缓存资源调度方法、装置及系统 |
PCT/CN2022/141570 WO2023116910A1 (zh) | 2021-12-24 | 2022-12-23 | 一种计算资源和缓存资源调度方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111602511.7A CN116339968A (zh) | 2021-12-24 | 2021-12-24 | 一种计算资源和缓存资源调度方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116339968A true CN116339968A (zh) | 2023-06-27 |
Family
ID=86891695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111602511.7A Pending CN116339968A (zh) | 2021-12-24 | 2021-12-24 | 一种计算资源和缓存资源调度方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116339968A (zh) |
WO (1) | WO2023116910A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093004B2 (en) * | 2002-02-04 | 2006-08-15 | Datasynapse, Inc. | Using execution statistics to select tasks for redundant assignment in a distributed computing platform |
CN105718479B (zh) * | 2014-12-04 | 2020-02-28 | 中国电信股份有限公司 | 跨idc大数据处理架构下执行策略生成方法、装置 |
CN108241530A (zh) * | 2016-12-23 | 2018-07-03 | 西北大学 | 一种基于Storm的流式计算二分图任务调度方法 |
CN112202837B (zh) * | 2020-09-04 | 2022-05-17 | 苏州浪潮智能科技有限公司 | 一种基于数据集与节点缓存的调度方法和装置 |
CN113590301A (zh) * | 2021-09-30 | 2021-11-02 | 苏州浪潮智能科技有限公司 | 一种深度学习业务的任务调度方法及相关装置 |
-
2021
- 2021-12-24 CN CN202111602511.7A patent/CN116339968A/zh active Pending
-
2022
- 2022-12-23 WO PCT/CN2022/141570 patent/WO2023116910A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023116910A1 (zh) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990561B2 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
US9135060B2 (en) | Method and apparatus for migrating task in multicore platform | |
US9430388B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
CN109144710B (zh) | 资源调度方法、装置及计算机可读存储介质 | |
JP6138774B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
JP6370218B2 (ja) | メモリ管理方法、コンピュータシステム、コンピュータプログラム及び記憶媒体 | |
US10747673B2 (en) | System and method for facilitating cluster-level cache and memory space | |
JP5980916B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
US10909072B2 (en) | Key value store snapshot in a distributed memory object architecture | |
JP2009032252A (ja) | クラッシュダンプ用のメモリアロケーション | |
US10019363B2 (en) | Persistent memory versioning and merging | |
CN110597614B (zh) | 一种资源调整方法及装置 | |
US20170344398A1 (en) | Accelerator control device, accelerator control method, and program storage medium | |
US6985976B1 (en) | System, method, and computer program product for memory management for defining class lists and node lists for allocation and deallocation of memory blocks | |
JP2009512948A (ja) | ストレージサーバにおけるスループットを増加させる方法および装置 | |
US20140289739A1 (en) | Allocating and sharing a data object among program instances | |
CN107220069B (zh) | 一种针对非易失性内存的Shuffle方法 | |
CN116339968A (zh) | 一种计算资源和缓存资源调度方法、装置及系统 | |
US20220318042A1 (en) | Distributed memory block device storage | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN112230901B (zh) | 一种基于异步io模型的网络编程框架系统及方法 | |
US11169720B1 (en) | System and method for creating on-demand virtual filesystem having virtual burst buffers created on the fly | |
KR102456017B1 (ko) | 응용 프로그램간 파일 공유 장치 및 방법 | |
CN114327868B (zh) | 一种内存动态调控方法、装置、设备及介质 | |
TWI826137B (zh) | 電腦系統、應用於電腦系統的資源分配方法及執行資源分配方法的電腦程式產品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |