CN116700919A - 任务处理方法及装置、计算机可读存储介质、电子设备 - Google Patents

任务处理方法及装置、计算机可读存储介质、电子设备 Download PDF

Info

Publication number
CN116700919A
CN116700919A CN202310491574.2A CN202310491574A CN116700919A CN 116700919 A CN116700919 A CN 116700919A CN 202310491574 A CN202310491574 A CN 202310491574A CN 116700919 A CN116700919 A CN 116700919A
Authority
CN
China
Prior art keywords
task
task execution
node
executed
configuration information
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
CN202310491574.2A
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.)
BOE Technology Group Co Ltd
Beijing BOE Technology Development Co Ltd
Original Assignee
BOE Technology Group Co Ltd
Beijing BOE Technology Development 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 BOE Technology Group Co Ltd, Beijing BOE Technology Development Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN202310491574.2A priority Critical patent/CN116700919A/zh
Publication of CN116700919A publication Critical patent/CN116700919A/zh
Pending legal-status Critical Current

Links

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/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/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
    • 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/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server 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/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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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
    • 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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开是关于一种任务处理方法及装置、计算机可读存储介质、电子设备,涉及计算机资源调度技术领域,该方法包括:接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。本公开提高了任务执行效率。

Description

任务处理方法及装置、计算机可读存储介质、电子设备
技术领域
本公开实施例涉及计算机资源调度技术领域,具体而言,涉及一种任务处理方法、任务处理装置、计算机可读存储介质以及电子设备。
背景技术
现有的方法中,无法自动的根据任务配置信息为待执行任务匹配任务执行节点,进而使得任务的执行效率较低。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种任务处理方法、任务处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的任务的执行效率较低的问题。
根据本公开的一个方面,提供一种任务处理方法,包括:
接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;
对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;
根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;
根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
在本公开的一种示例性实施例中,根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
获取所述第一任务配置信息中包括的当前任务类型信息,从任务调度模板中匹配执行与所述当前任务类型信息一致的历史已执行任务的第一任务执行节点;
从资源池中获取处于空闲状态的当前任务执行节点,并判断所述第一任务执行节点是否存在于所述当前任务执行节点中;
若所述第一任务执行节点存在于所述当前任务执行节点中,则将所述第一任务执行节点作为与所述待执行任务对应的目标任务执行节点;
若所述第一任务执行节点不存在于当前任务执行节点中,则根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
获取所述当前任务执行节点的当前节点配置信息,并判断所述当前节点配置信息中是否存在与所述第一任务配置信息匹配的目标节点配置信息;
若当前节点配置信息中存在与第一任务配置信息匹配的目标节点配置信息,则将与所述目标节点配置信息对应的当前任务执行节点,作为与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,所述任务处理方法还包括:
若当前节点配置信息中不存在与第一任务配置信息匹配的目标节点配置信息,则生成与目标任务执行节点对应的第一失败提示信息,并将所述第一失败提示信息发送至所述终端设备;
接收所述终端设备根据所述第一失败提示信息对所述第一任务执行指令中的第一任务配置信息进行动态调整后发送的第二任务执行指令,并根据所述第二任务执行指令中包括的第二任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度;
根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
根据所述网络配置适配度对所述当前任务执行节点进行排序,得到第一节点排序结果,并从所述第一节点排序结果中选取网络适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;或者
根据所述资源配置适配度对所述当前任务执行节点进行排序,得到第二节点排序结果,并从所述第二节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;或者
根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,并根据所述总适配度对所述当前任务执行节点进行排序,得到第三节点排序结果;
从所述第三节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,包括:
为所述网络配置适配度以及资源配置适配度配置第一权重值以及第二权重值;其中,所述第一权重值大于等于第二权重值;
计算第一权重值与网络配置适配度之间的第一积运算结果,并计算第二权重值与资源配置适配度之间的第二积运算结果;
计算第一积运算结果与第二积运算结果之间的第一和运算结果,并根据所述第一和运算结果得到所述待执行任务与所述当前任务执行节点之间的总适配度。
在本公开的一种示例性实施例中,所述第一任务配置信息中包括第一网络配置信息和/或第一资源配置信息;所述当前节点配置信息中包括第二网络配置信息和/或第二资源配置信息;
其中,根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度,包括:
根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度;和/或
根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度。
在本公开的一种示例性实施例中,所述第一网络配置信息包括第一网络带宽和/或第一网络延迟,所述第二网络配置信息包括第二网络带宽和/或第二网络延迟;
其中,根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度,包括:
计算第一网络带宽与第二网络带宽之间的第一商运算结果;和/或
计算所述第一网络延迟与第二网络延迟之间的第二商运算结果;
根据第一商运算结果和/或第二商运算结果,得到所述待执行任务与所述当前任务执行节点之间的网络配置适配度。
在本公开的一种示例性实施例中,所述第一资源配置信息包括第一中央处理器的资源配置、第一内存器的资源配置以及第一图形处理器的资源配置中的一种或多种;
所述第二资源配置信息包括第二中央处理器的资源配置、第二内存器的资源配置以及第二图形处理器的资源配置中的一种或多种;
其中,根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度,包括:
计算第二中央处理器的资源配置与第一中央处理器的资源配置之间的第三商运算结果;和/或
计算第二内存器的资源配置与第一内存器的资源配置之间的第四商运算结果;和/或
计算第二图形处理器的资源配置与第一图形处理器的资源配置之间的第五商运算结果;
根据第三商运算结果和/或第四商运算结果和/或第五商运算结果,得到待执行任务与所述当前任务执行节点之间的资源配置适配度。
在本公开的一种示例性实施例中,在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果,包括:
将所述调度任务下发至所述目标任务执行节点,并通过所述目标任务执行节点,将所述调度任务中包括的容器任务镜像提交至容器编排引擎中的任务执行工具;
通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果。
在本公开的一种示例性实施例中,通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果,包括:
通过所述任务执行工具执行所述容器任务镜像得到任务执行容器;
启动并执行任务执行容器中包括的可执行镜像,得到与所述待执行任务对应的任务执行结果。
在本公开的一种示例性实施例中,所述任务处理方法还包括:
在所述可执行镜像运行的过程中,实时监测所述任务执行容器的第一运行状态以及任务执行工具的第二运行状态,并根据所述第一运行状态以及第二运行状态生成监控日志;和/或
对所述第一运行状态以及第二运行状态进行展示。
在本公开的一种示例性实施例中,所述任务处理方法还包括:
在确定所述可执行镜像执行完成时,删除所述任务执行容器中的可执行镜像,并释放执行所述调度任务所占用的目标任务执行节点的第二网络占用资源以及第二内存占用资源;
将所述目标任务执行节点的节点状态由占用状态更新为空闲状态,并将处于空闲状态的目标任务执行节点放置至资源池中。
在本公开的一种示例性实施例中,所述任务处理方法还包括:
调用与所述终端设备对应的任务回调接口,并通过所述任务回调接口将所述任务执行结果反馈至所述终端设备。
在本公开的一种示例性实施例中,所述第一任务执行指令是终端设备通过如下方式生成的:
在所述终端设备的显示界面上显示任务执行界面;
响应于针对任务执行界面的第一输入事件,确定待执行任务,并显示与所述待执行任务对应的任务配置界面;其中,所述待执行任务包括模型训练任务和/或数据分析任务;
响应于作用于所述任务配置界面的第二输入事件,确定待执行任务的第一任务配置信息;
响应于作用于所述任务配置界面的第三输入事件,根据所述待执行任务以及第一任务配置信息,生成第一任务执行指令,并将所述第一任务执行指令发送至任务执行框架。
根据本公开的一个方面,提供一种任务处理装置,包括:
第一接收模块,用于接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;
第一解析模块,用于对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;
任务执行节点确定模块,用于根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;
任务执行模块,用于根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的任务处理方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的任务处理方法。
本公开实施例提供的一种任务处理方法,一方面,通过接收终端设备发送的第一任务执行指令;然后对第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;进而根据第一任务配置信息,从当前任务执行节点中匹配与待执行任务对应的目标任务执行节点;最后根据第一任务配置信息以及目标任务执行节点生成调度任务,并在目标任务执行节点中执行调度任务,得到与待执行任务对应的任务执行结果;由于可以根据第一任务配置信息匹配目标任务执行节点,进而在该目标任务执行节点中执行该任务,从而解决了现有技术中的无法自动的根据任务配置信息为待执行任务匹配任务执行节点,进而使得任务的执行效率较低的问题;另一方面,还可以避免目标任务执行节点的节点资源浪费的问题;再一方面,由于第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的,进而实现了待执行任务的灵活配置。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根据本公开示例实施例的一种任务处理方法的流程图。
图2示意性示出根据本公开示例实施例的一种任务处理***的框图。
图3示意性示出根据本公开示例实施例的一种服务器端的结构示例图。
图4示意性示出根据本公开示例实施例的一种容器化应用管理***Kubernetes的结构示例图。
图5示意性示出根据本公开示例实施例的一种第一任务执行指令的具体生成过程的示例图。
图6示意性示出根据本公开示例实施例的一种任务配置界面的界面示例图。
图7示意性示出根据本公开示例实施例的一种根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点的方法流程图。
图8示意性示出根据本公开示例实施例的一种调度任务创建失败所得到的显示界面的界面示例图。
图9示意性示出根据本公开示例实施例的一种第一中央处理器的使用状态、第一内存器的使用状态、第一图形处理器的使用状态的界面示例图。
图10示意性示出根据本公开示例实施例的一种监控日志的界面示例图。
图11示意性示出根据本公开示例实施例的一种对运行异常的节点进行动态调整的流程图。
图12示意性示出根据本公开示例实施例的一种资源释放情况的界面展示图。
图13示意性示出根据本公开示例实施例的一种任务处理装置的框图。
图14示意性示出根据本公开示例实施例的一种用于实现上述任务处理方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在一些基于Kubernetes的资源调度方案中,其虽然提供了Job分组算法和资源分配策略,但是只考虑了部分资源的使用和回收,所考虑到的资源匹配并不全面;同时,由于其仅针对已经存在的job组提供了调度策略,因而缺少了易用性的考虑。进一步的,在一些基于智能化调度的方案中,虽然提供了智能调度策略,但是其对于其他分布式协作领域缺少相应的弹性机制;同时,该方案也不支持用户决策,用户无法在出现错误时及时进行策略的微调,只能重新生成策略分配资源。
基于此,本示例实施方式中首先提供了一种任务处理方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。具体的,参考图1所示,该任务处理方法可以包括以下步骤:
步骤S110.接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;
步骤S120.对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;
步骤S130.根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;
步骤S140.根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
上述任务处理方法中,一方面,通过接收终端设备发送的第一任务执行指令;然后对第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;进而根据第一任务配置信息,从当前任务执行节点中匹配与待执行任务对应的目标任务执行节点;最后根据第一任务配置信息以及目标任务执行节点生成调度任务,并在目标任务执行节点中执行调度任务,得到与待执行任务对应的任务执行结果;由于可以根据第一任务配置信息匹配目标任务执行节点,进而在该目标任务执行节点中执行该任务,从而解决了现有技术中的无法自动的根据任务配置信息为待执行任务匹配任务执行节点,进而使得任务的执行效率较低的问题;另一方面,还可以避免目标任务执行节点的节点资源浪费的问题;再一方面,由于第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的,进而实现了待执行任务的灵活配置。
以下,将结合附图对本公开示例实施例所记载的任务处理方法进行进一步的解释以及说明。
首先,对本公开示例实施例中所涉及到的专有名词进行解释以及说明。
Kubernetes:也可以被简称为K8s,是一种用于自动部署、扩缩和管理容器化应用程序的开源***。
接口回调:也称为Callback,指在执行完成一些任务后触发的反馈机制。
容器监控:主要指对k8s服务产生的容器进行状态监控、运行状态检查。
其次,对本公开示例实施例的技术实现原理进行解释以及说明。具体的,本公开示例实施例所记载的一种任务处理方法,提出了一种支持多节点任务协作的kubernetes资源调度***的实现方法,旨在解决大型深度学习训练任务或者多节点并发协作任务中如何选择执行节点、监控节点执行情况以及简化Kubernetes管理的问题;同时,还可以解决在实际生产实践中,对于Kubernetes服务调用、容器管理等复杂调度问题;在实际应用的过程中,该任务管理方法可以涉及任务管理、接口回调以及容器监控等多个不同的方面。
进一步的,对本公开示例实施例中所涉及到的任务处理***进行解释以及说明。具体的,参考图2所示,该任务处理***可以包括终端设备210以及服务器端220;其中,终端设备可以通过有线网络或者无线网络的方式与服务器端通信连接;同时,在实际应用的过程中,终端设备可以用于生成任务执行指令并向服务器端发送任务执行指令;服务器端可以用于实现本公开示例实施例所记载的任务处理方法。
在一种示例实施例中,参考图3所示,此处所记载的服务器端,也可以被认为是任务执行框架所在的服务器端;同时,在本公开示例实施例所记载的任务执行框架中,其可以包括任务注册模块310、部署调度模块320、任务管理模块330、资源监控模块340、资源回收模块350、回调管理模块360、容器化应用管理***Kubernetes370以及调用服务接口380;其中,各模块之间的连接关系可以参考图3所示。其中,任务注册模块310可以用于读取任务执行指令中的任务配置信息,并将任务配置信息注册到任务管理模块330;任务管理模块330可以用于加载任务配置信息,并读取Kubernetes节点状态,进而根据任务配置信息以及节点状态,结合智能调度策略生成调度任务,并将调度任务下发至部署调度模块320;部署调度模块320读取调度任务信息,向Kubernetes下发Job,Job运行成功后,将Job和Job中包括的pod等信息注册到资源监控模块340,由资源监控模块340监控后续Job、Pod等运行状态;资源监控模块340可以用于监控Job、Pod等运行状态,实时向任务管理模块330反馈,进而通过任务管理模块330展示任务运行情况;资源回收模块350可以用于在接收到任务管理模块下发的任务完成的信息后,释放任务执行所使用的节点资源,并将节点资源返还至资源池;回调管理模块360可以用于允许用户注册回调地址,并在接收到回调请求以后,将任务管理模块发送的任务的执行信息和执行结果通过调用服务接口380以回调任务的形式对外部服务进行反馈,进而方便外部服务进行对接以及集成。
在一种示例实施例中,上述所记载的任务注册模块中可以包括配置解析模块、子任务拆解以及注册模块以及回调注册模块;其中,配置解析模块可以用于对第一任务执行指令进行解析,进而得到第一任务配置信息;子任务拆解模块可以用于根据第一任务配置信息进行任务拆解和/或任务注册;同时,回调注册模块可以用于接收用户发送的回调接口的注册请求并进行调用服务接口注册,进而基于调用服务接口反馈任务执行结果或者人物执行日志。进一步的,在实际应用的过程中,任务可以以数据包的形式经由信息通道(该信息通道例如可以是消息队列遥测传输MQTT等)进行传输;例如,通过信息通道将调度任务从任务注册模块传输至任务管理模块,又或者,从任务管理模块传输至部署调度模块等等。同时,此处所记载的数据包,可以涵盖处于空闲状态的当前任务执行节点等资源信息;并且,上述所记载的资源监控模块可以监控当前任务执行节点以及空闲任务执行节点等节点信息,进而将相应的信息写入上述数据包。
在一种示例实施例中,此处所记载的资源池,是设置在任务执行框架中的用于放置处于空闲状态的当前任务执行节点的资源池;该资源池中可以包括一个或者多个当前任务执行节点;同时,在该当前任务执行节点中,可以是基于Kubernetes技术,面向微服务架构下提供基于众多节点的服务,该服务可以是基于多节点间的协作进行的;同时,在当前任务执行节点部署的过程中,可以存在如下两种不同的情况:一种是,各当前任务执行节点可以分别设置于不同的服务器中,也即,一台服务器中仅设置一个当前任务执行节点;在此场景下,在进行实际任务管理或者任务执行时,可以包括依赖于不同服务器之间的协同作业任务,也可以包括可以通过单一服务器进行独立执行的任务;并且,在依赖于不同服务器之间的协同作业任务的场景下,可以适用于海量数据的大规模集群部署环境,其可以有利于智慧园区/智慧城市的作业;另一种是,个当前任务执行节点可以设置在相同的服务器中,也即,一台服务器中可以设置多个当前任务执行节点,或者当前任务执行节点可以均匀的设置在一定数量的服务器中;在此场景下,实际执行任务时,依赖该服务器下为不同节点开辟的虚拟内存的协同作业,此种情况使用于涉及较少数据的部署环境,例如单一功能(如客流识别)下的银行场景。
在一种示例实施例中,容器化应用管理***Kubernetes,可以用于执行调度任务。其中,参考图4所示,该容器化应用管理***Kubernetes中可以包括容器(Pod)410、容器对外暴露的服务端口(Service)420、容器负载均衡(Ingress)430、第一管理工具(Deployment)440以及第二管理工具(Job)450;其中,容器可以用于执行相应的任务;服务端口用于提供容器与外界的通信连接,比如可以通过服务端口将调度任务写入Pod;容器负载均衡可以用于实现Pod的负载均衡,进而达到平衡各Pod的负载的目的;第一管理工具可以用于管理Pod、服务端口以及容器负载均衡,第二管理工具可以用于控制Pod执行相应的任务。
基于前述记载的内容可以得知,本公开示例实施例所记载的任务处理***,相较于其他的基于Kubernetes调度***来说,有如下特点:一方面,配置简单且灵活;具体的,从任务的维度对调度进行管理,只需要提供任务运行的基本信息和要求,可自动生成Kubernetes配置文件并下发任务;另一方面,监控体系完善;具体的,可以从任务全生命周期角度对执行情况进行监控,从任务的创建条件校验开始,到任务创建状态、执行情况、完成情况、资源回收;再一方面,其可以贯穿整个任务流程,出现任何问题都会对用户进行告警,并允许用户做出相应决策;进一步的,***还可以根据用户配置的运行要求信息自动生成调度策略,选择执行任务的节点,完成任务下发,进而可以避免用户因选择资源不满足要求而执行失败的问题。
以下,将结合图5对本公开中所涉及到的第一任务执行指令的具体生成过程进行解释以及说明。具体的,参考图5所示,第一任务执行指令的具体生成过程,可以包括以下步骤:
步骤S510,在所述终端设备的显示界面上显示任务执行界面。
步骤S520,响应于针对任务执行界面的第一输入事件,确定待执行任务,并显示与所述待执行任务对应的任务配置界面;其中,所述待执行任务包括模型训练任务和/或数据分析任务。
步骤S530,响应于作用于所述任务配置界面的第二输入事件,确定待执行任务的第一任务配置信息。
步骤S540,响应于作用于所述任务配置界面的第三输入事件,根据所述待执行任务以及第一任务配置信息,生成第一任务执行指令,并将所述第一任务执行指令发送至任务执行框架。
以下,将对步骤S510-步骤S540进行解释以及说明。具体的,在实际应用的过程中,碍于终端设备侧的算力限制或者数据安全性的限制,通常会存在需要在服务端执行相应的任务的场景;基于此场景,当需要请求服务端协助执行任务时,首先,可以在终端设备的显示界面上显示任务执行界面;其中,此处所记载的任务执行界面,可以是基于某一客户端来实现的;也即,打开相应的客户端即可显示任务执行界面;然后,用户可以根据实际需要,确定相应的待执行任务,进而显示与该待执行任务对应的任务配置界面;其中,此处所记载的待执行任务,可以包括模型训练任务,也可以包括数据分析任务,当然还可以包括接口测试任务等等,本示例对此不做特殊限制;同时,此处所记载的任务配置界面,具体可以参考图6所示;进一步的,用户还可以根据所显示任务配置界面,输入相应的任务配置信息;其中,此处所记载的任务配置信息,可以包括镜像信息、挂载文件信息、资源配置信息、节点类型信息、节点规格信息、延迟启停信息、运行命令信息、网络带宽信息、网络延迟信息、运行参数模式信息、运行参数信息以及运行命令预览信息等等。其中,此处所记载的镜像信息,可以包括镜像名称以及镜像版本等等,挂载文件可以包括相应的脚本文件等等;资源配置信息可以包括单机训练或者多机多卡等,节点类型可以包括CPU或者GPU等;同时,当任务配置信息输入完成后,即可点击该任务配置界面上的任务下发控件,进而得到第一任务执行指令并将该任务指令提交至任务执行框架,也即服务器端。
此处需要补充说明的是,由于任务可以包括不同的类型,因此此处所记载的任务配置界面中所包括的任务配置信息是以模型训练任务为例来进行说明的,对于其他的任务,比如数据请求任务或者接口测试任务等,可以根据实际情况显示相应的任务配置界面,本示例对此不做特殊限制;同时,此处所记载的模型训练任务,可以包括深度神经网络模型训练任务,或者联邦模型训练任务以及跨模态模型(可以被理解为在融合多个单模态特征的基础上进行综合语义理解,进而完成特定的分类、匹配、生成等任务)训练任务等等。
以下,将结合图2-图6对图1中所示出的任务处理方法进行进一步的解释以及说明。具体的:
在步骤S110中,接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的。
具体的,此处之所以限定该第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的,是为了在调度任务的创建期间,如果检测到调度任务创建失败,则可以手动的对该第一任务执行指令中包括的任务配置信息进行调整,进而避免由于调度任务创建失败导致的无法执行待处理任务的问题。
在步骤S120中,对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息。
具体的,此处所记载的第一任务配置信息,可以包括任务镜像信息、挂载文件信息、第一网络配置信息以及第一资源配置信息等等;其中,第一网络配置信息可以包括第一网络带宽信息以及第一网络延迟信息等等,第一资源配置信息可以包括第一CPU信息、第一GPU信息以及第一存储器信息等等。在实际应用的过程中,该任务配置信息可以根据实际需要进行配置,本示例对此不做特殊限制;同时,对于不同类型的待执行任务,其对应的第一任务配置信息可能会存在部分相同或者完全不同等,本示例对此不做特殊限制。
在步骤S130中,根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
具体的,参考图7所示,根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,可以包括以下步骤:
步骤S710,获取所述第一任务配置信息中包括的当前任务类型信息,从任务调度模板中匹配执行与所述当前任务类型信息一致的历史已执行任务的第一任务执行节点;
步骤S720,从资源池中获取处于空闲状态的当前任务执行节点,并判断所述第一任务执行节点是否存在于所述当前任务执行节点中;
步骤S730,若所述第一任务执行节点存在于所述当前任务执行节点中,则将所述第一任务执行节点作为与所述待执行任务对应的目标任务执行节点;
步骤S740,若所述第一任务执行节点不存在于当前任务执行节点中,则根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
以下,将对步骤S710-步骤S740进行解释以及说明。具体的,在实际应用的过程中,可以根据待执行任务的当前任务类型信息匹配第一任务执行节点;也即,判断任务调度模板中是否存在与当前任务类型信息一致的一致性的历史任务;若存在,则确定该历史任务被分配的第一任务执行节点;当然,还需要确定该第一任务执行节点是否处于空闲状态,若是,则可以直接将该第一任务执行节点作为目标任务执行节点;若不存在该第一任务执行节点或者该第一任务执行节点处于占用状态,则还需要根据第一任务配置信息,从当前任务执行节点中匹配与待执行任务对应的目标任务执行节点。
在一种示例实施例中,根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,可以通过如下方式实现:首先,获取所述当前任务执行节点的当前节点配置信息,并判断所述当前节点配置信息中是否存在与所述第一任务配置信息匹配的目标节点配置信息;其次,若当前节点配置信息中存在与第一任务配置信息匹配的目标节点配置信息,则将与所述目标节点配置信息对应的当前任务执行节点,作为与所述待执行任务对应的目标任务执行节点;进一步的,若当前节点配置信息中不存在与第一任务配置信息匹配的目标节点配置信息,则生成与目标任务执行节点对应的第一失败提示信息,并将所述第一失败提示信息发送至所述终端设备;最后,接收所述终端设备根据所述第一失败提示信息对所述第一任务执行指令中的第一任务配置信息进行动态调整后发送的第二任务执行指令,并根据所述第二任务执行指令中包括的第二任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。具体的,在实际应用的过程中,可以先判断当前节点配置信息中是否存在与执行待执行任务所需要的第一任务配置信息对应的目标节点配置信息;也即,判断当前任务执行节点中是否存在有能力执行该待执行任务的目标任务执行节点;若存在,直接确定该目标任务执行节点;若不存在,则可以根据具体的不匹配原因生成第一失败提示信息;比如,所需要的网络带宽或者网络延迟不匹配,又或者所需要的CPU资源或者GPU资源或者存储器资源不匹配等;然后,在将该第一失败提示信息发送至终端设备;当终端设备接收到该第一失败提示信息后,即可根据具体的不匹配原因对第一任务配置信息进行自适应的动态调整,进而得到第二任务配置信息,再根据第二任务配置信息生成第二任务执行指令并重新匹配对应的目标任务执行节点。其中,调度任务创建失败所得到的显示界面,具体可以参考图8所示。
在一种示例实施例中,在图8所示出的调度任务的显示界面中,其可以包括多个不同的调度任务,例如,该调度任务可以包括V0001-V0012等等;在实际应用的过程中,在一些特殊的应用场景下,会存在同时需要执行多个调度任务的场景;比如,在智慧银行或者智慧医疗的场景下,需要执行人脸识别、人体识别、客流识别等多条同时设置于智慧园区的相关任务等等;在此场景下,该待执行任务可以包括同时供专注于图像识别领域开发人员进行模型训练的平台,同时执行了卷积神经网络模型、注意力机制模型、双向长短期记忆网络模型、循环神经网络模型等等;在该情况下,需要在有限算力的情况下合理分配资源,进而可以以最快的速度训练出相应的模型,从而达到可以进行人脸识别、人体识别或者客流识别的目的,并根据人脸识别结果、人体识别结果或者客流识别结果执行相应的措施,比如进行贵宾服务或者一般用户服务等等。
在一种示例实施例中,根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,可以通过如下方式实现:首先,根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度;其次,根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。也即,如果需要从当前任务执行节点中匹配与待执行任务对应的目标任务执行节点,可以从网络配置适配度以及资源配置适配度等两个维度上来考虑;同时,在实际应用的过程中,可以根据网络配置适配度以及资源配置适配度生成一个只能调度策略;其中,此处的只能调度可以体现在如下几个方面:一个方面是,如果第一任务配置信息中仅出现了第一网络配置信息而未出现第一资源配置信息,则可以只基于网络配置适配度这个维度来匹配目标任务执行节点;另一方面是,如果第一任务配置信息中仅出现了第一资源配置信息而未出现第一网络配置信息,则可以只基于资源配置适配度这个维度来匹配目标任务执行节点;再一个方面是,如果第一任务配置信息中既出现了第一资源配置信息又出现了第一网络配置信息,则可以从两个维度来匹配目标任务执行节点。
在一种示例实施例中,根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,可以通过如下方式实现:一种实现方式为,根据所述网络配置适配度对所述当前任务执行节点进行排序,得到第一节点排序结果,并从所述第一节点排序结果中选取网络适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;另一种实现方式为,根据所述资源配置适配度对所述当前任务执行节点进行排序,得到第二节点排序结果,并从所述第二节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;再有一种实现方式为,根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,并根据所述总适配度对所述当前任务执行节点进行排序,得到第三节点排序结果;从所述第三节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点。也即,在实际应用的过程中,如果第一任务配置信息中仅包括第一网络配置信息,则可以直接选取网络配置适配度最大的当前任务执行节点作为目标任务执行节点;如果第一任务配置信息中仅包括第一资源配置信息,则可以直接选取资源配置适配度最大的当前任务执行节点作为目标任务执行节点;当然,如果第一任务配置信息中既包括第一资源配置信息又包括第一网络配置信息,则可以对资源配置适配度以及网络配置适配度进行加权求和,进而确定对应的目标任务执行节点。
在一种示例实施例中,根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,可以通过如下方式实现:首先,为所述网络配置适配度以及资源配置适配度配置第一权重值以及第二权重值;其中,所述第一权重值大于等于第二权重值;其次,计算第一权重值与网络配置适配度之间的第一积运算结果,并计算第二权重值与资源配置适配度之间的第二积运算结果;然后,计算第一积运算结果与第二积运算结果之间的第一和运算结果,并根据所述第一和运算结果得到所述待执行任务与所述当前任务执行节点之间的总适配度。具体的,若通过对资源配置适配度以及网络配置适配度进行加权求和的方式来确定对应的目标任务执行节点,则需要为网络配置适配度以及资源配置适配度配置相应的第一权重值以及第二权重值;其中,第一权重值以及第二权重值的具体配置过程可以通过人工经验的方式来进行配置,也可以通过模型预测的方式来配置,本示例对此不做特殊限制;同时,在通过模型预测的方式进行配置时,此处所用到的网络模型可以包括但不限于卷积神经网络模型、循环神经网络模型、深度神经网络模型以及决策树模型等等,本示例对此不做特殊限制;同时,此处之所以限定第一权重值要大于等于第二权重值,是因为在实际应用的过程中,网络配置适配度需要优先于资源配置适配度,从而能够达到提高任务执行效率的目的。
在一种示例实施例中,上述所记载的所述当前节点配置信息中可以包括第二网络配置信息和/或第二资源配置信息;其中,根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度,可以通过如下方式实现:根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度;和/或根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度。
在一种示例实施例中,上述所记载的第二网络配置信息可以包括第二网络带宽和/或第二网络延迟;其中,根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度,可以通过如下方式实现:计算第一网络带宽与第二网络带宽之间的第一商运算结果;和/或计算所述第一网络延迟与第二网络延迟之间的第二商运算结果;根据第一商运算结果和/或第二商运算结果,得到所述待执行任务与所述当前任务执行节点之间的网络配置适配度。其中,网络配置适配度的具体计算方式,可以参考如下公式(1)所示:
其中,Fitness是网络配置适配度,Bandwithrequire是第一网络带宽,也即需要的网络带宽;Bandwithactual是第二网络带宽,也即实际的网络带宽;Delayrequire是第一网络延迟,也即需要的网络延迟;Delayactual是第二网络延迟,也即实际的网络延迟。此处需要补充说明的是,由于同一区域内的网络带宽和网络延迟基本一致,因此可以提前计算不同区域的网络带宽和网络延迟,基于目标带宽和延迟计算匹配度;同时,需求带宽和各节点实际带宽平均值的商与需求延迟和各节点实际延迟平均值的商取和,值越大,适配度越高。
在一种示例实施例中,上述所记载的第一资源配置信息可以包括第一中央处理器的资源配置、第一内存器的资源配置以及第一图形处理器的资源配置等等,第二资源配置信息包括第二中央处理器的资源配置、第二内存器的资源配置以及第二图形处理器的资源配置等等;其中,根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度,可以通过如下方式实现:计算第二中央处理器的资源配置与第一中央处理器的资源配置之间的第三商运算结果;和/或计算第二内存器的资源配置与第一内存器的资源配置之间的第四商运算结果;和/或计算第二图形处理器的资源配置与第一图形处理器的资源配置之间的第五商运算结果;根据第三商运算结果和/或第四商运算结果和/或第五商运算结果,得到待执行任务与所述当前任务执行节点之间的资源配置适配度。其中,资源配置适配度的具体计算公式,可以参考如下公式(2)所示:
其中,Fitnessnode是资源配置适配度;CPUrequire是第一中央处理器的资源配置,也即所需要的中央处理器的资源配置;CPUnode是第二中央处理器的资源配置,以及该目标任务执行节点所具有的实际的中央处理器的资源配置;MEMrequire是第一内存器的资源配置,也即所需要的内存器的资源配置;MEMnode是第二内存器的资源配置,也即该目标任务执行节点所具有的实际的内存器的资源配置;GPUrequire是第一图形处理器的资源配置,也即所需要的图形处理器的资源配置;GPUnode是第二图形处理器的资源配置,也即该目标任务执行节点所具有的实际的图形处理器的资源配置。
此处需要补充说明的是,资源适配度的计算方式主要是根据硬件资源的需求匹配情况决定的,比如说需求是4CPU 8GB内存,那么所有大于等于这个配置的都是满足这个适配要求的;同时,节点资源值比所需资源值大的越多,适配度则越高;当然,在实际应用的过程中,该计算方式可能存在一种情况,就是某一个值很高,其他值却没有达到需求的情况,因此还需要在计算前校验每一个值是否都大于或等于1,再去求和;也即,只有在第三商运算结果、第四商运算结果以及第五商运算结果均大于等于1的基础上,才可以执行后续的求和运算。当然,之所以限定只有在第三商运算结果、第四商运算结果以及第五商运算结果均大于等于1的基础上才可以执行后续的求和运算,是为了使得目标任务执行节点可以顺利的基于自身所具有的CPU资源、GPU资源以及存储器资源来实现任务的具体执行,进而避免出现任务执行失败的问题。
此处需要进一步补充说明的是,在进行节点调度时,优先根据网络适配度进行区域的确定,然后再根据资源配置的适配度优先选择;同时,每次调度成功之后,本次调度的结果会作为调度的模板进行保存,再次执行类似的调度任务时,会直接使用调度模板的节点,当节点被占用时,再进行节点匹配。
在步骤S140中,根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
在本示例实施例中,首先,根据第一任务配置信息以及目标任务执行节点生成调度任务;其中,该调度任务中不仅包括目标任务执行节点的节点标识(Node_id),还可以包括待执行任务的第一任务配置信息、任务标识以及发送该第一任务执行指令的终端设备的设备标识,当然还可以包括其他信息,本示例对此不做特殊限制;同时,此处所记载的目标任务执行节点,可以是具有不同功能的服务器,比如接口测试服务器、模型训练服务器以及数据请求服务器等等,可以根据实际需要配备相应的服务器,本示例对此不做特殊限制。
其次,在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。具体的,可以通过如下方式实现:首先,将所述调度任务下发至所述目标任务执行节点,并通过所述目标任务执行节点,将所述调度任务中包括的容器任务镜像提交至容器编排引擎中的任务执行工具;其次,通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果。其中,通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果,可以通过如下方式实现:首先,通过所述任务执行工具执行所述容器任务镜像得到任务执行容器;其次,启动并执行任务执行容器中包括的可执行镜像,得到与所述待执行任务对应的任务执行结果。其中,此处所记载的可执行镜像,可以根据第一任务配置信息中所包括的镜像名称以及镜像版本,从对应的镜像平台中获取;同时,在实际应用的过程中,可以根据第一任务配置信息中包括的挂载文件对所获取到的容器任务镜像进行实例化处理,得到任务执行容器,进而启动并执行任务执行容器中包括的可执行镜像,即可得到相应的任务执行结果;其中,此处所记载的任务执行结果,可以包括模型训练结果、数据分析结果或者接口测试结果等等,本示例对此不做特殊限制。
在一种示例实施例中,不管是前述所记载的当前任务执行节点,还是此处所记载的目标任务执行节点,均可以在各节点中设置一驻守程序,进而启动该驻守程序通过监听函数的方式监听该目标任务执行节点中是否下发有调度任务,若下发了调度任务,则可以直接调用库文件执行该调度任务;在另一种可能的示例实施例中,也可以通过其他的方式来实现任务的执行,比如建立目标任务执行节点与部署调度模块之间的通信链路,进而在部署调度模块向目标任务执行节点下发调度任务后,向目标任务执行节点下发相应的任务执行指令,以使得该目标任务执行节点基于该任务执行指令执行该调度任务;在实际应用的过程中,可以根据实际需要自行确定,本示例对此不做特殊限制。
在一种示例实施例中,该任务处理方法还可以包括:在所述可执行镜像运行的过程中,实时监测所述任务执行容器的第一运行状态以及任务执行工具的第二运行状态,并根据所述第一运行状态以及第二运行状态生成监控日志;和/或对所述第一运行状态以及第二运行状态进行展示。也即,在进行任务处理的过程中,还需要实时检测任务执行容器Pod的第一运行状态以及任务执行工具Job的第二运行状态;其中,此处所记载的运行状态,可以包括第一中央处理器的使用状态、第一内存器的使用状态、第一图形处理器的使用状态、容器的运行状态以及监控日志等等;同时,还需要实时的向任务管理模块反馈相应的运行状态,并通过任务管理模块展示任务运行情况;其中,第一中央处理器的使用状态、第一内存器的使用状态、第一图形处理器的使用状态具体可以参考图9所示,具体的监控日志具体可以参考图10所示。其中,在实际应用的过程中,资源监控模块可以监控Job、Pod等运行状态,并实时向任务管理模块330反馈,进而通过任务管理模块330展示任务运行情况;其中,具体的展示情况可以参考图10所示。
此处需要补充说明的是,如果监测到任一目标任务执行节点存在运行异常,则可直接将该运行异常的信息反馈给相应的终端设备,以使得用户可以通过终端设备动态的调整第一任务配置信息中包括的参数信息,进而重新部署任务中的节点;其中,具体的运行流程可以参考图11所示。
在一种示例实施例中,该任务处理方法还可以包括:在确定所述可执行镜像执行完成时,删除所述任务执行容器中的可执行镜像,并释放执行所述调度任务所占用的目标任务执行节点的第二网络占用资源以及第二内存占用资源;将所述目标任务执行节点的节点状态由占用状态更新为空闲状态,并将处于空闲状态的目标任务执行节点放置至资源池中。也即,在实际应用的过程中,当待执行任务执行完成后,需要释放相应的节点资源,并将该节点反馈至资源池;同时,用户可以通过集群状态接口实时查看节点的资源释放情况;其中,具体的界面展示图可以参考图12所示。其中,资源回收模块350在接收到任务管理模块下发的任务完成的信息后,释放任务执行所使用的节点资源,并将节点资源返还至资源池;其中,具体的资源释放情况的具体展示,可以如图12所示。
在一种示例实施例中,该任务处理方法还可以包括:调用与所述终端设备对应的任务回调接口,并通过所述任务回调接口将所述任务执行结果反馈至所述终端设备。具体的,在实际应用的过程中,还可以允许用户注册回调地址,进而通过该回调地址查看任务执行结果以及任务执行的日志信息,进而便于外部服务对该待执行任务进行任务对接以及任务集成。
至此,本公开示例实施例所记载的任务执行方法已经全部实现。基于前述记载的内容可以得知,本公开示例实施例所记载的任务执行方法,至少具有以下优势:一方面,可以将关注点转移到任务执行本身;也即,在实际应用的过程中,用户使用可以不关心Kubernetes调度会拆分成几个任务组,分配到哪些节点;同时,用户使用的前提是简单的配置和完善的监控体系,在尽量最优的使用资源的前提下,更简单的配置使用;也即,用户仅需要提供第一任务配置信息,即可自动的实现任务的分配与执行,进而达到提高任务的执行效率的目的;另一方面,智能的调度模型;也即,可以根据用户的运行要求量身定制调度策略,确保运行的节点是符合任务要求的而且是尽量最优的;再一方面,允许用户决策;也即,任务下发和任务执行过程中出现问题都允许用户决策,调整资源的分配模式是严格还是相对宽松,出现错误时,允许用户针对分配策略进行微调;进一步的,还实现了组件化接入,无需独立部署;也即,可作为独立服务提供kubernetes容器管理,也可以作为开发组件融入到其他容器相关的业务***开发中;同时,还可以从单一任务的角度去维护整个kubernetes容器的生命周期,降低使用复杂度。
本公开示例实施例还提供了一种任务处理装置。具体的,参考图13所示,该任务处理装置可以包括第一接收模块1310、第一解析模块1320、任务执行节点确定模块1330以及任务执行模块1340。其中:
第一接收模块1310,可以用于接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;
第一解析模块1320,可以用于对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;
任务执行节点确定模块1330,可以用于根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;
任务执行模块1340,可以用于根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
在本公开的一种示例性实施例中,任务执行节点确定模块1330还可以被配置为:获取所述第一任务配置信息中包括的当前任务类型信息,从任务调度模板中匹配执行与所述当前任务类型信息一致的历史已执行任务的第一任务执行节点;从资源池中获取处于空闲状态的当前任务执行节点,并判断所述第一任务执行节点是否存在于所述当前任务执行节点中;若所述第一任务执行节点存在于所述当前任务执行节点中,则将所述第一任务执行节点作为与所述待执行任务对应的目标任务执行节点;若所述第一任务执行节点不存在于当前任务执行节点中,则根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,任务执行节点确定模块1330还可以被配置为:获取所述当前任务执行节点的当前节点配置信息,并判断所述当前节点配置信息中是否存在与所述第一任务配置信息匹配的目标节点配置信息;若当前节点配置信息中存在与第一任务配置信息匹配的目标节点配置信息,则将与所述目标节点配置信息对应的当前任务执行节点,作为与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,任务执行节点确定模块1330还可以被配置为:若当前节点配置信息中不存在与第一任务配置信息匹配的目标节点配置信息,则生成与目标任务执行节点对应的第一失败提示信息,并将所述第一失败提示信息发送至所述终端设备;接收所述终端设备根据所述第一失败提示信息对所述第一任务执行指令中的第一任务配置信息进行动态调整后发送的第二任务执行指令,并根据所述第二任务执行指令中包括的第二任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,任务执行节点确定模块1330还可以被配置为:根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度;根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,任务执行节点确定模块1330还可以被配置为:根据所述网络配置适配度对所述当前任务执行节点进行排序,得到第一节点排序结果,并从所述第一节点排序结果中选取网络适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;或者根据所述资源配置适配度对所述当前任务执行节点进行排序,得到第二节点排序结果,并从所述第二节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;或者根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,并根据所述总适配度对所述当前任务执行节点进行排序,得到第三节点排序结果;从所述第三节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点。
在本公开的一种示例性实施例中,任务执行节点确定模块1330还可以被配置为:为所述网络配置适配度以及资源配置适配度配置第一权重值以及第二权重值;其中,所述第一权重值大于等于第二权重值;计算第一权重值与网络配置适配度之间的第一积运算结果,并计算第二权重值与资源配置适配度之间的第二积运算结果;计算第一积运算结果与第二积运算结果之间的第一和运算结果,并根据所述第一和运算结果得到所述待执行任务与所述当前任务执行节点之间的总适配度。
在本公开的一种示例性实施例中,所述第一任务配置信息中包括第一网络配置信息和/或第一资源配置信息;所述当前节点配置信息中包括第二网络配置信息和/或第二资源配置信息;其中,任务执行节点确定模块1330还可以被配置为:根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度;和/或根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度。
在本公开的一种示例性实施例中,所述第一网络配置信息包括第一网络带宽和/或第一网络延迟,所述第二网络配置信息包括第二网络带宽和/或第二网络延迟;其中,任务执行节点确定模块1330还可以被配置为:计算第一网络带宽与第二网络带宽之间的第一商运算结果;和/或计算所述第一网络延迟与第二网络延迟之间的第二商运算结果;根据第一商运算结果和/或第二商运算结果,得到所述待执行任务与所述当前任务执行节点之间的网络配置适配度。
在本公开的一种示例性实施例中,所述第一资源配置信息包括第一中央处理器的资源配置、第一内存器的资源配置以及第一图形处理器的资源配置中的一种或多种;所述第二资源配置信息包括第二中央处理器的资源配置、第二内存器的资源配置以及第二图形处理器的资源配置中的一种或多种;其中,任务执行节点确定模块1330还可以被配置为:计算第二中央处理器的资源配置与第一中央处理器的资源配置之间的第三商运算结果;和/或计算第二内存器的资源配置与第一内存器的资源配置之间的第四商运算结果;和/或计算第二图形处理器的资源配置与第一图形处理器的资源配置之间的第五商运算结果;根据第三商运算结果和/或第四商运算结果和/或第五商运算结果,得到待执行任务与所述当前任务执行节点之间的资源配置适配度。
在本公开的一种示例性实施例中,任务执行模块1340还可以被配置为:将所述调度任务下发至所述目标任务执行节点,并通过所述目标任务执行节点,将所述调度任务中包括的容器任务镜像提交至容器编排引擎中的任务执行工具;通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果。
在本公开的一种示例性实施例中,任务执行模块1340还可以被配置为:通过所述任务执行工具执行所述容器任务镜像得到任务执行容器;启动并执行任务执行容器中包括的可执行镜像,得到与所述待执行任务对应的任务执行结果。
在本公开的一种示例性实施例中,所述任务处理装置还包括:
运行状态监控模块,可以用于在所述可执行镜像运行的过程中,实时监测所述任务执行容器的第一运行状态以及任务执行工具的第二运行状态,并根据所述第一运行状态以及第二运行状态生成监控日志;和/或
运行状态展示模块,可以用于对所述第一运行状态以及第二运行状态进行展示。
在本公开的一种示例性实施例中,所述任务处理装置还包括:
资源释放模块,可以用于在确定所述可执行镜像执行完成时,删除所述任务执行容器中的可执行镜像,并释放执行所述调度任务所占用的目标任务执行节点的第二网络占用资源以及第二内存占用资源;
节点放置模块,可以用于将所述目标任务执行节点的节点状态由占用状态更新为空闲状态,并将处于空闲状态的目标任务执行节点放置至资源池中。
在本公开的一种示例性实施例中,所述任务处理装置还包括:
任务执行结果反馈模块,可以用于调用与所述终端设备对应的任务回调接口,并通过所述任务回调接口将所述任务执行结果反馈至所述终端设备。
在本公开的一种示例性实施例中,所述第一任务执行指令是终端设备通过如下方式生成的:在所述终端设备的显示界面上显示任务执行界面;响应于针对任务执行界面的第一输入事件,确定待执行任务,并显示与所述待执行任务对应的任务配置界面;其中,所述待执行任务包括模型训练任务和/或数据分析任务;响应于作用于所述任务配置界面的第二输入事件,确定待执行任务的第一任务配置信息;响应于作用于所述任务配置界面的第三输入事件,根据所述待执行任务以及第一任务配置信息,生成第一任务执行指令,并将所述第一任务执行指令发送至任务执行框架。
上述任务处理装置中各模块的具体细节已经在对应的任务处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图14来描述根据本公开的这种实施方式的电子设备1400。图14显示的电子设备1400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图14所示,电子设备1400以通用计算设备的形式表现。电子设备1400的组件可以包括但不限于:上述至少一个处理单元1410、上述至少一个存储单元1420、连接不同***组件(包括存储单元1420和处理单元1410)的总线1430以及显示单元1440。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1410执行,使得所述处理单元1410执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1410可以执行如图1中所示的步骤S110:接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;步骤S120:对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;步骤S130:根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;步骤S140:根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
存储单元1420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)14201和/或高速缓存存储单元14202,还可以进一步包括只读存储单元(ROM)14203。
存储单元1420还可以包括具有一组(至少一个)程序模块14205的程序/实用工具14204,这样的程序模块14205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1400也可以与一个或多个外部设备1500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1400交互的设备通信,和/或与使得该电子设备1400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1450进行。并且,电子设备1400还可以通过网络适配器1460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1460通过总线1430与电子设备1400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (19)

