用于任务同步的方法和系统及系统中的主节点和工作节点的制作方法

文档序号:7967708阅读:183来源:国知局
专利名称:用于任务同步的方法和系统及系统中的主节点和工作节点的制作方法
技术领域
本申请涉及通信技术。更具体地,本申请涉及大规模并行计算系统中的任务同步方法、任务同步系统、任务同步系统中的主节点及任务同步系统中的工作节点。
背景技术
随着互联网的高速发展,大规模并行计算系统也越发受到关注。目前,存在多种用于大规模并行计算系统的并行计算模型,如PRAM (parallel random Access Machine并行随机存取机器)模型、LogP模型、BSP (Bulk Synchronous Parallel大规模同步并行)模型
坐寸ο在这些并行计算模型中,BSP是Leslie Valiant于上世纪80年代提出的,它是由一系列的超步(super step)组成,每个超步顺序执行如下操作:(I)本地计算(local computing),即每个工作节点分别进行计算;(2)消息传递(messaging),本地计算完成后或者计算的过程中,在工作节点之中进行消息的传递;(3)全局同步(barriersynchronization),工作节点完成计算和消息传递后进入全局同步状态,等待所有其他工作节点全部完成消息传递后再进行下一轮超步过程。然而,在现有的面向大规模处理的系统中,在BSP实现系统中,当进行全局同步(Barrier Synchronization)时,以每个任务为单位向主节点发送消息,即每个工作节点的每个任务需要分别向主节点发送消息,通知主节点其已经完成了计算和消息交换并等待主节点发送后续消息。由于所有的任务有可能在同一时间段内完成,所以在任务完成的时间段内主节点会有较高的负载甚至会成为系统的瓶颈。

发明内容
本发明的目的是提供能够改善上述现有技术中的缺陷的一种大规模并行计算系统中的任务同步方法,以降低主节点的负载和网络通信量,提高网络传送效率。根据本申请的第一方面,公开了一种大规模并行计算系统中的任务同步方法,包括:主节点将一个作业中的多个任务分配给多个工作节点;以及在接收到所有工作节点发送的同步消息后,所述主节点确定该作业完成一个超步,其中,来自每个工作节点的所述同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。根据本申请的第二方面,公开了一种大规模并行计算系统中的任务同步方法,包括:每个工作节点对分配给该工作节点的属于一个作业的所有任务执行本地计算;根据计算结果确定分配给该工作节点的每个任务是否完成;以及在确定分配给该工作节点的所述所有任务完成后向主节点发送同步消息。根据本申请的第三方面,公开了一种大规模并行计算系统中的任务同步系统,包括主节点和一个或多个工作节点,其中所述主节点用于将一个作业中的多个任务分配给多个工作节点,所述工作节点用于在每个工作节点完成所述主节点分配给该工作节点的属于同一作业的所有任务后向所述主节点发送同步消息。
根据本申请的第四方面,公开了一种用于大规模并行计算系统的任务同步系统中的主节点,包括:分配模块,用于将一个作业中的多个任务分配给多个工作节点;以及接收模块,用于接收来自所述多个工作节点的同步消息,来自每个工作节点的所述同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。根据本申请的第五方面,公开了一种用于大规模并行计算系统的任务同步系统中的工作节点,包括:计算模块,用于对分配给该工作节点的属于一个作业的所有任务执行本地计算;监控模块,根据所述计算模块的计算结果确定分配给该工作节点的每个任务是否完成;发送模块,在确定分配给该工作节点的所述所有任务完成后向主节点发送同步消息。根据本申请的方案,每个工作节点在完成分配给该工作节点的属于同一作业的所有任务后向主节点发送同步消息,避免了每个任务完成后直接向主节点发送同步消息,从而降低了主节点的负载和网络通信量。


