CN110704186B - 基于混合分布架构的计算资源分配方法、装置和存储介质 - Google Patents

基于混合分布架构的计算资源分配方法、装置和存储介质 Download PDF

Info

Publication number
CN110704186B
CN110704186B CN201910908595.3A CN201910908595A CN110704186B CN 110704186 B CN110704186 B CN 110704186B CN 201910908595 A CN201910908595 A CN 201910908595A CN 110704186 B CN110704186 B CN 110704186B
Authority
CN
China
Prior art keywords
resource
resources
manager
computing
task
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
CN201910908595.3A
Other languages
English (en)
Other versions
CN110704186A (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.)
National Computer Network and Information Security Management Center
Original Assignee
National Computer Network and Information Security Management Center
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 National Computer Network and Information Security Management Center filed Critical National Computer Network and Information Security Management Center
Priority to CN201910908595.3A priority Critical patent/CN110704186B/zh
Publication of CN110704186A publication Critical patent/CN110704186A/zh
Application granted granted Critical
Publication of CN110704186B publication Critical patent/CN110704186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5027Allocation 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种基于混合计算资源的分布式计算系统,用以合理分配资源,满足计算任务多样性的需求,所述系统包括计算引擎层和资源调度层,其中:所述计算引擎层由多个构建在同一个Spark计算引擎上的深度学习框架组成,针对所述计算引擎层统一封装各个深度学习框架的访问接口;所述资源调度层包括多种异构计算资源,所述异构计算资源包括以下至少一项:CPU、GPU和FPGA;在所述资源调度层,根据待处理任务的任务类型划分不同的任务队列,根据不同物理机搭载的计算资源类型划分不同的逻辑集群,根据待处理任务的任务类,将任务队列中的任务分配到对应的逻辑集群中执行。

Description

