一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于并行计算系统的处理设备和用于执行集合操作的方法与流程

2022-02-22 17:49:50 来源:中国专利 TAG:


1.本公开内容总体上涉及数据处理。更具体地,本公开内容涉及用于并行计算系统的处理设备以及相应的方法,该并行计算系统包括用于执行集合操作的多个这样的处理设备。


背景技术:

2.集合操作(collective operation)已经成为并行计算框架的重要部分,集合操作描述了在并行计算系统中通信和计算的公用模式,在该公用模式下,向多个处理设备(也被称为处理节点)同时发送数据以及/或者从多个处理设备同时接收数据。由于集合操作通常需要来自并行计算系统的所有n个处理设备的通信,因此可能需要高达n2个通信步骤,从而导致涉及大量处理设备的集合操作的大的延迟。


技术实现要素:

3.本公开内容的目的是提供一种用于并行计算系统的处理设备以及相应的并行计算方法,该并行计算系统包括用于以减小的延迟执行集合操作的多个处理设备。
4.通过独立权利要求的主题实现前述目的和其他目的。根据从属权利要求、说明书和附图,另外的实现形式是明显的。
5.根据第一方面,提供了一种用于并行计算系统的处理设备,其中,该并行计算系统包括多个处理设备,所述多个处理设备用于执行包括一个或更多个集合操作的应用。该处理设备被配置成:获取局部处理结果,其中,集合操作的全局处理结果取决于多个处理设备的局部处理结果。该处理设备还被配置成:如果满足下述条件,则将该处理设备的局部处理结果分发至其他处理设备中的一个或更多个:(a)确定集合操作的全局处理结果仅基于该处理设备的局部处理结果,即,由该处理设备的局部处理结果唯一确定,而与其他处理设备的局部处理结果无关;或者(b)集合操作的全局处理结果仅基于该处理设备的局部处理结果——即,由该处理设备的局部处理结果唯一确定——的可能性大于可能性阈值,或者(c)确定集合操作的全局处理结果仅基于该处理设备的局部处理结果和多个处理设备中的另外的处理设备的另外的局部处理结果,即,由该处理设备的局部处理结果和多个处理设备中的另外的处理设备的另外的局部处理结果唯一确定,而与其他处理设备的局部处理结果无关。如本文所使用的,全局处理结果为集合操作的最终结果,而处理设备的局部处理结果为仅对相应处理设备最初已知的结果。
6.因此,有利地,提供了一种用于并行计算系统的用于以减小的延迟执行集合操作的处理设备。
7.在第一方面的另外的可能实现形式中,该处理设备还被配置成:只有确定集合操作的全局处理结果仅基于该处理设备的局部处理结果,即,由该处理设备的局部处理结果唯一确定,才向所有其他处理设备广播该处理设备的局部处理结果。
8.在第一方面的另外的可能实现形式中,集合操作为:逻辑“与”操作或按位“与”操
作;或者逻辑“或”操作或按位“或”操作。
9.在第一方面的另外的可能实现形式中,集合操作为逻辑“异或”操作或按位“异或”操作,其中,该处理设备还被配置成:如果确定集合操作的全局处理结果仅基于该处理设备的局部处理结果和另外的处理设备的另外的局部处理结果,即,由该处理设备的局部处理结果和另外的处理设备的另外的局部处理结果唯一确定,则向其他处理设备广播该处理设备的局部处理结果。
10.在第一方面的另外的可能实现形式中,该处理设备还被配置成:从另外的处理设备接收另外的局部处理结果;以及基于该处理设备的局部处理结果和另外的处理设备的另外的局部处理结果,来执行逻辑“异或”操作或按位“异或”操作。
11.在第一方面的另外的可能实现形式中,该处理设备被配置成:将该处理设备的局部处理结果分发至其他处理设备的选定子集,以用于仅与其他处理设备的选定子集执行集合操作,其中,针对其他处理设备的选定子集中的每个处理设备,集合操作的全局结果仅基于该处理设备的局部处理结果——即,由该处理设备的局部处理结果唯一确定——的可能性大于可能性阈值。因此,有利地,可以选择仅重要的处理节点以用于执行集合操作,从而进一步改善延迟。
12.在第一方面的另外的可能实现形式中,并行计算系统被配置成:在应用的运行时间期间调整选定子集。因此,有利地,可以根据并行计算系统的状态调整重要处理装置的集合。
13.在第一方面的另外的可能实现形式中,该处理设备被配置成:针对应用的每个集合操作,存储该集合操作的全局处理结果和/或提供该集合操作的全局处理结果的处理设备的标识符。
14.在第一方面的另外的可能实现形式中,该处理设备被配置成:基于局部处理结果与针对应用的一个或更多个先前的集合操作所记录的一个或更多个全局处理结果之间的比较,来确定该集合操作的全局结果仅基于该处理设备的局部处理结果——即,由该处理设备的局部处理结果唯一确定——的可能性。因此,有利地,较早的集合操作的全局处理结果可以用于确定重要处理设备。
15.在第一方面的另外的可能实现形式中,集合操作为:用于获得多个处理设备的局部处理结果中的最大值的最大值操作;或者用于获得多个处理设备的局部结果中的最小值的最小值操作。
16.在第一方面的另外的可能实现形式中,该处理设备被配置成:运行操作的迭代循环;以及基于取决于集合操作的全局处理结果的条件语句终止该迭代循环,即,退出该迭代循环。
17.在第一方面的另外的可能实现形式中,该处理设备被配置成:如果确定集合操作的全局处理结果仅基于该处理设备的局部处理结果,即,由该处理设备的局部处理结果唯一确定,则向所有其他处理设备广播该处理设备的局部处理结果,并且该集合操作的等于局部处理结果的全局处理结果触发该处理设备终止该迭代循环。
18.在第一方面的另外的可能实现形式中,该处理设备被配置成:针对该迭代循环,存储在终止该迭代循环之前的迭代次数以及/或者由条件语句限定的用于终止该迭代循环的阈值。
19.在第一方面的另外的可能实现形式中,针对迭代循环的每个迭代,该处理设备被配置成:确定在该迭代循环的另外的迭代中满足该迭代循环的条件语句的可能性,其中,该处理设备被配置成:向所有其他处理设备广播该处理设备的局部处理结果;以及如果将在该迭代循环的另外的迭代中满足条件语句的可能性大于可能性阈值,则终止该迭代循环。
20.在第一方面的另外的可能实现形式中,处理节点被配置成:基于针对终止一个或更多个先前的迭代循环的所存储的迭代次数,来确定在该迭代循环的另外的迭代中满足该迭代循环的条件语句的可能性。
21.在第一方面的另外的可能实现形式中,该处理设备被配置成:如果在该迭代循环的另外的迭代中满足条件语句的可能性大于可能性阈值,则在该迭代循环的另外的迭代中不满足该迭代循环的条件语句的情况下,继续运行该迭代循环。
22.在第一方面的另外的可能实现形式中,集合操作是多个局部处理结果的求和操作。
23.在第一方面的另外的可能实现形式中,集合操作为:用于在多个处理设备的选定根处理设备处提供全局处理结果的归约操作;或者用于在多个处理设备的所有处理设备处提供全局处理结果的归约并广播操作。
24.根据第二方面,提供了一种并行计算系统,该并行计算系统包括多个根据第一方面和第一方面的实现形式中的任一实现形式的处理设备。
25.在第二方面的另外的可能实现形式中,并行计算系统的多个处理设备被配置成限定树形拓扑。
26.根据第三方面,提供了一种用于在并行计算系统中执行包括一个或更多个集合操作的应用的方法,该并行计算系统具有多个处理设备。针对每个处理设备,该方法包括下述步骤:获取局部处理结果,其中,集合操作的全局处理结果取决于多个处理设备的局部处理结果中的一个或更多个;以及如果满足下述条件,则将该处理设备的局部处理结果分发至其他处理设备中的一个或更多个:(a)确定集合操作的全局处理结果仅基于该处理设备的局部处理结果,即,由该处理设备的局部处理结果唯一确定,而与其他处理设备的局部处理结果无关;或者(b)集合操作的全局处理结果仅基于该处理设备的局部处理结果——即,由该处理设备的局部处理结果唯一确定——的可能性大于可能性阈值,或者(c)确定集合操作的全局处理结果仅基于该处理设备的局部处理结果和多个处理设备中的另外的处理设备的另外的局部处理结果,即,由该处理设备的局部处理结果和多个处理设备中的另外的处理设备的另外的局部处理结果唯一确定,而与其他处理设备的局部处理结果无关。
27.根据本公开内容的第三方面的方法可以由根据本公开内容的第一方面的处理设备和根据本公开内容的第二方面的并行计算系统执行。根据本公开内容的第三方面的方法的另外的特征直接源于根据本公开内容的第一方面的处理设备的功能和根据本公开内容的第二方面的并行计算系统的功能以及上面和下面描述的它们的不同的实现形式
28.本公开内容的实施方式可以以硬件和/或软件实施。
29.在附图和下面描述中阐述了一个或更多个实施方式的细节。其他特征、目标和优点根据说明书、附图和权利要求书将是明显的。
附图说明
30.在下面,参照附图更详细地描述本公开内容的实施方式,在附图中:
31.图1是示出执行集合操作的常规并行计算系统的图;
32.图2是示出根据实施方式的执行集合操作的并行计算系统的图;
33.图2a是示出根据实施方式的用于并行计算系统的处理设备的图;
34.图3是示出执行集合操作的常规并行计算系统的图;
35.图4是示出根据实施方式的执行集合操作的并行计算系统的图;
36.图5是示出执行集合操作的常规并行计算系统的图;
37.图6是示出根据实施方式的执行集合操作的并行计算系统的图;
38.图7示出了包括由常规并行计算系统实施的集合操作的迭代循环;
39.图8示出了包括由根据实施方式的并行计算系统实施的集合操作的迭代循环;以及
40.图9是示出根据实施方式的方法的流程图。
41.在下文中,相同的附图标记指代相同的特征或者至少功能上等同的特征。
具体实施方式
42.在以下描述中,参照了形成了本公开内容的一部分的附图,并且附图通过图示的方式示出了本发明的实施方式的特定方面或者其中可以使用本发明的实施方式的特定方面。应当理解,本发明的实施方式可以用在其他方面并且包括未在附图中描绘的结构变化或逻辑变化。因此,因此,以下详细描述不是以限制性意义进行,并且本发明的范围由所附权利要求书限定。
43.例如,应当理解,与所描述的方法有关的公开内容还可以适用于被配置成执行该方法的相应设备或系统,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则相应的设备可以包括用于执行所描述的一个或多个方法步骤的一个或多个单元,例如,功能单元(例如,一个单元执行一个或多个步骤,或者多个单元均执行多个步骤中的一个或更多个),即使这样的一个或更多个单元未在附图中明确地描述或示出也是如此。另一方面,例如,如果基于一个或多个单元来描述特定装置,例如功能单元,则相应的方法可以包括用于执行一个或多个单元的功能的一个步骤(例如,一个步骤执行一个或多个单元的功能,或者多个步骤均执行多个单元中的一个或更多个单元的功能),即使这样的一个或多个步骤未在附图中明确地描述或示出也是如此。此外,应当理解,除非另外具体指出,否则本文描述的各种示例性实施方式和/或方面的特征可以彼此组合。
44.图1是示出包括多个处理设备或处理节点101的常规并行计算系统100的图,所述处理设备或处理节点101被配置成执行集合操作。图2是示出根据实施方式的包括根据实施方式的多个处理设备201的并行计算系统200的图,所述处理设备201被配置成执行或运行包括一个或更多个集合操作的应用。图2a是示出处理设备201的示例性实施方式的图。
45.如图2a所示,处理设备201可以包括:处理器201a,该处理器201用于处理数据并且提供处理结果。处理设备201还包括:非暂态存储器201b,该非暂态存储器201b用于存储和检索数据;以及通信接口201c,该通信接口201c用于交换数据,例如与图2所示的并行计算系统200的其他处理设备201交换数据。处理器201a可以以硬件和/或软件实施。硬件可以包
括:数字电路;或者模拟电路和数字电路两者。数字电路可以包括下述部件:例如专用集成电路(application-specific integrated circuit,asic)、现场可编程阵列(field-progammable array,fpga)、数字信号处理器(digital signal processor,dsp)或通用处理器。非暂态存储器201b可以被配置成:存储可执行程序代码,所述可执行程序代码在由处理器201a运行时使处理设备201执行本文描述的功能和方法。通信接口201c可以包括有线通信接口201c或无线通信接口201c。并行计算系统200的多个处理设备201可以被耦接成通过有线数据通信网络和/或无线数据通信网络进行数据通信并且多个处理设备201可以共享资源,例如,存储器、计算机处理器、输入/输出带宽等。在实施方式中,并行计算系统200的多个处理设备201可以限定树形通信拓扑。
46.集合操作是并行计算的构思,根据该构思,向许多处理节点例如并行计算系统200的处理设备201同时发送数据或者从许多处理节点例如并行计算系统200的处理设备201同时接收数据。“广播操作”是用于使数据在多个处理设备201之间移动的集合操作的示例。“归约操作(reduce operation)”是对在多个处理设备201之间分发的数据运行运算功能或逻辑功能的集合操作的示例。在实施方式中,并行计算系统200可以实施信息传递接口(message passing interface,mpi)框架,即,用于在并行计算系统200的多个处理设备201之间提供数据通信的已知并行通信库。虽然在下文中为了简化说明可以使用mpi术语,但是mpi本身不是本文公开的各种实施方式的要求或限制。
47.如将在下面进一步详细描述的,通常,并行计算系统200的处理设备201被配置成:获得局部处理结果,其中,集合操作的全局处理结果取决于多个处理设备201的局部处理结果。因此,如本文所使用的,全局处理结果为集合操作的最终结果,而局部处理结果为最初已知的结果,即,仅在相应的处理设备201处可用。例如,每个处理设备201可以被配置成:执行用于获得局部处理结果的局部数据处理操作。局部处理结果可以为:例如,整数值、真实值、逻辑“真”值或逻辑“假”值等。
48.并行计算系统200的处理设备201还被配置成:如果满足下述条件之一,则将该处理设备201的局部处理结果分发至其他处理设备201中的一个或更多个:(a)确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果,即,由该处理设备201的局部处理结果唯一确定,而与其他处理设备201的局部处理结果无关;或者(b)集合操作的全局处理结果仅基于该处理设备201的局部处理结果——即,由该处理设备201的局部处理结果唯一确定——的可能性大于可能性阈值;或者(c)确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果和多个处理设备201中的另外的处理设备的另外的局部处理结果,即,由该处理设备201的局部处理结果和多个处理设备201中的另外的处理设备的另外的局部处理结果唯一确定,而与其他处理设备201的局部处理结果无关。为了验证是否满足这些条件(a)、(b)或(c)中的一个条件,处理设备201被配置成检查:(a)是否确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果,即,由该处理设备201的局部处理结果唯一确定,而与其他处理设备201的局部处理结果无关;或者(b)集合操作的全局处理结果仅基于该处理设备201的局部处理结果——即,由该处理设备201的局部处理结果唯一确定——的可能性是否大于可能性阈值;或者(c)是否确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果和多个处理设备201中的另外的处理设备的另外的局部处理结果,即,由该处理设备201的局部处理结果和多个处理设备201中的另外的处理设备的
另外的局部处理结果唯一确定,而与其他处理设备201的局部处理结果无关。
49.在图2所示的实施方式中,并行计算系统200的多个处理设备201被配置成以下述的形式执行归约(reduce)操作或者归约并广播(allreduce)操作:以逻辑“与”操作或按位“与”操作,或者以逻辑“或”操作或按位“或”操作——例如,mpi_land(message passing interface_logical and,mpi_land),mpi_band(message passing interface_bitwise and,mpi_band),mpi_lor(message passing interface_logical or,mpi_lor)和mpi_bor(message passing interface_bitwise or,mpi_bor)操作。如从图1可以看出的,在常规并行计算系统100中,这样的操作需要多个处理节点101之间的若干通信步骤(在图1的示例中为四个步骤),以用于在多个处理节点101之间分发局部结果(在图1的示例中为“真”值或“假”值)。
50.代替分发局部处理结果例如“真”值或“假”值,每个处理设备即图2的并行计算系统200的节点201确定是否确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果,即,是否满足上面的条件(a)。例如,针对以逻辑“与”操作或按位“与”操作例如mpi_land操作或mpi_band操作形式的集合操作的情况,处理设备“p2”基于其局部处理结果即“假”值可以验证逻辑“与”操作的全局处理结果是由该处理设备“p2”的“假”值唯一确定的,即,全局处理结果也为“假”值。同样,针对逻辑“或”操作或按位“或”操作例如mpi_lor操作或mpi_bor操作,具有作为其局部处理结果的“真”值的处理设备201“知道”集合操作的全局处理结果也为“真”值。
51.在处理设备p3知道集合操作的全局处理结果仅基于该处理设备p3的局部处理结果,即,由该处理设备p3的局部处理结果唯一确定的情况下,如图2所示处理设备p3被配置成:向其他处理设备p4、p5、p6广播该处理设备p3的局部处理结果即该处理设备p3的“假”值,以完成集合操作。在实施方式中,来自处理设备p3的局部处理结果的广播可以覆盖由其他处理设备执行的所有其他通信。例如,一旦处理设备p0从处理设备p3接收到“假”值,则归约集合通信可以被停止并且被常规广播操作代替。
52.因此,图2所示的实施方式可以被认为将归约集合操作转换成广播操作。在实施方式中,这可以包括实现通信的优先级的不同等级,以使得特定通信能够覆盖另一通信。此外,在广播操作的情况下,最终的返回值即全局处理结果是确定的,并且因此,一旦每个处理设备201接收到该信息,则每个处理设备201就可以继续其自身的工作。
53.在另一实施方式中,并行计算系统200的多个处理设备201被配置成以下述的形式执行归约操作或者归约并广播操作:以逻辑“异或”操作或按位“异或”操作,例如,mpi_lxor(message passing interface_logical xor,mpi_lxor)和mpi_bxor(message passing interface_bitwise xor,mpi_bxor)操作。在该实施方式中,处理节点201被配置成:如果确定全局处理结果仅基于该处理设备的局部处理结果和另外的处理设备201的另外的局部处理结果,即,由该处理设备的局部处理结果和另外的处理设备201的另外局部处理结果唯一确定,则向其他处理设备201广播该处理节点201的局部处理结果,例如,“真”值或“假”值。例如,在图2所示的示例中,处理设备p2可以从另外的处理设备p0获得该另外的处理设备p0的“真”值,并且处理设备p2验证集合操作的全局处理结果仅基于该处理设备p2的“假”值和处理设备p0的“真”值,即,由该处理设备p2的“假”值和处理设备p0的“真”值唯一确定。因此,在实施方式中,处理设备p2(作为针对每个处理设备201的示例)还被配置成:从处理设
备p0接收另外的局部处理结果;以及基于该处理设备p2的局部处理结果(即,“假”值)和处理设备p0的另外的局部处理结果(即,“真”值)执行逻辑“异或”操作或按位“异或”操作。
54.图3是示出包括多个处理节点101的常规并行计算系统100的图,该处理节点101被配置成以最大(或最小)操作的形式执行集合操作,而图4是示出并行计算系统200的实施方式的图,该并行计算系统200用于执行这种集合最大操作或集合最小操作,例如,mpi_max(message passing interface_maximum,mpi_max)或mpi_min(message passing interface_minimum,mpi_min)。
55.如从图3可以看出的,在常规并行计算系统100中,这样的最大操作或最小操作需要在多个处理节点101之间的若干通信步骤(在图3的示例中为四个步骤),以用于在多个处理节点101之间分发局部结果(在图3的示例中为整数值)。代替分发局部结果例如整数值,每个处理设备即图4的并行计算系统200的节点201确定集合最大(或最小)操作的全局处理结果仅基于该节点201的局部处理结果即该节点201的整数值——即,由该节点201的局部处理结果即该节点的整数值唯一确定——的可能性是否大于可能性阈值,即上面的条件(b)。在实施方式中,图4所示的并行计算系统200的处理设备201被配置成:基于该处理设备201的局部处理结果与针对由并行计算系统200执行的应用的一个或更多个先前的集合最大(或最小)操作记录的集合最大(或最小)操作的一个或更多个全局处理结果之间的比较,来确定该集合操作的全局处理结果仅基于该处理设备201的局部处理结果——即,由该处理设备201的局部处理结果唯一确定——的可能性。因此,在实施方式中,每个处理节点201被配置成:针对应用的每个集合操作存储全局处理结果,例如,集合最大(或最小)操作的结果和/或提供全局处理结果即集合操作的最大(或最小)值的处理设备201的标识符。
56.在处理设备201,通过示例的方式例如图4所示的处理设备p4,确定集合最大(或最小)操作的全局处理结果仅基于该处理设备p4的局部处理结果即该处理设备p4的整数值“100”——即由该处理设备p4的局部处理结果唯一确定——的可能性大于可能性阈值的情况下,该处理设备p4被配置成:将该处理设备p4的局部处理结果即整数值“100”仅分发至其他处理设备201的选定子集203,以用于与其他处理设备201的选定子集203执行集合操作。在图4所示的示例中,通过示例的方式,选定子集203包括处理设备p0和处理设备p4。如图4所示,一旦确定了选定子集203,则并行计算系统200可以仅与选定子集203的处理设备201即处理设备p0和处理设备p4执行最大(或最小)操作。一旦选定子集的处理设备p0和处理设备p4确定了该最大(或最小)操作的全局处理结果(在图4所示的示例中为处理设备p0的整数值“101”),则全局处理结果即整数值“101”可以与选定子集203之外的其他处理设备201共享。在实施方式中,并行计算系统200可以被配置成:在应用的运行时间期间调整处理设备201的选定子集203。随着“重要”处理设备即节点201的子集的相对大小逐渐变小,增速变得越来越大。
57.图5是示出包括多个处理节点101的常规并行计算系统100的图,该处理节点101被配置成:执行具有取决于以求和操作形式的集合归约操作或集合归约并广播操作的退出条件的迭代循环。
58.在许多并行计算应用中,迭代方案构成了整个算法的核心。在特定的并行计算应用的生命周期期间,迭代次数缓慢变化。因此,如果特定的并行计算应用在每个步骤处需要平均约100次迭代,则在特定步骤处不太可能具有少于80次迭代。然而,常规地,仍然在每个
迭代处使用阻塞归约操作,即使以接近完美的确定性预测出针对前80次迭代的收敛测试的结果也是如此。此外,单个进程的局部误差值(local error value)可能足够高以使全局收敛测试无效。这种情况在图5中示出,其中仍然将进行阻塞归约操作,即使处理设备p5从一开始就知道随后if语句的结果是确定的也是如此。
59.图6是示出根据实施方式的包括多个处理设备201的并行计算系统200的实施方式的图,该处理设备201用于执行包括具有取决于以求和操作例如mpi_sum操作形式的集合归约操作或集合归约并广播操作的退出条件的迭代循环的应用。
60.如从图5可以看出的,在常规并行计算系统100中,这样的求和操作需要在多个处理节点101之间的若干通信步骤(在图5的示例中为四个步骤),以用于在多个处理节点101之间分发局部结果(在图5的示例中为真实值)。在图5所示的示例中,在集合操作的全局处理结果小于1e-4的情况下,终止或退出迭代循环。
61.代替分发局部处理结果例如真实值,图6的并行计算系统200的每个处理设备201被配置成:确定求和操作的全局处理结果仅基于该处理设备201的局部处理结果——即,由该处理设备201的局部处理结果唯一确定——的可能性是否大于可能性阈值。在图6所示的实施方式中,处理设备p5通过示例的方式被有利地配置成利用下述事实:通过向其他处理设备201广播该处理设备p5的局部处理结果即真实值“1e-3”和/或满足迭代循环的退出条件的信息,使该处理设备p5的真实值“1e-3”触发迭代循环的退出条件。换句话说,处理设备p5确定地知道随后if语句的结果。常规地,处理节点p5在运行该if语句之前会等待归约并广播通信操作完成。根据实施方式,将归约并广播操作与if语句相组合。因此,由于处理设备p5确定地知道该if语句的结果,因此该处理设备p5可以被配置成向所有其他处理设备广播“假”,使得不需要常规的归约并广播操作。
62.图7示出了包括由常规并行计算系统实施的集合操作的迭代循环。首先,执行一些串行(对每个处理节点为局部的)操作,直到计算出局部误差为止。然后,使用阻塞归约并广播操作(此处,阻塞意味着直到该归约并广播通信返回具有针对每个处理节点的全局值,每个局部处理节点被禁止进行其自身的操作,而是等待最终结果)将该局部误差分发至其他处理节点。一旦归约并广播操作完成并且每个局部处理节点获得了全局误差值(global error value),每个局部处理节点就将该全局误差值与误差阈值(error threshold value)进行比较。在图7所示的示例性情况中,在迭代n结束处,全局误差大于误差阈值,然后执行另一迭代。
63.图8示出了包括由根据实施方式的并行计算系统200实施的集合操作的迭代循环,该并行计算系统200包括根据实施方式的多个处理设备201。开始时,如图7所示,执行一些串行操作直到获得局部误差为止。然而,在这种情况下,并行计算系统200被配置成:将归约并广播语句与if语句组合成一个操作,每个处理设备调用所述一个操作并且传递所述一个操作的局部误差值。之后,每个处理设备201可以被配置成:应用分支预测算法,即,每个处理设备201假定全局误差将大于误差阈值并且恢复该处理设备201的工作——再次从串行操作开始——直到获得误差为止。同时,归约并广播 if通信操作正在发生直到获得全局误差为止,并且归约并广播 if通信操作将该全局误差与误差阈值进行比较。在这种情况下,由每个处理设备201做出的初始假定(即,全局误差大于阈值误差)是正确的并且计算被允许继续进行。之后,局部误差被每个处理设备201获得并且被再次发送至经组合的归约并广
播 if操作。重复该迭代循环。
64.在实施方式中,每个处理设备201被配置成:针对迭代循环,存储在终止该迭代循环之前的迭代次数以及/或者由条件语句限定的用于终止该迭代循环的阈值。此外,在实施方式中,每个处理设备201可以被配置成:确定在迭代循环的另外的迭代中满足迭代循环的条件语句的可能性,其中,处理设备201被配置成:向其他处理设备201广播该处理设备201的局部处理结果;以及如果在该迭代循环的另外的迭代中满足条件语句的可能性大于可能性阈值,则终止该迭代循环。因此,在实施方式中,包括多个处理设备201的并行计算系统200可以实施分支预测算法。在实施方式中,每个处理设备201被配置成:基于针对终止一个或更多个先前的迭代循环而记录的迭代次数,来确定在迭代循环的另外的迭代中满足该迭代循环的条件语句的可能性。在实施方式中,每个处理设备201还可以被配置成:如果在该迭代循环的另外的迭代中满足条件语句的可能性大于可能性阈值,则在在迭代循环的另外的迭代中不满足该迭代循环的条件语句的情况下,继续运行该迭代循环。
65.因此,在实施方式中,并行计算系统200被配置成:自动将阻塞集合归约调用继之以关于返回的归约值的条件语句识别为一个全局操作。该级联使得能够利用先前未使用的信息来减少通信时间。此外,如上面已经描述的,可以收集关于要激活条件语句所需的迭代次数的统计信息。如果迭代次数足够高,则可以将阻塞集合转换为非阻塞集合调用,这将使能通信和计算的交叠。此外,可以将分支预测应用于整个全局集合归约操作,即,将条件语句的结果假定为假,并且在通信同时进行的同时,处理设备201可以恢复下一迭代的计算。如果如最初假定的发现条件语句为假,则处理设备201不被中断并且继续进行其计算。在条件语句为真的另一情况下,处理设备201可以回溯其步骤并且退出迭代方案。
66.图9是示出根据实施方式的用于执行应用的相应方法900的流程图,该应用包括并行计算系统200中的一个或更多个集合操作。针对每个处理设备201,方法900包括下述步骤:获得901局部处理结果,其中,集合操作的全局处理结果取决于多个处理设备201的局部处理结果中的一个或更多个;以及如果满足下述条件,则将该处理设备201的局部处理结果分发903至其他处理设备201中的一个或更多个:(a)确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果,即,由该处理设备201的局部处理结果唯一确定,而与其他处理设备201的局部处理结果无关;或者(b)集合操作的全局处理结果仅基于该处理设备201的局部处理结果——即,由该处理设备201的局部处理结果唯一确定——的可能性大于可能性阈值;或者(c)确定集合操作的全局处理结果仅基于该处理设备201的局部处理结果和多个处理设备中的另外的处理设备201的另外的局部处理结果,即,由该处理设备201的局部处理结果和多个处理设备中的另外的处理设备201的另外的局部处理结果唯一确定,而与其他处理设备的局部处理结果无关。
67.本领域技术人员将理解,各个附图(方法和装置)的“块”(“单元”)表示或描述了本发明实施方式的功能(而不一定是硬件或软件中的个体“单元”),并且因此,同样地描述了装置实施方式以及方法实施方式的功能或特征(单元=步骤)。
68.在本技术提供的若干实施方式中,应当理解,所公开的系统、装置和方法可以以其他方式实施。例如,所描述的装置实施方式仅是示例性的。例如,单元划分仅是逻辑功能划分并且在实际实现方式中可以为其他划分。例如,可以将多个单元或部件组合或集成至另一系统中,或者可以忽略或者不执行一些特征。另外,所显示或所讨论的相互耦合或直接耦
合或通信连接可以通过使用一些接口来实施。装置或单元之间的间接耦合或通信连接可以以电子形式、机械形式或其他形式实施。
69.描述为分离的部分的单元可以在物理上分离或者不分离,并且显示为单元的部分可以是物理单元或者可以不是物理单元,可以位于一个位置中,或者可以分布在多个网络单元上。可以根据实际需要选择单元中的一些或全部,以实现实施方式的方案的目标。
70.另外,本发明实施方式中的功能单元可以集成至一个处理单元中,或者单元中的每个单元可以在物理上单独存在,或者两个或更多个单元集成至一个单元中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献