图1示出了根据本申请的一种实施方式的大规模并行计算系统的任务同步方法;图2示出了根据本申请的一种实施方式的任务同步系统;图3示出了根据本申请的一种实施方式的用于任务同步系统中的主节点;以及图4示出了根据本申请的一种实施方式的用于任务同步系统中的工作节点。
具体实施例方式下面参照附图对本申请公开的大规模并行计算系统中的任务同步方法、任务同步系统、任务同步系统中的主节点及任务同步系统中的工作节点进行详细说明。为简明起见,本申请各实施例的说明中,相同或类似的装置使用了相同或相似的附图标记。如上所述,现有技术中,在面向大规模并行计算的BSP实现系统中,每个工作节点的每个任务完成后需要分别向主节点发送消息。由于所有的任务有可能在同一时间段内完成,因此这种同步方法可能使主节点面临较高的负载,甚至成为系统的瓶颈。根据本申请的大规模并行计算系统中的任务同步方法是在每个工作节点完成分配给该工作节点的所有任务后向主节点发送同步消息。这样,根据本申请的方法,减少了工作节点向主节点发送的同步消息,从而降低了主节点的负载。图1示出了根据本申请的一种实施方式的大规模并行计算系统的任务同步方法。如图1所示,当客户端向主节点提交作业时,根据本申请的任务同步方法,在步骤110中,主节点将一个作业中的多个任务分配给多个工作节点。根据一种实施例,主节点记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。可以理解,工作节点的工作状态改变可表示每个工作节点的任务全部完成。在步骤120中,每个工作节点在完成分配给该工作节点的属于同一作业的所有任务后向主节点发送同步消息。其中,工作节点对分配该工作节点的所有任务并行执行本地计算。在工作节点完成每个任务后,进行本地报告。应该注意的是,在工作节点完成每个任务时,并不向主节点发送同步消息,而是在工作节点完成分配该工作节点的属于同一作业的所有任务时才向主节点发送同步消息。然后,在确定该工作节点接收到分配给该工作节点的属于同一作业的所有任务的本地报告之后,该工作节点向主节点发送同步消息,例如改变与作业相对应的工作节点的工作状态。可以理解,通过这种方式,以每个工作节点为单位向主节点发送同步消息,而不是以每个任务为单位向主节点发送同步消息,可以有效降低主节点的负载。在步骤130中,在接收到所有工作节点发送的同步消息后,主节点确定该作业完成一个超步。根据一个实施例,主节点监测与作业相对应的每个工作节点的工作状态是否改变,检查是否所有工作节点都完成了分配给该工作节点的所有任务。如果是,则主节点确定该作业完成一次超步。根据另一实施例,主节点确定该作业完成一个超步之后,判断是否需要启动下一个超步。如果是,则启动下一个超步,否则,向客户端报告作业已经完成。可以看出,根据本申请的任务同步方法,分配给每个工作节点的每个任务完成后首先向工作节点进行本地报告,每个工作节点在所有任务完成后向主节点发送同步消息,从而有效降低了主节点的负载和网络通信量。而且,这种优化并不会造成全部同步的时间延迟。图2示出了根据本申请的一种实施方式的任务同步系统200。如图2所示,系统200包括主节点210和多个工作节点220。主节点210用于将一个作业中的多个任务分配给多个工作节点220,工作节点220用于在每个工作节点220完成主节点210分配给该工作节点的属于同一作业的所有任务后向主节点210发送同步消息。根据一个实施例,主节点210记录每个工作节点的工作状态,该工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成,而且主节点210监测每个工作节点的工作状态是否改变,从而确定该作业是否完成一次超步。在一个实施例中,主节点210可包括分配模块和存储模块。分配模块可用于将多个任务分配给多个工作节点。存储模块可记录每个工作节点的工作状态,该工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。而且,主节点210还可包括监听器,用于监测每个工作节点的工作状态是否改变。根据另一实施例,存储功能可以不在主节点实现,而是由系统200进一步包括的存储设备(未示出)来实现。存储设备可可以记录每个工作节点的工作状态,该工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。在一个实施例中,存储设备可进一步包括监听器,用于监测每个工作节点的工作状态是否改变。也就是说,根据本申请,存储设备和监听设备既可以在主节点中实施,也可以在主节点以外实施。根据另一实施例,工作节点220对分配给该工作节点的属于同一作业的所有任务执行本地计算,每个任务完成后向主节点发送同步消息,并且在分配给该工作节点的属于同一作业的所有任务完成后向主节点发送同步消息。图3示出了根据本申请的一种实施方式的用于任务同步系统中的主节点300。如图3所示,主节点300包括分配模块310,用于将一个作业中的多个任务分配给多个工作节点;以及接收模块320,用于接收来自多个工作节点的同步消息,来自每个工作节点的同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。根据一种实施例,主节点300还可以进一步包括存储模块330,记录每个工作节点的工作状态,该工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。而且,主节点300还可以进一步包括监听模块340,监测每个工作节点的工作状态是否改变;以及同步模块350,检测每个工作节点的工作状态,确定当前超步是否完成并启动下一个超步。根据一种实施例,在接收到工作节点发送的同步消息后,存储模块330更新该工作节点的工作状态以指示接收到该工作节点发送的同步消息。根据另一实施例,监听模块340监测与作业相对应的每个工作节点的工作状态,检查是否所有工作节点都完成了分配给该工作节点的属于同一作业的所有任务。如果是,则主节点完成一次超步。图4示出了根据本申请的一种实施方式的用于任务同步系统中的工作节点400。如图4所示,工作节点400包括计算模块410,用于对分配给该工作节点的属于一个作业的所有任务执行计算;监控模块420,根据计算模块的计算结果确定分配给该工作节点的每个任务是否完成;发送模块430,在确定分配给该工作节点的所有任务完成后向主节点发送同步消息。根据一种实施例,计算模块410在完成每个任务的计算后向监控模块420进行本地报告,在监控模块420根据本地报告确定该工作节点接收到分配给该工作节点的属于同一作业的所有任务之后,发送模块430向主节点发送同步消息,例如改变与作业相对应的工作节点的工作状态。以上参照附图对本申请的示例性的实施方案进行了描述。本领域技术人员应该理解,上述实施方案仅仅是为了说明的目的而所举的示例,而不是用来进行限制,凡在本申请的教导和权利要求保护范围下所作的任何修改、等同替换等,均应包含在本申请要求保护的范围内。
权利要求
1.一种大规模并行计算系统中的任务同步方法,包括: 主节点将一个作业中的多个任务分配给多个工作节点;以及 在接收到所有工作节点发送的同步消息后,所述主节点确定该作业完成一个超步, 其中,来自每个工作节点的所述同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。
2.如权利要求1所述的方法,还包括: 所述主节点记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成;以及监测每个工作节点的工作状态是否改变。
3.如权利要求2所述的方法,其中,在接收到工作节点发送的同步消息后,更新该工作节点的工作状态以指示接收到该工作节点发送的同步消息。
4.如权利要求1所述的方法,其中,在所述主节点确定该作业完成一个超步之后,启动下一个超步。
5.一种大规模并行计算系统中的任务同步方法,包括: 每个工作节点对分配给该工作节点的属于一个作业的所有任务执行本地计算; 根据计算结果确定分配给该工作节点的每个任务是否完成;以及 在确定分配给该工作节点的所述所有任务完成后向主节点发送同步消息。
6.如权利要求5所述的方法,进一步包括:` 在分配给每个工作节点的每个任务完成后,向运行该任务的工作节点进行本地报告; 其中,确定分配给该工作节点的每个任务是否完成的步骤包括: 确定该工作节点接收到分配给该工作节点的属于同一作业的所有任务的本地报告;以及 向所述主节点发送同步消息。
7.一种大规模并行计算系统中的任务同步系统,包括主节点和一个或多个工作节点,其中所述主节点用于将一个作业中的多个任务分配给所述一个或多个工作节点,所述一个或多个工作节点中的每个工作节点在完成所述主节点分配给该工作节点的属于同一作业的所有任务后向所述主节点发送同步消息。
8.如权利要求7所述的系统,其中所述主节点记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。
9.如权利要求7所述的系统,其中所述主节点在接收到所有工作节点发送的同步消息后,确定该作业完成一个超步。
10.如权利要求9所述的系统,其中,所述王节点在确定该作业完成Iv超步之后,启动下一个超步。
11.一种用于大规模并行计算系统的任务同步系统中的主节点,包括: 分配模块,用于将一个作业中的多个任务分配给多个工作节点;以及 接收模块,用于接收来自所述多个工作节点的同步消息,来自每个工作节点的所述同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。
12.如权利要求11所述的主节点,进一步包括:存储模块,记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。
13.如权利要求12所述的主节点,进一步包括: 监听模块,监测每个工作节点的工作状态是否改变;以及 同步模块,检测每个工作节点的工作状态,确定当前超步是否完成并启动下一个超步。
14.如权利要求12所述的主节点,其中,在所述接收模块接收到工作节点发送的同步消息后,所述存储模块更新该工作节点的工作状态以指示接收到该工作节点发送的同步消息
15.一种用于大规模并行计算系统的任务同步系统中的工作节点,包括: 计算模块,用于对分配给该工作节点的属于一个作业的所有任务执行本地计算; 监控模块,根据所述计算模块的计算结果确定分配给该工作节点的每个任务是否完成; 发送模块,在确定分配给该工作节点的所述所有任务完成后向主节点发送同步消息。
16.如权利要求15所述的工作节点,其中,所述计算模块在完成每个任务的计算后向所述监控模块进行本地报告,所述监控模块根据所述本地报告确定分配给该工作节点的属于同一作业相应任务是否完成。
全文摘要
本申请提供了大规模并行计算系统中的任务同步方法、任务同步系统、任务同步系统中的主节点及任务同步系统中的工作节点。根据本申请,大规模并行计算系统中的任务同步方法包括主节点将一个作业中的多个任务分配给多个工作节点;每个工作节点在完成分配给该工作节点的属于同一作业的所有任务后向主节点发送同步消息;以及在接收到所有工作节点发送的同步消息后,主节点确定该作业完成一个超步。根据本申请,在每个工作节点完成分配给该工作节点的属于同一作业的所有任务后向主节点发送同步消息,避免了每个任务完成后直接向主节点发送同步消息,从而降低了主节点的负载和网络通信量。
文档编号H04L29/08GK103108000SQ201110351929
公开日2013年5月15日 申请日期2011年11月9日 优先权日2011年11月9日
发明者郭磊涛, 钱岭, 齐骥, 周大 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1