一种分布式计算方法、主控节点和计算系统与流程

文档序号:18403950发布日期:2019-08-10 00:10阅读:231来源:国知局
一种分布式计算方法、主控节点和计算系统与流程

本发明涉及分布式计算应用领域,尤其涉及一种分布式计算方法、主控节点、计算节点和系统。



背景技术:

随着大数据时代的到来,分布式计算被广泛应用。

目前,传统的分布式计算方法是建立在计算机服务集群上的。具体的,将待计算数据分发给计算机服务集群中各个计算节点,汇总计算节点完成的计算结果。

上述方法中,计算数据的计算稳定性依赖于计算机服务集群的稳定性。要保证上述方法的运行稳定性,需要保证计算机服务集群的稳定性。而建立稳定的计算机服务集群需要大量的专用计算机的投入。



技术实现要素:

(一)要解决的技术问题

为了避免计算任务的执行稳定性对计算节点稳定性的依赖,本发明提供一种分布式计算方法、主控节点、计算节点和系统,主控节点将计算任务分解成计算子任务后,将计算子任务放入计算任务队列中,计算节点根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务,并执行,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

一种分布式计算方法,该方法包括:

101,接收计算任务;

102,将所述计算任务分解成计算子任务;

103,将所述计算子任务放入计算任务队列,以使所述计算子任务被计算节点主动获取并执行;

104,确认计算子任务全部执行完成后,汇总计算子任务的执行结果。

可选地,步骤102具体包括:

102-1,将计算任务分解为单元任务;

102-2,将具有同一位置属性的单元任务进行聚类,每一类单元任务为一个计算子任务;或者,

根据如下公式确定各单元任务之间的关联度,根据所述关联度对单元任务进行聚类,每一类单元任务为一个计算子任务,

其中,C(a1,a2)为a1与a2之间的关联度,Ra1为a1的资源需求用量,∑R为所述计算任务资源需求用总量,W(a1,a2)为a1与a2之间的逻辑关系影响因子,n(a1,a2)为a1与a2之间共用资源需求用量。

除此之外,本发明采用的主要技术方案还包括:

一种主控节点,该主控节点包括:

接收模块,用于接收计算任务;

分解模块,用于将所述计算任务分解成计算子任务;

放入模块,用于将所述计算子任务放入计算任务队列,以使所述计算子任务被计算节点主动获取并执行;

汇总模块,用于确认计算子任务全部执行完成后,汇总计算子任务的执行结果。

可选地,所述分解模块,包括:

分解单元,用于将计算任务分解为单元任务;

确定单元,用于将具有同一位置属性的单元任务进行聚类,每一类单元任务为一个计算子任务;或者,根据如下公式确定各单元任务之间的关联度,根据所述关联度对单元任务进行聚类,每一类单元任务为一个计算子任务,

其中,C(a1,a2)为a1与a2之间的关联度,Ra1为a1的资源需求用量,∑R为所述计算任务资源需求用总量,W(a1,a2)为a1与a2之间的逻辑关系影响因子,n(a1,a2)为a1与a2之间共用资源需求用量。

除此之外,本发明采用的主要技术方案还包括:

一种分布式计算方法,该方法包括:

201,确定可用资源量;

202,确定主控节点计算任务队列中各未执行计算子任务的实际资源需求量;

203,从实际资源需求量小于所述可用资源量的计算子任务中获取一个计算子任务;

204,执行获取的计算子任务,并返回执行结果。

可选地,步骤202具体包括:

202-1,确定主控节点计算任务队列中各未执行计算子任务的资源需求量;

202-2,将1.26×各未执行计算子任务的资源需求量确定为各未执行计算子任务的实际资源需求量。

除此之外,本发明采用的主要技术方案还包括:

一种计算节点,该计算节点包括:

第一确定模块,用于确定可用资源量;

第二确定模块,用于确定主控节点计算任务队列中各未执行计算子任务的实际资源需求量;

获取模块,用于从实际资源需求量小于所述可用资源量的计算子任务中获取一个计算子任务;

执行模块,用于执行获取的计算子任务,并返回执行结果。

可选地,所述第二确定模块包括:

第一确定单元,用于确定主控节点计算任务队列中各未执行计算子任务的资源需求量;

第二确定单元,将1.26×各未执行计算子任务的资源需求量确定为各未执行计算子任务的实际资源需求量。

除此之外,本发明采用的主要技术方案还包括:

一种分布式计算系统,该系统包括一个主控节点和至少一个计算节点;

所述主控节点如上述主控节点,所述计算节点如上述计算节点。

可选地,所述计算节点位于自助终端中。

(三)有益效果

本发明的有益效果是:主控节点将计算任务分解成计算子任务后,将计算子任务放入计算任务队列中,计算节点根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务,并执行,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

附图说明

图1为本发明一个实施例提供的一种分布式计算方法流程图;

图2为本发明一个实施例提供的另一种分布式计算方法流程图;

图3为本发明一个实施例提供的一种分布式系统结构示意图;

图4为本发明一个实施例提供的另一种分布式计算方法流程图;

图5为本发明一个实施例提供的一种主控节点结构示意图;

图6为本发明一个实施例提供的一种分解模块结构示意图;

图7为本发明一个实施例提供的一种计算节点结构示意图;

图8为本发明一个实施例提供的一种第二确定模块结构示意图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

传统的分布式计算系统是建立在计算机服务集群上的,建立一个稳定的分布式计算网络需要大量的专用计算机的投入。本发明提供的分布式计算方法利用现有的自助终端网络上的空闲计算资源组成的一种弹性分布式计算网络。该网络中主控节点将计算任务分解成计算子任务后,将计算子任务放入计算任务队列中,计算节点根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务,并执行,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

参见图1,本实施例提供了一种分布式计算方法,该方法包括:

101,接收计算任务。

102,将计算任务分解成计算子任务。

可选地,步骤102具体包括:

102-1,将计算任务分解为单元任务。

102-2,将具有同一位置属性的单元任务进行聚类,每一类单元任务为一个计算子任务;或者,

根据如下公式确定各单元任务之间的关联度,根据关联度对单元任务进行聚类,每一类单元任务为一个计算子任务,

其中,C(a1,a2)为a1与a2之间的关联度,Ra1为a1的资源需求用量,∑R为计算任务资源需求用总量,W(a1,a2)为a1与a2之间的逻辑关系影响因子,n(a1,a2)为a1与a2之间共用资源需求用量。

103,将计算子任务放入计算任务队列,以使计算子任务被计算节点主动获取并执行。

104,确认计算子任务全部执行完成后,汇总计算子任务的执行结果。

参见图2,本实施例提供了另一种分布式计算方法,该方法包括:

201,确定可用资源量。

202,确定主控节点计算任务队列中各未执行计算子任务的实际资源需求量。

可选地,步骤202具体包括:

202-1,确定主控节点计算任务队列中各未执行计算子任务的资源需求量。

202-2,将1.26×各未执行计算子任务的资源需求量确定为各未执行计算子任务的实际资源需求量。

203,从实际资源需求量小于可用资源量的计算子任务中获取一个计算子任务。

204,执行获取的计算子任务,并返回执行结果。

本发明的有益效果是:主控节点将计算任务分解成计算子任务后,将计算子任务放入计算任务队列中,计算节点根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务,并执行,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

本发明提供的一种分布式计算方法应用于一种分布式计算系统中,该分布式计算系统包括一个主控节点和至少一个计算节点,可如图3所示。其中,计算节点部署在自助终端中。

该分布式计算系统应用本发明提供的分布式计算方法执行计算任务的具体流程,参见图4。

401,主控节点接收计算任务。

402,主控节点将计算任务分解成计算子任务。

本步骤通过如下3个子步骤实现:

402-1,主控节点将计算任务分解为单元任务。

402-2,主控节点将具有同一位置属性的单元任务进行聚类,每一类单元任务为一个计算子任务;或者,主控节点根据如下公式确定各单元任务之间的关联度。

其中,C(a1,a2)为a1与a2之间的关联度,Ra1为a1的资源需求用量,∑R为计算任务资源需求用总量,W(a1,a2)为a1与a2之间的逻辑关系影响因子,n(a1,a2)为a1与a2之间共用资源需求用量。

其中,逻辑关系可以加、减、乘、除等关系,也可以为交、并、非等关系,还可以为写入、修改、删除等关系。

403,主控节点将计算子任务放入计算任务队列。

执行至此,主控节点将计算任务分解成计算子任务,放入计算任务队列中。之后,主控节点并非像现有技术一样,将计算子任务分配给计算节点,而是等待计算节点自主获取计算子任务,同时对计算任务队列进行监控,确认计算任务队列中所有的计算子任务是否被执行完毕。

404,计算节点确定可用资源量。

405,计算节点确定主控节点计算任务队列中各未执行计算子任务的实际资源需求量。

具体的,

405-1,计算节点确定主控节点计算任务队列中各未执行计算子任务的资源需求量。

405-2,计算节点将1.26×各未执行计算子任务的资源需求量确定为各未执行计算子任务的实际资源需求量。

由于计算子任务执行时消耗的资源除了步骤405-1所计算出的资源需求量,还包括与计算节点中其他模块、任务通信所消耗的资源,以及计算子任务独占资源时对其他任务执行所带来的资源影响。鉴于此,将 405-1计算出的资源需求量×1.26确定为各未执行计算子任务的实际资源需求量。

