CN112860424A - 任务处理方法及系统 - Google Patents

任务处理方法及系统 Download PDF

Info

Publication number
CN112860424A
CN112860424A CN201911190921.8A CN201911190921A CN112860424A CN 112860424 A CN112860424 A CN 112860424A CN 201911190921 A CN201911190921 A CN 201911190921A CN 112860424 A CN112860424 A CN 112860424A
Authority
CN
China
Prior art keywords
container
deep learning
containers
resource
learning model
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.)
Granted
Application number
CN201911190921.8A
Other languages
English (en)
Other versions
CN112860424B (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.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology Co Ltd
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 Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN201911190921.8A priority Critical patent/CN112860424B/zh
Publication of CN112860424A publication Critical patent/CN112860424A/zh
Application granted granted Critical
Publication of CN112860424B publication Critical patent/CN112860424B/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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种任务处理方法,该方法包括:控制器获取资源系统中多个容器的容器信息;根据所述资源系统中多个容器的容器信息建立容器信息映射表,基于多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习模型训练任务。实施本申请,通过在资源系统中部署多个容器,并在容器与容器之间建立免密通信,使得资源系统中的多个容器并行执行深度学习模型训练任务,降低深度学习模型训练的运行时间,提高深度学习模型训练的效率。

Description

任务处理方法及系统
技术领域
本申请涉及计算机技术领域,尤其是一种任务处理方法及系统。
背景技术
Kubernetes也叫k8s,用于云平台中容器化应用的部署和管理,通过容器进行应用部署,其中,各个容器之间相互隔离,容器之间的进程不会相互影响,然而,如何在Kubernetes集群上进行深度学习模型的训练是本领域技术难点。
发明内容
本申请提供了一种任务处理技术方案。
第一方面,本申请实施例提供了一种任务处理方法,所述方法包括:
控制器获取资源系统中多个容器的容器信息;所述控制器根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息;所述控制器基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习模型训练任务。
在一种可能的实施例中,所述资源系统包括第一容器,所述第一容器中运行有深度学习模型;
所述方法还包括:所述第一容器的深度学习模型根据所述容器信息映射表,对所述深度学习模型的当前处理任务进行拆分,得到多个处理子任务;所述第一容器的深度学习模型根据所述容器信息映射表,向多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;所述第二容器基于所述处理子任务的相关信息,执行所述处理子任务。
在另外一种可能的实施例中,所述多个容器中的第一容器根据所述容器信息映射表,对所述深度学习模型训练任务进行拆分,得到多个处理子任务,并将所述多个处理子任务分配给多个第二容器;所述第一容器根据所述容器信息映射表,向所述多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;所述第二容器基于所述处理子任务的相关信息,执行所述处理子任务。
可选的,所述方法还包括:所述控制器根据为所述第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;若检测到所述处理子任务的处理结果状态值发生变化,指示所述第一容器中的深度学习模型调整网络参数。
在一种可能的实现方式中,所述方法还包括:调度器基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述多个深度学习资源单元中被使用的深度学习资源单元的数量最少。
在一种可能的实施例中,所述方法还包括:调度器按照多个深度学习资源单元的排列顺序,依次确定每个深度学习资源单元的当前剩余资源量,直到找到当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元;所述调度器将找到的当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
可选的,所述方法还包括:调度器基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述深度学习训练任务所属用户的至少一个深度学习任务被尽可能均匀地分配给所述多个深度学习资源单元。
进一步的,所述方法还包括:调度器确定所述深度学习模型训练任务所属用户当前分配到多个深度学习资源单元中每个深度学习资源单元的任务数量,以及每个深度学习资源单元的当前剩余资源量;所述调度器将所述分配任务数量最少且当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
在一种可能的实现方式中,所述方法还包括:所述多个容器中的每个容器周期性地向所述控制器上报自身的状态信息;所述控制器基于所述多个容器中每个容器上报的状态信息,确定所述每个容器是否处于健康状态。
可选的,所述方法还包括:若所述控制器没有在预设的周期内接收到所述多个容器中的第三容器上报的状态信息,或基于所述第三容器上报的状态信息确定所述第三容器当前处于不健康状态,通过所述容器信息映射表获取所述第三容器的容器信息;所述控制器根据所述第三容器的容器信息,生成创建第四容器的指令,其中,所述第四容器具有与所述第三容器相同的容器信息;所述控制器将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。
在一种可能的实现方式中,在所述控制器获取资源系统中多个容器的容器信息之前包括:所述控制器读取所述训练任务的配置文件;所述控制器基于所述配置文件,确定所述训练任务所需的所述多个容器。
在另一种可能的实现方式中,所述方法还包括:所述控制器基于所述配置文件中的合法性规则信息,确定所述多个容器的容器信息中不合法的容器信息;将所述多个容器的容器信息中不合法的容器信息剔除。
在一种可能的实施例中,所述方法还包括:若所述控制器所在的控制容器检测到所述控制器的进程停止,所述控制容器重新启动所述控制容器,以使所述控制器的进程重新运行。
第二方面,本申请实施例提供了一种任务处理系统,包括:控制器和多个容器;所述控制器用于获取资源系统中多个容器的容器信息,根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息,所述控制器基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器;所述多个容器用于在接收到分配的深度学习训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。
在一种可能的实现方式中,所述资源系统包括第一容器,所述第一容器中运行有所述深度学习模型,所述深度学习模型的训练任务被划分成多个处理子任务;所述深度学习训练任务为所述第一容器的深度学习模型根据所述容器信息映射表,向多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;其中所述处理子任务为所述第一容器的深度学习模型根据所述容器信息映射表,对所述深度学习模型的当前处理任务进行拆分得到的。
在另一种可能的实施例中,所述多个容器中的第一容器用于根据所述容器信息映射表,对所述深度学习模型训练任务进行拆分,得到多个处理子任务,并将所述多个处理子任务分配给多个第二容器;所述第一容器还用于根据所述容器信息映射表,向所述多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;所述第二容器用于基于所述处理子任务的相关信息,执行所述处理子任务。
进一步的,所述控制器还用于:根据为所述第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;在检测到所述处理子任务的处理结果状态值发生变化时,指示所述第一容器中的深度学习模型调整网络参数。
在一种可能的实施例中,所述处理系统还包括调度器;所述调度器用于基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述多个深度学习资源单元中被使用的深度学习资源单元的数量最少。
在一种可能的实现方式中,所述处理系统还包括调度器;所述调度器用于按照多个深度学习资源单元的排列顺序,依次确定每个深度学习资源单元的当前剩余资源量,直到找到当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元;所述调度器还用于将找到的当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
可选的,所述处理系统还包括调度器;所述调度器用于基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述深度学习训练任务所属用户的至少一个深度学习任务被尽可能均匀地分配给所述多个深度学习资源单元。
进一步的,所述处理系统还包括调度器;所述调度器用于确定所述深度学习模型训练任务所属用户当前分配到多个深度学习资源单元中每个深度学习资源单元的任务数量,以及每个深度学习资源单元的当前剩余资源量;所述调度器还用于将所述分配任务数量最少且当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
可选的,所述多个容器还用于周期性地向所述控制器上报自身的状态信息;所述控制器,还用于基于所述多个容器中每个容器上报的状态信息,确定所述每个容器是否处于健康状态。
在一种可能的实施例中,所述控制器还用于:在预设的周期内没有接收到所述多个容器中的第三容器上报的状态信息,或基于所述第三容器上报的状态信息确定所述第三容器当前处于不健康状态时,通过所述容器信息映射表获取所述第三容器的容器信息;根据所述第三容器的容器信息,生成创建第四容器的指令,其中,所述第四容器具有与所述第三容器相同的容器信息;将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。
在一种可能的实现方式中,所述控制器,还用于读取所述训练任务的配置文件;基于所述配置文件,确定所述训练任务所需的所述多个容器。
进一步的,所述控制器还用于:基于所述配置文件中的合法性规则信息,确定所述多个容器的容器信息中不合法的容器信息;将所述多个容器的容器信息中不合法的容器信息剔除。
可选的,若所述控制器所在的控制容器检测到所述控制器的进程停止,所述控制容器重新启动所述控制容器,以使所述控制器的进程重新运行。
第三方面,本申请实施例提供了一种控制器,包括:
获取模块,用于获取资源系统中多个容器的容器信息;建立模块,用于根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息;发送模块,用于基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器用于在接收到分配的深度学习训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。
在一种可能的实施例中,所述资源系统包括第一容器,所述第一容器中运行有深度学习模型;所述控制器还包括监控模块,用于根据为第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;所述发送模块,还用于在检测到所述处理子任务的处理结果状态值发生变化时,指示所述第一容器中的深度学习模型调整网络参数。
在一种可能的实现方式中,所述控制器还包括接收模块和确定模块,所述接收模块还用于接收所述多个容器中的每个容器周期性上报自身的状态信息;所述确定模块,用于基于所述多个容器中每个容器上报的状态信息,确定所述每个容器是否处于健康状态。
可选的,所述接收模块没有在预设的周期内接收到所述多个容器中的第三容器上报的状态信息,或所述确定模块基于所述第三容器上报的状态信息确定所述第三容器当前处于不健康状态,所述获取模块,还用于通过所述容器信息映射表获取所述第三容器的容器信息;所述控制器还包括生成模块,用于根据所述第三容器的容器信息,生成创建第四容器的指令,其中,所述第四容器具有与所述第三容器相同的容器信息;所述发送模块,还用于将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。
在一种可能的实现方式中,所述获取模块,还用于读取所述训练任务的配置文件;所述确定模块,还用于基于所述配置文件,确定所述训练任务所需的所述多个容器。
在另一种可能的实现方式中,所述确定模块,还用于基于所述配置文件中的合法性规则信息,确定所述多个容器的容器信息中不合法的容器信息;所述控制器还包括删除模块,用于将所述多个容器的容器信息中不合法的容器信息剔除。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请中通过控制器获取资源系统中多个容器的容器信息,所述控制器根据所述资源系统中多个容器的容器信息建立容器信息映射表,基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。实施本申请,通过在资源系统中部署多个容器,并在容器与容器之间建立免密通信,使得资源系统中的多个容器并行执行深度学习模型训练任务,降低深度学习模型训练的运行时间,提高深度学习模型训练的效率。
附图说明
图1为本申请实施例提供的一种任务处理方法的流程示意图;
图2为本申请实施例提供的另一种任务处理方法的流程示意图;
图3为本申请实施例提供的一种控制器的结构示意图;
图4为本申请实施例提供的一种任务处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图来对本申请的技术方案的实施作进一步的详细描述。其中,本申请实施例主要应用于在Kubernetes系统中进行深度学习模型(例如深度学习网络)的训练和/或推理,该深度学习模型可以用于对输入图像进行处理,但本公开实施例不限于此。
参见图1,图1为本申请实施例提供的一种任务处理方法的流程示意图。
S100、控制器获取资源系统中多个容器的容器信息。具体的,所述容器信息包括容器标识和通信地址,所述容器标识可以为容器名称,所述通信地址可以包括IP地址和端口号。
在一种可能的实现方式中,在所述控制器获取资源系统中多个容器的容器信息之前包括:所述控制器读取所述训练任务的配置文件;所述控制器基于所述配置文件,确定所述训练任务所需的所述多个容器。具体的,所述控制器读取配置文件,获取配置文件中的资源请求信息,例如容器数量以及容器内存的大小,所述控制器根据所述配置文件中的资源信息生成资源请求指令,示例性的,所述控制器将所述资源请求指令向k8s平台中的调度器发送,所述调度器根据所述资源请求指令在资源系统中创建容器。可选的,所述配置文件由另一种标记语言(YAML Ain't Markup Language,YAML)生成,所述配置文件为开发人员根据所述深度学习模型训练所需的资源而编辑的,所述控制器读取.yaml格式的配置文件生成资源请求指令,并将所述资源请求指令发送至所述调度器中,所述调度器根据所述资源请求指令创建所述深度学习模型所需的容器数量以及容器的内存大小。例如,所述配置文件记录的资源请求信息为:容器数量为3,各个容器的内存大小为1Mi,其中1Mi=1024×1024K,1Mi包括1048576字节,所述调度器接收到所述控制器根据所述配置文件生成的资源请求指令时,创建3个容器,3个容器的内存大小均为1Mi,并对创建的3个容器进行IP地址的分配、端口号的分配以及容器名称的标记,例如容器A,对应的IP地址为1.0.0.1,端口号为1;容器B,对应的IP地址为1.0.0.2,端口号为2;容器C,对应的IP地址为1.0.0.3,端口号为3。可选的,在资源系统中删除容器时,所述资源请求信息为目标删除容器包括的容器信息,所述目标删除容器包括的容器信息记录在.yaml格式的配置文件中,所述控制器根据所述.yaml格式的配置文件生成资源请求指令,并将所述资源请求指令发送至所述调度器中,指示所述调度器根据所述资源请求指令中包括的容器信息对资源系统中的目标容器进行删除,例如,所述资源请求指令中的目标删除容器包括的容器信息为容器B,对应的IP地址为1.0.0.2,所述调度器在接收到所述资源请求指令时,根据所述资源请求指令中的目标删除容器的IP地址1.0.0.2将所述容器B删除。在另一种可能的实现方式中,所述资源请求信息可以从网页输入中获取,所述控制器与包括所述深度学习模型训练所需的资源或目标删除容器的容器信息的网页页面建立连接关系,针对网页页面输入的资源请求信息生成资源请求指令,所述调度器根据所述资源请求指令对所述资源系统中的容器进行创建或删除。
S101、所述控制器根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息。具体的,所述控制器由步骤S100获取所述资源系统中所有容器的容器信息,例如所述控制器获取到的容器信息包括:容器A,对应的IP地址为1.0.0.1,端口号为1;容器B,对应的IP地址为1.0.0.2,端口号为2;容器C,对应的IP地址为1.0.0.3,端口号为3,根据所述容器A、B和C的容器信息建立容器信息映射表如表格1所示:
表格1
容器名称 IP地址 端口号
A 1.0.0.1 1
B 1.0.0.2 2
C 1.0.0.3 3
…… …… ……
在一种可能的实施例中,所述控制器基于所述配置文件中的合法性规则信息,确定所述多个容器信息中不合法的容器信息;将所述多个容器信息中不合法的容器信息剔除。具体的,所述合法性规则包括容器信息的数据类型,若目标容器的容器信息不符合所述配置文件中的合法性规则,将不符合所述配置文件中的合法性规则的容器信息在所述容器信息映射表中进行剔除。示例性的,所述控制器获取所述资源系统中所有容器的容器信息,例如所述资源系统中所有容器的容器信息包括:容器A,对应的IP地址为1.0.0.1,端口号为1;容器B,对应的IP地址为1.0.0.2,端口号为2;容器C,对应的IP地址为1.0.0.3,端口号为f,根据所述容器A、B和C的容器信息建立容器信息映射表如表格2所示:
表格2
容器名称 IP地址 端口号
A 1.0.0.1 1
B 1.0.0.2 2
C 1.0.0.3 f
…… …… ……
而所述配置文件中包括合法性规则,所述合法性规则为预先存储在所述目标配置文件中针对容器信息的数据类型进行检验的规则,所述控制器获取所述配置文件包括的资源请求信息的同时,获取所述配置文件中的合法性规则。示例性的,所述合法性规则包括:所述容器信息中的容器名称的数据类型为字符串,IP地址对应的数据类型为点分数字,端口号对应的数据类型为数字。根据前文表格2,容器C对应的端口号f的数据类型为字符串,不符合所述目标配置信息中端口号对应数字的数据类型,所述控制器将不符合所述目标配置信息中的合法性规则的容器C的容器信息中包括的容器标识以及对应的通信地址在容器信息映射表中进行删除,得到表格3为:
表格3
Figure BDA0002293548790000091
Figure BDA0002293548790000101
实施本申请实施例,所述控制器可以通过配置文件中预先设置针对容器信息合法性检验的合法性规则,对从资源系统中获取到的容器信息进行语法错误检测,进一步维护所述容器信息映射表的正确性。
S102、所述控制器基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器。具体的,所述密钥对用于所述资源系统中多个容器相互之间进行身份校验,使得所述多个容器在互相身份校验成功后根据所述容器信息映射表进行免密通信。示例性的,所述控制器随机生成验证公私钥对,例如,所述控制器可以调用公私钥生成工具来生成所述验证公私钥对。所述控制器将随机生成的验证公私钥对按照各个容器的容器信息分发至各个容器,使得各个容器中均包括所述验证公私钥对。以资源系统中任意两个容器A和B建立免密通信为例,其中容器A使用所述验证公私钥对的公钥对目标字符进行加密,将公钥加密后的所述目标字符根据容器信息映射表中容器B的通信地址发送至容器B,所述容器B使用所述验证公私钥对中的私钥对容器A发送的加密目标字符进行解密,并将解密的结果根据所述容器信息映射表中容器A的通信地址返回至所述容器A,所述容器A将所述容器B返回的解密结果与所述目标字符进行匹配,若所述容器B返回的解密结果与所述目标字符匹配成功,则所述容器A和容器B建立免密通信,所述容器A和容器B在建立免密通信后,所述容器A和B相互之间可以不用再验证对方的身份。
S103、所述多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习模型训练任务。
在一些实施例中,所述资源系统包括第一容器,所述第一容器运行有深度学习模型;所述第一容器的深度学习模型根据所述容器信息映射表,对所述深度学习模型的当前处理任务进行拆分,得到多个处理子任务;所述第一容器的深度学习模型根据所述容器信息映射表,向多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;所述第二容器基于所述处理子任务的相关信息,执行所述处理子任务。经过步骤S102,所述多个容器相互之间建立了免密通信,所以所述第一容器的深度学习模型可以向所述资源系统中除所述第一容器之外的其他容器发送拆分后的处理子任务。示例性的,所述第一容器的深度学习模型根据所述容器信息映射表对资源系统中包括的所有容器数量进行统计,并根据容器的数量对当前的处理任务进行拆分。例如,所述第一容器的深度学习模型当前的处理任务是:对100张图片进行处理,而所述第一容器的深度学习模型从所述容器信息映射表中获取到的容器数量为10,所述第一容器的深度学习模型分别对各个容器进行逻辑编号,可选的,资源系统中的所有容器的逻辑编号分别为1至10,所述第一容器的深度学习模型根据容器数量10,对当前的处理任务进行拆分得到多个处理子任务为:每个容器分别对100张图片中的10张图片进行训练,例如,第一处理子任务为:编号为1的容器,对第1至第10张图片进行训练;第二处理子任务为:编号为2的容器,对第11至第20张图片进行训练;第三处理子任务为:编号为3的容器,对第21至第30张图片进行训练,依次类推,第十处理子任务为:编号为10的容器,对第91至第100张图片进行训练。可以理解的是,所述资源系统中的所有容器均包括有所述深度学习模型的全部代码段,所述资源系统中除所述第一容器之外的其他容器运行所述深度学习模型的代码段得到各自处理子任务的处理结果,可选的,除所述第一容器之外的其他容器将各自处理子任务的处理结果返回至所述第一容器的深度学习模型中。所述第一容器的深度学习模型根据多个处理子任务与所述容器信息的对应关系,将分配给所述第二容器的处理子任务以及对应深度学习模型代码段向第二容器发送,所述第二容器为所述资源系统中除所述第一容器外的任意一个容器,例如,将分配给所述容器A的第一处理子任务以及所述第一容器的深度学习模型包括的全部代码段根据所述容器A对应的IP地址1.0.0.1向所述容器A发送;又例如,将分配给所述容器B的第二处理子任务以及所述第一容器的深度学习模型包括的全部代码段根据所述容器B对应的IP地址1.0.0.2向所述容器B发送。
在另外一些实施例中,所述多个容器中的第一容器根据所述容器信息映射表,对所述深度学习模型训练任务进行拆分,得到多个处理子任务,并将所述多个处理子任务分配给多个第二容器;所述第一容器根据所述容器信息映射表,向所述多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;所述第二容器基于所述处理子任务的相关信息,执行所述处理子任务。
实施本申请实施例,通过控制器获取资源系统中多个容器的容器信息,所述控制器根据所述资源系统中多个容器的容器信息建立容器信息映射表,基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。本申请实施例通过在资源系统中部署多个容器,深度学习模型对当前的处理任务进行拆分,使得资源系统中的各个容器并行执行深度学习模型训练任务,减少深度学习模型的运行时间,并且本申请实施例是以容器为中心的深度学习模型训练,容器与底层设施和机器设备的文件系统解耦,方便迁移,在提高深度学习模型训练的效率的基础上还有利于深度学习模型的开发迁移。
在一种可能的实施例中,可以对资源系统中各个容器运行深度学习模型的处理结果进行监听,并根据监听的结果对深度学习模型进行控制,在前文所描述的步骤S100至步骤S103的基础上,所述方法还包括:所述控制器根据为所述第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;若检测到所述处理子任务的处理结果状态值发送变化,指示所述第一容器中的深度学习模型调整网络参数。具体的,所述资源系统的预设存储区域包括应用程序接口(Application Program Interface,API),所述控制器通过所述API接口获取所述第二容器处理子任务的处理结果状态值。示例性的,所述资源系统在k8s平台上,所述控制器在k8s平台中包括反射器reflector,所述反射器用于通过所述API接口监听所述第二容器处理子任务的处理结果状态值是否发生变化,所述第二容器处理子任务的处理结果状态值在所述k8s平台上表示为API版本号apiversion值,所述第二容器的深度学习模型代码段每处理一次所述第二容器的处理子任务,所述apiversion值加1。为了使所述第一容器中的深度学习模型专注模型训练,所述控制器负责监听所述处理子任务的处理结果状态值。若所述控制器检测到所述处理子任务的处理结果状态值发生变化,指示所述第一容器中的深度学习模型调整网络参数。示例性的,通过API接口在所述k8s平台预设存储区域中查找所述处理子任务的处理结果对应的apiversion值,若所述预设存储区域中的apiversion值大于上一次所述控制器查找到的apiversion值,则代表着所述第二容器的深度学习模型的代码段处理了一次所述第二容器的处理子任务,可选的,所述第二容器处理子任务的处理结果发生了变化。例如,当所述第二容器的处理子任务的处理结果状态值发生变化时,所述控制器触发所述第二容器的深度学习模型根据所述第一容器的容器信息,向所述第一容器发送调参指令,以使所述第一容器的深度学习模型根据所述调参指令调整网络参数,所述调参指令包括所述深度学习模型调整后的网络参数。又例如,当所述第二容器的处理子任务的处理结果状态值发送变化时,所述控制器获取新的网络参数,其中所述新的网络参数为开发人员根据所述第二容器的处理子任务的处理结果状态值的变化情况进行调整的,通过.yaml文件的格式由所述控制器读取,所述控制器将信息的网络参数发送至所述第一容器的深度学习模型,指示所述第一容器的深度学习模型调整为所述新的网络参数。进一步的,所述第一容器的深度学习模型将调整后的网络参数同步至所述资源系统中除所述第一容器之外的其他所有容器,使得资源系统中的所有容器中包括的深度学习模型代码段均是调整网络参数后的代码段。
实施本申请实施例,通过对资源系统中各个容器运行深度学习模型的处理结果进行监听,并根据监听的结果对深度学习模型的网络参数进行调整,进一步提高了对深度学习模型的训练效率。
在一些实施例中,任务处理系统还包括调度器,用于调度深度学习任务列表中的至少一个深度学习任务,其中,可选地,调度器可以基于任务列表中的各个深度学习任务的任务优先级和/或其他因素,对深度学习任务列表进行调度,本公开实施例对此不做限定。
在调度器调度深度学习模型训练任务时,可以为深度学习模型训练任务分配深度学习资源,例如,图形处理器(Graphics Processing Unit,GPU)、现成可编程门阵列(field-programmable gate array,FPGA)或专用集成电路(application specificintegrated circuit,ASIC)等等。在一些实施例中,调度器基于所述深度学习模型训练任务所需资源量以及多个可用深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的目标深度学习资源单元。
在一些实施例中,调度器可以获取多个深度学习资源单元中每个深度学习资源单元的当前状态信息,其中,所述当前状态信息包括:多个深度学习资源单元中,每个深度学习资源单元的可用资源量、当前被占用的资源量、当前被占用的资源对应的任务信息,例如任务标识信息、用户标识信息等,或者还可以包括其他信息,本公开实施例对此不做限定。
在具体实现中,调度器可以根据深度学习模型训练任务所需资源量,从多个深度学习资源单元中确定用于执行所述深度学习模型训练任务的深度学习资源单元,例如可以将剩余资源量大于上述深度学习模型训练任务所需资源量的深度学习资源单元确定为用于执行深度学习模型训练任务的深度学习资源单元。
在一些实施例中,调度器还可以基于一定的资源分配策略为所述深度学习模型训练任务分配深度学习资源单元。
其中,上述资源分配策略是指基于一定的规则或者为了达到某种效果而进行的资源分配。例如,为了达到深度学习资源单元使用最少的最少资源分配策略,又例如,为了使得同一个用户的多个深度学习任务在各个深度学习资源单元中分配均匀的负载均衡分配策略,等等。
在一些实施例中,按照多个深度学习资源单元的排列顺序,依次确定每个深度学习资源单元的剩余资源量,直到找到剩余资源量满足所述深度学习模型训练任务所需资源量的深度学习资源单元;将剩余资源量满足所述深度学习模型训练任务所需资源量的深度学习资源单元确定为用于执行所述深度学习模型训练任务的深度学习资源单元。
其中,上述多个深度学习资源单元的排列顺序可以是按照深度学习资源单元的ID编号顺序排列,或者基于深度学习资源单元的使用状态而进行排序的队列顺序,等等,本公开实施例对此不作限定。
在具体实现中,调度器按照多个深度学习资源单元的排列顺序,首先获取第一个深度学习资源单元的剩余资源量,然后判断第一个深度学习资源单元的剩余资源量是否大于深度学习模型训练任务所需资源量,若是,则将第一个深度学习资源单元确定为用于执行深度学习模型训练任务的深度学习资源单元;若否,则获取第二个深度学习资源单元的剩余资源量,然后判断第二个深度学习资源单元的剩余资源量是否大于深度学习模型训练任务所需资源量,以此类推,直到找到剩余资源量大于深度学习模型训练任务所需资源量的深度学习资源单元。
在一些实施例中,若在确定所述多个深度学习资源单元中排在最后的深度学习资源单元的剩余资源量不满足所述深度学习模型训练任务所需资源量的情况下,确定所述深度学习模型训练任务无可用物理资源。
在本申请实施例中,在为深度学习模型训练任务分配深度学习资源单元时,通过优先分配排列在前面的深度学习资源单元给深度学习模型训练任务,从而使得尽可能少的深度学习资源单元被使用,从而有利于减少资源碎片,提高资源利用率。
在另一些实施例中,确定深度学习模型训练任务所属用户,并确定所述用户在多个深度学习资源单元中每个深度学习资源单元分配的深度学习任务的数量,以及每个深度学习资源单元的剩余资源量,并将所述任务数量最少且剩余资源量满足所述深度学习模型训练任务所需资源量的深度学习资源单元确定为用于执行所述深度学习模型训练任务的深度学习资源单元。
在具体实现中,可以基于所述多个深度学习资源单元中每个深度学习资源单元已经被占用的资源对应的任务信息,统计上述用户在上述多个深度学习资源单元中的任务分布情况,然后将当前分配任务数量最少且剩余资源量满足所述深度学习模型训练任务所需资源量的深度学习资源单元确定为用于执行所述深度学习模型训练任务的深度学习资源单元,从而尽量使得上述用户的任务均匀地分配给多个深度学习资源单元,以避免同一用户的多个任务堆积在同一个深度学习资源单元上执行,导致单个用户的多任务排队现象,从而提高用户体验。
在另一些实施例中,在所述任务数量最少且剩余资源量满足所述深度学习模型训练任务所需资源量的深度学习资源单元的数量为多个的情况下,将所述任务数量最少且剩余资源量满足所述深度学习模型训练任务所需资源量的深度学习资源单元中排列在最前面的深度学习资源单元确定为用于执行所述深度学习模型训练任务的深度学习资源单元。
在一种可能的实施例中,若所述控制器所在的控制容器检测到所述控制器的进程停止,所述控制容器重新启动所述控制容器,以使所述控制器的进程重新运行。具体的,所述控制器所在的控制容器是一个具有感知能力的容器,例如k8s平台中的应用容器引擎docker,docker可以视为具有感知能力的容器,具体表现为当docker守护的进程停止时,docker可以感知到自身守护的进程停止,并生成一个停止标记,当所述停止标记生成时,触发docker重新启动,使得docker守护的进程重新运行。在默认的情况下,docker守护的进程是自身的容器进程,当自身运行停止时进程重启动,在本申请实施例中,将所述控制器的进程设置为docker守护的进程,docker时刻在检测所述控制器的进程是否停止,当docker检测到所述控制器的进程停止时,docker会自重启,保证所述控制器所在的进程重新运行。实施本申请实施例,可以对控制器的进程进行维护,保证所述控制器的进程持续运行。
下面结合附图对维护容器的处理子任务正常持续运行进行详细介绍,参见图2,图2为本申请实施例提供的另一种任务处理方法的流程示意图。基于前文结合图1所描述实施例,再执行如图2所示的步骤对容器的处理子任务正常运行进行维护,具体执行步骤如下:
S200、所述多个容器中的每个容器周期性地向所述控制器上报自身的状态信息。具体的,在预设时间周期内所述控制器根据所述资源系统中多个容器的容器信息接收对应容器上报的状态信息,示例性的,所述资源系统的各个容器中包括容器自身是否健康的探针检测,且各个容器会将自身探针检测的结果在预设时间周期内上报至所述控制器。所述控制器基于所述多个容器中每个容器上报的状态信息,确定所述每个容器是否处于健康状态,即执行步骤S201。
S201、若所述控制器没有在预设的时间周期内接受到所述多个容器中的第三容器上报的状态信息,或基于所述第三容器上报的状态信息确定所述第三容器处于不健康状态,通过所述容器信息映射表获取所述第三容器的容器信息。具体的,所述第三容器为所述资源系统中的任意一个容器,若所述控制器确定所述第三容器上报的是不健康状态,则所述控制器进行步骤S202,以创建一个新的容器来代替不健康的第三容器。
S202、所述控制器根据所述第三容器的容器信息,生成创建第四容器的指令,其中所述第四容器具有与所述第三容器相同的容器信息。具体的,所述控制器根据所述第三容器的容器名称、IP地址、端口号和相应的内存大小,生成创建第四容器的指令,可选的,k8s平台中的调度器接收到所述控制器创建第四容器的指令,所述调度器根据所述第三容器的容器名称、IP地址、端口号和相应的内存大小,创建所述第四容器,所述第四容器的容器名称、IP地址、端口号和容器的内存大小与所述第三容器相同。
S203、所述控制器将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。具体的,由步骤S202所述控制器生成创建所述第四容器的指令,所述调度器创建了一个与所述第三容器相同的第四容器,所述第三容器的处理子任务与所述第三容器的IP地址具有对应关系,当所述第三容器处于不健康状态,而所述调度器创建了一个具有所述第三容器的IP地址的第四容器,所述第三容器的处理子任务可以在与所述第三容器具有相同容器信息的第四容器中运行,所述控制器将所述第三容器的处理子任务以及对应深度学习模型代码段,根据所述第三容器的处理子任务对应的IP地址发送至所述第四容器中运行,其中所述第四容器的容器信息包括所述第三容器的处理子任务对应的IP地址。
实施本申请实施例,通过创建第四容器代替处于不健康状态的第三容器,保证所述第三容器的处理子任务可以在所述第四容器中持续运行,从而维护深度学习模型训练持续运行。
进一步的,若所述控制器所在的控制容器检测到所述控制器的进程停止,所述控制容器重新启动所述控制容器,以使所述控制器的进程重新运行。具体的,所述控制器所在的控制容器是一个具有感知能力的容器,例如k8s平台中的应用容器引擎docker,docker可以视为具有感知能力的容器,具体表现为当docker守护的进程停止时,docker可以感知到自身守护的进程停止,并生成一个停止标记,当所述停止标记生成时,触发docker重新启动,使得docker守护的进程重新运行。在默认的情况下,docker守护的进程是自身的容器进程,当自身运行停止时进程重启动,在本申请实施例中,将所述控制器的进程设置为docker守护的进程,docker时刻在检测所述控制器的进程是否停止,当docker检测到所述控制器的进程停止时,docker会自重启,保证所述控制器所在的进程重新运行。实施本申请实施例,可以对控制器的进程进行维护,保证所述控制器的进程持续运行。
本申请还提供了一种控制器,参见图3,图3为本申请实施例提供的一种控制器的结构示意图。如图3所示,控制器30包括:
获取模块300,用于获取资源系统中多个容器的容器信息;
建立模块301,用于根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息;
发送模块302,用于基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器用于在接收到分配的深度学习训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。
在一种可能的实施例中,所述资源系统包括第一容器,所述第一容器中运行有深度学习模型;所述控制器还包括监控模块303,用于根据为所述第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;所述发送模块302,还用于在检测到所述处理子任务的处理结果状态值发生变化时,指示所述第一容器中的深度学习模型调整网络参数。
在一种可能的实现方式中,所述控制器还包括接收模块304和确定模块305,所述接收模块304还用于接收所述多个容器中的每个容器周期性上报自身的状态信息;所述确定模块305,用于基于所述多个容器中每个容器上报的状态信息,确定所述每个容器是否处于健康状态。
可选的,所述接收模块304没有在预设的周期内接收到所述多个容器中的第三容器上报的状态信息,或所述确定模块305基于所述第三容器上报的状态信息确定所述第三容器当前处于不健康状态,所述获取模块300,还用于通过所述容器信息映射表获取所述第三容器的容器信息;所述控制器还包括生成模块306,用于根据所述第三容器的容器信息,生成创建第四容器的指令,其中,所述第四容器具有与所述第三容器相同的容器信息;所述发送模块302,还用于将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。
在一种可能的实现方式中,所述获取模块300,还用于读取所述训练任务的配置文件;所述确定模块305,还用于基于所述配置文件,确定所述训练任务所需的所述多个容器。
在另一种可能的实现方式中,所述确定模块305,还用于基于所述配置文件中的合法性规则信息,确定所述多个容器的容器信息中不合法的容器信息;所述控制器还包括删除模块307,用于将所述多个容器的容器信息中不合法的容器信息剔除。
可以理解的是,所述控制器30中的各个模块的具体实现方式可以参见前文结合图1至图2所描述的实施例,此处不作赘述。
实施本申请实施例,控制器获取资源系统中多个容器的容器信息,所述控制器根据所述资源系统中多个容器的容器信息建立容器信息映射表,基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。本申请实施例通过在资源系统中部署多个容器,深度学习模型对当前的处理任务进行拆分,使得资源系统中的各个容器并行执行深度学习模型训练任务,减少深度学习模型的运行时间,并且本申请实施例是以容器为中心的深度学习模型训练,容器与底层设施和机器设备的文件系统解耦,方便迁移,在提高深度学习模型训练的效率的基础上还有利于深度学习模型的开发迁移。
本申请实施例还提供了一种任务处理系统40,包括:控制器401和多个容器;
所述控制器401用于获取资源系统中多个容器的容器信息,根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息,所述控制器401基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器;
所述多个容器用于在接收到分配的深度学习训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。
在一种可能的实现方式中,所述资源系统包括第一容器,所述第一容器中运行有所述深度学习模型;
所述深度学习训练任务为所述第一容器的深度学习模型根据所述容器信息映射表,向多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;其中所述处理子任务为所述第一容器的深度学习模型根据所述容器信息映射表,对所述深度学习模型的当前处理任务进行拆分得到的。
在另一种可能的实施例中,所述多个容器中的第一容器用于根据所述容器信息映射表,对所述深度学习模型训练任务进行拆分,得到多个处理子任务,并将所述多个处理子任务分配给多个第二容器;所述第一容器还用于根据所述容器信息映射表,向所述多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;所述第二容器用于基于所述处理子任务的相关信息,执行所述处理子任务。
进一步的,所述控制器401还用于:根据为所述第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;在检测到所述处理子任务的处理结果状态值发生变化时,指示所述第一容器中的深度学习模型调整网络参数。
在一种可能的实施例中,所述处理系统还包括调度器402;所述调度器402用于基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述多个深度学习资源单元中被使用的深度学习资源单元的数量最少。
在一种可能的实现方式中,所述处理系统还包括调度器402;所述调度器402用于按照多个深度学习资源单元的排列顺序,依次确定每个深度学习资源单元的当前剩余资源量,直到找到当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元;所述调度器还用于将找到的当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
可选的,所述处理系统还包括调度器402;所述调度器402用于基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述深度学习训练任务所属用户的至少一个深度学习任务被尽可能均匀地分配给所述多个深度学习资源单元。
进一步的,所述处理系统还包括调度器402;所述调度器402用于确定所述深度学习模型训练任务所属用户当前分配到多个深度学习资源单元中每个深度学习资源单元的任务数量,以及每个深度学习资源单元的当前剩余资源量;所述调度器还用于将所述分配任务数量最少且当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
可选的,所述多个容器还用于周期性地向所述控制器401上报自身的状态信息;所述控制器401,还用于基于所述多个容器中每个容器上报的状态信息,确定所述每个容器是否处于健康状态。
在一种可能的实施例中,所述控制器401还用于:在预设的周期内没有接收到所述多个容器中的第三容器上报的状态信息,或基于所述第三容器上报的状态信息确定所述第三容器当前处于不健康状态时,通过所述容器信息映射表获取所述第三容器的容器信息;根据所述第三容器的容器信息,生成创建第四容器的指令,其中,所述第四容器具有与所述第三容器相同的容器信息;将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。
在一种可能的实现方式中,所述控制器401,还用于读取所述训练任务的配置文件;基于所述配置文件,确定所述训练任务所需的所述多个容器。
进一步的,所述控制器401还用于:基于所述配置文件中的合法性规则信息,确定所述多个容器的容器信息中不合法的容器信息;将所述多个容器的容器信息中不合法的容器信息剔除。
可选的,若所述控制器401所在的控制容器检测到所述控制器401的进程停止,所述控制容器重新启动所述控制容器,以使所述控制器401的进程重新运行。
可以理解的是,所述处理系统中的控制器和多个容器的具体实现方式可以参见前文结合图1至图2所描述的实施例,此处不作赘述。
本申请还提供了一种任务处理设备,该任务处理设备包括收发器、处理器和存储器,其中:
所述收发器用于资源系统中多个容器的容器信息传输,进一步的,所述收发器还用于容器信息映射表以及验证公私钥对的传输。示例性的,所述处理器可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器中存储有指令,可以理解的是,所述存储器中存储有所述配置文件。示例性的,所述存储器可以包括只读存储器和随机存取存储器,并向处理器和收发器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
所述处理器,用于执行所述存储器中存储的计算机程序,实现前文所述的任意一种可能的实施例。
具体实现中,上述电子设备可通过其内置的各个功能模块执行如上述图1到图2中各个步骤的实现方式,具体可参见上述图1到图2中各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
需要说明的是,上述术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置以及系统,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或控制连接可以是通过一些接口,设备或单元的间接耦合或控制连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种任务处理方法,其特征在于,所述方法包括:
控制器获取资源系统中多个容器的容器信息;
所述控制器根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息;
所述控制器基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器,以使所述多个容器在接收到分配的深度学习模型训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习模型训练任务。
2.根据权利要求1所述的方法,其特征在于,所述资源系统包括第一容器,所述第一容器中运行有所述深度学习模型;
所述方法还包括:
所述第一容器的深度学习模型根据所述容器信息映射表,对所述深度学习模型的当前处理任务进行拆分,得到多个处理子任务;
所述第一容器的深度学习模型根据所述容器信息映射表,向多个第二容器中每个第二容器发送分配给所述每个第二容器的处理子任务的相关信息;
所述第二容器基于所述处理子任务的相关信息,执行所述处理子任务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述控制器根据为所述第二容器分配的处理子任务的监控对象标识,监控所述处理子任务的处理结果状态值;
若检测到所述处理子任务的处理结果状态值发生变化,指示所述第一容器中的深度学习模型调整网络参数。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
调度器基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述多个深度学习资源单元中被使用的深度学习资源单元的数量最少。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述方法还包括:
调度器按照多个深度学习资源单元的排列顺序,依次确定每个深度学习资源单元的当前剩余资源量,直到找到当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元;
所述调度器将找到的当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
6.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
调度器基于所述深度学习模型训练任务所需资源大小和多个深度学习资源单元的当前状态,确定用于执行所述深度学习模型训练任务的深度学习资源单元,以使得所述深度学习训练任务所属用户的至少一个深度学习任务被尽可能均匀地分配给所述多个深度学习资源单元。
7.根据权利要求2、3或6所述的方法,其特征在于,所述方法还包括:
调度器确定所述深度学习模型训练任务所属用户当前分配到多个深度学习资源单元中每个深度学习资源单元的任务数量,以及每个深度学习资源单元的当前剩余资源量;
所述调度器将所述分配任务数量最少且当前剩余资源量满足所述深度学习模型训练任务所需资源大小的深度学习资源单元确定为所述多个第二容器分配的深度学习资源单元。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
若所述控制器没有在预设的周期内接收到所述多个容器中的第三容器上报的状态信息,或基于所述第三容器上报的状态信息确定所述第三容器当前处于不健康状态,通过所述容器信息映射表获取所述第三容器的容器信息;
所述控制器根据所述第三容器的容器信息,生成创建第四容器的指令,其中,所述第四容器具有与所述第三容器相同的容器信息;
所述控制器将所述第三容器的处理子任务的相关信息发送至所述第四容器,以使得所述第四容器执行所述处理子任务。
9.一种任务处理系统,其特征在于,包括:控制器和多个容器;
所述控制器用于获取资源系统中多个容器的容器信息,根据所述资源系统中多个容器的容器信息建立容器信息映射表,所述容器信息映射表记录所述多个容器的容器信息,所述控制器基于所述多个容器的容器信息,将密钥对和所述容器信息映射表分发至所述多个容器;
所述多个容器用于在接收到分配的深度学习训练任务的情况下,基于所述容器信息映射表和所述密钥对执行所述深度学习训练任务。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1至8中任意一项所述方法的步骤。
CN201911190921.8A 2019-11-28 2019-11-28 任务处理方法及系统 Active CN112860424B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911190921.8A CN112860424B (zh) 2019-11-28 2019-11-28 任务处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911190921.8A CN112860424B (zh) 2019-11-28 2019-11-28 任务处理方法及系统

Publications (2)

Publication Number Publication Date
CN112860424A true CN112860424A (zh) 2021-05-28
CN112860424B CN112860424B (zh) 2024-07-12

Family

ID=75995537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911190921.8A Active CN112860424B (zh) 2019-11-28 2019-11-28 任务处理方法及系统

Country Status (1)

Country Link
CN (1) CN112860424B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933137A (zh) * 2015-12-21 2016-09-07 中国银联股份有限公司 一种资源管理方法、装置及系统
CN109471705A (zh) * 2017-09-08 2019-03-15 杭州海康威视数字技术股份有限公司 任务调度的方法、设备及系统、计算机设备
CN109739514A (zh) * 2018-12-21 2019-05-10 北京中科寒武纪科技有限公司 参数处理方法及相关产品
US20190228303A1 (en) * 2018-01-25 2019-07-25 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for scheduling resource for deep learning framework
WO2019184750A1 (zh) * 2018-03-30 2019-10-03 华为技术有限公司 深度学习作业调度方法、系统和相关设备
CN110414687A (zh) * 2019-07-12 2019-11-05 苏州浪潮智能科技有限公司 一种用于深度学习框架分布式训练的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933137A (zh) * 2015-12-21 2016-09-07 中国银联股份有限公司 一种资源管理方法、装置及系统
CN109471705A (zh) * 2017-09-08 2019-03-15 杭州海康威视数字技术股份有限公司 任务调度的方法、设备及系统、计算机设备
US20190228303A1 (en) * 2018-01-25 2019-07-25 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for scheduling resource for deep learning framework
WO2019184750A1 (zh) * 2018-03-30 2019-10-03 华为技术有限公司 深度学习作业调度方法、系统和相关设备
CN109739514A (zh) * 2018-12-21 2019-05-10 北京中科寒武纪科技有限公司 参数处理方法及相关产品
CN110414687A (zh) * 2019-07-12 2019-11-05 苏州浪潮智能科技有限公司 一种用于深度学习框架分布式训练的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱天放;梁明;王家乐;杨志浩;李亚敏;: "基于容器云的深度学习平台设计与实现", 电子设计工程, no. 09 *

Also Published As

Publication number Publication date
CN112860424B (zh) 2024-07-12

Similar Documents

Publication Publication Date Title
US20200287961A1 (en) Balancing resources in distributed computing environments
CN109936604B (zh) 一种资源调度方法、装置和系统
AU2011299337B2 (en) Controlled automatic healing of data-center services
US9466036B1 (en) Automated reconfiguration of shared network resources
US20150095917A1 (en) Distributed uima cluster computing (ducc) facility
EP2216732A1 (en) Virtual machine software license management
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
CN110209484B (zh) 基于多云和安全映射的可信云任务调度系统及方法
CN111338774A (zh) 分布式定时任务调度系统及计算装置
KR20170029263A (ko) 부하 분산 장치 및 방법
EP3280094B1 (en) Disaster recovery method, device, and system
CN107451147A (zh) 一种kafka集群动态切换的方法和装置
WO2021227954A1 (zh) 基于容器集群的应用访问请求处理
CN113037794A (zh) 计算资源配置调度方法、装置及系统
EP3279795B1 (en) Method and apparatus for deleting cloud host in cloud computing environment, server and storage medium
JP2014191594A (ja) 分散処理システム
CN108121599A (zh) 一种资源管理方法、装置及系统
JP6107801B2 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
CN112199192B (zh) 基于服务器部署Kubernetes集群精细化管理配额的方法及系统
CN113900598A (zh) 基于区块链的数据存储方法、装置、设备以及存储介质
CN111708812A (zh) 一种分布式数据处理方法
WO2024148864A1 (zh) 虚拟机内存的调整方法和装置、非易失性可读存储介质及电子装置
US9942083B1 (en) Capacity pool management
CN116881012A (zh) 一种容器应用垂直扩容方法、装置、设备及可读存储介质
Hsiao et al. A usage-aware scheduler for improving MapReduce performance in heterogeneous environments

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