CN103108000A - 用于任务同步的方法和系统及系统中的主节点和工作节点 - Google Patents
用于任务同步的方法和系统及系统中的主节点和工作节点 Download PDFInfo
- Publication number
- CN103108000A CN103108000A CN2011103519295A CN201110351929A CN103108000A CN 103108000 A CN103108000 A CN 103108000A CN 2011103519295 A CN2011103519295 A CN 2011103519295A CN 201110351929 A CN201110351929 A CN 201110351929A CN 103108000 A CN103108000 A CN 103108000A
- Authority
- CN
- China
- Prior art keywords
- node
- working node
- tasks
- working
- host node
- 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.)
- Granted
Links
Images
Abstract
本申请提供了大规模并行计算系统中的任务同步方法、任务同步系统、任务同步系统中的主节点及任务同步系统中的工作节点。根据本申请,大规模并行计算系统中的任务同步方法包括主节点将一个作业中的多个任务分配给多个工作节点;每个工作节点在完成分配给该工作节点的属于同一作业的所有任务后向主节点发送同步消息;以及在接收到所有工作节点发送的同步消息后,主节点确定该作业完成一个超步。根据本申请,在每个工作节点完成分配给该工作节点的属于同一作业的所有任务后向主节点发送同步消息,避免了每个任务完成后直接向主节点发送同步消息,从而降低了主节点的负载和网络通信量。
Description
技术领域
本申请涉及通信技术。更具体地,本申请涉及大规模并行计算系统中的任务同步方法、任务同步系统、任务同步系统中的主节点及任务同步系统中的工作节点。
背景技术
随着互联网的高速发展,大规模并行计算系统也越发受到关注。目前,存在多种用于大规模并行计算系统的并行计算模型,如PRAM(parallel random Access Machine并行随机存取机器)模型、LogP模型、BSP(Bulk Synchronous Parallel大规模同步并行)模型等。
在这些并行计算模型中,BSP是Leslie Valiant于上世纪80年代提出的,它是由一系列的超步(super step)组成,每个超步顺序执行如下操作:(1)本地计算(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向主节点发送同步消息,例如改变与作业相对应的工作节点的工作状态。
以上参照附图对本申请的示例性的实施方案进行了描述。本领域技术人员应该理解,上述实施方案仅仅是为了说明的目的而所举的示例,而不是用来进行限制,凡在本申请的教导和权利要求保护范围下所作的任何修改、等同替换等,均应包含在本申请要求保护的范围内。
Claims (16)
1.一种大规模并行计算系统中的任务同步方法,包括:
主节点将一个作业中的多个任务分配给多个工作节点;以及
在接收到所有工作节点发送的同步消息后,所述主节点确定该作业完成一个超步,
其中,来自每个工作节点的所述同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。
2.如权利要求1所述的方法,还包括:
所述主节点记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成;以及
监测每个工作节点的工作状态是否改变。
3.如权利要求2所述的方法,其中,在接收到工作节点发送的同步消息后,更新该工作节点的工作状态以指示接收到该工作节点发送的同步消息。
4.如权利要求1所述的方法,其中,在所述主节点确定该作业完成一个超步之后,启动下一个超步。
5.一种大规模并行计算系统中的任务同步方法,包括:
每个工作节点对分配给该工作节点的属于一个作业的所有任务执行本地计算;
根据计算结果确定分配给该工作节点的每个任务是否完成;以及
在确定分配给该工作节点的所述所有任务完成后向主节点发送同步消息。
6.如权利要求5所述的方法,进一步包括:
在分配给每个工作节点的每个任务完成后,向运行该任务的工作节点进行本地报告;
其中,确定分配给该工作节点的每个任务是否完成的步骤包括:
确定该工作节点接收到分配给该工作节点的属于同一作业的所有任务的本地报告;以及
向所述主节点发送同步消息。
7.一种大规模并行计算系统中的任务同步系统,包括主节点和一个或多个工作节点,其中所述主节点用于将一个作业中的多个任务分配给所述一个或多个工作节点,所述一个或多个工作节点中的每个工作节点在完成所述主节点分配给该工作节点的属于同一作业的所有任务后向所述主节点发送同步消息。
8.如权利要求7所述的系统,其中所述主节点记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。
9.如权利要求7所述的系统,其中所述主节点在接收到所有工作节点发送的同步消息后,确定该作业完成一个超步。
10.如权利要求9所述的系统,其中,所述主节点在确定该作业完成一个超步之后,启动下一个超步。
11.一种用于大规模并行计算系统的任务同步系统中的主节点,包括:
分配模块,用于将一个作业中的多个任务分配给多个工作节点;以及
接收模块,用于接收来自所述多个工作节点的同步消息,来自每个工作节点的所述同步消息指示分配给该工作节点的属于同一作业的所有任务已完成。
12.如权利要求11所述的主节点,进一步包括:
存储模块,记录每个工作节点的工作状态,所述工作状态至少包括工作节点是否正常工作、工作节点上属于同一作业的所有任务是否正常完成。
13.如权利要求12所述的主节点,进一步包括:
监听模块,监测每个工作节点的工作状态是否改变;以及
同步模块,检测每个工作节点的工作状态,确定当前超步是否完成并启动下一个超步。
14.如权利要求12所述的主节点,其中,在所述接收模块接收到工作节点发送的同步消息后,所述存储模块更新该工作节点的工作状态以指示接收到该工作节点发送的同步消息。
15.一种用于大规模并行计算系统的任务同步系统中的工作节点,包括:
计算模块,用于对分配给该工作节点的属于一个作业的所有任务执行本地计算;
监控模块,根据所述计算模块的计算结果确定分配给该工作节点的每个任务是否完成;
发送模块,在确定分配给该工作节点的所述所有任务完成后向主节点发送同步消息。
16.如权利要求15所述的工作节点,其中,所述计算模块在完成每个任务的计算后向所述监控模块进行本地报告,所述监控模块根据所述本地报告确定分配给该工作节点的属于同一作业相应任务是否完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110351929.5A CN103108000B (zh) | 2011-11-09 | 2011-11-09 | 用于任务同步的方法和系统及系统中的主节点和工作节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110351929.5A CN103108000B (zh) | 2011-11-09 | 2011-11-09 | 用于任务同步的方法和系统及系统中的主节点和工作节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103108000A true CN103108000A (zh) | 2013-05-15 |
CN103108000B CN103108000B (zh) | 2016-08-10 |
Family
ID=48315570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110351929.5A Active CN103108000B (zh) | 2011-11-09 | 2011-11-09 | 用于任务同步的方法和系统及系统中的主节点和工作节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103108000B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701906A (zh) * | 2013-12-27 | 2014-04-02 | 北京奇虎科技有限公司 | 分布式实时计算系统及其数据处理方法 |
CN107077485A (zh) * | 2014-09-30 | 2017-08-18 | 阿尔卡特朗讯 | 用于处理图的系统和方法 |
GB2569271A (en) * | 2017-10-20 | 2019-06-19 | Graphcore Ltd | Synchronization with a host processor |
US10558595B2 (en) | 2017-10-20 | 2020-02-11 | Graphcore Limited | Sending data off-chip |
US10579585B2 (en) | 2017-10-20 | 2020-03-03 | Graphcore Limited | Synchronization in a multi-tile, multi-chip processing arrangement |
US10949266B2 (en) | 2018-07-04 | 2021-03-16 | Graphcore Limited | Synchronization and exchange of data between processors |
US11507416B2 (en) | 2018-11-30 | 2022-11-22 | Graphcore Limited | Gateway pull model |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134514A (en) * | 1998-06-25 | 2000-10-17 | Itt Manufacturing Enterprises, Inc. | Large-scale network simulation method and apparatus |
CN101072133A (zh) * | 2007-05-23 | 2007-11-14 | 华中科技大学 | 一种基于对等网络的高性能计算系统 |
CN101465796A (zh) * | 2007-12-19 | 2009-06-24 | 中国移动通信集团公司 | P2p系统元数据收集、分发方法及其装置和系统 |
US20100183027A1 (en) * | 2009-01-16 | 2010-07-22 | Entropic Communications Inc. | Method and apparatus for block acknowledgement in a communication network |
CN101950297A (zh) * | 2010-09-10 | 2011-01-19 | 北京大学 | 一种海量语义数据的存储和查询方法及装置 |
CN102263694A (zh) * | 2011-07-27 | 2011-11-30 | 中兴通讯股份有限公司 | 一种实现单机上多种网络资源共用的系统及方法 |
-
2011
- 2011-11-09 CN CN201110351929.5A patent/CN103108000B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134514A (en) * | 1998-06-25 | 2000-10-17 | Itt Manufacturing Enterprises, Inc. | Large-scale network simulation method and apparatus |
CN101072133A (zh) * | 2007-05-23 | 2007-11-14 | 华中科技大学 | 一种基于对等网络的高性能计算系统 |
CN101465796A (zh) * | 2007-12-19 | 2009-06-24 | 中国移动通信集团公司 | P2p系统元数据收集、分发方法及其装置和系统 |
US20100183027A1 (en) * | 2009-01-16 | 2010-07-22 | Entropic Communications Inc. | Method and apparatus for block acknowledgement in a communication network |
CN101950297A (zh) * | 2010-09-10 | 2011-01-19 | 北京大学 | 一种海量语义数据的存储和查询方法及装置 |
CN102263694A (zh) * | 2011-07-27 | 2011-11-30 | 中兴通讯股份有限公司 | 一种实现单机上多种网络资源共用的系统及方法 |
Non-Patent Citations (1)
Title |
---|
戈瑞录: "实时多任务集群管理系统的研究", 《中国优秀硕士学位论文全文数据库》, 31 July 2006 (2006-07-31) * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701906A (zh) * | 2013-12-27 | 2014-04-02 | 北京奇虎科技有限公司 | 分布式实时计算系统及其数据处理方法 |
CN107077485A (zh) * | 2014-09-30 | 2017-08-18 | 阿尔卡特朗讯 | 用于处理图的系统和方法 |
US10817444B2 (en) | 2017-10-20 | 2020-10-27 | Graphcore Limited | Sending data from an arrangement of processor modules |
US10558595B2 (en) | 2017-10-20 | 2020-02-11 | Graphcore Limited | Sending data off-chip |
US10579585B2 (en) | 2017-10-20 | 2020-03-03 | Graphcore Limited | Synchronization in a multi-tile, multi-chip processing arrangement |
GB2569271B (en) * | 2017-10-20 | 2020-05-13 | Graphcore Ltd | Synchronization with a host processor |
GB2569271A (en) * | 2017-10-20 | 2019-06-19 | Graphcore Ltd | Synchronization with a host processor |
US11023413B2 (en) | 2017-10-20 | 2021-06-01 | Graphcore Limited | Synchronization in a multi-tile, multi-chip processing arrangement |
US11048563B2 (en) | 2017-10-20 | 2021-06-29 | Graphcore Limited | Synchronization with a host processor |
US11106510B2 (en) | 2017-10-20 | 2021-08-31 | Graphcore Limited | Synchronization with a host processor |
US10949266B2 (en) | 2018-07-04 | 2021-03-16 | Graphcore Limited | Synchronization and exchange of data between processors |
US10963315B2 (en) | 2018-07-04 | 2021-03-30 | Graphcore Limited | Synchronization and exchange of data between processors |
US10970131B2 (en) | 2018-07-04 | 2021-04-06 | Graphcore Limited | Host proxy on gateway |
US11507416B2 (en) | 2018-11-30 | 2022-11-22 | Graphcore Limited | Gateway pull model |
Also Published As
Publication number | Publication date |
---|---|
CN103108000B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103108000A (zh) | 用于任务同步的方法和系统及系统中的主节点和工作节点 | |
CN102594858B (zh) | 云存储环境中的镜像解决方案 | |
CN103383689A (zh) | 一种服务进程故障检测方法、装置及服务节点 | |
CN101345652B (zh) | 数据采集方法及数据采集设备 | |
JP6692000B2 (ja) | リスク識別方法、リスク識別装置、クラウドリスク識別装置及びシステム | |
CN103516744A (zh) | 一种数据处理的方法和应用服务器及集群 | |
CN103036719A (zh) | 一种基于主备集群服务器的跨地区服务容灾方法及装置 | |
CN102223254A (zh) | 监控系统及方法 | |
CN101262479B (zh) | 一种网络文件共享的方法、服务器和网络文件共享的系统 | |
CN115328579B (zh) | 神经网络训练的调度方法、系统及计算机可读存储介质 | |
CN112492022A (zh) | 提高数据库可用性的集群、方法、系统及存储介质 | |
CN105786447A (zh) | 服务器处理数据的方法、装置及服务器 | |
CN106385330A (zh) | 一种网络功能虚拟化编排器的实现方法及装置 | |
CN103164262B (zh) | 一种任务管理方法及装置 | |
CN114565502A (zh) | Gpu资源管理方法、调度方法、装置、电子设备及存储介质 | |
CN104753992A (zh) | 一种数据存储、虚拟平台故障恢复的方法、设备和系统 | |
CN114064217A (zh) | 一种基于OpenStack的节点虚拟机迁移方法及装置 | |
CN101893876A (zh) | 一种用于大型分布式控制系统的控制网络设计 | |
CN103685405B (zh) | 网络服务系统及其更新固件的方法 | |
CN106447755A (zh) | 一种动画渲染系统 | |
CN111400241A (zh) | 数据重构方法和装置 | |
CN105511952A (zh) | 基于云计算平台的资源自迁移方法及系统 | |
CN114584573A (zh) | 一种基于长轮询机制的节点机信息同步方法 | |
CN105721531B (zh) | 一种消息同步方法及装置 | |
CN113987065A (zh) | 数据库漂移方法、系统、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |