CN109656699A - 分布式计算方法、装置、***、设备及可读存储介质 - Google Patents
分布式计算方法、装置、***、设备及可读存储介质 Download PDFInfo
- Publication number
- CN109656699A CN109656699A CN201811531908.XA CN201811531908A CN109656699A CN 109656699 A CN109656699 A CN 109656699A CN 201811531908 A CN201811531908 A CN 201811531908A CN 109656699 A CN109656699 A CN 109656699A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- pending
- task execution
- execution
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 5
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种分布式计算方法,包括:当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。本发明还提供一种分布式计算装置、***、设备及计算机可读存储介质。本发明涉及云计算领域,能够有效的提高分布式计算网络中计算资源的利用率。
Description
技术领域
本发明涉及分布式计算的技术领域,尤其涉及一种分布式计算方法、装置、***、设备及可读存储介质。
背景技术
分布式计算是利用网络把成千上万台计算机连接起来,组成一台虚拟的超级计算机,完成单台计算机无法完成的超大规模的问题求解。目前,现有的分布式计算框架对运行的机器所处环境要求较高,一般都要求几种节点,如调度节点、执行节点和任务节点均在同一局域网内,无形中限制了这些机器只能是使用者自有,而无法充分利用现有互联网上的计算资源,因此,如何提高分布式计算网络中计算资源的利用率是目前亟待解决的问题。
发明内容
本发明的主要目的在于提供一种分布式计算方法、装置、***、设备及可读存储介质,旨在提高分布式计算网络中计算资源的利用率。
为实现上述目的,本发明提供一种分布式计算方法,所述分布式计算方法包括以下步骤:
当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。
可选地,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点的步骤包括:
从所述注册请求中读取节点标签,并判断所述节点标签是执行节点标签,还是发起节点标签;
若所述节点标签是执行节点标签,则将对应的终端设备注册为任务执行节点;
若所述节点标签是发起节点标签,则将对应的终端设备注册为任务发起节点。
可选地,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行的步骤包括:
从所述任务执行请求中读取待执行任务的编写语言标签;
将已注册的全部任务执行节点中包含有所述编写语言标签的任务执行节点,确定为候选任务执行节点;
获取各候选任务执行节点的当前运行状态和当前可用计算资源,并将当前运行状态为空闲状态,且当前可用计算资源最多的候选任务执行节点确定为目标任务执行节点;
将所述待执行任务调度至所述目标任务执行节点进行执行。
可选地,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行的步骤包括:
判断所述任务执行请求中是否存在包含至少两个待执行任务的待执行任务组;
若所述任务执行请求中存在包含至少两个待执行任务的待执行任务组,则判断所述待执行任务组中的待执行任务之间是否存在依赖关系;
若所述待执行任务组中的待执行任务之间存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,确定目标任务执行节点;
将所述待执行任务组中的各待执行任务均调度至所述目标任务执行节点执行。
可选地,判断所述待执行任务组中的待执行任务之间是否存在依赖关系的步骤之后,还包括:
若所述待执行任务组中的待执行任务之间不存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,将所述待执行任务组中的各待执行任务分别调度至对应的任务执行节点进行执行。
可选地,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点的步骤包括:
获取当前CPU空闲资源,并判断所述当前CPU空闲资源是否大于或等于预设CPU空闲资源;
若当前CPU空闲资源大于或等于预设CPU空闲资源,则依据当前CPU空闲资源,确定同步注册设备数;
依据所述注册请求中的节点标签,每次同时执行所述同步注册设备数的终端设备的注册操作,以将所述各终端设备注册为任务执行节点或任务发起节点。
此外,为实现上述目的,本发明还提供一种分布式计算装置,所述分布式计算装置包括:
节点注册模块,用于当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
任务调度模块,用于当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
发送模块,用于接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。
此外,为实现上述目的,本发明还提供一种分布式计算***,所述分布式计算***包括任务调度节点、任务执行节点和任务发起节点,所述任务调度节点部署于公网,所述任务执行节点和所述任务发起节点部署于公网或私网,其中,
所述任务调度节点,用于当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
所述任务调度节点,还用于当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
所述任务调度节点,还用于接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点;
所述任务执行节点,用于接收所述任务调度节点调度的待执行任务,并执行所述待执行任务,且将所述待执行任务的任务执行结果返回给所述任务调度节点;
所述任务发起节点,用于当监测到触发的任务发起指令时,生成携带有待执行任务和编写语言标签的任务执行请求,并将所述任务执行请求发送至所述任务调度节点。
此外,为实现上述目的,本发明还提供一种分布式计算设备,所述分布式计算设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的分布式计算程序,其中所述分布式计算程序被所述处理器执行时,实现如上述的分布式计算方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有分布式计算程序,其中所述分布式计算程序被处理器执行时,实现如上述的分布式计算方法的步骤。
本发明提供一种分布式计算方法、装置、***、设备及可读存储介质,本发明将各终端设备注册为任务执行节点和任务发起节点,然后当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将任务执行请求中的待执行任务调度至对应的任务执行节点进行执行,并接收对应的任务执行节点返回的任务执行结果,且将该任务执行结果发送至对应的任务发起节点,通过上述方式,可以将待执行任务调度至对应的任务执行节点,由对应的任务执行节点执行待执行任务,可以有效的提高分布式计算网络中计算资源的利用率。
附图说明
图1为本发明各实施例涉及的分布式计算设备的硬件结构示意图;
图2为本发明分布式计算方法第一实施例的流程示意图;
图3为本发明分布式计算装置第一实施例的功能模块示意图;
图4为本发明分布式计算***第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的分布式计算方法主要应用于分布式计算设备,该分布式计算设备可以是PC(个人计算机personal computer)、便携计算机、移动终端等具有显示和处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的分布式计算设备的硬件结构示意图。本发明实施例中,分布式计算设备可以包括处理器1001(例如中央处理器CentralProcessing Unit、CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种可读存储介质的存储器1005可以包括操作***、网络通信模块以及分布式计算程序。在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的分布式计算程序,并执行本发明实施例提供的分布式计算方法。
本发明实施例提供了一种分布式计算方法。
参照图2,图2为本发明分布式计算方法第一实施例的流程示意图。
本实施例中,该分布式计算方法包括:
步骤S101,当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
本实施例中,该分布式计算方法应用于分布式计算***,包括任务调度节点、任务执行节点和任务发起节点,该任务调度节点部署于公网,该任务执行节点和任务发起节点部署于公网或私网,部署的条件需要满足任务执行节点和任务发起节点均可以访问任务调度节点,其中,任务调度节点用于接收任务执行节点和任务发起节点的注册、指令转发、数据转发,以及为每个任务执行节点和任务发起节点动态生成ngrok(反向代理)子域名,且将待执行任务分发给任务执行节点;任务执行节点包含虚拟机和任务执行环境,该虚拟机包括但不限于JVM(Java Virtual Machine,Java虚拟机)、Linux虚拟机和SUN虚拟机,该运行环境包括但不限于JS运行环境、JAVA运行环境、Python运行环境和C/C++语言运行环境,任务执行节点用于执行任务调度节点分发的待执行任务;任务发起节点用于发起待执行任务,并将待执行任务发送至任务调度节点。
当监测到触发的节点注册指令时,终端设备显示包含有任务执行节点注册选项和任务发起节点注册选项的节点注册界面,通过该节点注册界面接收用户选择的节点注册选项,当选择的节点注册选项为任务执行节点注册选项时,获取执行节点标签,并生成包含有该执行节点标签的注册请求,且将该注册请求发送至任务调度节点;当选择的节点注册选项为任务发起节点注册选项时,获取发起节点标签,并生成包含有该安发起节点标签的注册请求,且将该注册请求发送至任务调度节点;当选择的节点注册选项包含任务执行节点注册选项和任务发起节点注册选项时,生成包含执行节点标签和发起节点标签的注册请求,且将该注册请求发送至任务调度节点。其中,终端设备可以注册为任务执行节点和/或任务发起节点。
当接收到各终端设备发送的注册请求时,分布式计算***中的任务调度节点依据该注册请求中的节点标签,将各终端设备注册为任务执行节点或任务发起节点。具体地,从该注册请求中读取节点标签,如果该节点标签为执行节点标签,则将对应的终端设备注册为任务执行节点,即生成终端设备的ngrok(反向代理)子域名,将对应终端设备的ngrok子域名写入执行节点列表中;如果该节点标签为发起节点标签,则将对应的终端设备注册为发起任务节点,即生成终端设备的ngrok子域名,将对应终端设备的ngrok子域名写入发起节点列表中;如果该节点标签有两个,且分别为执行节点标签和发起节点标签,则将对应的终端设备注册为双功能的节点,即终端设备即为任务执行节点,也为任务发起节点,具体为生成终端设备的ngrok子域名,将对应终端设备的ngrok子域名写入执行节点列表和发起节点列表中。
步骤S102,当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
本实施例中,当监测到触发的任务发起指令时,任务发起节点获取待执行任务,并获取该待执行任务对应的编写语言标签,然后生成包含有待执行任务和编写语言标签的任务执行请求,并将该任务执行请求发送至任务调度节点,其中,编写语言标签包括但不限于JS标签、JAVA标签和Python标签。当任务调度节点接收到该任务发起节点发送的任务执行请求时,依据预设任务调度策略,将任务执行请求中的待执行任务调度至对应的任务执行节点进行执行。需要说明的是,执行待执行任务的任务执行节点的运行环境与编写语言标签存在对应关系,例如,具备JS运行环境的任务执行节点,仅具备执行编写语言标签为JS标签的待执行任务的功能,而具备JAVA运行环境的任务执行节点,仅具备执行编写语言标签为JAVA标签的待执行任务的功能。
具体地,预设任务调度策略为从该任务执行请求中读取待执行任务的编写语言标签,并将已注册的全部任务执行节点中包含有该编写语言标签的任务执行节点,确定为候选任务执行节点,然后获取各候选任务执行节点的当前运行状态和当前可用计算资源,并将当前运行状态为空闲状态,且当前可用计算资源最多的候选任务执行节点确定为目标任务执行节点,最后将待执行任务调度至目标任务执行节点进行执行,即任务调度节点通过修改本地host方式,获取目标任务执行节点对应的ngrok子域名,并依据该ngrok子域名将该待执行任务调度至该目标任务执行节点进行执行。例如,ngrok子域名为abc.ng.com,任务调度节点的公网域名为www.my.com,ngrok的主域名为ng.com,则当任务发起节点通过www.my.com/abc向任务调度节点发送任务执行请求时,将任务执行请求重写到abc.my.com,并将abc.my.com解析到abc.ng.com,然后再通过abc.ng.com将待执行任务调度至目标任务执行节点。
步骤S103,接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。
本实施例中,当任务执行节点接收到任务调度节点分发的待执行任务时,任务执行节点启动虚拟机和运行环境,执行该待执行任务,并将任务执行结果返回给任务调度节点,任务调度节点接收该任务执行节点返回的任务执行结果,并将该任务执行结果发送至任务发起节点,由该任务发起节点显示任务执行结果。具体实施中,如果待执行任务被拆分为若干子任务,则各任务执行节点在执行各子任务后,将各子任务的执行结果发送至任务调度节点,由任务调度节点汇总各子任务的执行结果,从而等到总执行结果。
本实施例中,将各终端设备注册为任务执行节点和任务发起节点,然后当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将任务执行请求中的待执行任务调度至对应的任务执行节点进行执行,并接收对应的任务执行节点返回的任务执行结果,且将该任务执行结果发送至对应的任务发起节点,通过上述方式,可以将待执行任务调度至对应的任务执行节点,由对应的任务执行节点执行待执行任务,可以有效的提高分布式计算网络中计算资源的利用率。
进一步地,基于上述第一实施例,提出了本发明分布式计算方法的第二实施例,与前述实施例的区别在于,任务发起节点发起多个待执行任务时,任务调度节点基于待执行任务之间的依赖关系的有无,确定不同的任务调度策略,具体地,任务调度节点当接收到任务发起节点发送的任务执行请求时,判断该任务执行请求中是否存在包含至少两个待执行任务的待执行任务组,如果任务执行请求中仅存在一个待执行任务,则依据待执行任务的编写语言标签,将该待执行任务调度至对应的任务执行节点执行;如果任务执行请求中存在包含至少两个待执行任务的待执行任务组,则判断待执行任务组中的待执行任务之间是否存在依赖关系,如果待执行任务组中的待执行任务之间存在依赖关系,则依据该待执行任务组中各待执行任务的编写语言标签,确定目标任务执行节点,并将待执行任务组中的各待执行任务均调度至目标任务执行节点执行;如果待执行任务组中的待执行任务之间不存在依赖关系,依据待执行任务组中各待执行任务的编写语言标签,将待执行任务组中的各待执行任务分别调度至对应的任务执行节点进行执行。在存在多个待执行任务时,可以在多个待执行任务之间存在依赖关系时,将多个待执行任务调度至同一任务执行节点执行,而在多个待执行任务之间不存在依赖关系时,可将多个待执行任务分别调度至不同的任务执行节点执行,以提高任务执行效率。
进一步地,基于上述第一或第二实施例,提出了本发明分布式计算方法的第三实施例,与前述实施例的区别在于,在任务调度节点的CPU空闲资源足够时,可以同时执行多个终端设备的注册操作,具体地,任务调度节点获取当前CPU空闲资源,并判断当前CPU空闲资源是否大于或等于预设CPU空闲资源,如果当前CPU空闲资源大于或等于预设CPU空闲资源,则依据当前CPU空闲资源,确定同步注册设备数,即CPU可同时注册的终端设备数量,并依据该注册请求中的节点标签,每次同时执行同步注册设备数的终端设备的注册操作,以将各终端设备注册为任务执行节点或任务发起节点。其中,CPU空闲资源与同步注册设备数的映射关系可由本领域技术人员基于实际情况进行设置,本专利提案对此不作具体限定。例如,当CPU空闲资源小于A时,对应CPU可同时注册的终端设备数量为2;当CPU空闲资源大于或者等于A,小于B时,对应CPU可同时注册的终端设备数量为3;当CPU空闲资源大于或者等于B,小于C时,对应CPU可同时注册的终端设备数量为4,其中,A<B<C。需要说明的是,上述预设CPU空闲资源可由本领域技术人员基于实际情况进行设置,本实施例对此不作具体限定。通过上述方式,可以同时执行多个终端设备的注册操作,提高注册效率。
此外,本发明实施例还提供一种分布式计算装置。
参照图3,图3为本发明分布式计算装置第一实施例的功能模块示意图。
本发明分布式计算装置为虚拟装置,存储于图1所示分布式计算设备的存储器1005中,用于实现分布式计算程序的所有功能;当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。。
具体的,本实施例中,所述分布式计算装置包括:
节点注册模块101,用于当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
任务调度模块102,用于当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
发送模块103,用于接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。
进一步地,所述节点注册模块101还用于:
从所述注册请求中读取节点标签,并判断所述节点标签是执行节点标签,还是发起节点标签;
若所述节点标签是执行节点标签,则将对应的终端设备注册为任务执行节点;
若所述节点标签是发起节点标签,则将对应的终端设备注册为任务发起节点。
进一步地,所述任务调度模块102还用于:
从所述任务执行请求中读取待执行任务的编写语言标签;
将已注册的全部任务执行节点中包含有所述编写语言标签的任务执行节点,确定为候选任务执行节点;
获取各候选任务执行节点的当前运行状态和当前可用计算资源,并将当前运行状态为空闲状态,且当前可用计算资源最多的候选任务执行节点确定为目标任务执行节点;
将所述待执行任务调度至所述目标任务执行节点进行执行。
进一步地,所述任务调度模块102还用于:
判断所述任务执行请求中是否存在包含至少两个待执行任务的待执行任务组;
若所述任务执行请求中存在包含至少两个待执行任务的待执行任务组,则判断所述待执行任务组中的待执行任务之间是否存在依赖关系;
若所述待执行任务组中的待执行任务之间存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,确定目标任务执行节点;
将所述待执行任务组中的各待执行任务均调度至所述目标任务执行节点执行。
进一步地,所述任务调度模块102还用于:
若所述待执行任务组中的待执行任务之间不存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,将所述待执行任务组中的各待执行任务分别调度至对应的任务执行节点进行执行。
进一步地,所述节点注册模块101还用于:
获取当前CPU空闲资源,并判断所述当前CPU空闲资源是否大于或等于预设CPU空闲资源;
若当前CPU空闲资源大于或等于预设CPU空闲资源,则依据当前CPU空闲资源,确定同步注册设备数;
依据所述注册请求中的节点标签,每次同时执行所述同步注册设备数的终端设备的注册操作,以将所述各终端设备注册为任务执行节点或任务发起节点。
其中,上述分布式计算装置中各个模块的功能实现与上述分布式计算方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
此外,本发明实施例还提供一种分布式计算***。
参照图4,图4为本发明分布式计算***第一实施例的功能模块示意图。
该分布式计算***包括任务调度节点201、任务执行节点202和任务发起节点203,所述任务调度节点部署于公网,所述任务执行节点和所述任务发起节点部署于公网或私网,其中,
所述任务调度节点201,用于当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
所述任务调度节点201,还用于当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
所述任务调度节点201,还用于接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点;
所述任务执行节点202,用于接收所述任务调度节点调度的待执行任务,并执行所述待执行任务,且将所述待执行任务的任务执行结果返回给所述任务调度节点;
所述任务发起节点203,用于当监测到触发的任务发起指令时,生成携带有待执行任务和编写语言标签的任务执行请求,并将所述任务执行请求发送至所述任务调度节点。
进一步地,所述任务调度节点201,还用于:
从所述注册请求中读取节点标签,并判断所述节点标签是执行节点标签,还是发起节点标签;
若所述节点标签是执行节点标签,则将对应的终端设备注册为任务执行节点;
若所述节点标签是发起节点标签,则将对应的终端设备注册为任务发起节点。
进一步地,所述任务调度节点201,还用于:
从所述任务执行请求中读取待执行任务的编写语言标签;
将已注册的全部任务执行节点中包含有所述编写语言标签的任务执行节点,确定为候选任务执行节点;
获取各候选任务执行节点的当前运行状态和当前可用计算资源,并将当前运行状态为空闲状态,且当前可用计算资源最多的候选任务执行节点确定为目标任务执行节点;
将所述待执行任务调度至所述目标任务执行节点进行执行。
进一步地,所述任务调度节点201,还用于:
判断所述任务执行请求中是否存在包含至少两个待执行任务的待执行任务组;
若所述任务执行请求中存在包含至少两个待执行任务的待执行任务组,则判断所述待执行任务组中的待执行任务之间是否存在依赖关系;
若所述待执行任务组中的待执行任务之间存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,确定目标任务执行节点;
将所述待执行任务组中的各待执行任务均调度至所述目标任务执行节点执行。
进一步地,所述任务调度节点201,还用于:
若所述待执行任务组中的待执行任务之间不存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,将所述待执行任务组中的各待执行任务分别调度至对应的任务执行节点进行执行。
进一步地,所述任务调度节点201,还用于:
获取当前CPU空闲资源,并判断所述当前CPU空闲资源是否大于或等于预设CPU空闲资源;
若当前CPU空闲资源大于或等于预设CPU空闲资源,则依据当前CPU空闲资源,确定同步注册设备数;
依据所述注册请求中的节点标签,每次同时执行所述同步注册设备数的终端设备的注册操作,以将所述各终端设备注册为任务执行节点或任务发起节点。
其中,上述分布式计算***中各个模块的功能实现与上述分布式计算方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
此外,本发明实施例还提供一种可读存储介质。
本发明可读存储介质上存储有分布式计算程序,其中所述分布式计算程序被处理器执行时,实现如上述的分布式计算方法的步骤。
其中,分布式计算程序被执行时所实现的方法可参照本发明分布式计算方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种分布式计算方法,其特征在于,所述分布式计算方法包括以下步骤:
当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。
2.如权利要求1所述的分布式计算方法,其特征在于,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点的步骤包括:
从所述注册请求中读取节点标签,并判断所述节点标签是执行节点标签,还是发起节点标签;
若所述节点标签是执行节点标签,则将对应的终端设备注册为任务执行节点;
若所述节点标签是发起节点标签,则将对应的终端设备注册为任务发起节点。
3.如权利要求1所述的分布式计算方法,其特征在于,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行的步骤包括:
从所述任务执行请求中读取待执行任务的编写语言标签;
将已注册的全部任务执行节点中包含有所述编写语言标签的任务执行节点,确定为候选任务执行节点;
获取各候选任务执行节点的当前运行状态和当前可用计算资源,并将当前运行状态为空闲状态,且当前可用计算资源最多的候选任务执行节点确定为目标任务执行节点;
将所述待执行任务调度至所述目标任务执行节点进行执行。
4.如权利要求1-3中任一项所述的分布式计算方法,其特征在于,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行的步骤包括:
判断所述任务执行请求中是否存在包含至少两个待执行任务的待执行任务组;
若所述任务执行请求中存在包含至少两个待执行任务的待执行任务组,则判断所述待执行任务组中的待执行任务之间是否存在依赖关系;
若所述待执行任务组中的待执行任务之间存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,确定目标任务执行节点;
将所述待执行任务组中的各待执行任务均调度至所述目标任务执行节点执行。
5.如权利要求4所述的分布式计算方法,其特征在于,判断所述待执行任务组中的待执行任务之间是否存在依赖关系的步骤之后,还包括:
若所述待执行任务组中的待执行任务之间不存在依赖关系,则依据所述待执行任务组中各待执行任务的编写语言标签,将所述待执行任务组中的各待执行任务分别调度至对应的任务执行节点进行执行。
6.如权利要求1-3中任一项所述的分布式计算方法,其特征在于,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点的步骤包括:
获取当前CPU空闲资源,并判断所述当前CPU空闲资源是否大于或等于预设CPU空闲资源;
若当前CPU空闲资源大于或等于预设CPU空闲资源,则依据当前CPU空闲资源,确定同步注册设备数;
依据所述注册请求中的节点标签,每次同时执行所述同步注册设备数的终端设备的注册操作,以将所述各终端设备注册为任务执行节点或任务发起节点。
7.一种分布式计算装置,其特征在于,所述分布式计算装置包括:
节点注册模块,用于当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
任务调度模块,用于当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
发送模块,用于接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点。
8.一种分布式计算***,其特征在于,所述分布式计算***包括任务调度节点、任务执行节点和任务发起节点,所述任务调度节点部署于公网,所述任务执行节点和所述任务发起节点部署于公网或私网,其中,
所述任务调度节点,用于当接收到各终端设备发送的注册请求时,依据所述注册请求中的节点标签,将所述各终端设备注册为任务执行节点或任务发起节点;
所述任务调度节点,还用于当接收到任务发起节点发送的任务执行请求时,依据预设任务调度策略,将所述任务执行请求中的待执行任务调度至对应的任务执行节点进行执行;
所述任务调度节点,还用于接收对应的任务执行节点返回的任务执行结果,并将所述任务执行结果发送至对应的任务发起节点;
所述任务执行节点,用于接收所述任务调度节点调度的待执行任务,并执行所述待执行任务,且将所述待执行任务的任务执行结果返回给所述任务调度节点;
所述任务发起节点,用于当监测到触发的任务发起指令时,生成携带有待执行任务和编写语言标签的任务执行请求,并将所述任务执行请求发送至所述任务调度节点。
9.一种分布式计算设备,其特征在于,所述分布式计算设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的分布式计算程序,其中所述分布式计算程序被所述处理器执行时,实现如权利要求1至6中任一项所述的分布式计算方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分布式计算程序,其中所述分布式计算程序被处理器执行时,实现如权利要求1至6中任一项所述的分布式计算方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531908.XA CN109656699A (zh) | 2018-12-14 | 2018-12-14 | 分布式计算方法、装置、***、设备及可读存储介质 |
PCT/CN2019/096075 WO2020119117A1 (zh) | 2018-12-14 | 2019-07-16 | 分布式计算方法、装置、***、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811531908.XA CN109656699A (zh) | 2018-12-14 | 2018-12-14 | 分布式计算方法、装置、***、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656699A true CN109656699A (zh) | 2019-04-19 |
Family
ID=66114331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811531908.XA Pending CN109656699A (zh) | 2018-12-14 | 2018-12-14 | 分布式计算方法、装置、***、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109656699A (zh) |
WO (1) | WO2020119117A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134502A (zh) * | 2019-04-26 | 2019-08-16 | 北京迈格威科技有限公司 | 任务处理方法、装置、***、计算机设备和存储介质 |
CN110275762A (zh) * | 2019-04-30 | 2019-09-24 | 北京媒球信息科技有限公司 | 计算方法、服务器、移动终端和装置 |
CN110806930A (zh) * | 2019-10-29 | 2020-02-18 | 浙江大华技术股份有限公司 | 微服务调度方法、装置、设备及存储装置 |
WO2020119117A1 (zh) * | 2018-12-14 | 2020-06-18 | 平安医疗健康管理股份有限公司 | 分布式计算方法、装置、***、设备及可读存储介质 |
CN111353709A (zh) * | 2020-02-29 | 2020-06-30 | 国网上海市电力公司 | 一种基于区块链的电力信息产品的生产方法及*** |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
CN113098854A (zh) * | 2021-03-26 | 2021-07-09 | 深信服科技股份有限公司 | 任务编排方法、***、存储介质和电子设备 |
CN113641493A (zh) * | 2021-08-11 | 2021-11-12 | 杭州安恒信息技术股份有限公司 | 一种任务推送方法、装置、设备及计算机可读存储介质 |
CN113703929A (zh) * | 2020-05-20 | 2021-11-26 | ***通信集团浙江有限公司 | 一种任务调度方法、***、计算设备和存储介质 |
CN114584627A (zh) * | 2022-05-09 | 2022-06-03 | 广州天越通信技术发展有限公司 | 一种具有网络监控功能的中台调度***及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070169167A1 (en) * | 2006-01-17 | 2007-07-19 | Hitachi, Ltd. | Control device and control method information system |
CN103995735A (zh) * | 2013-02-14 | 2014-08-20 | 韩国电子通信研究院 | 用于调度工作流作业的设备和方法 |
CN106330923A (zh) * | 2016-08-26 | 2017-01-11 | 中国联合网络通信集团有限公司 | 基于Kubernetes***的节点注册方法及*** |
CN106909451A (zh) * | 2017-02-28 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种分布式任务调度***及方法 |
CN107515786A (zh) * | 2017-08-04 | 2017-12-26 | 北京奇虎科技有限公司 | 资源分配方法、主装置、从装置和分布式计算*** |
CN108062243A (zh) * | 2016-11-08 | 2018-05-22 | 杭州海康威视数字技术股份有限公司 | 执行计划的生成方法、任务执行方法及装置 |
CN108710537A (zh) * | 2018-04-09 | 2018-10-26 | 平安科技(深圳)有限公司 | 一种任务处理方法、存储介质和服务器 |
CN108737560A (zh) * | 2018-05-31 | 2018-11-02 | 南京邮电大学 | 云计算任务智能调度方法及***、可读存储介质、终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077188A (zh) * | 2013-03-29 | 2014-10-01 | 西门子公司 | 一种用于任务调度的方法和装置 |
CN105677467A (zh) * | 2015-12-31 | 2016-06-15 | 中国科学院深圳先进技术研究院 | 基于量化标签的Yarn资源调度器 |
CN106708622B (zh) * | 2016-07-18 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 集群资源处理方法和***、资源处理集群 |
CN107038069B (zh) * | 2017-03-24 | 2020-05-08 | 北京工业大学 | Hadoop平台下动态标签匹配DLMS调度方法 |
CN109656699A (zh) * | 2018-12-14 | 2019-04-19 | 平安医疗健康管理股份有限公司 | 分布式计算方法、装置、***、设备及可读存储介质 |
-
2018
- 2018-12-14 CN CN201811531908.XA patent/CN109656699A/zh active Pending
-
2019
- 2019-07-16 WO PCT/CN2019/096075 patent/WO2020119117A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070169167A1 (en) * | 2006-01-17 | 2007-07-19 | Hitachi, Ltd. | Control device and control method information system |
CN103995735A (zh) * | 2013-02-14 | 2014-08-20 | 韩国电子通信研究院 | 用于调度工作流作业的设备和方法 |
CN106330923A (zh) * | 2016-08-26 | 2017-01-11 | 中国联合网络通信集团有限公司 | 基于Kubernetes***的节点注册方法及*** |
CN108062243A (zh) * | 2016-11-08 | 2018-05-22 | 杭州海康威视数字技术股份有限公司 | 执行计划的生成方法、任务执行方法及装置 |
CN106909451A (zh) * | 2017-02-28 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种分布式任务调度***及方法 |
CN107515786A (zh) * | 2017-08-04 | 2017-12-26 | 北京奇虎科技有限公司 | 资源分配方法、主装置、从装置和分布式计算*** |
CN108710537A (zh) * | 2018-04-09 | 2018-10-26 | 平安科技(深圳)有限公司 | 一种任务处理方法、存储介质和服务器 |
CN108737560A (zh) * | 2018-05-31 | 2018-11-02 | 南京邮电大学 | 云计算任务智能调度方法及***、可读存储介质、终端 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020119117A1 (zh) * | 2018-12-14 | 2020-06-18 | 平安医疗健康管理股份有限公司 | 分布式计算方法、装置、***、设备及可读存储介质 |
CN110134502A (zh) * | 2019-04-26 | 2019-08-16 | 北京迈格威科技有限公司 | 任务处理方法、装置、***、计算机设备和存储介质 |
CN110275762A (zh) * | 2019-04-30 | 2019-09-24 | 北京媒球信息科技有限公司 | 计算方法、服务器、移动终端和装置 |
CN110806930B (zh) * | 2019-10-29 | 2022-08-09 | 浙江大华技术股份有限公司 | 微服务调度方法、装置、设备及存储装置 |
CN110806930A (zh) * | 2019-10-29 | 2020-02-18 | 浙江大华技术股份有限公司 | 微服务调度方法、装置、设备及存储装置 |
CN111353709A (zh) * | 2020-02-29 | 2020-06-30 | 国网上海市电力公司 | 一种基于区块链的电力信息产品的生产方法及*** |
CN111353709B (zh) * | 2020-02-29 | 2023-05-16 | 国网上海市电力公司 | 一种基于区块链的电力信息产品的生产方法及*** |
CN113703929B (zh) * | 2020-05-20 | 2023-08-01 | ***通信集团浙江有限公司 | 一种任务调度方法、***、计算设备和存储介质 |
CN113703929A (zh) * | 2020-05-20 | 2021-11-26 | ***通信集团浙江有限公司 | 一种任务调度方法、***、计算设备和存储介质 |
CN112416534A (zh) * | 2020-11-23 | 2021-02-26 | 北京中电普华信息技术有限公司 | 一种基于Agent的任务管理方法及装置 |
CN113098854A (zh) * | 2021-03-26 | 2021-07-09 | 深信服科技股份有限公司 | 任务编排方法、***、存储介质和电子设备 |
CN113641493A (zh) * | 2021-08-11 | 2021-11-12 | 杭州安恒信息技术股份有限公司 | 一种任务推送方法、装置、设备及计算机可读存储介质 |
CN114584627B (zh) * | 2022-05-09 | 2022-09-06 | 广州天越通信技术发展有限公司 | 一种具有网络监控功能的中台调度***及方法 |
CN114584627A (zh) * | 2022-05-09 | 2022-06-03 | 广州天越通信技术发展有限公司 | 一种具有网络监控功能的中台调度***及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020119117A1 (zh) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656699A (zh) | 分布式计算方法、装置、***、设备及可读存储介质 | |
CN108156181B (zh) | 一种基于协程异步io的漏洞探测方法及其漏洞扫描*** | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN101853152B (zh) | 一种生成用户图形界面的方法和*** | |
US20090282413A1 (en) | Scalable Scheduling of Tasks in Heterogeneous Systems | |
Mei et al. | An adaptive service selection approach to service composition | |
US20200167713A1 (en) | Business processing method, apparatus, device and system using the same, and readable storage medium of the same | |
CN111159046B (zh) | 测试方法、装置、电子设备、***和存储介质 | |
EP2739097A2 (en) | A mobile telecommunication device in a cellular-digital wireless telecommunication system and a method for operating thereof | |
Sundas et al. | An introduction of CloudSim simulation tool for modelling and scheduling | |
CN112559156B (zh) | 一种多依赖任务分组管理方法、装置、设备及存储介质 | |
Jain et al. | Performance analysis of various server hosting techniques | |
CN108829519A (zh) | 基于云平台的任务调度方法、云平台及计算机可读存储介质 | |
US7885906B2 (en) | Problem solving system and method | |
CN107562495A (zh) | 一种应用程序的启动方法和启动装置 | |
CN109614164A (zh) | 实现插件可配置的方法、装置、设备及可读存储介质 | |
US10339533B2 (en) | Methods and systems for scalable session emulation | |
CN111369011A (zh) | 机器学习模型应用的方法、装置、计算机设备和存储介质 | |
CN115686805A (zh) | Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置 | |
US10802874B1 (en) | Cloud agnostic task scheduler | |
Werner et al. | HARDLESS: A generalized serverless compute architecture for hardware processing accelerators | |
CN110717992B (zh) | 调度模型的方法、装置、计算机***和可读存储介质 | |
She et al. | Hermes: A tool for testing mobile device applications | |
CN112860396A (zh) | 一种基于分布式深度学习的gpu调度方法及*** | |
Benini et al. | Resource management policy handling multiple use-cases in mpsoc platforms using constraint programming |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220601 Address after: 518000 China Aviation Center 2901, No. 1018, Huafu Road, Huahang community, Huaqiang North Street, Futian District, Shenzhen, Guangdong Province Applicant after: Shenzhen Ping An medical and Health Technology Service Co.,Ltd. Address before: Room 12G, Block H, 666 Beijing East Road, Huangpu District, Shanghai 200000 Applicant before: PING AN MEDICAL AND HEALTHCARE MANAGEMENT Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |
|
RJ01 | Rejection of invention patent application after publication |