基于混合分布架构的计算资源分配方法、装置和存储介质
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种基于混合分布架构的计算资源分配方法、装置和存储介质。
背景技术
大数据技术的兴起,再一次激发了人工智能的生命力。2016年的围棋大战又一次引爆了人工智能的热潮,正是因为有着成熟稳定的大数据技术支撑,才能完成AlphaGo背后海量的计算任务。Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是,Job中间输出结果可以保存在内存中,从而不再需要读写HDFS(分布式文件系统),因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的的算法。近些年来很多构建于Spark之上的深度学习框架被提出,虽然它们均是架设在Spark上的,但配置过程与使用接口均不相同,多个框架同时使用时亦会发生资源抢占的情况。另一方面,传统的计算机运算处理核心资源一般是指中央处理器(CPU),但是,随着人工智能等技术的发展,计算需求也呈现多样性,单纯的CPU已然无法满足计算任务的实时性要求。
发明内容
本发明要解决的技术问题是,提供一种基于混合分布架构的计算资源分配方法、装置和存储介质计算,用以合理分配资源,满足计算任务多样性的需求。
本发明采用的技术方案是,提供一种基于混合计算资源的分布式计算系统,包括计算引擎层、混合计算封装层和资源调度层,其中:
所述计算引擎层由多个构建在同一个Spark计算引擎上的深度学习框架组成;
所述混合计算封装层,用于针对所述计算引擎层统一封装各个深度学习框架的访问接口;
所述资源调度层包括多种异构计算资源,所述异构计算资源包括以下至少一项:中央处理单元CPU、图形处理单元GPU和现场可编程门阵列FPGA;在所述资源调度层,根据待处理任务的任务类型划分不同的任务队列,根据不同物理机搭载的计算资源类型划分不同的逻辑集群中,根据待处理任务的任务类,将任务队列中的任务分配到对应的逻辑集群中执行。
所述资源调度层,具体用于根据为物理机标注机器标签,将物理机划分不同的逻辑集群,所述机器标签为根据物理机搭载的计算资源类型标注的;根据处理的任务类型,为不同的任务队列添加队列标签;针对任一任务队列,根据该任务队列对应的队列标签,将该任务队列中的任务调度到具有与所述队列标签相同标签的物理机上执行。
所述资源调度层包括节点管理器和资源管理器,所述节点管理器部署于每一物理机上,所述资源管理器部署于其中一台物理机上,其中:
所述节点管理器,用于向所述资源管理器发送注册请求,所述注册请求中携带有自身所在物理机的可用资源信息,所述可用资源信息包括以下至少一项:CPU总量,内存总量,GPU虚拟数量和FPGA虚拟数量。
所述节点管理器,还用于在系统运行过程中,向所述资源管理器上报自身所在物理机的资源状态信息,所述资源状态信息包括空闲资源信息和已分配资源信息;
所述资源管理器,还用于根据各个节点管理器上报的资源状态信息,为任务队列中的任务调度资源。
所述资源管理器,具体用于针对每一任务队列,分别确定每一任务队列对应的资源占用份额;根据确定出的资源占用份额,按照由小到大的顺序为任务队列调度资源。
所述计算引擎层,还用于通过所述访问接口接收用户请求,根据所述用户请求中携带的请求参数,为所述用户请求启动相应的深度学习框架。
所述深度学习框架,还用于根据所述用户请求,向所述资源管理器发送资源调度请求,所述资源调度请求中携带有资源需求信息;
所述资源管理器,还用于根据各个节点管理器的资源状态信息和所述资源需求信息,针对所述资源调度请求分配对应的节点管理器;向分配的节点管理器发送容器启动命令;
所述节点管理器,具体用于如果根据所述资源需求信息,判断出所述容器启动需要加速资源,则从空闲加速资源列表中查找空闲加速资源启动容器。
所述节点管理器,还用于减少维护的空闲加速资源数量,并在已分配加速资源列表中记录容器标识和为其分配的加速资源数量之间的对应关系。
所述节点管理器,还用于在检测到所述容器运行结束时,如果判断出所述容器中含有加速资源,则根据容器标识,从已分配加速资源列表中查找为所述容器分类的加速资源数量,根据查找到的加速资源数量,在空闲加速资源列表中增加相应数量的加速资源。
所述节点管理器,还用于从所述已分配加速资源列表中删除记录的容器标识和为其分配的加速资源数量之间的对应关系。
采用上述技术方案,本发明至少具有下列优点:
本发明所述基于混合计算资源的分布式计算系统,将多个深度学习框架构建在同一个Spark计算引擎上,并提供统一的访问接口,从而可以屏蔽各框架件不同的调用接口,为用户提供了统一且精简的访问方式;在底层,通过根据待处理任务的任务类型划分不同的任务队列,根据不同物理机搭载的计算资源类型划分不同的逻辑集群中,根据待处理任务的任务类,将任务队列中的任务分配到对应的逻辑集群中执行,实现了资源的合理分配,从而完成了异构资源高效灵活的调度,满足了计算任务多样性的需求。
附图说明
图1为本发明实施例的基于混合计算资源的分布式计算系统结构图;
图2为本发明实施例的队列与集群划分结构示意图;
图3为本发明实施例的资源调度过程示意图;
图4为本发明实施例的YARN树形层级队列示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
如图1所示,其为本发明实施例提供的基于混合计算资源的分布式计算系统,包括计算引擎层11、混合计算封装层13和资源调度层12,其中:
所述计算引擎层11由多个构建在同一个Spark计算引擎上的深度学习框架组成;
所述混合计算封装层13,用于针对所述计算引擎层11统一封装各个深度学习框架的访问接口;
所述资源调度层12包括多种异构计算资源,所述异构计算资源包括以下至少一项:中央处理单元CPU、图形处理单元GPU和现场可编程门阵列FPGA;在所述资源调度层12,根据待处理任务的任务类型划分不同的任务队列,根据不同物理机搭载的计算资源类型划分不同的逻辑集群中,根据待处理任务的任务类,将任务队列中的任务分配到对应的逻辑集群中执行。
具体实施时,在计算引擎层11部署的深度学习框架可以包括AngelOnSpark和TensorFlowOnSpark等。
其中,AngelOnSpark框架整体结构可以分为参数服务器层,Worker层与Model层,分别负责提供参数服务器服务,完成模型训练任务以和逻辑控制的功能。为了完成AngelOnSpark的部署,在完成Spark的部署后需要进行以下操作:
(1)解压angel-2.0-bin.zip;
(2)配置angel-2.0-bin/bin/spark-on-angel-env.sh下的SPARK_HOME,ANGEL_HOME,ANGEL_HDFS_HOME三个环境变量;
(3)将解压后的angel-2.0-bin目录上传到HDFS路径;
(4)导入环境脚本:source./spark-on-angel-env.sh;
(5)完成好Jar包配置。
TensorFlowOnSpark框架的架构较为简单,Spark Driver程序并不会参与TensorFlow内部相关的计算和处理。其设计思路像是将一个TensorFlow集群运行在了Spark上,其在每个Spark Executor中启动TensorFlow应用程序,然后通过gRPC(远程过程调用)或RDMA(远程直接数据存取)方式进行数据传递与交互。在完成Spark环境以及Python的安装后,执行pip install tensorflow tensorflowonspark即可完成部署。
本发明实施例提供的基于混合计算资源的分布式计算系统可以构建于Linux操作系统上,其面临着各框架接口不统一且较复杂的问题,为了解决这个问题,本发明实施例中,选择使用Shell脚本语言进行解决。Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高。通过借助Shell语言中的流程控制语句,可以使用一个Shell脚本作为整个系统的使用入口,根据用户输入的不同参数来选择应当启动哪个框架、执行哪些功能以及设定哪些参数。这样可以屏蔽各框架间不同的调用接口,向用户提供了一个统一且经过精简的访问方式,极大地方便了用户的学习和使用。基于此,计算引擎层,可以用于通过所述访问接口接收用户请求,根据用户请求中携带的请求参数,为所述用户请求启动相应的深度学习框架。
在资源调度层12,本发明实施例中,在扩展了底层硬件计算资源的基础上,采用按任务类型划分队列、按资源划分逻辑集群的方式进行计算资源的管理调度:将待处理任务按照任务类型划分到不同的任务队列,将物理机按照搭载不同的计算资源划分到不同的逻辑集群,将任务队列中的任务分配到对应的逻辑集群中进行计算。如图2所示,其为本发明实施例中,队列与集群划分结构示意图。
具体实施时,资源调度层,具体用于根据为物理机标注机器标签,将物理机划分不同的逻辑集群,所述机器标签为根据物理机搭载的计算资源类型标注的;根据处理的任务类型,为不同的任务队列添加队列标签;针对任一任务队列,根据该任务队列对应的队列标签,将该任务队列中的任务调度到具有与所述队列标签相同标签的物理机上执行。
具体地,使用物理标注的方法,为挂载不同计算资源的物理机打上不同的机器标签,并依据机器标签将物理机划分成为几个不同的逻辑集群。物理机的标注方法举例如下:Node 1(节点1)上不包含任何计算加速资源,则为Node 1打上normal标签,标识该节点只能负责运行无需加速的普通批处理与实时计算任务;如果Node 2上挂载了GPU(图形处理器)和/或FPGA(现场可编程门阵列)加速资源,则可以为该节点打上normal、分布式机器学习和分布式深度学习标签,表示该节点可以负责运行批处理计算任务、实时计算任务、机器学习任务和深度学习任务等。
设定了机器标签之后,整个集群中的物理机根据能够处理的任务被划分成了几个逻辑集群。每个节点(物理机)可以同时隶属于多个逻辑集群,每个逻辑集群用于处理一类计算任务。
具体实施时,通过在资源调度层部署节点管理器(NM,Node Manager)和资源管理器(RM,Resource Manager)来实现资源的调度。节点管理器部署于每一物理机上,资源管理器可以部署于其中一台物理机上。
在Resource Manager内部使用队列来抽象表示整个集群的资源。为了让需要加速的任务被提交到具有相应加速资源的逻辑集群中,可以按照任务类型,在ResourceManager上将整个集群资源组织到几个队列中,并为每个队列设置队列标签。利用基于标签的调度算法,提交到某个队列中的任务只能被调度到具有与队列标签相同标签的节点(物理机)上运行。资源队列的划分即是逻辑集群的划分,Resource Manager根据Node Manager标签将其归入到逻辑集群中。
具体实施时,Node Manager负责分配回收本机资源并负责资源的虚拟化,NodeManager可以使用虚拟个数的方式来表示本机的加速资源,并维护虚拟个数到实际加速资源文件路径的映射。
Node Manager在启动时向所述资源管理器发送注册请求,所述注册请求中携带有自身所在物理机的可用资源信息,所述可用资源信息包括以下至少一项:CPU总量,内存总量,GPU虚拟数量和FPGA虚拟数量。
具体地,YARN(Yet Another Resource Negotiator,另一种资源协调者)框架支持CPU和内存两种资源的管理和分配,Node Manager在启动时会向Resource Manager注册,注册时携带的信息包括CPU总量和内存总量,集群资源标识模型为<CPU,内存>。GPU与FPGA的使用首先需要在机器上完成两者驱动程序的装载。为了使YARN可以识别与调度GPU与FPGA,本发明实施例中需要对YARN的配置文件进行额外的配置:配置Resource-types.xml文件,为yarn.resource-types属性增加yarn.io/gpu和yarn.io/fpga值;配置yarn-site.xml文件,为yarn.nodemanager.resource-plugins属性增加yarn-io/GPU和yarn-io/fpga值,使得YARN可以发现并使用GPU和FPGA。在对现有的YARN框架进行资源扩展时,按照YARN平台中继承的计算框架的种类来确定扩展YARN平台中的资源表示。
由于整个集群中运行的计算框架的数目有限,并且在实际应用中多阶段计算框架需要的GPU和FPGA有限,可以事先确定整个集群中的资源表示维度。需要说明的是资源表示仅仅用于表示节点具有资源加速处理的能力,并没有限定该节点中的加速器能够英语该框架下的哪种具体作业的加速。指明节点能够加速哪种具体作业,是通过节点资源标签完成的。扩展资源模型中资源向量的维度只和计算框架的种类以及包含的处理步骤个数相关,和集群上运行的具体算法的种类无关。
在使用虚拟化资源过程中,需要同时使用同一个物理设备上的虚拟设备的计算进程的发送数据将在设备驱动程序的缓冲区中排队,等待物理设备空闲后处理。物理设备的处理结果将根据发送数据进程的ID返回到每个进程中。每个物理设备能够虚拟出多少个虚拟设备,需要根据设备的处理能力在后续实际搭建中调整。
具体实施时,节点管理器,还用于在系统运行过程中,向所述资源管理器上报自身所在物理机的资源状态信息,所述资源状态信息包括空闲资源信息和已分配资源信息;所述资源管理器,还用于根据各个节点管理器上报的资源状态信息,为任务队列中的任务调度资源。
此外,Node Manager提供配置文件接口共用户调整计算节点上的GPU和FPGA虚拟个数,CPU虚拟核数以及虚拟内存大小。
具体实施时,可以按照以下流程完成资源分配:深度学习框架,可以用于根据接收到的用户请求,向资源管理器发送资源调度请求,资源调度请求中携带有资源需求信息;资源管理器,可以用于根据各个节点管理器的资源状态信息和所述资源需求信息,针对资源调度请求分配对应的节点管理器;向分配的节点管理器发送容器启动命令;节点管理器,可以用于如果根据资源需求信息,判断出所述容器启动需要加速资源,则从空闲加速资源列表中查找空闲加速资源启动容器,并减少维护的空闲加速资源数量,并在已分配加速资源列表中记录容器标识和为其分配的加速资源数量之间的对应关系。在检测到所述容器运行结束时,如果节点管理器判断出该容器中含有加速资源,则根据容器标识,从已分配加速资源列表中查找为所述容器分类的加速资源数量,根据查找到的加速资源数量,在空闲加速资源列表中增加相应数量的加速资源,并从已分配加速资源列表中删除记录的容器标识和为其分配的加速资源数量之间的对应关系
例如,NM实例在启动时,除了向Resource Manager报告虚拟的CPU核数,内存容量之外,还需要按照集群资源表维度报告虚拟运算加速资源的数量,在收到来自ApplicationMaster(AM,应用控制器)的启动带有加速资源的计算容器的请求之后,Node Manager根据本地数据结构,完成虚拟加速资源向物理机位置的映射,并登记正在使用加速部资源的计算容器ID。计算容器运行结束之后回收虚拟资源,修改虚拟设备管理相关数据结构,并向Resource Manager报告虚拟资源余量。
原生YARN采用双层资源调度模型:在第一层中,Resource Manager的Scheduler(调度器)将资源分配给各个Application Master(AM,应用控制器);在第二层中,AM再进一步把申请到的资源分配给内部子任务。第二层的调度策略由AM设计者根据应用来进行设计,在此主要关注第一层资源的调度。
针对资源的调度算法,YARN中自带了三种常用的Scheduler,分别是FIFO(先进先出调度器),Capacity Scheduler(计算能力调度器)和Fair Scheduler(公平调度器)。其中Fair Scheduler内部使用的是DRF(Dominant Resource Fairness)多维资源调度算法,十分适用于异构复杂资源环境中。
因此,本发明实施例中,对YARN中现有的Fair Scheduler中的DRF算法进行改进,使其能够适用于多维度资源模型。基于此,资源管理器,可以用于针对每一任务队列,分别确定每一任务队列对应的资源占用份额;根据确定出的资源占用份额,按照由小到大的顺序为任务队列调度资源。
具体地,DRF在YARN中被设计成一个可热插拔的排序比较器,提供比较两个队列主资源占用份额大小的功能,Scheduler使用此比较器对队列主资源份额从小到大排序,主资源占用份额较小的队列具有分配资源的优先权。此外,DRF还可对用户的主占用率进行比较,优先为主占用率较小的用户分配资源。该比较器能够在不影响集群正常运行的情况下被动地加载并应用于不同的队列。Fair Scheduler中的DRF只考虑了CPU和内存两种资源,不具有多维资源的扩展性。我们对该算法进行重写,在保持接口不变的情况下重新实现了DRF Comparator,使其能够对多维资源进行比较。
针对YARN资源维度扩展的情况,本发明实施例中,对原有YARN的资源分配过程进行了修改和优化,采用了更加严格的资源合法性检查,其过程如图3所示,包括以下步骤:
步骤1:节点的Node Manager通过周期性心跳向Resource Manager汇报本节点信息;
步骤2:Resource Manager向Node Manager返回一个心跳应答;
步骤3:Node Manager的心跳信息发出Scheduler的NODE_UPDATE事件;
步骤4:Scheduler根据设定的策略在此节点上分配一个Container给最合适的应用程序。
步骤5:Scheduler把分配完成的Container添加至资源分配列表;
步骤6:应用程序的Application Master向Resource Manager发送心跳信息;
步骤7:RM接收心跳信息后,更新资源申请列表,并把资源分配列表中属于该应用程序的Container以心跳应答的方式返回给Application Master;
步骤8:Application Master对获得的Container执行第二层资源分配。
其中,在步骤4中,YARN的资源管理器Scheduler使用树形层级队列管理机制,树的每个节点表示一个队列,树根是名称为“root”的根队列,子队列的名称以父队列的名称为前缀,所有正在运行的应用程序分布在树的叶子上,如图4所示。
本发明实施例中,将多个深度学习框架构建在同一个Spark计算引擎上,并提供统一的访问接口,从而可以屏蔽各框架件不同的调用接口,为用户提供了统一且精简的访问方式;在底层,通过根据待处理任务的任务类型划分不同的任务队列,根据不同物理机搭载的计算资源类型划分不同的逻辑集群中,根据待处理任务的任务类,将任务队列中的任务分配到对应的逻辑集群中执行,实现了资源的合理分配,从而完成了异构资源高效灵活的调度,满足了计算任务多样性的需求。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

