CN114840323A - 任务处理方法、装置、系统、电子设备以及存储介质 - Google Patents

任务处理方法、装置、系统、电子设备以及存储介质 Download PDF

Info

Publication number
CN114840323A
CN114840323A CN202210559281.9A CN202210559281A CN114840323A CN 114840323 A CN114840323 A CN 114840323A CN 202210559281 A CN202210559281 A CN 202210559281A CN 114840323 A CN114840323 A CN 114840323A
Authority
CN
China
Prior art keywords
information
task
subtask
node
subtasks
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
Application number
CN202210559281.9A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210559281.9A priority Critical patent/CN114840323A/zh
Publication of CN114840323A publication Critical patent/CN114840323A/zh
Pending legal-status Critical Current

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种任务处理方法、装置、系统、电子设备以及存储介质,涉及人工智能技术领域,尤其涉及云计算、深度学习和计算机视觉技术领域。具体实现方案为:响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息,其中,任务信息包括人工智能模型和样本数据;根据任务信息,得到多个子任务的子任务信息;根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点;向多个子任务各自的目标计算节点发送子任务的子任务信息,以便目标计算节点基于子任务信息处理子任务。

Description

任务处理方法、装置、系统、电子设备以及存储介质
技术领域
本公开涉及人工智能技术领域,尤其涉及云计算、深度学习和计算机视觉技术领域。具体地,涉及一种任务处理方法、装置、电子设备以及存储介质。
背景技术
随着人工智能技术的发展,深度学习技术也得到了发展。例如,人工智能模型、人工智能硬件设备和将两者联系的软件系统的协同发展,这种协同发展使得软件系统的专业性和复杂度越来越高。可以利用软件系统来配合人工智能硬件设备来实现处理人工智能任务。
发明内容
本公开提供了一种任务处理方法、装置、系统、电子设备以及存储介质。
根据本公开的一方面,提供了一种任务处理方法,包括:响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息,其中,上述任务信息包括人工智能模型和样本数据;根据上述任务信息,得到多个子任务的子任务信息;根据上述可用资源信息和上述多个子任务各自的资源需求信息,从上述多个计算节点中确定用于处理上述多个子任务各自的目标计算节点;以及,向上述多个子任务各自的目标计算节点发送上述子任务的子任务信息,以便上述目标计算节点基于上述子任务信息处理上述子任务。
根据本公开的另一方面,提供了一种任务处理方法,包括:目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于上述子任务信息处理上述子任务;其中,上述目标计算节点是上述控制节点根据多个计算节点的可用资源信息和多个上述子任务各自的资源需求信息从上述多个计算节点中确定的,上述子任务信息是根据人工智能任务的任务信息得到的,上述多个节点的可用资源信息和上述人工智能任务的任务信息是上述控制节点响应于接收到任务处理请求获取的,上述任务信息包括人工智能模型和样本数据。
根据本公开的另一方面,提供了一种任务处理方法,包括:获取模块,用于响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息,其中,上述任务信息包括人工智能模型和样本数据;第一获得模块,用于根据上述任务信息,得到多个子任务的子任务信息;第一确定模块,用于根据上述可用资源信息和上述多个子任务各自的资源需求信息,从上述多个计算节点中确定用于处理上述多个子任务各自的目标计算节点;以及,第一发送模块,用于向上述多个子任务各自的目标计算节点发送上述子任务的子任务信息,以便上述目标计算节点基于上述子任务信息处理上述子任务。
根据本公开的另一方面,提供了一种任务处理装置,包括:处理模块,用于目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于上述子任务信息处理上述子任务;其中,上述目标计算节点是上述控制节点根据多个计算节点的可用资源信息和多个上述子任务各自的资源需求信息从上述多个计算节点中确定的,上述子任务信息是根据人工智能任务的任务信息得到的,上述多个节点的可用资源信息和上述人工智能任务的任务信息是上述控制节点响应于接收到任务处理请求获取的,上述任务信息包括人工智能模型和样本数据。
根据本公开的另一方面,提供了一种任务处理系统,包括:至少一个控制节点,上述控制节点用于:响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息;根据上述任务信息,得到多个子任务的子任务信息;根据上述可用资源信息和上述多个子任务各自的资源需求信息,从上述多个计算节点中确定用于处理上述多个子任务各自的目标计算节点;以及,向上述多个子任务各自的目标计算节点发送上述子任务的子任务信息,其中,上述任务信息包括人工智能模型和样本数据;以及。上述多个目标计算节点,上述目标计算节点用于基于上述子任务信息处理上述子任务。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器;其中,上述存储器存储有可被上述至少一个处理器执行的指令,上述指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行本公开所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,上述计算机指令用于使上述计算机执行本公开所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现本公开所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示意性示出了根据本公开实施例的可以应用任务处理方法及装置的示例性系统架构;
图2示意性示出了根据本公开实施例的任务处理方法的流程图;
图3示意性示出了根据本公开另一实施例的任务处理方法的流程图;
图4示意性示出了根据本公开实施例的任务处理方法的信令图;
图5A示意性示出了根据本公开实施例的任务处理过程的示例示意图;
图5B示意性示出了根据本公开实施例的目标计算节点根据线程执行顺序和子任务信息,利用至少一个线程处理子任务过程的示例示意图;
图6示意性示出了根据本公开实施例的任务处理装置的框图;
图7示意性示出了根据本公开另一实施例的任务处理装置的框图;
图8示意性示出了根据本公开实施例的任务处理系统的框图;以及
图9示意性示出了根据本公开实施例的适于实现任务处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开实施例提出了一种任务处理方案。例如,控制节点响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。任务信息包括人工智能模型和样本数据。根据任务信息,得到多个子任务的子任务信息。根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。向多个子任务各自的目标计算节点发送子任务的子任务信息,以便目标计算节点基于子任务信息处理子任务。
根据本公开的实施例,由于根据计算节点的可用资源信息和子任务的资源需求信息来确定用于处理子任务的目标计算节点,因此,能够实现灵活确定合适的目标计算节点,提高了方案的通用性和计算节点资源利用率。
图1示意性示出了根据本公开实施例的可以应用任务处理方法及装置的示例性系统架构。
需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括控制(即Coordinator)节点集101、计算节点集102和网络103。控制节点集101可以包括N个控制节点。例如,N个控制节点可以包括控制节点101_1、控制节点101_2、......、控制节点101_n、......、控制节点101_(N-1)和控制节点101_N。计算节点102可以包括M个计算节点。N可以是大于或等于1的整数。n∈{1,2,......,(N-1),N}。例如,M个计算节点102可以包括计算节点102_1、计算节点102_2、......、计算节点102_m、......、计算节点102_(M-1)和计算节点102_M。M可以是大于或等于1的整数。m∈{1,2,......,(M-1),M}。网络103用以在控制节点与控制节点、计算节点与计算节点和控制节点与计算节点之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线和/或无线通信链路等。
例如,控制节点101_n可以具有任务划分、子任务动态分配、子任务下发、计算节点唤醒和计算节点集102的资源管理的功能。即控制节点101_n可以基于计算节点的存储、算力和通信能力,负责任务划分、子任务分配和下发。在任务处理过程中可以基于实时的计算节点的运行状态信息动态唤醒辅助计算节点。
控制节点101_n可以包括服务管理(即Service_Manager)模块、服务调度(即Service_Dispatcher)模块、错误管理(即Failuer_Manager)模块、资源定标(即Resource_Scaler)模块和度量采集(即Metrics_Collector)模块。
例如,计算节点102_m可以具有子任务执行、任务处理结果上报和运行状态信息上报的功能。计算节点102_m可以包括消息总线(即MessageBus)模块、通信(即Communicator)模块、任务状态转换(即TaskStateConvert)模块、主线程、服务(即Service)线程、控制面线程和数据面线程。任务状态转换模块可以称为线程转换例程。消息总线模块可以用于实现与控制节点之间的消息传输。通信模块可以用于实现数据转发功能。例如,接收来自计算节点102_m的上游计算节点的上游数据。向计算节点102_m的下游计算节点发送生成的下游数据。通信模块可以支持各种形式的通信方式,能够实现数据转发功能即可。例如,通信方式可以包括以下至少之一:NCCL(Nvidia Collective multi-GPU Communication Library)和RPC(Remote Procedure Call Protocol,远程过程调用协议)。
下面以控制节点101_n和计算节点102_m为例进行说明。控制节点101_n响应于接收到任务处理请求,获取M个计算节点的可用资源信息和人工智能任务的任务信息。任务信息包括人工智能模型和样本数据。根据任务信息,得到T个子任务的子任务信息。根据可用资源信息和T个子任务各自的资源需求信息,从M个计算节点中确定用于处理T个子任务各自的目标计算节点。例如,确定用于处理子任务T的目标计算节点是目标计算节点102_m。控制节点101_n向T个子任务各自的目标计算节点发送子任务的子任务信息。T可以是大于1的整数。
T个子任务各自的目标计算节点基于子任务信息处理子任务。例如,目标计算节点102_m基于子任务T的子任务信息,执行子任务T。
控制节点101_n可以是服务器或终端设备。计算节点102_m可以是服务器或终端设备。终端设备上可以安装有各种通讯客户端应用,例如,知识阅读类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
服务器可以是提供各种服务的各种类型的服务器。例如,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(Virtual Private Server,虚拟专用服务器)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,图1中的控制节点、计算节点和网络的数目仅仅是示意性的。根据实现需要,可以具有任意数目的控制节点、计算节点和网络。
应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。
图2示意性示出了根据本公开实施例的任务处理方法的流程图。
如图2所示,该方法200包括操作S210~S240。
在操作S210,响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。任务信息包括人工智能模型和样本数据。
在操作S220,根据任务信息,得到多个子任务的子任务信息。
在操作S230,根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。
在操作S240,向多个子任务各自的目标计算节点发送子任务的子任务信息,以便目标计算节点基于子任务信息处理子任务。
根据本公开的实施例,任务处理请求可以指用于处理任务的请求。任务可以包括人工智能任务。根据人工智能任务的类型划分,人工智能任务可以包括以下至少之一:图像处理任务、文本处理任务和音频处理任务。图像处理任务可以包括以下至少之一:图像识别任务、目标检测任务、图像分类任务、图像分割任务和图像检索任务等。文本处理任务可以包括以下至少之一:命名实体识别任务、实体关系抽取任务和译文翻译任务等。音频处理任务可以包括以下至少之一:音频识别任务和音频分类任务等。例如,人工智能任务可以包括混合专家(Mixture-of-Experts,MOE)任务和点击通过比率(Click-Through-Rate,CTR)任务等。此外,根据人工智能任务的阶段划分,人工智能任务可以包括以下之一:模型训练阶段的人工智能任务和模型应用阶段的人工智能任务。模型训练阶段的人工智能任务可以称为模型训练任务。模型应用阶段的人工智能任务可以称为模型应用任务。模型可以包括以下至少之一:深度学习模型、机器学习模型、强化学习模型和图神经网络模型。
根据本公开的实施例,人工智能任务可以用计算图(Computational Graph,CG)的形式表征。计算图可以是有向无环图(Directed Acyclic Graph,DAG)。计算图可以用节点表征向量,用有向边表征计算。有向边的目的节点可以称为子节点。有向边的源节点可以称为父节点。
根据本公开的实施例,可用资源信息可以指计算节点当前能够提供的资源信息。资源消耗信息可以指处理人工智能任务需要消耗的资源信息。资源信息可以包括以下至少之一:计算资源信息、存储资源信息和通信资源信息。例如,资源消耗信息可以根据与人工智能任务对应的任务信息来确定。任务信息可以包括人工智能模型和样本数据。人工智能模型和样本数据需要消耗的计算资源信息、存储资源信息和通信资源信息可以根据人工智能模型的模型结构的大小和样本数据的数据量大小来确定。
根据本公开的实施例,可用资源信息可以包括至少一个资源项各自的可用资源信息。资源消耗信息可以包括至少一个资源项各自的资源消耗信息。资源项可以包括以下至少之一:与CPU(Central Processing Unit,中央处理器)相关的资源项、与GPU(GraphicsProcessing Unit,图像处理器)相关的资源项、与内存相关的资源项、与外存相关的资源项和与通信带宽相关的资源项。与CPU相关的资源项可以包括以下至少之一:CPU的主频、CPU的睿频、CPU的核心数、CPU的线程数、CPU的多级缓存和CPU的热设计功耗。与GPU相关的资源项可以包括以下至少之一:GPU的核心、GPU的频率和GPU的容量。与内存相关的资源项可以包括以下至少之一:内存的大小和内存的频率。与外存相关的资源项可以包括以下至少之一:外存的大小和外存的频率。
根据本公开的实施例,控制主节响应于接收到任务处理请求,可以根据任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。在获得任务信息之后,可以根据任务信息,对人工智能任务进行划分,得到多个子任务的子任务信息。例如,可以根据任务信息,对人工智能任务进行划分,得到多个子任务各自的子任务信息。
根据本公开的实施例,控制节点可以获取多个子任务各自的资源需求信息。根据多个计算节点各自的可用资源信息和多个子任务各自的资源需求信息,为子任务确定用于处理该子任务的目标计算节点。与子任务对应的目标计算节点可以包括至少一个。上述任务分配方式可以使得节点使用度和节点处理效率满足预定条件。预定条件可以根据实际业务需求进行配置,在此不作限定。例如,预定条件可以指节点使用度最大和节点处理效率最大。
根据本公开的实施例,控制节点在确定用于处理多个子任务各自的目标计算节点之后,控制节点可以向子任务各自的目标计算节点发送与目标计算节点对应的子任务的子任务信息。目标计算节点可以基于子任务的子任务信息,处理子任务。
根据本公开的实施例,由于根据计算节点的可用资源信息和子任务的资源需求信息来确定用于处理子任务的目标计算节点,因此,能够实现灵活确定合适的目标计算节点,提高了方案的通用性和计算节点资源利用率。
根据本公开的实施例,操作S220可以包括如下操作。
对人工智能模型进行划分,得到多个模型结构。人工智能模型用计算图的形式表征。根据多个模型结构和样本数据,得到多个子任务各自的子任务信息。
根据本公开的实施例,可以对人工智能模型进行划分,得到多个模型结构。模型结构可以包括各种粒度的模型结构。例如,模型结构可以包括以下至少之一:编码器(即Encoder)和解码器(即Decoder)。此外,模型结构还可以比编码器和解码器更为细粒度的模型结构。例如,模型结构还可以包括OP(Operator,算子)。
根据本公开的实施例,可以根据多个模型结构,确定与多个模型结构各自对应的样本数据。根据多个模型结构和与多个模型结构各自对应的样本数据,得到多个子任务各自的子任务信息。
根据本公开的实施例,任务信息还可以包括任务处理例程。任务处理例程可以指用于处理任务的例程。可以对任务处理例程进行划分,得到多个任务处理子例程。可以根据多个模型结构,确定与多个模型结构各自对应的任务处理例程。可以根据多个模型结构、与多个模型结构各自对应的样本数据和任务处理例程,得到多个子任务各自的子任务信息。
根据本公开的实施例,模型结构和任务处理例程采用服务化的方式部署,使得目标计算节点能够弹性和无状态。
根据本公开的实施例,操作S230可以包括如下操作。
基于任务分配策略,根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。任务分配策略是根据节点使用度和节点处理效率中的至少之一确定的。
根据本公开的实施例,任务分配策略可以指用于实现向目标节点分配子任务的策略。任务分配策略可以根据实际业务需求进行配置,在此不作限定。例如,任务分配策略可以是根据节点使用度和节点处理效率中的至少之一确定的。节点使用度可以表征节点的使用程度。节点的使用程度可以根据计算节点的可用资源信息与总资源信息的比值来确定。节点处理效率可以根据计算节点的单位时间的任务处理量来确定的。
根据本公开的实施例,控制节点可以基于任务分配策略,根据多个计算节点各自的可用资源信息和多个子任务各自的资源需求信息,对多个子任务进行分配,使得节点使用度和节点处理效率中的至少之一满足预定条件。预定条件可以指节点使用度最大和节点处理效率最大中的至少之一。
根据本公开的实施例,基于根据节点使用度和节点处理效率中的至少之一确定的任务分配策略来实现任务分配,使得计算节点集的资源利用率能够满足预定条件。
根据本公开的实施例,操作S240可以包括如下操作。
向启动例程发送多个子任务各自的目标计算节点的节点标识,以便启动例程根据多个子任务各自的目标计算节点的节点标识,启动多个子任务各自的目标计算节点。响应于接收到来自多个子任务各自的目标计算节点的注册请求,与多个子任务各自的目标计算节点建立通信连接。向建立通信连接的子任务的目标计算节点发送子任务的子任务信息。
根据本公开的实施例,启动(即Launch)例程可以用于负责启动节点的相应线程。节点可以包括控制节点和计算节点。
根据本公开的实施例,控制节点可以向启动例程发送目标计算节点的节点标识。启动例程可以根据节点标识,启动与节点标识对应的目标计算节点。例如,启动例程可以根据节点标识,启动与节点标识对应的目标计算节点的主线程。目标计算节点在启动之后,目标计算节点可以向控制节点发送注册请求。注册请求可以包括节点标识。控制节点可以响应于接收到目标计算节点的注册请求,根据注册请求包括的节点标识,建立与节点标识对应的目标计算节点之间的通信连接。控制节点和目标计算节点之间可以具有心跳信号。
根据本公开的实施例,控制节点在建立与目标计算节点值之间的通信连接之后,可以向目标计算节点发送该目标计算节点用于处理的子任务的子任务信息。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
根据与目标计算节点对应的子任务的子任务信息,确定目标计算节点中用于处理子任务的至少一个线程。
根据本公开的实施例,操作S240可以包括如下操作。
向多个子任务各自的目标计算节点发送子任务的子任务信息和至少一个线程的线程标识,以便目标计算节点根据至少一个线程的线程标识,调用与线程标识对应的线程,基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,控制节点可以根据与目标计算节点对应的子任务的子任务信息,确定目标计算节点中用于处理该子任务的至少一个线程。此外,还可以根据子任务信息,确定与至少一个线程各自对应的子任务信息。控制节点在确定用于处理该子任务的至少一个线程之后,可以向目标计算节点发送子任务的子任务信息和至少一个线程各自的线程标识。目标计算节点可以根据线程标识调用与线程标识对应的线程。基于与线程对应的子任务信息,利用线程处理与线程对应的子任务。线程可以用于运行与线程对应的子任务。
根据本公开的实施例,控制节点可以向建立通信连接的子任务的目标计算节点发送子任务的子任务信息,以便目标计算节点根据至少一个线程的线程标识,调用与线程标识对应的线程,基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,操作S240可以包括如下操作。
向多个子任务各自的目标计算节点发送子任务的子任务信息,以便目标计算节点根据子任务信息,确定用于处理子任务的至少一个线程,调用至少一个线程,基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,控制节点可以向用于处理子任务的目标计算节点发送子任务的子任务信息。目标计算节点可以根据子任务信息,确定目标计算节点中用于处理该子任务的至少一个线程。确定线程用于处理的子任务信息。在确定用于处理子任务的至少一个线程之后,目标计算节点可以调用线程,基于与线程对应的子任务信息,利用线程处理子任务。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
根据多个目标计算节点的运行状态信息,更新多个目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息。运行状态信息可以包括以下至少之一:节点状态信息和数据等待时长信息。根据多个子任务的任务处理信息,更新多个子任务的资源需求信息,得到更新后的多个子任务的资源需求信息。在根据目标计算节点的运行状态信息和与目标计算节点对应的子任务的任务处理信息中的至少之一确定满足预定任务重分配条件的情况下,根据更新后的多个计算节点的可用资源信息和更新后的多个子任务的资源需求信息,重新确定用于处理子任务的目标计算节点,得到用于处理子任务的新的目标计算节点。向新的目标计算节点发送目标计算节点的子任务相关信息,以便新的目标计算节点基于子任务相关信息处理子任务。子任务相关信息是根据目标计算节点的子任务信息和任务处理信息确定的。
根据本公开的实施例,运行状态信息可以表征计算节点的运行状态。运行状态信息可以包括节点状态信息和数据等待时长信息中的至少之一。节点状态信息可以包括以下至少之一:节点是否异常退出的信息、节点的硬件运行状态信息和节点的通信状态信息。节点的硬件运行状态信息可以包括以下至少之一:CPU的运行状态信息、GPU的运行状态信息、内存的运行状态信息和外存的运行状态信息。
根据本公开的实施例,目标计算节点可以用于处理上游数据,并生成下游数据。上游数据可以指该目标计算节点的上游计算节点的数据。下游数据可以指用于向该目标计算节点的下游计算节点提供的数据。数据等待时长信息可以包括以下至少之一:上游数据被处理所等待的第一时长和下游数据被生成所等待的第二时长。
根据本公开的实施例,任务处理信息可以包括以下至少之一:任务进程信息和任务处理结果。任务进行信息可以表征任务处理的进程信息。例如,任务进程信息可以包括预定时段内的已处理任务量。子任务相关信息可以是根据目标计算节点的子任务信息和任务处理信息确定的。例如,子任务相关信息可以指剩余子任务信息。
根据本公开的实施例,预定任务重分配条件可以指进行任务重新分配所需要满足的条件。预定任务重分配条件可以作为确定目标计算节点是否存在性能瓶颈的依据。预定任务重分配条件可以根据实际业务需求进行配置,在此不作限定。例如,预定任务重分配条件可以包括以下至少之一:第一时长大于或等于第一预定时长阈值、第二时长大于或等于第二预定时长阈值和预定时段内的已处理任务量小于或等于预定任务量阈值。第一预定时长阈值、第二预定时长阈值和预定任务量阈值可以根据实际业务需求进行配置,在此不作限定。例如,可以根据历史任务的处理情况来确定第一预定时长阈值、第二预定时长阈值和预定任务量阈值。
根据本公开的实施例,可以根据多个目标计算节点的运行状态信息对多个目标计算节点的可用资源信息进行更新,得到更新后的多个目标计算节点的可用资源信息。根据更新后的多个目标计算节点的可用资源信息,得到更新后的计算节点的可用资源信息。例如,根据目标计算节点的运行状态信息对目标节点的可用资源新进行更新,得到更新后的目标计算节点的可用资源信息。
根据本公开的实施例,可以根据多个子任务的任务处理信息,确定多个子任务的已消耗资源需求信息。根据多个子任务的资源需求信息和已消耗资源需求信息,确定多个子任务的剩余资源需求信息。将多个子任务的剩余资源需求信息确定为更新后的多个子任务的资源需求信息。例如,可以根据子任务的任务处理信息,确定子任务的已消耗资源需求信息。根据子任务的已消耗资源需求信息和资源需求信息,确定子任务的剩余资源需求信息。将子任务的剩余资源需求信息确定为更新后的子任务的资源需求信息。
根据本公开的实施例,可以确定目标计算节点的运行状态信息和目标计算节点的子任务的任务处理信息中的至少之一是否满足预定任务重分配条件。在确定运行状态信息和任务处理信息中的至少之一满足预定任务重分配条件的情况下,可以基于任务分配策略,根据更新后的多个计算节点的可用资源信息和多个子任务的资源需求信息,从多个计算节点中重新确定用于处理子任务的新的目标计算节点。新的目标计算节点可以包括原目标计算节点和辅助目标计算节点中的至少之一。在原目标计算节点包括多个的情况下,重新确定的用于处理子任务的新的目标计算节点可以是多个原目标计算节点中的目标计算节点。新的目标计算节点的数目与原目标计算节点的数目可以相同或不同。
例如,可以根据更新后的多个计算节点的可用资源信息和多个子任务的资源需求信息,从至少一个可用计算节点中确定辅助计算节点。可用计算节点可以是多个计算节点中除目标计算节点以外的计算节点。控制节点可以向辅助计算节点发送目标计算节点的子任务相关信息,以便辅助计算节点基于子任务相关信息处理子任务。辅助计算节点可以用于辅助目标计算节点来处理子任务。例如,辅助计算节点可以替代目标计算节点来处理子任务。备选地,辅助计算节点和目标计算节点共同配合来处理子任务。至少一个可用计算节点可以是多个计算节点中除目标计算节点以外的计算节点。
根据本公开的实施例,控制节点根据目标计算节点的运行状态信息来动态调整用于处理子任务的目标计算节点,使得计算节点集的资源利用率能够满足预定条件。例如,在根据目标计算节点的运行状态信息确定目标节点异常退出的情况下,控制节点可以根据更新后的多个计算节点的可用资源信息和更新后的多个子任务的资源需求信息,重新确定用于处理子任务的目标计算节点。在根据子任务的任务处理信息确定可用资源信息出现潮汐效应的情况下,控制节点可以动态调整负责处理子任务的目标计算节点,实现弹性扩缩容。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
创建多个子任务和用于多个子任务各自的目标计算节点之间的关联关系,得到多个关联关系。将多个关联关系存储至任务处理表。
根据本公开的实施例,任务可以用任务标识表征。节点可以用节点标识表征。由此,子任务和用于处理子任务的目标计算节点之间的关联关系可以用子任务的任务标识和用于处理子任务的目标计算节点的节点标识来表征。
根据本公开的实施例,控制节点可以在确定用于处理子任务的目标计算节点之后,可以创建子任务和用于处理子任务的目标计算节点之间的关联关系。将关联关系存储至任务处理表。控制节点可以根据任务处理情况更新任务处理表。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
根据多个关联关系,将多个目标计算节点的运行状态信息和多个子任务的任务处理信息存储至任务处理表。
根据本公开的实施例,控制节点可以根据关联关系,将子任务、子任务的任务处理信息、用于处理子任务的目标计算节点和目标计算节点的运行状态信息关联存储至任务处理表,以便控制节点可以根据任务处理表来动态调整用于处理子任务的目标计算节点。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
响应于接收到来自多个目标计算节点的任务处理结果,根据多个目标计算节点的任务处理结果,确定目标任务处理结果。
根据本公开的实施例,任务处理结果可以包括以下至少之一:任务处理精度信息、任务处理效率信息和任务处理耗时信息。例如,人工智能任务为模型训练任务。任务处理结果可以包括以下至少之一:模型精度信息、任务处理效率信息和模型训练耗时信息。
根据本公开的实施例,目标计算节点在获得任务处理结果之后,可以向控制节点发送任务处理结果。控制节点可以将多个目标计算节点各自的任务处理结果进行汇聚,得到目标任务处理结果,以便根据目标任务处理结果调整人工智能任务。
图3示意性示出了根据本公开另一实施例的任务处理方法的流程图。
如图3所示,该方法300包括操作操作S310。
在操作S310,目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于子任务信息处理子任务。
根据本公开的实施例,目标计算节点是控制节点根据多个计算节点的可用资源信息和多个子任务各自的资源需求信息从多个计算节点中确定的。子任务信息是根据人工智能任务的任务信息得到的。多个节点的可用资源信息和人工智能任务的任务信息是控制节点响应于接收到任务处理请求获取的。任务信息包括人工智能模型和样本数据。
根据本公开的实施例,操作S310可以包括如下操作。
目标计算节点响应于接收到来自控制节点的子任务的子任务信息和目标计算节点中用于处理子任务的至少一个线程的线程标识,根据至少一个线程的线程标识调用至少一个线程。基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,操作S310可以包括如下操作。
目标计算节点响应于接收到来自控制节点的子任务的子任务信息,根据子任务信息,确定用于处理子任务的至少一个线程。基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,基于子任务信息,利用至少一个线程处理子任务,可以包括如下操作。
根据子任务信息,确定线程执行顺序。根据线程执行顺序和子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,可以根据与至少一个线程对应的子任务信息,确定至少一个线程的线程执行顺序。可以按照线程执行顺序,基于与至少一个线程对应的子任务信息,利用至少一个线程处理与至少一个线程对应的子任务。
根据本公开的实施例,根据线程执行顺序和子任务信息,利用至少一个线程处理子任务,可以包括如下操作。
利用当前线程处理从当前线程的任务队列中获取的当前待处理任务的当前待处理任务信息,得到当前任务处理结果。当前待处理任务是从至少一个子任务的初始任务中确定的。至少一个子任务的初始任务是根据子任信息对子任务进行划分得到的。利用当前线程向线程转换例程发送当前任务处理结果。利用线程转换例程向新的当前线程的任务队列发送当前待处理任务的新的当前待处理任务信息。新的当前待处理任务信息可以包括当前任务处理结果。重复执行获得当前任务处理结果的操作,直至子任务被处理完毕。
根据本公开的实施例,可以根据子任务信息,将子任务划分为至少一个子任务的初始任务。子任务的初始任务可以作为待处理任务。当前待处理任务(即当前子任务的初始任务)可以指当前正在处理的待处理任务。
根据本公开的实施例,线程可以具有与该线程对应的任务队列。任务队列可以包括待处理任务信息。可以将用于处理当前待处理任务的线程称为当前线程。子任务可以包括至少一个子任务的初始任务。线程可以具有与该线程对应的待处理任务。例如,线程与待处理任务一一对应。
根据本公开的实施例,利用当前线程处理从当前线程的任务队列中获取的当前待处理任务信息,得到当前任务处理结果。可以根据线程执行顺序,确定是否存在下一线程。在确定存在下一线程的情况下,可以将下一线程确定为新的当前线程。与下一线程对应的任务队列称为新的当前线程的任务队列。
根据本公开的实施例,可以利用当前线程向线程转换例程发送当前任务处理结果。利用线程转换例程向新的当前线程的任务队列发送当前待处理任务的新的当前待处理任务信息,利用新的当前线程处理从新的当前线程的任务队列中获取的新的当前待处理任务信息,得到新的当前任务处理结果。可以重复执行获得当前任务处理结果的操作,直至子任务被处理完毕。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
向控制节点发送任务处理结果,以便控制节点根据任务处理结果和接收到来自其他目标计算节点的任务处理结果,确定目标任务处理结果。
根据本公开的实施例,上述任务处理方法还可以包括如下操作。
向控制节点发送目标计算节点的运行状态信息和子任务的任务处理信息,以便控制节点根据目标计算节点的运行状态信息和其他目标计算节点的运行状态信息,更新多个目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息。运行状态信息包括以下至少之一:节点状态信息和数据等待时长信息。根据子任务的任务处理信息和其他子任务的任务处理信息,更新多个子任务的资源需求信息,得到更新后的多个子任务的资源需求信息。在根据目标计算节点的运行状态信息和与目标计算节点对应的子任务的任务处理信息中的至少之一确定满足预定任务重分配条件的情况下,根据更新后的多个计算节点的可用资源信息和更新后的多个子任务的资源需求信息,重新确定用于处理子任务的目标计算节点,得到用于处理子任务的新的目标计算节点,以及向新的目标计算节点发送目标计算节点的子任务相关信息,以便新的目标计算节点基于子任务相关信息处理子任务。子任务相关信息是根据目标计算节点的子任务信息和任务处理信息确定的。
下面参考图4、图5A和图5B,结合具体实施例对根据本公开实施例所述的任务处理方法做进一步说明。
图4示意性示出了根据本公开实施例的任务处理方法的信令图。
如图4所示,该方法400包括操作S401~S415。
在操作S401,控制节点响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。任务信息包括人工智能模型和样本数据。
在操作S402,控制节点对人工智能模型进行划分,得到多个模型结构。
在操作S403,控制节点根据多个模型结构和样本数据,得到多个子任务各自的子任务信息。
在操作S404,控制节点基于任务分配策略,根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。任务分配策略是根据节点使用度和节点处理效率中的至少之一确定的。
在操作S405,控制节点发送子任务的子任务信息。
在操作S406,目标计算节点基于子任务信息处理子任务,得到任务处理结果。
在操作S407,目标计算节点发送任务处理结果。
在操作S408,控制节点根据目标计算节点的任务处理结果和其他目标计算节点的任务处理结果,确定目标任务处理结果。
在操作S409,目标计算节点发送目标计算节点的运行状态信息。
在操作S410,控制节点根据目标计算节点的运行状态信息,更新目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息。
在操作S411,目标计算节点发送子任务的任务处理信息。
在操作S412,控制节点根据目标计算节点的运行状态信息,更新目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息。
在操作S413,控制节点根据更新后的多个计算节点的可用资源信息和多个子任务的资源需求信息,从至少一个可用计算节点中确定辅助计算节点。
在操作S414,控制节点发送目标计算节点的子任务相关信息。子任务相关信息是根据目标计算节点的子任务信息和任务处理信息确定的。
在操作S415,辅助计算节点基于子任务相关信息处理子任务。
图5A示意性示出了根据本公开实施例的任务处理过程的示例示意图。
如图5A所示,在500A中,控制节点501可以包括服务管理模块501_1、服务调度模块501_2、错误管理模块501_3、资源定标模块501_4和度量采集模块501_5。服务调度模块501_2可以用于实现子任务的分配。
控制节点501可以响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。根据任务信息,得到两个子任务的子任务信息,即子任务1的子任务信息和子任务2的子任务信息。根据可用资源信息和两个子任务各自的资源需求信息,从多个计算节点中确定用于处理两个子任务各自的目标计算节点,即用于处理子任务1的计算节点为目标计算节点502。用于处理子任务2的计算节点为目标计算节点503。
控制节点501向目标计算节点502发送子任务1的子任务信息。控制节点501向目标计算节点503发送子任务2的子任务信息。
下面以目标计算节点502处理子任务1为例,对目标计算节点基于子任务信息处理子任务的过程进行说明。
目标计算节点502可以包括线程1、线程2、线程3、线程4、线程5、线程6和线程7。线程1可以指主线程502_1。线程2可以指与消息总线模块502_2对应的线程。线程3可以指与任务线程502_3对应的线程。线程4可以指与任务线程502_4对应的线程。线程5可以指与任务线程502_5对应的线程。线程6可以指与任务线程502_6对应的线程。线程7可以指与通信模块502_7对应的线程。线程3~线程6可以指任务线程。线程2可以指控制面线程。线程7可以指数目面线程。
目标计算节点502可以根据子任务1的子任务信息,确定线程3~线程6的线程执行顺序。目标计算节点502可以根据线程执行顺序和子任务信息,利用线程3~线程6处理子任务1。
下面参考图5B,结合具体实施例对图5A中目标计算节点502利用线程3~线程6处理子任务1做进一步说明。
图5B示意性示出了根据本公开实施例的目标计算节点根据线程执行顺序和子任务信息,利用至少一个线程处理子任务过程的示例示意图。
如图5B所示,在500B中,线程具有与该线程对应的任务队列,由此,具有与线程3(即图5A中的任务线程502_3)对应的任务队列503_3。具有与线程4(即图5A中的线程502_4)对应的任务队列503_4。具有与线程5(即图5A中的线程502_5)对应的任务队列503_5。具有与线程6(即图5A中的线程502_6)对应的任务队列503_6。
可以利用打包(即ReadBatch(即读批样本)&PackTask(即打包任务))例程可以将子任务1分解为至少一个子任务的初始任务。可以从至少一个子任务的初始任务中确定当前待处理任务。线程3~线程6的线程执行顺序是线程4→线程5→线程6→线程3。利用线程3~线程6处理每个当前待处理任务,直至子任务1被处理完毕。
针对当前待处理任务,将线程4确定为当前线程。利用当前线程处理从当前线程的任务队列(即任务队列503_4)中获取的当前待处理任务的当前待处理任务信息,得到当前任务处理结果。利用当前线程向线程转换例程发送当前任务处理结果。
将线程5确定为新的当前线程。利用线程转换例程向新的当前线程的任务队列发送当前待处理任务的新的当前待处理任务信息。新的当前待处理任务信息包括当前任务处理结果。利用新的当前线程处理从新的当前线程的任务队列(即任务队列503_5)中获取的当前待处理任务的新的当前待处理任务信息,得到新的当前任务处理结果。利用新的当前线程向线程转换例程发送新的当前任务处理结果。
将线程6确定为新的当前线程。利用线程转换例程向新的当前线程的任务队列发送当前待处理任务的新的当前待处理任务信息。新的当前待处理任务信息包括当前任务处理结果。利用新的当前线程处理从新的当前线程的任务队列(即任务队列503_6)中获取的当前待处理任务的新的当前待处理任务信息,得到新的当前任务处理结果。利用新的当前线程向线程转换例程发送新的当前任务处理结果。
将线程3确定为新的当前线程。利用线程转换例程向新的当前线程的任务队列发送当前待处理任务的新的当前待处理任务信息。新的当前待处理任务信息包括当前任务处理结果。利用新的当前线程处理从新的当前线程的任务队列(即任务队列503_3)中获取的当前待处理任务的新的当前待处理任务信息,得到新的当前任务处理结果。将新的当前任务处理结果确定为任务处理结果。
根据本公开的实施例,本公开实施例的任务处理方法能够应对各种类型的人工智能任务,并且支持数据并行、模型并行和流水线并行等各种并行方式。控制节点能够实现子任务分配、线程启动、资源分配和管理,方便实现资源的弹性扩缩容和容错。控制节点能够根据目标计算节点的运行状信息,动态调整用于处理任务的目标计算节点,使得计算节点集的资源利用率最大化。
图6示意性示出了根据本公开实施例的任务处理装置的框图。
如图6所示,任务处理装置600可以包括获取模块610、第一获得模块620、第一确定模块630和第一发送模块640。
获取模块610,用于响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。任务信息包括人工智能模型和样本数据。
第一获得模块620,用于根据任务信息,得到多个子任务的子任务信息。
第一确定模块630,用于根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。
第一发送模块640,用于向多个子任务各自的目标计算节点发送子任务的子任务信息,以便目标计算节点基于子任务信息处理子任务。
根据本公开的实施例,第一确定模块630可以包括第一确定子模块。
第一确定子模块,用于基于任务分配策略,根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。任务分配策略是根据节点使用度和节点处理效率中的至少之一确定的。
根据本公开的实施例,第一获得模块620可以包括第一获得子模块和第二获得子模块。
第一获得子模块,用于对人工智能模型进行划分,得到多个模型结构。
第二获得子模块,用于根据多个模型结构和样本数据,得到多个子任务各自的子任务信息。
根据本公开的实施例,第一发送模块640可以包括第一发送子模块、建立子模块和第二发送子模块。
第一发送子模块,用于向启动例程发送多个子任务各自的目标计算节点的节点标识,以便启动例程根据多个子任务各自的目标计算节点的节点标识,启动多个子任务各自的目标计算节点;
建立子模块,用于响应于接收到来自多个子任务各自的目标计算节点的注册请求,与多个子任务各自的目标计算节点建立通信连接。
第二发送子模块,用于向建立通信连接的子任务的目标计算节点发送子任务的子任务信息。
根据本公开的实施例,上述任务处理装置600还可以包括第二确定模块。
第二确定模块,用于根据与目标计算节点对应的子任务的子任务信息,确定目标计算节点中用于处理子任务的至少一个线程。
根据本公开的实施例,第一发送模块640可以包括第三发送子模块。
第三发送子模块,用于向多个子任务各自的目标计算节点发送子任务的子任务信息和至少一个线程的线程标识,以便目标计算节点根据至少一个线程的线程标识,调用与线程标识对应的线程,基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,第一发送模块640可以包括第四发送子模块。
第四发送子模块,用于向多个子任务各自的目标计算节点发送子任务的子任务信息,以便目标计算节点根据子任务信息,确定用于处理子任务的至少一个线程,调用至少一个线程,基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,上述任务处理装置600还可以包括第二获得模块、第三获得模块、第三确定模块和第二发送模块。
第二获得模块,用于根据多个目标计算节点的运行状态信息,更新多个目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息。运行状态信息包括以下至少之一:节点状态信息和数据等待时长信息。
第三获得模块,用于根据多个子任务的任务处理信息,更新多个子任务的资源需求信息,得到更新后的多个子任务的资源需求信息。
第三确定模块,用于在根据目标计算节点的运行状态信息和与目标计算节点对应的子任务的任务处理信息中的至少之一确定满足预定任务重分配条件的情况下,根据更新后的多个计算节点的可用资源信息和更新后的多个子任务的资源需求信息,重新确定用于处理子任务的目标计算节点,得到用于处理子任务的新的目标计算节点。
第二发送模块,用于向新的目标计算节点发送目标计算节点的子任务相关信息,以便新的目标计算节点基于子任务相关信息处理子任务。子任务相关信息是根据目标计算节点的子任务信息和任务处理信息确定的。
根据本公开的实施例,上述任务处理装置600还可以包括创建模块和第一存储模块。
创建模块,用于创建多个子任务和用于多个子任务各自的目标计算节点之间的关联关系,得到多个关联关系。
第一存储模块,用于将多个关联关系存储至任务处理表。
根据本公开的实施例,上述任务处理装置600还可以包括第二存储模块。
第二存储模块,用于根据多个关联关系,将多个目标计算节点的运行状态信息和多个子任务的任务处理信息存储至任务处理表。
根据本公开的实施例,上述任务处理装置600还可以包括第四确定模块。
第四确定模块,用于响应于接收到来自多个目标计算节点的任务处理结果,根据多个目标计算节点的任务处理结果,确定目标任务处理结果。
图7示意性示出了根据本公开另一实施例的任务处理装置的框图。
如图7所示,任务处理装置700可以包括处理模块710。
处理模块710,用于目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于子任务信息处理子任务。
根据本公开的实施例,目标计算节点是控制节点根据多个计算节点的可用资源信息和多个子任务各自的资源需求信息从多个计算节点中确定的。子任务信息是根据人工智能任务的任务信息得到的。多个节点的可用资源信息和人工智能任务的任务信息是控制节点响应于接收到任务处理请求获取的,任务信息包括人工智能模型和样本数据。
根据本公开的实施例,上述任务处理装置700还可以包括第三发送模块。
第三发送模块,用于响应于检测到启动完毕操作,向控制节点发送注册请求,以便控制节点响应于接收到目标节点的注册请求,与目标节点建立通信连接。
根据本公开的实施例,启动完毕操作是启动例程根据目标节点的节点标识启动目标节点之后生成的。目标节点的节点标识是启动例程接收到来自控制节点的节点标识。
根据本公开的实施例,处理模块710可以包括调用子模块和处理子模块。
目标计算节点响应于接收到来自控制节点的子任务的子任务信息和目标计算节点中用于处理子任务的至少一个线程的线程标识,
调用子模块,用于根据至少一个线程的线程标识调用至少一个线程。
处理子模块,用于基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,处理模块710可以包括第二确定子模块和处理子模块。
目标计算节点响应于接收到来自控制节点的子任务的子任务信息,
第二确定子模块,用于根据子任务信息,确定用于处理子任务的至少一个线程。
处理子模块,用于基于子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,处理子模块可以包括确定单元和处理单元。
确定单元,用于根据子任务信息,确定线程执行顺序。
处理单元,用于根据线程执行顺序和子任务信息,利用至少一个线程处理子任务。
根据本公开的实施例,处理单元可以包括第一获得子单元、第一发送子单元、第二发送子单元和处理子单元。
第一获得子单元,用于利用当前线程处理从当前线程的任务队列中获取的当前待处理任务的当前待处理任务信息,得到当前任务处理结果。当前待处理任务是从至少一个子任务的初始任务中确定的。至少一个子任务的初始任务是根据子任信息对子任务进行划分得到的。
第一发送子单元,用于利用当前线程向线程转换例程发送当前任务处理结果。
第二发送子单元,用于利用线程转换例程向新的当前线程的任务队列发送当前待处理任务的新的当前待处理任务信息。新的当前待处理任务信息包括当前任务处理结果。
处理子单元,用于重复执行获得当前任务处理结果的操作,直至子任务被处理完毕。
根据本公开的实施例,上述任务处理装置700还可以包括第四发送模块。
第四发送模块,用于向控制节点发送任务处理结果,以便控制节点根据任务处理结果和接收到来自其他目标计算节点的任务处理结果,确定目标任务处理结果。
图8示意性示出了根据本公开实施例的任务处理系统的框图。
如图8所示,任务处理系统800可以包括控制节点集801和计算节点802。控制节点集801可以包括R个控制节点801。R个控制节点可以包括控制节点801_1、控制节点801_2、......、控制节点801_r、......、控制节点801_(R-1)和控制节点801_R。计算节点集802可以包括S个目标计算节点。S个目标计算节点可以包括目标计算节点802_1、目标计算节点802_2、......、目标计算节点802_s、......、目标计算节点802_(S-1)和目标计算节点802_S。R可以是大于或等于1的整数。S可以是大于1的整数。
控制节点801_r可以用于:响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息。根据任务信息,得到多个子任务的子任务信息。根据可用资源信息和多个子任务各自的资源需求信息,从多个计算节点中确定用于处理多个子任务各自的目标计算节点。向多个子任务各自的目标计算节点发送子任务的子任务信息。任务信息包括人工智能模型和样本数据。
目标计算节点802_s可以用于基于子任务信息处理子任务。
根据本公开的实施例,至少一个控制节点各自之间的关系包括以下之一:具有关系和未具有关系。具有关系包括以下至少之一:具有层级关系和具有并列关系。
根据本公开的实施例,利用多种形式的控制节点部署架构,能够实现资源利用率和任务处理效率最大化。
根据本公开的实施例,目标计算节点802_s可以还用于向控制节点发送任务处理结果。
控制节点801_r还可以用于根据任务处理结果和其他目标计算任务节点的任务处理结果,确定目标任务处理结果。
根据本公开的实施例,在存在与控制节点具有层级关系的预定上级层级的控制节点的情况下,任务信息包括控制节点接收到的来自预定上级层级的控制节点的任务信息。
控制节点还用于向预定上级层级的控制节点发送目标任务处理结果,以便预定上级层级的控制节点根据目标任务处理结果和接收到的来自当前层级的其他控制节点的目标任务处理结果,确定预定上级层级的目标任务处理结果。
根据本公开的实施例,预定上级层级可以指当前层级的预定数目的上级层级。例如,预定上级层级可以是当前层级的上一层级。
以上仅是示例性实施例,但不限于此,还可以包括本领域已知的其他任务处理方法,只要能够实现任务处理即可。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上所述的方法。
根据本公开的实施例,一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行如上所述的方法。
根据本公开的实施例,一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上所述的方法。
图9示意性示出了根据本公开实施例的适于实现任务处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
电子设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如任务处理方法。例如,在一些实施例中,任务处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的任务处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以是分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (41)