1.一种任务处理方法,其特征在于,包括:
接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;
对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;
根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;
根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
2.根据权利要求1所述的任务处理方法,其特征在于,根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
获取所述第一任务配置信息中包括的当前任务类型信息,从任务调度模板中匹配执行与所述当前任务类型信息一致的历史已执行任务的第一任务执行节点;
从资源池中获取处于空闲状态的当前任务执行节点,并判断所述第一任务执行节点是否存在于所述当前任务执行节点中;
若所述第一任务执行节点存在于所述当前任务执行节点中,则将所述第一任务执行节点作为与所述待执行任务对应的目标任务执行节点;
若所述第一任务执行节点不存在于当前任务执行节点中,则根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
3.根据权利要求1所述的任务处理方法,其特征在于,根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
获取所述当前任务执行节点的当前节点配置信息,并判断所述当前节点配置信息中是否存在与所述第一任务配置信息匹配的目标节点配置信息;
若当前节点配置信息中存在与第一任务配置信息匹配的目标节点配置信息,则将与所述目标节点配置信息对应的当前任务执行节点,作为与所述待执行任务对应的目标任务执行节点。
4.根据权利要求3所述的任务处理方法,其特征在于,所述任务处理方法还包括:
若当前节点配置信息中不存在与第一任务配置信息匹配的目标节点配置信息,则生成与目标任务执行节点对应的第一失败提示信息,并将所述第一失败提示信息发送至所述终端设备;
接收所述终端设备根据所述第一失败提示信息对所述第一任务执行指令中的第一任务配置信息进行动态调整后发送的第二任务执行指令,并根据所述第二任务执行指令中包括的第二任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
5.根据权利要求1所述的任务处理方法,其特征在于,根据所述第一任务配置信息,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度;
根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点。
6.根据权利要求5所述的任务处理方法,其特征在于,根据所述网络配置适配度和/或资源配置适配度,从所述当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点,包括:
根据所述网络配置适配度对所述当前任务执行节点进行排序,得到第一节点排序结果,并从所述第一节点排序结果中选取网络适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;或者
根据所述资源配置适配度对所述当前任务执行节点进行排序,得到第二节点排序结果,并从所述第二节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点;或者
根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,并根据所述总适配度对所述当前任务执行节点进行排序,得到第三节点排序结果;
从所述第三节点排序结果中选取资源适配度最大的当前任务执行节点,作为所述待执行任务对应的目标任务执行节点。
7.根据权利要求6所述的任务处理方法,其特征在于,根据所述网络配置适配度以及资源配置适配度计算所述待执行任务与所述当前任务执行节点之间的总适配度,包括:
为所述网络配置适配度以及资源配置适配度配置第一权重值以及第二权重值;其中,所述第一权重值大于等于第二权重值;
计算第一权重值与网络配置适配度之间的第一积运算结果,并计算第二权重值与资源配置适配度之间的第二积运算结果;
计算第一积运算结果与第二积运算结果之间的第一和运算结果,并根据所述第一和运算结果得到所述待执行任务与所述当前任务执行节点之间的总适配度。
8.根据权利要求5所述的任务处理方法,其特征在于,所述第一任务配置信息中包括第一网络配置信息和/或第一资源配置信息;所述当前节点配置信息中包括第二网络配置信息和/或第二资源配置信息;
其中,根据所述第一任务配置信息以及当前节点配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度和/或资源配置适配度,包括:
根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度;和/或
根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度。
9.根据权利要求8所述的任务处理方法,其特征在于,所述第一网络配置信息包括第一网络带宽和/或第一网络延迟,所述第二网络配置信息包括第二网络带宽和/或第二网络延迟;
其中,根据所述第一网络配置信息以及第二网络配置信息,计算所述待执行任务与所述当前任务执行节点之间的网络配置适配度,包括:
计算第一网络带宽与第二网络带宽之间的第一商运算结果;和/或
计算所述第一网络延迟与第二网络延迟之间的第二商运算结果;
根据第一商运算结果和/或第二商运算结果,得到所述待执行任务与所述当前任务执行节点之间的网络配置适配度。
10.根据权利要求8所述的任务处理方法,其特征在于,所述第一资源配置信息包括第一中央处理器的资源配置、第一内存器的资源配置以及第一图形处理器的资源配置中的一种或多种;
所述第二资源配置信息包括第二中央处理器的资源配置、第二内存器的资源配置以及第二图形处理器的资源配置中的一种或多种;
其中,根据所述第一资源配置信息以及第二资源配置信息,计算所述待执行任务与所述当前任务执行节点之间的资源配置适配度,包括:
计算第二中央处理器的资源配置与第一中央处理器的资源配置之间的第三商运算结果;和/或
计算第二内存器的资源配置与第一内存器的资源配置之间的第四商运算结果;和/或
计算第二图形处理器的资源配置与第一图形处理器的资源配置之间的第五商运算结果;
根据第三商运算结果和/或第四商运算结果和/或第五商运算结果,得到待执行任务与所述当前任务执行节点之间的资源配置适配度。
11.根据权利要求1所述的任务处理方法,其特征在于,在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果,包括:
将所述调度任务下发至所述目标任务执行节点,并通过所述目标任务执行节点,将所述调度任务中包括的容器任务镜像提交至容器编排引擎中的任务执行工具;
通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果。
12.根据权利要求11所述的任务处理方法,其特征在于,通过所述任务执行工具执行所述容器任务镜像,得到与所述待执行任务对应的任务执行结果,包括:
通过所述任务执行工具执行所述容器任务镜像得到任务执行容器;
启动并执行任务执行容器中包括的可执行镜像,得到与所述待执行任务对应的任务执行结果。
13.根据权利要求12所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在所述可执行镜像运行的过程中,实时监测所述任务执行容器的第一运行状态以及任务执行工具的第二运行状态,并根据所述第一运行状态以及第二运行状态生成监控日志;和/或
对所述第一运行状态以及第二运行状态进行展示。
14.根据权利要求12所述的任务处理方法,其特征在于,所述任务处理方法还包括:
在确定所述可执行镜像执行完成时,删除所述任务执行容器中的可执行镜像,并释放执行所述调度任务所占用的目标任务执行节点的第二网络占用资源以及第二内存占用资源;
将所述目标任务执行节点的节点状态由占用状态更新为空闲状态,并将处于空闲状态的目标任务执行节点放置至资源池中。
15.根据权利要求1所述的任务处理方法,其特征在于,所述任务处理方法还包括:
调用与所述终端设备对应的任务回调接口,并通过所述任务回调接口将所述任务执行结果反馈至所述终端设备。
16.根据权利要求1所述的任务处理方法,其特征在于,所述第一任务执行指令是终端设备通过如下方式生成的:
在所述终端设备的显示界面上显示任务执行界面;
响应于针对任务执行界面的第一输入事件,确定待执行任务,并显示与所述待执行任务对应的任务配置界面;其中,所述待执行任务包括模型训练任务和/或数据分析任务;
响应于作用于所述任务配置界面的第二输入事件,确定待执行任务的第一任务配置信息;
响应于作用于所述任务配置界面的第三输入事件,根据所述待执行任务以及第一任务配置信息,生成第一任务执行指令,并将所述第一任务执行指令发送至任务执行框架。
17.一种任务处理装置,其特征在于,包括:
第一接收模块,用于接收终端设备发送的第一任务执行指令;其中,所述第一任务执行指令是终端设备响应于针对任务配置界面的输入事件生成的;
第一解析模块,用于对所述第一任务执行指令进行解析,得到待执行任务以及与待执行任务对应的第一任务配置信息;
任务执行节点确定模块,用于根据所述第一任务配置信息,从当前任务执行节点中匹配与所述待执行任务对应的目标任务执行节点;
任务执行模块,用于根据所述第一任务配置信息以及目标任务执行节点生成调度任务,并在所述目标任务执行节点中执行所述调度任务,得到与所述待执行任务对应的任务执行结果。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-16任一项所述的任务处理方法。
19.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-16任一项所述的任务处理方法。
CN202310491574.2A 2023-05-04 2023-05-04 任务处理方法及装置、计算机可读存储介质、电子设备 Pending CN116700919A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310491574.2A CN116700919A (zh) 2023-05-04 2023-05-04 任务处理方法及装置、计算机可读存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310491574.2A CN116700919A (zh) 2023-05-04 2023-05-04 任务处理方法及装置、计算机可读存储介质、电子设备