Claims (7)

1.一种基于混合计算资源的分布式计算系统,其特征在于,至少包括计算引擎层、混合计算封装接口层和资源调度层,其中:
所述计算引擎层由多个构建在同一个Spark计算引擎上的深度学习框架组成;
所述混合计算封装接口层,用于针对所述计算引擎层统一封装各个深度学习框架的访问接口;
所述资源调度层包括多种异构计算资源,所述异构计算资源包括以下至少一项:中央处理单元CPU、图形处理单元GPU和现场可编程门阵列FPGA;在所述资源调度层,根据待处理任务的任务类型划分不同的任务队列,根据不同物理机搭载的计算资源类型划分不同的逻辑集群中,根据待处理任务的任务类,将任务队列中的任务分配到对应的逻辑集群中执行;
所述资源调度层,具体用于根据为物理机标注机器标签,将物理机划分不同的逻辑集群,所述机器标签为根据物理机搭载的计算资源类型标注的;根据处理的任务类型,为不同的任务队列添加队列标签;针对任一任务队列,根据该任务队列对应的队列标签,将该任务队列中的任务调度到具有与所述队列标签相同标签的物理机上执行;
所述计算引擎层,还用于通过所述访问接口接收用户请求,根据所述用户请求中携带的请求参数,为所述用户请求启动相应的深度学习框架;
所述深度学习框架,还用于根据所述用户请求,向资源管理器发送资源调度请求,所述资源调度请求中携带有资源需求信息;
所述资源管理器,还用于根据各个节点管理器的资源状态信息和所述资源需求信息,针对所述资源调度请求分配对应的节点管理器;向分配的节点管理器发送容器启动命令;
所述节点管理器,具体用于如果根据所述资源需求信息,判断出所述容器启动需要加速资源,则从空闲加速资源列表中查找空闲加速资源启动容器。
2.根据权利要求1所述的系统,其特征在于,在所述资源调度层部署节点管理器和资源管理器,所述节点管理器部署于每一物理机上,所述资源管理器部署于其中一台物理机上,其中:
所述节点管理器,用于向所述资源管理器发送注册请求,所述注册请求中携带有自身所在物理机的可用资源信息,所述可用资源信息包括以下至少一项:CPU总量,内存总量,GPU虚拟数量和FPGA虚拟数量。
3.根据权利要求2所述的系统,其特征在于,
所述节点管理器,还用于在系统运行过程中,向所述资源管理器上报自身所在物理机的资源状态信息,所述资源状态信息包括空闲资源信息和已分配资源信息;
所述资源管理器,还用于根据各个节点管理器上报的资源状态信息,为任务队列中的任务调度资源。
4.根据权利要求3所述的系统,其特征在于,
所述资源管理器,具体用于针对每一任务队列,分别确定每一任务队列对应的资源占用份额;根据确定出的资源占用份额,按照由小到大的顺序为任务队列调度资源。
5.根据权利要求1所述的系统,其特征在于,
所述节点管理器,还用于减少维护的空闲加速资源数量,并在已分配加速资源列表中记录容器标识和为其分配的加速资源数量之间的对应关系。
6.根据权利要求5所述的系统,其特征在于,
所述节点管理器,还用于在检测到所述容器运行结束时,如果判断出所述容器中含有加速资源,则根据容器标识,从已分配加速资源列表中查找为所述容器分类的加速资源数量,根据查找到的加速资源数量,在空闲加速资源列表中增加相应数量的加速资源。
7.根据权利要求6所述的系统,其特征在于
所述节点管理器,还用于从所述已分配加速资源列表中删除记录的容器标识和为其分配的加速资源数量之间的对应关系。
CN201910908595.3A 2019-09-25 2019-09-25 基于混合分布架构的计算资源分配方法、装置和存储介质 Active CN110704186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910908595.3A CN110704186B (zh) 2019-09-25 2019-09-25 基于混合分布架构的计算资源分配方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910908595.3A CN110704186B (zh) 2019-09-25 2019-09-25 基于混合分布架构的计算资源分配方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN110704186A CN110704186A (zh) 2020-01-17
CN110704186B true CN110704186B (zh) 2022-05-24