1.一种任务处理方法,包括:
响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息,其中,所述任务信息包括人工智能模型和样本数据;
根据所述任务信息,得到多个子任务的子任务信息;
根据所述可用资源信息和所述多个子任务各自的资源需求信息,从所述多个计算节点中确定用于处理所述多个子任务各自的目标计算节点;以及
向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息,以便所述目标计算节点基于所述子任务信息处理所述子任务。
2.根据权利要求1所述的方法,其中,所述根据所述可用资源信息和所述多个子任务各自的资源需求信息,从所述多个计算节点中确定用于处理所述多个子任务各自的目标计算节点,包括:
基于任务分配策略,根据所述可用资源信息和所述多个子任务各自的资源需求信息,从所述多个计算节点中确定用于处理所述多个子任务各自的目标计算节点,其中,所述任务分配策略是根据节点使用度和节点处理效率中的至少之一确定的。
3.根据权利要求1或2所述的方法,其中,所述根据所述任务信息,得到多个子任务的子任务信息,包括:
对所述人工智能模型进行划分,得到多个模型结构;以及
根据所述多个模型结构和所述样本数据,得到所述多个子任务各自的子任务信息。
4.根据权利要求1~3中任一项所述的方法,其中,所述向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息,包括:
向启动例程发送所述多个子任务各自的目标计算节点的节点标识,以便所述启动例程根据所述多个子任务各自的目标计算节点的节点标识,启动所述多个子任务各自的目标计算节点;
响应于接收到来自所述多个子任务各自的目标计算节点的注册请求,与所述多个子任务各自的目标计算节点建立通信连接;以及
向建立通信连接的子任务的目标计算节点发送所述子任务的子任务信息。
5.根据权利要求1~3中任一项所述的方法,还包括:
根据与所述目标计算节点对应的子任务的子任务信息,确定所述目标计算节点中用于处理所述子任务的至少一个线程;
其中,所述向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息,以便所述目标计算节点基于所述子任务信息处理所述子任务,包括:
向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息和所述至少一个线程的线程标识,以便所述目标计算节点根据所述至少一个线程的线程标识,调用与所述线程标识对应的线程,基于所述子任务信息,利用所述至少一个线程处理所述子任务。
6.根据权利要求1~3中任一项所述的方法,其中,所述向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息,以便所述目标计算节点基于所述子任务信息处理所述子任务,包括:
向所述多个子任务各自的目标计算节点发送子任务的子任务信息,以便所述目标计算节点根据所述子任务信息,确定用于处理所述子任务的至少一个线程,调用所述至少一个线程,基于所述子任务信息,利用所述至少一个线程处理所述子任务。
7.根据权利要求1~6中任一项所述的方法,还包括:
根据多个所述目标计算节点的运行状态信息,更新多个所述目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息,其中,所述运行状态信息包括以下至少之一:节点状态信息和数据等待时长信息;
根据所述多个子任务的任务处理信息,更新所述多个子任务的资源需求信息,得到更新后的多个子任务的资源需求信息;
在根据所述目标计算节点的运行状态信息和与所述目标计算节点对应的子任务的任务处理信息中的至少之一确定满足预定任务重分配条件的情况下,根据所述更新后的多个计算节点的可用资源信息和所述更新后的多个子任务的资源需求信息,重新确定用于处理所述子任务的目标计算节点,得到用于处理所述子任务的新的目标计算节点;以及
向所述新的目标计算节点发送所述目标计算节点的子任务相关信息,以便所述新的目标计算节点基于所述子任务相关信息处理所述子任务,其中,所述子任务相关信息是根据所述目标计算节点的子任务信息和所述任务处理信息确定的。
8.根据权利要求1~7中任一项所述的方法,还包括:
创建所述多个子任务和用于所述多个子任务各自的目标计算节点之间的关联关系,得到多个关联关系;以及
将所述多个关联关系存储至任务处理表。
9.根据权利要求8所述的方法,还包括:
根据所述多个关联关系,将多个所述目标计算节点的运行状态信息和所述多个子任务的任务处理信息存储至所述任务处理表。
10.根据权利要求1~9中任一项所述的方法,还包括:
响应于接收到来自所述多个目标计算节点的任务处理结果,根据所述多个目标计算节点的任务处理结果,确定目标任务处理结果。
11.一种任务处理方法,包括:
目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于所述子任务信息处理所述子任务;
其中,所述目标计算节点是所述控制节点根据多个计算节点的可用资源信息和多个所述子任务各自的资源需求信息从所述多个计算节点中确定的,所述子任务信息是根据人工智能任务的任务信息得到的,所述多个节点的可用资源信息和所述人工智能任务的任务信息是所述控制节点响应于接收到任务处理请求获取的,所述任务信息包括人工智能模型和样本数据。
12.根据权利要求11所述的方法,还包括:
响应于检测到启动完毕操作,向所述控制节点发送注册请求,以便所述控制节点响应于接收到所述目标节点的注册请求,与所述目标节点建立通信连接;
其中,所述启动完毕操作是启动例程根据所述目标节点的节点标识启动所述目标节点之后生成的,所述目标节点的节点标识是所述启动例程接收到来自所述控制节点的节点标识。
13.根据权利要求11或12所述的方法,其中,所述目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于所述子任务信息处理所述子任务,包括:
所述目标计算节点响应于接收到来自所述控制节点的所述子任务的子任务信息和所述目标计算节点中用于处理所述子任务的至少一个线程的线程标识,
根据所述至少一个线程的线程标识调用所述至少一个线程;以及
基于所述子任务信息,利用所述至少一个线程处理所述子任务。
14.根据权利要求11或12所述的方法,其中,所述目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于所述子任务信息处理所述子任务,包括:
所述目标计算节点响应于接收到来自所述控制节点的子任务的子任务信息,
根据所述子任务信息,确定用于处理所述子任务的至少一个线程;以及
基于所述子任务信息,利用所述至少一个线程处理所述子任务。
15.根据权利要求13或14所述的方法,其中,所述基于所述子任务信息,利用所述至少一个线程处理所述子任务,包括:
根据所述子任务信息,确定线程执行顺序;以及
根据所述线程执行顺序和所述子任务信息,利用所述至少一个线程处理所述子任务。
16.根据权利要求15所述的方法,其中,所述根据所述线程执行顺序和所述子任务信息,利用所述至少一个线程处理所述子任务,包括:
利用当前线程处理从当前线程的任务队列中获取的当前待处理任务的当前待处理任务信息,得到当前任务处理结果,其中,所述当前待处理任务是从至少一个子任务的初始任务中确定的,所述至少一个子任务的初始任务是根据所述子任信息对所述子任务进行划分得到的;
利用所述当前线程向线程转换例程发送所述当前任务处理结果;
利用所述线程转换例程向新的当前线程的任务队列发送所述当前待处理任务的新的当前待处理任务信息,其中,所述新的当前待处理任务信息包括所述当前任务处理结果;以及
重复执行获得所述当前任务处理结果的操作,直至所述子任务被处理完毕。
17.根据权利要求11~16中任一项所述的方法,还包括:
向所述控制节点发送任务处理结果,以便所述控制节点根据所述任务处理结果和接收到来自其他目标计算节点的任务处理结果,确定目标任务处理结果。
18.一种任务处理装置,包括:
获取模块,用于响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息,其中,所述任务信息包括人工智能模型和样本数据;
第一获得模块,用于根据所述任务信息,得到多个子任务的子任务信息;
第一确定模块,用于根据所述可用资源信息和所述多个子任务各自的资源需求信息,从所述多个计算节点中确定用于处理所述多个子任务各自的目标计算节点;以及
第一发送模块,用于向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息,以便所述目标计算节点基于所述子任务信息处理所述子任务。
19.根据权利要求18所述的装置,其中,所述第一确定模块,包括:
第一确定子模块,用于基于任务分配策略,根据所述可用资源信息和所述多个子任务各自的资源需求信息,从所述多个计算节点中确定用于处理所述多个子任务各自的目标计算节点,其中,所述任务分配策略是根据节点使用度和节点处理效率中的至少之一确定的。
20.根据权利要求18或19所述的装置,其中,所述第一获得模块,包括:
第一获得子模块,用于对所述人工智能模型进行划分,得到多个模型结构;以及
第二获得子模块,用于根据所述多个模型结构和所述样本数据,得到所述多个子任务各自的子任务信息。
21.根据权利要求18~20中任一项所述的装置,其中,所述第一发送模块,包括:
第一发送子模块,用于向启动例程发送所述多个子任务各自的目标计算节点的节点标识,以便所述启动例程根据所述多个子任务各自的目标计算节点的节点标识,启动所述多个子任务各自的目标计算节点;
建立子模块,用于响应于接收到来自所述多个子任务各自的目标计算节点的注册请求,与所述多个子任务各自的目标计算节点建立通信连接;以及
第二发送子模块,用于向建立通信连接的子任务的目标计算节点发送所述子任务的子任务信息。
22.根据权利要求18~20中任一项所述的装置,还包括:
第二确定模块,用于根据与所述目标计算节点对应的子任务的子任务信息,确定所述目标计算节点中用于处理所述子任务的至少一个线程;
其中,所述第一发送模块,包括:
第三发送子模块,用于向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息和所述至少一个线程的线程标识,以便所述目标计算节点根据所述至少一个线程的线程标识,调用与所述线程标识对应的线程,基于所述子任务信息,利用所述至少一个线程处理所述子任务。
23.根据权利要求18~20中任一项所述的装置,其中,所述第一发送模块,包括:
第四发送子模块,用于向所述多个子任务各自的目标计算节点发送子任务的子任务信息,以便所述目标计算节点根据所述子任务信息,确定用于处理所述子任务的至少一个线程,调用所述至少一个线程,基于所述子任务信息,利用所述至少一个线程处理所述子任务。
24.根据权利要求18~23中任一项所述的装置,还包括:
第二获得模块,用于根据多个所述目标计算节点的运行状态信息,更新多个所述目标计算节点的可用资源信息,得到更新后的多个计算节点的可用资源信息,其中,所述运行状态信息包括以下至少之一:节点状态信息和数据等待时长信息;
第三获得模块,用于根据所述多个子任务的任务处理信息,更新所述多个子任务的资源需求信息,得到更新后的多个子任务的资源需求信息;
第三确定模块,用于在根据所述目标计算节点的运行状态信息和与所述目标计算节点对应的子任务的任务处理信息中的至少之一确定满足预定任务重分配条件的情况下,根据所述更新后的多个计算节点的可用资源信息和所述更新后的多个子任务的资源需求信息,重新确定用于处理所述子任务的目标计算节点,得到用于处理所述子任务的新的目标计算节点;以及
第二发送模块,用于向所述新的目标计算节点发送所述目标计算节点的子任务相关信息,以便所述新的目标计算节点基于所述子任务相关信息处理所述子任务,其中,所述子任务相关信息是根据所述目标计算节点的子任务信息和所述任务处理信息确定的。
25.根据权利要求18~24中任一项所述的装置,还包括:
创建模块,用于创建所述多个子任务和用于所述多个子任务各自的目标计算节点之间的关联关系,得到多个关联关系;以及
第一存储模块,用于将所述多个关联关系存储至任务处理表。
26.根据权利要求25所述的装置,还包括:
第二存储模块,用于根据所述多个关联关系,将多个所述目标计算节点的运行状态信息和所述多个子任务的任务处理信息存储至所述任务处理表。
27.根据权利要求18~26中任一项所述的装置,还包括:
第四确定模块,用于响应于接收到来自所述多个目标计算节点的任务处理结果,根据所述多个目标计算节点的任务处理结果,确定目标任务处理结果。
28.一种任务处理装置,包括:
处理模块,用于目标计算节点响应于接收到来自控制节点的子任务的子任务信息,基于所述子任务信息处理所述子任务;
其中,所述目标计算节点是所述控制节点根据多个计算节点的可用资源信息和多个所述子任务各自的资源需求信息从所述多个计算节点中确定的,所述子任务信息是根据人工智能任务的任务信息得到的,所述多个节点的可用资源信息和所述人工智能任务的任务信息是所述控制节点响应于接收到任务处理请求获取的,所述任务信息包括人工智能模型和样本数据。
29.根据权利要求28所述的装置,还包括:
第三发送模块,用于响应于检测到启动完毕操作,向所述控制节点发送注册请求,以便所述控制节点响应于接收到所述目标节点的注册请求,与所述目标节点建立通信连接;
其中,所述启动完毕操作是启动例程根据所述目标节点的节点标识启动所述目标节点之后生成的,所述目标节点的节点标识是所述启动例程接收到来自所述控制节点的节点标识。
30.根据权利要求28或29所述的装置,其中,所述处理模块,包括:
所述目标计算节点响应于接收到来自所述控制节点的所述子任务的子任务信息和所述目标计算节点中用于处理所述子任务的至少一个线程的线程标识,
调用子模块,用于根据所述至少一个线程的线程标识调用所述至少一个线程;以及
处理子模块,用于基于所述子任务信息,利用所述至少一个线程处理所述子任务。
31.根据权利要求28或29所述的装置,其中,所述处理模块,包括:
所述目标计算节点响应于接收到来自所述控制节点的子任务的子任务信息,
第二确定子模块,用于根据所述子任务信息,确定用于处理所述子任务的至少一个线程;以及
处理子模块,用于基于所述子任务信息,利用所述至少一个线程处理所述子任务。
32.根据权利要求30或31所述的装置,其中,所述处理子模块,包括:
确定单元,用于根据所述子任务信息,确定线程执行顺序;以及
处理单元,用于根据所述线程执行顺序和所述子任务信息,利用所述至少一个线程处理所述子任务。
33.根据权利要求32所述的装置,其中,所述处理单元,包括:
第一获得子单元,用于利用当前线程处理从当前线程的任务队列中获取的当前待处理任务的当前待处理任务信息,得到当前任务处理结果,其中,所述当前待处理任务是从至少一个子任务的初始任务中确定的,所述至少一个子任务的初始任务是根据所述子任信息对所述子任务进行划分得到的;
第一发送子单元,用于利用所述当前线程向线程转换例程发送所述当前任务处理结果;
第二发送子单元,用于利用所述线程转换例程向新的当前线程的任务队列发送所述当前待处理任务的新的当前待处理任务信息,其中,所述新的当前待处理任务信息包括所述当前任务处理结果;以及
处理子单元,用于重复执行获得所述当前任务处理结果的操作,直至所述子任务被处理完毕。
34.根据权利要求28~33中任一项所述的装置,还包括:
第四发送模块,用于向所述控制节点发送任务处理结果,以便所述控制节点根据所述任务处理结果和接收到来自其他目标计算节点的任务处理结果,确定目标任务处理结果。
35.一种任务处理系统,包括:
至少一个控制节点,
所述控制节点用于:
响应于接收到任务处理请求,获取多个计算节点的可用资源信息和人工智能任务的任务信息;根据所述任务信息,得到多个子任务的子任务信息;根据所述可用资源信息和所述多个子任务各自的资源需求信息,从所述多个计算节点中确定用于处理所述多个子任务各自的目标计算节点;以及,向所述多个子任务各自的目标计算节点发送所述子任务的子任务信息,其中,所述任务信息包括人工智能模型和样本数据;以及
所述多个目标计算节点,
所述目标计算节点用于基于所述子任务信息处理所述子任务。
36.根据权利要求35所述的系统,其中,所述至少一个控制节点各自之间的关系包括以下之一:具有关系和未具有关系,所述具有关系包括以下至少之一:具有层级关系和具有并列关系。
37.根据权利要求35或36所述的系统,所述目标计算节点还用于向所述控制节点发送任务处理结果;
所述控制节点还用于根据所述任务处理结果和其他目标计算任务节点的任务处理结果,确定目标任务处理结果。
38.根据权利要求36所述的系统,其中,在存在与所述控制节点具有层级关系的上级层级的控制节点的情况下,所述任务信息包括所述控制节点接收到的来自所述上级层级的控制节点的任务信息;
所述控制节点还用于向所述上级层级的控制节点发送所述目标任务处理结果,以便所述上级层级的控制节点根据所述目标任务处理结果和接收到的来自当前层级的其他控制节点的目标任务处理结果,确定上级层级的目标任务处理结果。
39.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~10中任一项或权利要求11~17中任一项所述的方法。
40.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1~10中任一项或权利要求11~17中任一项所述的方法。
41.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1~10中任一项或权利要求11~17中任一项所述的方法。
CN202210559281.9A 2022-05-18 2022-05-18 任务处理方法、装置、系统、电子设备以及存储介质 Pending CN114840323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210559281.9A CN114840323A (zh) 2022-05-18 2022-05-18 任务处理方法、装置、系统、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210559281.9A CN114840323A (zh) 2022-05-18 2022-05-18 任务处理方法、装置、系统、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN114840323A true CN114840323A (zh) 2022-08-02