Publications (1)

Publication Number Publication Date
CN116700919A true CN116700919A (zh) 2023-09-05

Family

ID=87832986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310491574.2A Pending CN116700919A (zh) 2023-05-04 2023-05-04 任务处理方法及装置、计算机可读存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN116700919A (zh)

Similar Documents

Publication Publication Date Title
CN112882813B (zh) 任务调度方法、装置、***及电子设备
US10977076B2 (en) Method and apparatus for processing a heterogeneous cluster-oriented task
EP2035944A2 (en) Method and apparatus for middleware assisted system integration in a federated environment
CN111045911B (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN109684038B (zh) Docker服务容器日志的处理方法、装置和电子设备
CN113742031A (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN110389834A (zh) 一种用于提交深度学习训练任务的方法和装置
CN105930208A (zh) 一种线程调度方法及线程调度装置
CN109117252A (zh) 基于容器的任务处理的方法、***及容器集群管理***
CN110806928A (zh) 一种作业提交方法及***
CN110011875A (zh) 拨测方法、装置、设备及计算机可读存储介质
CN111679911A (zh) 云环境中gpu卡的管理方法、装置、设备及介质
CN113204425B (zh) 供进程管理内部线程的方法、装置、电子设备及存储介质
CN105933136B (zh) 一种资源调度方法及***
CN114201294A (zh) 一种任务处理方法、装置、***、电子设备及存储介质
CN112671923B (zh) 一种统一接口服务通讯调度方法及装置
CN116932168A (zh) 异构核调度方法及装置、存储介质、电子设备
CN117014389A (zh) 算网资源配置方法及***、电子设备、存储介质
CN116700919A (zh) 任务处理方法及装置、计算机可读存储介质、电子设备
CN110764931B (zh) Ota网站上传凭证的处理方法、***、设备和存储介质
CN114298313A (zh) 一种人工智能计算机视觉推理方法
CN113190328A (zh) 一种面向***辨识的容器化云工作流处理***及方法
CN112749193A (zh) 工作流的处理方法及装置、存储介质、电子设备
CN117112149B (zh) 一种矿区矿井业务流程联通方法、装置、介质及设备
CN113504916B (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