406,计算节点从实际资源需求量小于可用资源量的计算子任务中获取一个计算子任务。

407,计算节点执行获取的计算子任务,并返回执行结果。

步骤404至步骤407计算节点会根据自身资源可用情况主动从主控节点的计算任务队列中获取计算子任务并执行。

408,主控节点确认计算子任务全部执行完成后,汇总计算子任务的执行结果。

本实施中主控节点接收计算任务后将计算任务分解成计算子任务并放入计算任务队列;计算节点根据节点的资源利用情况来决定是否参与计算,当计算节点有空闲计算资源时,从主控节点的计算任务队列中获取计算子任务,下载计算程序并进行计算;计算节点将计算结果返回到计算任务队列;主控节点的计算任务管理模块不断检查计算任务队列,当计算任务队列中的计算子任务全部完成时,主控节点对计算任务队列中的计算结果进行汇总计算;主控节点将汇总计算结果反馈给调用者。

该方法中,计算子任务不是主控节点主动下发给计算节点的,而是计算节点主动从计算任务队列获取的。同时,整个分布式计算网络的计算节点是弹性接入的,部分的计算节点在线与否不影响整个分布式计算网络的正常运行。

若甲地有联网的600台自助终端,该自重终端主要用于自助办税如发票发售和发票代开,都是用户操作型的应用,没有CPU密集型应用运行,则由自主终端构成的网络可成为本发明提供的分布式计算系统。

对于税务信息检索的计算任务,该任务需要检索分散在各地税局网站上的信息并形成检索结果网页。用现有的分布式计算方法,由于检索量巨大,耗时长。用本发明提供的分布式计算方法,可以将检索任务按照各地税局网站地址分成若干计算子任务,放置在分布式计算网络的主控节点;各计算节点获取计算子任务后进行检索;计算节点将检索结果反馈给主控节点;主控节点将检索结果汇总后形成最终的结果网页。

本实施例提供的方法主控节点将计算任务分解成计算子任务后,将计算子任务放入计算任务队列中,计算节点根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务,并执行,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

基于同一发明构思,本发明还提供一种主控节点,该主控节点解决问题的原理与一种分布式计算方法中主控节点涉及的方法相似,因此该主控节点的实施可以参见一种分布式计算方法中主控节点涉及的方法的实施,重复之处不再赘述。

参见图5,该主控节点包括:

接收模块501,用于接收计算任务;

分解模块502,用于将计算任务分解成计算子任务;

放入模块503,用于将计算子任务放入计算任务队列,以使计算子任务被计算节点主动获取并执行;

汇总模块504,用于确认计算子任务全部执行完成后,汇总计算子任务的执行结果。

参见图6,分解模块502,包括:

分解单元5021,用于将计算任务分解为单元任务;

确定单元5022,用于将具有同一位置属性的单元任务进行聚类,每一类单元任务为一个计算子任务;或者,根据如下公式确定各单元任务之间的关联度,根据关联度对单元任务进行聚类,每一类单元任务为一个计算子任务,

其中,C(a1,a2)为a1与a2之间的关联度,Ra1为a1的资源需求用量,∑R为计算任务资源需求用总量,W(a1,a2)为a1与a2之间的逻辑关系影响因子,n(a1,a2)为a1与a2之间共用资源需求用量。

本实施例提供的主控节点将计算任务分解成计算子任务,将计算子任务放入计算任务队列中,在计算节点根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务并执行后,汇总任务执行结果,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

基于同一发明构思,本发明还提供一种计算节点,该计算节点解决问题的原理与一种分布式计算方法中计算节点涉及的方法相似,因此该计算节点的实施可以参见一种分布式计算方法中计算节点涉及的方法的实施,重复之处不再赘述。

参见图7,该计算节点包括:

第一确定模块701,用于确定可用资源量;

第二确定模块702,用于确定主控节点计算任务队列中各未执行计算子任务的实际资源需求量;

获取模块703,用于从实际资源需求量小于可用资源量的计算子任务中获取一个计算子任务;

执行模块704,用于执行获取的计算子任务,并返回执行结果。

参见图8,第二确定模块702包括:

第一确定单元7021,用于确定主控节点计算任务队列中各未执行计算子任务的资源需求量;

第二确定单元7022,将1.26×各未执行计算子任务的资源需求量确定为各未执行计算子任务的实际资源需求量。

本实施例提供的计算节点在主控节点将计算子任务放入计算任务队列中后,根据其自身可用资源量,主动从计算任务队列中获取相应的计算子任务并执行,使得本发明计算子任务由计算节点主动获取,使得部分计算节点是否在线不影响本发明提供的方法的运行,避免了计算任务的执行稳定性对计算节点稳定性的依赖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1