Family

ID=82573066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210559281.9A Pending CN114840323A (zh) 2022-05-18 2022-05-18 任务处理方法、装置、系统、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114840323A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115640968A (zh) * 2022-10-18 2023-01-24 中电金信软件有限公司 作业调度方法、装置、电子设备和存储介质
CN115658325A (zh) * 2022-11-18 2023-01-31 北京市大数据中心 数据处理方法、装置、多核处理器、电子设备以及介质
CN117707793A (zh) * 2024-02-05 2024-03-15 太平金融科技服务(上海)有限公司 一种计算任务处理方法、装置、设备及介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115640968A (zh) * 2022-10-18 2023-01-24 中电金信软件有限公司 作业调度方法、装置、电子设备和存储介质
CN115658325A (zh) * 2022-11-18 2023-01-31 北京市大数据中心 数据处理方法、装置、多核处理器、电子设备以及介质
CN115658325B (zh) * 2022-11-18 2024-01-23 北京市大数据中心 数据处理方法、装置、多核处理器、电子设备以及介质
CN117707793A (zh) * 2024-02-05 2024-03-15 太平金融科技服务(上海)有限公司 一种计算任务处理方法、装置、设备及介质
CN117707793B (zh) * 2024-02-05 2024-05-03 太平金融科技服务(上海)有限公司 一种计算任务处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN114840323A (zh) 任务处理方法、装置、系统、电子设备以及存储介质
CN112559182B (zh) 资源分配方法、装置、设备及存储介质
CN115794337B (zh) 资源调度方法、装置、云平台、设备及存储介质
CN111190719B (zh) 优化集群资源分配的方法、装置、介质及电子设备
CN114911598A (zh) 任务调度方法、装置、设备以及存储介质
CN112527509A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN111858040A (zh) 一种资源调度方法和装置
WO2024139754A1 (zh) 一种测试节点的调控方法、装置、电子设备以及存储介质
CN112925811B (zh) 数据处理的方法、装置、设备、存储介质及程序产品
CN114490048A (zh) 任务执行方法、装置、电子设备及计算机存储介质
CN117608754A (zh) 多资源池应用的处理方法及装置、电子设备和存储介质
EP4235424A1 (en) Resource control method for function computing, device, and medium
CN116414564A (zh) 自适应集群调度方法及装置、计算机存储介质、电子设备
CN116248689A (zh) 一种云原生应用的扩容方法、装置、设备和介质
CN115390992A (zh) 一种虚拟机创建方法、装置、设备和存储介质
CN115437709A (zh) 应用首页闪屏资源的加载方法及装置
CN113032092B (zh) 分布式计算方法、装置及平台
CN113778645A (zh) 基于边缘计算的任务调度方法、装置、设备及存储介质
CN113590326B (zh) 服务资源调度方法和装置
CN115600687B (zh) 模型训练方法、装置、设备以及存储介质
CN115981872B (zh) 算法资源的调用方法、装置、电子设备和存储介质
CN114356505A (zh) 用于调度容器组的方法、装置、设备、介质和产品
CN117707793B (zh) 一种计算任务处理方法、装置、设备及介质
CN116893893B (zh) 一种虚拟机调度方法、装置、电子设备及存储介质
CN118708341A (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