Family

ID=69195035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910908595.3A Active CN110704186B (zh) 2019-09-25 2019-09-25 基于混合分布架构的计算资源分配方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN110704186B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918199B (zh) * 2019-02-28 2023-06-16 中国科学技术大学苏州研究院 基于gpu的分布式图处理系统
CN111338770A (zh) * 2020-02-12 2020-06-26 咪咕文化科技有限公司 一种任务调度的方法、服务器和计算机可读存储介质
CN111708799B (zh) * 2020-04-30 2023-09-05 咪咕文化科技有限公司 Spark任务处理方法、装置、电子设备及存储介质
CN111651276B (zh) * 2020-06-04 2024-07-02 杭州海康威视系统技术有限公司 一种调度方法、装置及电子设备
CN112015555B (zh) * 2020-08-28 2023-09-15 瑞斯康达科技发展股份有限公司 一种组播报文处理方法和装置及设备
CN112052138A (zh) * 2020-08-31 2020-12-08 平安科技(深圳)有限公司 业务数据质量检测方法、装置、计算机设备及存储介质
CN112181613B (zh) * 2020-09-09 2023-02-17 国家计算机网络与信息安全管理中心 异构资源分布式计算平台批量任务调度方法及存储介质
CN112015521B (zh) * 2020-09-30 2024-06-07 北京百度网讯科技有限公司 推理服务的配置方法、装置、电子设备及存储介质
CN113407313B (zh) * 2020-11-27 2022-05-17 上海交通大学 资源需求感知的多队列调度方法、系统及服务器
CN112486654A (zh) * 2020-12-08 2021-03-12 浙江诺诺网络科技有限公司 一种异步慢任务调度方法、装置、设备及介质
US11436054B1 (en) 2021-04-05 2022-09-06 Hewlett Packard Enterprise Development Lp Directing queries to nodes of a cluster of a container orchestration platform distributed across a host system and a hardware accelerator of the host system
CN113110938B (zh) * 2021-05-08 2023-08-29 网易(杭州)网络有限公司 一种资源分配方法、装置、计算机设备及存储介质
CN113485800B (zh) * 2021-06-23 2024-01-23 华泰证券股份有限公司 基于中心节点的自动派单方法、系统、设备及存储介质
CN113608861B (zh) * 2021-06-25 2023-11-10 西安空间无线电技术研究所 一种软件化载荷计算资源虚拟化分配方法及装置
CN113239243A (zh) * 2021-07-08 2021-08-10 湖南星汉数智科技有限公司 基于多计算平台的图数据分析方法、装置和计算机设备
CN113515361B (zh) * 2021-07-08 2023-01-03 中国电子科技集团公司第五十二研究所 一种面向服务的轻量级异构计算集群系统
CN113448714B (zh) * 2021-07-14 2022-03-04 华能吉林发电有限公司 基于云平台的计算资源控制系统
CN113312166B (zh) * 2021-07-29 2022-02-01 阿里云计算有限公司 资源处理方法以及装置
CN113608834A (zh) * 2021-07-29 2021-11-05 济南浪潮数据技术有限公司 一种基于超融合的资源调度方法、装置、设备及可读介质
CN113535333A (zh) * 2021-08-12 2021-10-22 北京字节跳动网络技术有限公司 Yarn集群资源调度方法、系统、介质和计算机设备
CN113656150B (zh) * 2021-08-20 2024-10-18 上海熠知电子科技有限公司 深度学习算力虚拟化系统
CN113849293B (zh) * 2021-11-30 2022-02-22 湖北芯擎科技有限公司 数据处理方法、装置、系统及计算机可读存储介质
CN114237891A (zh) * 2021-12-17 2022-03-25 北京达佳互联信息技术有限公司 资源调度方法、装置、电子设备及存储介质
CN114356516A (zh) * 2021-12-23 2022-04-15 科大讯飞股份有限公司 资源调度方法及相关装置、设备和存储介质
GB2625536A (en) * 2022-12-19 2024-06-26 Ibm Managing workloads in a container orchestration system
CN116700933B (zh) * 2023-08-02 2023-11-21 之江实验室 一种面向异构算力联邦的多集群作业调度系统和方法
CN117041356B (zh) * 2023-10-09 2023-12-05 成都新希望金融信息有限公司 指标分发方法、指标计算方法、装置、电子设备及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168782A (zh) * 2017-04-24 2017-09-15 复旦大学 一种基于Spark与GPU的并行计算系统
CN107450977A (zh) * 2015-12-30 2017-12-08 北京典赞科技有限公司 基于yarn的面向gpgpu集群的资源管理调度方法
CN109063842A (zh) * 2018-07-06 2018-12-21 无锡雪浪数制科技有限公司 一种兼容多种算法框架的机器学习平台
CN109117254A (zh) * 2018-06-29 2019-01-01 国家电网公司 一种深度学习框架的调度方法及系统
KR20190041707A (ko) * 2017-10-13 2019-04-23 인천대학교 산학협력단 Gpu를 사용한 실시간 빅 데이터 스트림 처리 장치 및 방법
CN109857526A (zh) * 2018-12-27 2019-06-07 曙光信息产业(北京)有限公司 一种面向混合应用计算框架的调度系统
CN109933306A (zh) * 2019-02-11 2019-06-25 山东大学 混合计算框架生成、数据处理方法、装置及混合计算框架
CN109992407A (zh) * 2018-01-02 2019-07-09 中国移动通信有限公司研究院 一种yarn集群gpu资源调度方法、装置和介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203424A (zh) * 2017-04-17 2017-09-26 北京奇虎科技有限公司 一种在分布式集群中调度深度学习作业的方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450977A (zh) * 2015-12-30 2017-12-08 北京典赞科技有限公司 基于yarn的面向gpgpu集群的资源管理调度方法
CN107168782A (zh) * 2017-04-24 2017-09-15 复旦大学 一种基于Spark与GPU的并行计算系统
KR20190041707A (ko) * 2017-10-13 2019-04-23 인천대학교 산학협력단 Gpu를 사용한 실시간 빅 데이터 스트림 처리 장치 및 방법
CN109992407A (zh) * 2018-01-02 2019-07-09 中国移动通信有限公司研究院 一种yarn集群gpu资源调度方法、装置和介质
CN109117254A (zh) * 2018-06-29 2019-01-01 国家电网公司 一种深度学习框架的调度方法及系统
CN109063842A (zh) * 2018-07-06 2018-12-21 无锡雪浪数制科技有限公司 一种兼容多种算法框架的机器学习平台
CN109857526A (zh) * 2018-12-27 2019-06-07 曙光信息产业(北京)有限公司 一种面向混合应用计算框架的调度系统
CN109933306A (zh) * 2019-02-11 2019-06-25 山东大学 混合计算框架生成、数据处理方法、装置及混合计算框架

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向医疗临床科研的大数据平台;王持等;《集成技术》;20190903;第8卷(第5期);第86-96页 *

