CN111966481A - 一种适用于多租户场景的并行计算管理方法及系统 - Google Patents
一种适用于多租户场景的并行计算管理方法及系统 Download PDFInfo
- Publication number
- CN111966481A CN111966481A CN202010922040.7A CN202010922040A CN111966481A CN 111966481 A CN111966481 A CN 111966481A CN 202010922040 A CN202010922040 A CN 202010922040A CN 111966481 A CN111966481 A CN 111966481A
- Authority
- CN
- China
- Prior art keywords
- task
- memory
- computing node
- current
- 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.)
- Withdrawn
Links
- 238000007726 management method Methods 0.000 title claims abstract description 31
- 238000005192 partition Methods 0.000 claims abstract description 47
- 238000004064 recycling Methods 0.000 claims abstract description 9
- 238000004140 cleaning Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/5016—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 the resource being the memory
-
- 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]
- 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
- G06F9/505—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 considering the load
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)
Abstract
本发明提供一种适用于多租户场景的并行计算管理方法及系统,该方法包括如下步骤:S1:接收到用户提交的任务M后,解析任务M所需的硬件资源;S2:判断当前集群计算节点资源是否满足任务M所需的硬件资源;S3:判断当前内存空间是否存在优先级低于任务M的优先级的任务;S4:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;执行步骤S5;S5:在各计算节点内存空间中开辟内存分区,下发并行任务M;执行步骤S6;S6:任务M结束后,判断是否立即回收内存;若是,回收内存;S7:将任务M放入等待队列,设定时间后,执行步骤S2。实现大批量任务的灵活调度,在任务结束后能够快速的资源清理与回收。
Description
技术领域
本发明涉及计算集群管理技术领域,具体涉及一种适用于多租户场景的并行计算管理方法及系统。
背景技术
目前主流的并行计算管理系统,如Slurm,已经集成了针对用户进行计量管理的功能,具备了不同用户不同管理策略的雏形。但是,这种功能相对简单,主要实现方式是根据并行计算系统中,管理节点所在操作系统登陆的用户名,来判断能够使用的物理计算集群,以限制其能够使用的物理资源(通常以单台设备为最小单位)。
但是,在云计算与云服务飞速发展的今天,并行计算已经不仅仅局限在特定的超算中心,而是应该可以通过服务的方式向多租户同时提供服务,在这种场景下,并行计算管理系统需要做出很多改变。例如:1)计算任务不能再仅仅是传统的独占方式(在运行结束前,无法停止或者迁移),而是应该能够进行灵活的调度与迁移。2)对于不再使用服务的用户,其之前使用的物理资源应该能够得到快速的释放与清理,以迅速提供给其他用户使用。
发明内容
针对现有的并行计算管理系统中存在计算任务在运行结束前,无法停止或者迁移以及使用完成后不能即使释放清理的问题,本发明提供一种适用于多租户场景的并行计算管理方法及系统。
本发明的技术方案是:
一方面,本发明技术方案提供一种适用于多租户场景的并行计算管理方法,包括如下步骤:
S1:接收到用户提交的任务M后,解析任务M所需的硬件资源;
S2:判断当前集群计算节点资源是否满足任务M所需的硬件资源;若是,执行步骤S5;若否,执行步骤S3;
S3:判断当前内存空间是否存在优先级低于任务M的优先级的任务,若是,执行步骤S4;若否,执行步骤S7;
S4:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;执行步骤S5;
S5:在各计算节点内存空间中开辟内存分区,下发并行任务M;执行步骤S6;
S6:任务M结束后,判断是否立即回收内存,若是,回收内存,若否,结束;
S7:将任务M放入等待队列,设定时间后,执行步骤S2。
进一步的,步骤S4中,将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起的步骤包括:
S41:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;多租户场景下,出现资源紧张,或者租户任务优先级不同的情况时,可能对现有任务进行迁移或者挂起,以满足更高优先级任务的执行;
S42:任务进行迁移或挂起后,获取当前集群节点资源;
S43:判断当前集群节点资源是否满足任务M所需的硬件资源,若是,执行步骤S5;若否,执行步骤S7。
进一步的,步骤S6中,任务M结束后,判断是否立即回收内存的步骤包括:
S61:任务M结束后,获取已结束任务在各个计算节点中的内存占用情况;
S62:判断整个集群负载是否低于设定阈值,若是,执行步骤S63;若否,执行步骤S64;
S63:直接清理任务M对应的内存分区;
S64:清理任务M对应的内存分区,并将集群内其他任务所占的分区前移到内存区域头部。以减少内存碎片,为后续的任务内存分配提供条件。
进一步的,该方法还包括:
清理任务M对应的内存分区后,获取当前集群计算节点上运行的任务的内存;
计算各个计算节点上运行的任务的内存总和;
判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点,若是,将各个计算节点上运行的任务迁移到该计算节点上。
进一步的,判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点,若是,将各个计算节点上运行的任务迁移到该计算节点上的步骤还包括:
判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点;
若是,将每个计算节点的空闲内存空间分别与计算的内存总和做差;将各个计算节点上运行的任务迁移到差值最小的计算节点上。以优化整个集群的内存布局。
进一步的,步骤S5中,在各计算节点内存空间中开辟内存分区的步骤包括:
在各计算节点内存空间中开辟内存分区;
每个内存分区设置具有任务与用户相关的标识信息的数据头部;方便任务所占内存能够回收线程快速且精准的回收;
基于内存分区的数据头部,对内存进行基于用户或者任务的开辟与预留。用户可以长时间占用某一内存区域,这样的好处之一,就是下次执行相同任务时,不再需要内存预热,比如:用户的核心代码可能需要编译并加载到内存,如果能够保留这段内存区域,那么相关编译与优化好的代码,就能够直接运行,提升效率。
进一步的,将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起的步骤中,将当前内存空间内优先级低于任务M的优先级的任务进行迁移包括:
通过计算节点之间的高速网络,将内存分区直接拷贝到其他计算节点的空闲内存区域;
将当前内存空间内优先级低于任务M的优先级的任务进行挂起的步骤包括:
内存分区进行快照,存储到本地高速硬盘中;
当优先级高的任务或者更占用内存的任务结束执行并释放内存时,再将任务还原到内存中继续运行。
进一步的,标识信息包括内存分区所属的任务ID、内存分区所属的用户ID、当所属的用户不再活跃或者任务结束时,是否保留此内存区域不被回收。
另一方面,本发明技术方案提供一种适用于多租户场景的并行计算管理系统,包括任务解析模块、资源判断模块、优先级判断模块、预处理模块、任务下发模块、资源回收判断模块、处理模块;
任务解析模块,用于接收到用户提交的任务M后,解析任务M所需的硬件资源;
资源判断模块,用于判断当前集群计算节点资源是否满足任务M所需的硬件资源;
优先级判断模块,用于判断当前内存空间是否存在优先级低于任务M的优先级的任务;
预处理模块,用于将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
任务下发模块,用于在各计算节点内存空间中开辟内存分区,下发并行任务M;
资源回收判断模块,用于任务M结束后,判断是否立即回收内存;
处理模块,用于将任务M放入等待队列,设定时间后,触发资源判断模块再次进行当前集群计算节点资源是否满足任务M所需的硬件资源的判断。
进一步的,预处理模块包括任务处理单元、资源获取单元;
任务处理单元,用于将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
资源获取单元,用于任务进行迁移或挂起后,获取当前集群计算节点资源;
资源判断模块,用于判断资源获取单元获取的当前集群节点资源是否满足任务M所需的硬件资源。
从以上技术方案可以看出,本发明具有以下优点:通过对并行计算集群的计算资源进行深度管理,实现大批量任务的灵活调度,在任务结束后能够快速的资源清理与回收。能够在并行计算集群的各个节点上,实现细颗粒度的硬件资源(如内存Region)的分配,预留,调度与清理。同时提供统一的集群控制层,能够基于用户权限实现底层任务的调度,能够基于session实现基于用户的快速内存清理,能够在集群层面对整个集群的内存region分配进行动态优化与调整。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的方法的示意性流程图。
图3是本发明一个实施例的方法的内存回收示意图。
图4是本发明一个实施例的系统的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。下面对本发明中出现的关键术语进行解释。
如图1所示,本发明实施例提供一种适用于多租户场景的并行计算管理方法,包括如下步骤:
S1:接收到用户提交的任务M后,解析任务M所需的硬件资源;
S2:判断当前集群计算节点资源是否满足任务M所需的硬件资源;若是,执行步骤S5;若否,执行步骤S3;
S3:判断当前内存空间是否存在优先级低于任务M的优先级的任务,若是,执行步骤S4;若否,执行步骤S7;
S4:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;执行步骤S5;
S5:在各计算节点内存空间中开辟内存分区,下发并行任务M;执行步骤S6;
S6:任务M结束后,判断是否立即回收内存;若是,回收内存,若否,结束;
S7:将任务M放入等待队列,设定时间后,执行步骤S2。
能够在并行计算集群的操作系统层面,实现对计算资源的灵活管理;同时提供统一的控制端,基于session进行活跃用户管理,实现资源的快速分配与清理;计算节点层部署在并行计算集群的每个节点上,实现对节点计算资源的深度管理,例如内存分区。相对于传统的slurm,此层面的创新点在于:管理软件不再是部署在操作系统之上,而是基于操作系统内核进行深度定制,减少了频繁的内核调用带来的开销。本层面不同于传统的虚拟化层,如Vmware的Esxi,体现在:能够对底层计算节点的内存进行分区管理,垃圾回收,内存碎片整合。内存快照管理。能够实现底层计算节点之间的内存迁移。
控制层能够对并行计算集群的所有节点进行统一的管理,实现任务的各种调度(例如,任务挂起,任务迁移)。同时,提供基于session的活跃用户管理,当用户不再活跃时,提供快速的基于session的内存清理与碎片化整合。需要说明的是,session:称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个session对象。当会话过期或被放弃后,服务器将终止该会话。session对象最常见的一个用法就是存储用户的首选项。
如图2所示,在有些实施例中,步骤S4中,将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起的步骤包括:
S41:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;多租户场景下,出现资源紧张,或者租户任务优先级不同的情况时,可能对现有任务进行迁移或者挂起,以满足更高优先级任务的执行;
S42:任务进行迁移或挂起后,获取当前集群节点资源;
S43:判断当前集群节点资源是否满足任务M所需的硬件资源,若是,执行步骤S5;若否,执行步骤S7。
迁移是指通过节点之间的高速网络,将内存分区直接拷贝到其他节点的空闲内存区域。
挂起是指对内存分区进行快照,存储到本地高速硬盘中。当优先级高的任务或者更占用内存的任务结束执行并释放时,再将任务还原到内存中继续运行。
在有些实施例中,时刻伴随着旧任务的结束,因此会产生很多的内存碎片,同时新任务下发时,也需要开辟足够的内存空间,因此需要高效的内存清理进程对内存时刻进行整理。步骤S6中,任务M结束后,判断是否立即回收内存的步骤包括:
S61:任务M结束后,获取已结束任务在各个计算节点中的内存占用情况;当任务结束时,集群控制层能够感知到,首先根据控制层的内存使用情况映射表,获取到已结束任务在各个计算节点中的内存占用情况;
S62:判断整个集群负载是否低于设定阈值,若是,执行步骤S63;若否,执行步骤S64;
S63:直接清理任务M对应的内存分区;在整个计算集群负载较低的情况下,只需要直接清理任务对应的内存Region即可,例如对于节点1,直接清理即可。但是,如果集群的内存负载较高时,对于节点n,由于存在空闲的内存碎片,因此需要将任务A和任务B所占的Region前移到内存区域头部。
为后续大任务的分配做准备;
S64:清理任务M对应的内存分区,并将集群内其他任务所占的分区前移到内存区域头部。以减少内存碎片,为后续的任务内存分配提供条件。
首先会在底层计算节点的内存空间中,开辟一大块可用区域。然后,以4G为基本单位划分为多个分区(Region)。当任务到来时,会为任务开辟独立的连续分区。
当某个任务结束时,或者需要释放某个任务所占的内存时,计算节点层的内存整理进程,会对内存分区进行标记清理,以减少内存碎片,为后续的任务内存分配提供条件。如图3所示,任务B结束后,所占内存区域被清理,任务C所占内存区域前移;任务所占内存之所以能够回收线程快速且精准的回收,取决于分区Region的数据头部,具有任务与用户相关的标识信息;这里只举例一些参数:
1)TaskId:内存Region所属的任务ID;
2)UserId:内存Region所属的用户ID;
3)Reserved:当所属的用户不再活跃或者任务结束时,是否保留此内存区域不被回收;
4)Reserve_time:如果保留,保存的时间。
在有些实施例中,该方法还包括:
清理任务M对应的内存分区后,获取当前集群计算节点上运行的任务的内存;
计算各个计算节点上运行的任务的内存总和;
判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点,若是,将各个计算节点上运行的任务迁移到该计算节点上。
如果集群的内存负载非常高,此时,一个任务的结束,往往会导致多个节点的内存出现碎片,仅仅向每个结算节点下发针对自身的内存整理任务已经不是最优的方案了。此时,集群控制层可以分析出整个集群的内存布局,进行一些小任务的整体迁移,例如,将n个节点上运行的小任务,统一迁移到个节点上(前提是节点的其他物理资源,例如CPU能够满足所有任务的需求总和),以优化整个集群的内存布局。这种集群级别的优化,是能够在集群控制层进行相关的参数设置的,相关参数举例如下:
1)EnableClusterMemOpt:是否开启集群级别的内存优化。
2)ClusterMemOptThres:集群级别内存优化的阈值。如果不设置,集群控制层将动态进行优化。
在有些实施例中,判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点,若是,将各个计算节点上运行的任务迁移到该计算节点上的步骤还包括:
判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点;
若是,将每个计算节点的空闲内存空间分别与计算的内存总和做差;将各个计算节点上运行的任务迁移到差值最小的计算节点上。以优化整个集群的内存布局。
在有些实施例中,步骤S5中,在各计算节点内存空间中开辟内存分区的步骤包括:
在各计算节点内存空间中开辟内存分区;
每个内存分区设置具有任务与用户相关的标识信息的数据头部;方便任务所占内存能够回收线程快速且精准的回收;
基于内存分区的数据头部,对内存进行基于用户或者任务的开辟与预留。用户可以长时间占用某一内存区域,这样的好处之一,就是下次执行相同任务时,不再需要内存预热,比如:用户的核心代码可能需要编译并加载到内存,如果能够保留这段内存区域,那么相关编译与优化好的代码,就能够直接运行,提升效率。
当登陆的用户不再活跃时,会表现为session失效,此时,控制层能够根据session与用户的相关信息,快速定位到每个节点对应的内存区域,对其触发清理操作。
如图4所示,本发明技术方案提供一种适用于多租户场景的并行计算管理系统,包括任务解析模块、资源判断模块、优先级判断模块、预处理模块、任务下发模块、资源回收判断模块、处理模块;
任务解析模块,用于接收到用户提交的任务M后,解析任务M所需的硬件资源;
资源判断模块,用于判断当前集群计算节点资源是否满足任务M所需的硬件资源;
优先级判断模块,用于判断当前内存空间是否存在优先级低于任务M的优先级的任务;
预处理模块,用于将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
任务下发模块,用于在各计算节点内存空间中开辟内存分区,下发并行任务M;
资源回收判断模块,用于任务M结束后,判断是否立即回收内存;
处理模块,用于将任务M放入等待队列,设定时间后,触发资源判断模块再次进行当前集群计算节点资源是否满足任务M所需的硬件资源的判断。
在有些事实例中,预处理模块包括任务处理单元、资源获取单元;
任务处理单元,用于将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
资源获取单元,用于任务进行迁移或挂起后,获取当前集群计算节点资源;
资源判断模块,用于判断资源获取单元获取的当前集群节点资源是否满足任务M所需的硬件资源。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种适用于多租户场景的并行计算管理方法,其特征在于,包括如下步骤:
S1:接收到用户提交的任务M后,解析任务M所需的硬件资源;
S2:判断当前集群计算节点资源是否满足任务M所需的硬件资源;若是,执行步骤S5;若否,执行步骤S3;
S3:判断当前内存空间是否存在优先级低于任务M的优先级的任务,若是,执行步骤S4;若否,执行步骤S7;
S4:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;执行步骤S5;
S5:在各计算节点内存空间中开辟内存分区,下发并行任务M;执行步骤S6;
S6:任务M结束后,判断是否立即回收内存;若是,回收内存,若否,结束;
S7:将任务M放入等待队列,设定时间后,执行步骤S2。
2.根据权利要求1所述的适用于多租户场景的并行计算管理方法,其特征在于,步骤S4中,将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起的步骤包括:
S41:将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
S42:任务进行迁移或挂起后,获取当前集群节点资源;
S43:判断当前集群节点资源是否满足任务M所需的硬件资源,若是,执行步骤S5;若否,执行步骤S7。
3.根据权利要求1所述的适用于多租户场景的并行计算管理方法,其特征在于,步骤S6中,任务M结束后,判断是否立即回收内存的步骤包括:
S61:任务M结束后,获取已结束任务在各个计算节点中的内存占用情况;
S62:判断整个集群负载是否低于设定阈值,若是,执行步骤S63;若否,执行步骤S64;
S63:直接清理任务M对应的内存分区;
S64:清理任务M对应的内存分区,并将集群内其他任务所占的分区前移到内存区域头部。
4.根据权利要求3所述的适用于多租户场景的并行计算管理方法,其特征在于,该方法还包括:
清理任务M对应的内存分区后,获取当前集群计算节点上运行的任务的内存;
计算各个计算节点上运行的任务的内存总和;
判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点,若是,将各个计算节点上运行的任务迁移到该计算节点上。
5.根据权利要求4所述的适用于多租户场景的并行计算管理方法,其特征在于,判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点,若是,将各个计算节点上运行的任务迁移到该计算节点上的步骤还包括:
判断当前集群中是否存在空闲内存空间大于计算的内存总的计算节点;
若是,将每个计算节点的空闲内存空间分别与计算的内存总和做差;将各个计算节点上运行的任务迁移到差值最小的计算节点上。
6.根据权利要求4所述的适用于多租户场景的并行计算管理方法,其特征在于,步骤S5中,在各计算节点内存空间中开辟内存分区的步骤包括:
在各计算节点内存空间中开辟内存分区;
每个内存分区设置具有任务与用户相关的标识信息的数据头部;
基于内存分区的数据头部,对内存进行基于用户或者任务的开辟与预留。
7.根据权利要求4所述的适用于多租户场景的并行计算管理方法,其特征在于,将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起的步骤中,将当前内存空间内优先级低于任务M的优先级的任务进行迁移包括:
通过计算节点之间的高速网络,将内存分区直接拷贝到其他计算节点的空闲内存区域;
将当前内存空间内优先级低于任务M的优先级的任务进行挂起的步骤包括:
内存分区进行快照,存储到本地高速硬盘中;
当优先级高的任务或者更占用内存的任务结束执行并释放内存时,再将任务还原到内存中继续运行。
8.根据权利要求6所述的适用于多租户场景的并行计算管理方法,其特征在于,标识信息包括内存分区所属的任务ID、内存分区所属的用户ID、当所属的用户不再活跃或者任务结束时,是否保留此内存区域不被回收。
9.一种适用于多租户场景的并行计算管理系统,其特征在于,包括任务解析模块、资源判断模块、优先级判断模块、预处理模块、任务下发模块、资源回收判断模块、处理模块;
任务解析模块,用于接收到用户提交的任务M后,解析任务M所需的硬件资源;
资源判断模块,用于判断当前集群计算节点资源是否满足任务M所需的硬件资源;
优先级判断模块,用于判断当前内存空间是否存在优先级低于任务M的优先级的任务;
预处理模块,用于将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
任务下发模块,用于在各计算节点内存空间中开辟内存分区,下发并行任务M;
资源回收判断模块,用于任务M结束后,判断是否立即回收内存;
处理模块,用于将任务M放入等待队列,设定时间后,触发资源判断模块再次进行当前集群计算节点资源是否满足任务M所需的硬件资源的判断。
10.根据权利要求9所述的适用于多租户场景的并行计算管理系统,其特征在于,预处理模块包括任务处理单元、资源获取单元;
任务处理单元,用于将当前内存空间内优先级低于任务M的优先级的任务进行迁移或挂起;
资源获取单元,用于任务进行迁移或挂起后,获取当前集群计算节点资源;
资源判断模块,用于判断资源获取单元获取的当前集群节点资源是否满足任务M所需的硬件资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010922040.7A CN111966481A (zh) | 2020-09-04 | 2020-09-04 | 一种适用于多租户场景的并行计算管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010922040.7A CN111966481A (zh) | 2020-09-04 | 2020-09-04 | 一种适用于多租户场景的并行计算管理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111966481A true CN111966481A (zh) | 2020-11-20 |
Family
ID=73392113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010922040.7A Withdrawn CN111966481A (zh) | 2020-09-04 | 2020-09-04 | 一种适用于多租户场景的并行计算管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966481A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948079A (zh) * | 2021-02-18 | 2021-06-11 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN113867943A (zh) * | 2021-09-15 | 2021-12-31 | 中国电子科技集团公司第十四研究所 | 一种基于嵌入式系统的雷达软件内存分配方法 |
-
2020
- 2020-09-04 CN CN202010922040.7A patent/CN111966481A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948079A (zh) * | 2021-02-18 | 2021-06-11 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN112948079B (zh) * | 2021-02-18 | 2022-06-28 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN113867943A (zh) * | 2021-09-15 | 2021-12-31 | 中国电子科技集团公司第十四研究所 | 一种基于嵌入式系统的雷达软件内存分配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7810099B2 (en) | Optimizing workflow execution against a heterogeneous grid computing topology | |
US9977689B2 (en) | Dynamic scaling of management infrastructure in virtual environments | |
CN107273185B (zh) | 一种基于虚拟机的负载均衡控制方法 | |
EP2802998B1 (en) | Assignment of resources in virtual machine pools | |
US9442760B2 (en) | Job scheduling using expected server performance information | |
US9201695B2 (en) | Computer system and control method for acquiring required resources | |
JP6254948B2 (ja) | 分散コンピューティング環境内で仮想マシンのプールにジョブを割り当て仮想マシン上でタスクを実行するための方法、プログラム、プログラムを格納した記憶媒体、及びシステム | |
US6353844B1 (en) | Guaranteeing completion times for batch jobs without static partitioning | |
US7765545B2 (en) | Method for automatically imparting reserve resource to logical partition and logical partitioned computer system | |
US9218213B2 (en) | Dynamic placement of heterogeneous workloads | |
CN110888714B (zh) | 容器的调度方法、装置和计算机可读存储介质 | |
Chatzistergiou et al. | Fast heuristics for near-optimal task allocation in data stream processing over clusters | |
US20130179894A1 (en) | Platform as a service job scheduling | |
US20090276781A1 (en) | System and method for multi-level preemption scheduling in high performance processing | |
JP2015507279A (ja) | Paas階層スケジューリングおよび自動スケーリング | |
JP2015511341A (ja) | 仮想マシンプールにおけるリソースの価格設定 | |
US20160239322A1 (en) | Computer system and control method for computer system | |
US20170052826A1 (en) | Resource management device and resource management method | |
CN111966481A (zh) | 一种适用于多租户场景的并行计算管理方法及系统 | |
US20230055813A1 (en) | Performing resynchronization jobs in a distributed storage system based on a parallelism policy | |
JP2017138895A (ja) | 仮想化環境管理システムおよび仮想化環境管理方法 | |
CN110084507B (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
Zhou et al. | Energy-efficient speculative execution using advanced reservation for heterogeneous clusters | |
CN111580951A (zh) | 一种任务分配方法及资源管理平台 | |
CN112395052A (zh) | 一种面向混合负载基于容器的集群资源管理方法及系统 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201120 |
|
WW01 | Invention patent application withdrawn after publication |