Also Published As

Publication number Publication date
CN110704186A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN110704186B (zh) 基于混合分布架构的计算资源分配方法、装置和存储介质
CN110764901B (zh) 基于gpu资源的数据处理方法、电子设备及系统
CN113377540B (zh) 集群资源调度方法及装置、电子设备和存储介质
US11231955B1 (en) Dynamically reallocating memory in an on-demand code execution system
CN105897805B (zh) 对多层架构的数据中心的资源进行跨层调度的方法和装置
US11816509B2 (en) Workload placement for virtual GPU enabled systems
CN114741207B (zh) 一种基于多维度组合并行的gpu资源调度方法和系统
KR20210096259A (ko) 컴퓨팅 리소스 할당
CN108509280B (zh) 一种基于推送模型的分布式计算集群本地性调度方法
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN113225269B (zh) 基于容器的工作流调度方法、装置、系统及存储介质
CN113835887B (zh) 显存的分配方法、装置、电子设备及可读存储介质
WO2016074130A1 (zh) 一种系统调用命令的批处理方法及装置
CN112596904A (zh) 一种基于量子云平台量子服务资源调用优化的方法
CN115617364B (zh) Gpu虚拟化部署方法、系统、计算机设备和存储介质
CN113190282A (zh) 安卓运行环境构建的方法及装置
CN115185697A (zh) 一种基于kubernetes的集群资源调度方法、系统、设备和存储介质
CN113301087B (zh) 资源调度方法、装置、计算设备和介质
CN116578416B (zh) 一种基于gpu虚拟化的信号级仿真加速方法
US20210389994A1 (en) Automated performance tuning using workload profiling in a distributed computing environment
CN111143033B (zh) 基于可伸缩操作系统的操作执行方法及装置
CN117519972A (zh) Gpu资源管理方法及装置
CN115964296A (zh) 自动驾驶安全验证平台的评估方法、装置、设备及介质
US20220318656A1 (en) Model parameter sharing between inference application instances in processing unit of information processing system

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