并行计算机的归约处理方法和并行计算机的制作方法

文档序号:7965746阅读:157来源:国知局
专利名称:并行计算机的归约处理方法和并行计算机的制作方法
技术领域
本发明涉及并行计算机的归约处理方法(reduction processing method)和并行计算机,在所述并行计算机中多个计算机节点通过网络来连接,其中多个计算机节点的计算结果进行汇总和归约,本发明更具体地涉及一种用于通过使用安装在每个计算机节点上的多个网络适配器来高效地进行归约处理的并行计算机的归约处理方法和并行计算机。
背景技术
随着对计算机系统更高处理速度的需求,并行计算机被越来越多地采用,其中安装有包括计算机的多个节点,并且所述多个节点通过网络相互连接。例如,在并行计算机领域,数据通过多个节点并行计算而且经处理的数据通过网络相互交换。如果规模足够大,则并行计算机可由成百上千的节点构成。
并行计算机中,收集多个节点的数据并执行指定的运算。这种操作称为“归约处理”。归约处理的例子是确定所有节点数据和的运算,以及确定所有节点数据最大值和最小值的运算。
图11和图12表示传统并行计算机的归约处理。如图11所示,多个(本例中4个)节点100、101、102和103经由网络(未示出)来连接。每一节点100、101、102和103具有多个(本例中3个)网络适配器110A、110B和110C来进行并行传输。图11中,仅为节点100的网络适配器设置标号,但其它节点101、102和103情况相同。
为了收集多个节点100-103的数据并执行这种配置的指定运算(例如求和),节点101的数据从节点101发送至节点100,节点103的数据从节点103发送至节点102。分别地,节点100执行节点100和节点101的数据运算,节点102执行节点102和节点103的数据运算。然后将节点102的运算结果发送至节点100,并且节点100执行节点100和节点102的数据运算。
对此将利用如图12所示的12个数据块的例子进行描述。图12中,D0、D1、D2和D3为每一节点100、101、102和103具有的数据,并且D01为节点100和节点101的数据运算结果,D23为节点102和节点103的数据运算结果,D0123为节点100到103的运算结果。
如图12所示,节点100到103具有的12个数据块被分为3部分,而D1-O1和D3-O3的数据运算结果利用3个网络适配器110A、110B和110C分别从节点101和103发送到节点100和102。在节点100和102中,对节点100和101的数据运算结果D01-O01和节点102和103的数据运算结果D23-O23进行运算。
然后,从节点102发送数据运算结果D23-O23到节点100。节点100通过运算结果D01-O01和运算结果D23-O23,运算得出节点100到103的运算结果D0123-O0123。
按照这种方法,根据现有技术,节点100、101、102和103每个都具有多个网络适配器,因此归约处理所需的时间通过并行传输而减少(例如,日本专利申请公开2001-325239)。
但是运用先前技术,两个节点在第一次传输后执行运算,而且另外两个节点仅发送数据不执行运算。所以,执行运算的节点有限,而且加快归约处理的速度也有困难。

发明内容
有鉴于此,本发明的一个目的在于提供一种用于通过归并许多节点的数据来提高归约处理速度的并行计算机的归约处理方法和并行计算机。
本发明的另一个目的在于提供一种用于通过使许多节点参与归约处理运算来提高归约处理速度的并行计算机的归约处理方法和并行计算机。
本发明的另一个目的在于提供一种用于通过提高归约处理速度来改善并行计算能力的并行计算机的归约处理方法。
为达到上述目的,本发明提供一种并行计算机,具有三个或更多节点,每个节点具有多个网络适配器;以及纵横交换器,用于连接每个所述节点的网络适配器。其中每个节点将保存的数据分割为多个数据并通过不同的网络适配器分别将分割后数据传送到多个其它节点,每个节点对接收到的数据和自身保存的数据进行归约处理,然后多个节点通过所述网络适配器将归约处理结果传送到至少一个节点中来汇总数据。
另外,本发明提供一种用于并行计算机的归约处理方法,用于汇总多个节点保存的数据并归约该数据,其中每个节点都具有多个网络适配器,该方法包括将保存数据在每个节点分割为多组数据的步骤,通过不同的网络适配器,每个节点分别传送分割后数据到多个其它节点的步骤,每个节点针对已接收的分割后数据和自身保留数据进行归约运算的步骤,通过网络适配器将归约运算结果传送到至少一个节点中汇总数据的步骤。
本发明中,优选地,每个所述节点将保存的数据分割为多个数据,并且将除了待由此节点自身进行归约运算的数据之外的分割后数据经由不同的网络适配器分别传送到多个其它节点。
本发明中,优选地,多个节点通过所述网络适配器将归约运算结果传送到多个其它节点。
本发明中,优选地,每个所述节点将待归约的数据除以一除数进行分割,以产生所述分割后数据,其中该除数基于所述网络适配器数量而得。
本发明中,优选地,每个所述节点将所述分割数据传送到其数量与所述网络适配器的数量相同所述多个节点。
本发明中,优选地,每个所述节点以所述网络适配器数量加一为除数分割数据来产生所述分割后数据。
本发明中,优选地,每个所述节点通过预定的网络适配器传送所述分割后数据到其它节点,从而在所述多个节点之间对所述网络适配器的使用不被重叠。
本发明中,优选地,每个所述网络适配器都通过网络连接于所述纵横交换器。
本发明中,优选地,每个所述节点包括至少一个CPU;存储器;以及所述多个网络适配器。
本发明中,优选地,在将所述多个节点分成多个节点组而得到的每个节点组中,每个所述节点将保存的数据分割为多个数据,并且将所分割的数据传送到所述节点组中的多个其它节点中,所述节点组中的每个节点都对所接收的分割后数据和自身保存数据进行归约运算,所述多个节点将归约运算结果传送到至少一个所述节点来汇总归约运算结果,每个汇总数据的节点将数据分割为多个数据并将所述分割后数据传送到多个其它汇总数据的节点,每个汇总数据的节点都对接收的分割后数据和自身保存数据进行归约运算,多个汇总数据的节点将归约运算结果传送到至少一个所述汇总数据的节点中,以汇总节点组中的归约运算结果。
根据本发明,每个节点传送分割成n部分的数据到其它节点,而且每个节点汇总各自的1/n数据,并进行运算,然后每个节点汇总各自运算结果并将其传送到汇总节点。由于所有的节点分别对分割后数据进行运算,可减少归约处理的时间。而且更多节点(网络适配器)可经第一次和第二次数据传送参与到数据传送中,所以可实现高速传送处理,并且可缩短传送时间。


图1为描述根据本发明的实施例的并行计算机的框图;图2为描述图1中的节点的框图;图3为描述图2和图3中的网络适配器的框图;图4显示图1中的传输帧的格式;图5是描述根据本发明第一实施例的归约处理的示图;图6是描述根据图5中的第一实施例的数据流的示图;图7是描述根据图5中的第一实施例的节点传输/运算处理的流程图;图8是描述根据图5中的第一实施例的节点传输/汇总处理的流程图;图9是描述根据本发明第二实施例的归约处理的示图;图10是描述根据本发明第三实施例显示的归约处理的示图;图11是描述根据先前技术的归约处理的视图;以及图12是描述图11中的数据流的示图。
具体实施例方式
以下将以并行计算机配置,第一实施例,第二实施例,第三实施例以及其它实施例的顺序,介绍本发明的具体实施方式
,但本发明并不仅限于这些实施例。
并行计算机配置图1为根据本发明的并行计算机的一实施例的框图,图2为描述图1中的节点的框图,图3为描述图1中的网络适配器的框图,图4为描述图1中的传输数据的帧的格式。
如图1所示,并行计算机具有多个(本例中4个)节点10、11、12和13,以及三个纵横交换器(图1中的SWA、SWB和SWC)20、21和22。每个节点10、11、12和13都有三个网络适配器(图1中的A、B和C)14A、14B和14C。节点10、11、12和13的各网络适配器14A、14B和14C通过各纵横交换器20、21和22相互通信。换而言之,每个节点10、11、12和13的网络适配器14A、14B和14C都分别通过传输路径,如以太网(注册商标),连接于纵横交换器20、21和22。
在计算机的节点10(11、12、13)中,CPU40、存储器44、IO适配器46和上述的网络适配器14A到14C通过系统控制器42相互连接,如图2所示。可根据节点所需的处理能力安装多个CPU40、存储器44、IO适配器46和网络适配器14A到14C。
图1和图2中的网络适配器14A(14B、14C)包括主机接口控制电路50、发送控制电路52、网络接口控制电路54、以及接收控制电路56,如图3所示,其中主机接口控制电路50与系统控制器42连接,网络接口控制电路54与传输路径连接。网络适配器14A(14B、14C)负责节点间的数据通信。
当数据通过网络适配器14A(14B、14C)在节点间传输时,数据以图4所示的帧格式通信。图4中的帧格式应用于以太网(注册商标)中,其中包括目的地地址、发送源地址、帧类型(例如,指令类型、数据大小)、数据和帧校验码(例如,CRC(循环冗余码校验))。数据区域的数据长度(数据大小)是可变的,而且节点间传输的数据在必要的情况下可被分割为多个帧并传输。
第一实施例图5根据本发明第一实施例显示了其归约处理过程,图6根据图5中的归约处理显示了其数据流,图7根据图5中的第一实施例显示了其节点传送/运算处理的流程图,图8为根据图5中的第一实施例的节点汇总处理的流程图。
如图5所示,每个节点10、11、12和13将待归约的数据块分割为n部分,并通过单独的网络适配器14A、14B和14C将其传送到每个节点10、11、12和13。接收到数据的节点10、11、12和13汇总各自的1/n数据并进行如标识(1)的操作。然后每个节点11、12和13将各运算结果传送到节点10,节点10将接收到的结果和节点10自身运算的结果进行汇总,如标识(2)所示。
参考图6,将使用与图12所示相同数据量为例来描述。这些图中,D0-D3、E0-E3、……、以及O0-O3为每个节点10、11、12和13具有的12个数据块,而D0123-O0123为归约处理的运算结果。
如图6所示,每个节点10-13具有的12个数据块D0-O0、D1-O1、D2-O2和D3-O3被分割为四部分。每个节点10、11、12和13通过三个网络适配器14A、14B和14C传送被分为四部分的数据组中的三个数据组到另外的节点10、11、12和13中。
例如,节点10分别将数据D0-O0的12个数据块中的数据G0-I0、J0-L0和M0-O0传送到节点11、12和13。以同样的方式,节点11分别将数据D1-O1的12个数据块中的数据D1-F1、J1-L1和M1-O1传送到节点10、12和13。节点12分别将数据D2-O2的12个数据块中的数据D2-F2、G2-I2和M2-O2传送到节点10、11和13。节点13分别将数据D3-O3的12个数据块中的数据D3-F3、G3-I3和J3-L3传送到节点10、11和12。
所以,节点10汇总数据D0-F0、数据D1-F1、数据D2-F2和数据D3-F3,节点11汇总数据G0-I0、数据G1-I1、数据G2-I2和数据G3-I3,节点12汇总数据J0-L0、数据J1-L1、数据J2-L2和数据J3-L3,而节点13汇总数据M0-O0、数据M1-O1、数据M2-O2和数据M3-O3。
节点10汇总数据D0-F0、数据D1-F1、数据D2-F2和数据D3-F3,同时运算(例如,汇总)并得到运算结果D0123-F0123。同样,节点11汇总数据G0-I0、数据G1-I1、数据G2-I2和数据G3-I3,同时运算(例如,汇总)并得到运算结果G0123-I0123。节点12汇总数据J0-L0、数据J1-L1、数据J2-L2和数据J3-L3,同时运算(例如,汇总)并得到运算结果J0123-L0123。节点13汇总数据M0-O0、数据M1-O1、数据M2-O2和数据M3-O3,同时运算(例如,汇总)并得到运算结果M0123-O0123。
接着在节点10汇总每个节点的运算结果。换而言之,将运算结果G0123-I0123、J0123-L0123和M0123-O0123从每个节点11、12和13的网络适配器14A、14B和14C传送到节点10。
同样,每个节点10、11、12和13传送被分为四部分数据中的三部分数据到另外的节点,且每个节点分别汇总四分之一的数据并进行运算。然后,每个节点11、12和13传送各自的运算结果到节点10。
换而言之,如果先前技术及本发明的归约处理的运算内容相同,则运算量也是相同的。在先前技术的情况下,节点10和12进行实际运算,而节点11和13仅传送数据。但是,在本发明中,所有节点都分别对分割后的数据进行运算,所以如果总计算量相同,则处理更快完成。
另外,在本发明中,更多节点(网络适配器)可经第一次和第二次数据传输参与到数据传输中,所以可达到高速传输处理,并且可缩短传输时间。
例如,在先前技术和本实施例之间比较关于整个网络的传输总量的传输时间,在先前技术的情况下,传输时间为传输总量÷3×2=2/3,但是在本实施例的情况下,传输时间为传输总量÷4×2=1/2。所以在本实施例中,数据传输时间为先前技术的3/4。
在本实施例的第一次和第二次传输过程中,因为发送网络适配器和接收网络适配器的连接关系被设置为避免重叠,所以数据仅传输一次。
图7为每个节点的处理流程图。
(S10)每个节点10、11、12和13的CPU 40将待归约的数据块分割为多个数据(四部分,在图6中)。如果此除数与发送目的地节点数量或网络适配器数量相同,则上述归约运算处理的效果可达到最大。
(S12)然后每个节点10、11、12和13的CPU 40指示网络适配器14A、14B和14C将分割后数据块(三块,在图6中)传送到节点10、11、12和13中的不同节点。由此,节点10、11、12和13的网络适配器14A、14B和14C将分割后数据块传送到节点10、11、12和13的网络适配器14A、14B和14C。
(S14)每个节点10、11、12和13的CPU 40对没有被传送的数据和从其它节点接收的数据进行归约运算处理,并获得运算结果。
图8为节点的汇总处理流程图。
(S20)每个节点11、12和13在汇总节点10为目的地的情况下,将运算结果传送到节点10。
由此,每个节点11、12和13的CPU 40并行进行数据分割,传送和运算处理,所以归约处理时间可轻易缩短。
第二实施例图9显示了本发明第二实施例的归约处理过程的第二实施例。在第一实施例中,运算结果由一汇总节点10汇总,但是在一些情况下其它节点必须得知运算结果。而在本实施的情况下,所有节点在第二次数据传输过程中都可得到运算结果,所以所有节点可共享运算结果。
图9显示了图6中的第二次数据传输过程,而且第一次传输/运算处理与图6所示相同。
如图9所示,每个节点的运算结果在第二次传输中被传送到每个节点10、11、12和13。换而言之,运算结果G0123-I0123、J0123-L0123和M0123-O0123从每个节点10、11、12和13的网络适配器14A、14B和14C传送到节点10、11、12和13。
同样在本例中,每个节点10、11、12和13传送被分割为四部分数据中的三部分数据到另外的节点,而且每个节点分别汇总四分之一的数据并进行运算。然后,所有节点10、11、12和13传送各自的运算结果到所有的节点10、11、12和13。
换而言之,在第一实施例中,并未使用节点10的全部网络适配器、节点11的网络适配器14A和14B、节点12的网络适配器14A和14C以及节点13的网络适配器14B和14C,而在第二实施例中,使用了这些网络适配器,并进行数据传输共享运算结果。
第三实施例图10根据本发明的第三实施例显示了广播处理过程。在此例中,并行计算机有16个节点,0-15,每个节点具有三个网络适配器,其中对节点0-15进行归约处理。图10中与图1和图5相同的节点用相同的序列号表示。
首先,16个节点被分割为4个节点组,0-3、4-7、8-11和12-15,并且对于每一节点组执行与第一实施例相同的处理。
换而言之,在每一节点组0-3、4-7、8-11和12-15中,节点0-3、4-7、8-11和12-15将待归约的数据分割为n部分,并通过单独的网络适配器14A、14B和14C,将数据传送到节点组中每个节点0-3、4-7、8-11和12-15。接收到数据的节点0-3、4-7、8-11和12-15汇总各自的1/n数据并进行如标识(1)的运算。然后每个节点1-3、5-7、9-11和13-15将其节点自身进行的运算结果传送到节点0、4、8和12,每个节点0、4、8和12对接收到的结果和节点自身运算结果进行汇总,如标识(2)所示。
然后在每组中汇总数据的节点0、4、8和12将待归约的数据分割为n部分,并通过单独的网络适配器14A、14B和14C将其传送至每个节点0、4、8和12,正如第一实施例的情况一样。接收到数据的节点0、4、8和12汇总各自的1/n数据,并如标识(3)所示运算。然后每个节点4、8和12将节点自身进行运算的结果传送到节点0,节点0汇总接收的结果以及节点0自身进行运算的结果,如标识(4)所示。
由此,通过重复第一实施例的处理过程,即使节点数量增加,归约处理也可以以相同方式进行。换而言之,当第一实施例分两个阶段进行时,最多可支持16个节点,当分三个阶段进行时,最多可支持64个节点。通过增加阶段,可增加支持的节点数量。
由此,可进行一次归约处理的节点的最大数量为网络适配器的数量加一,而当节点数量进一步增加时,可进行归约处理的节点数量可通过在第二阶段和第三阶段进行两次处理而增加。
其它实施例上述实施例中,描述了具有四个节点的并行计算机,但是本发明可用于具有三个或更多节点的并行计算机。节点的配置通过计算机单元来描述,该计算机单元包括CPU、存储器等等,而且可使用其它计算机配置。传输路径的形式不限于以太网(注册商标),也可使用其它网络协议。
构成并行计算机的每个节点将分为n部分的数据传送到其它节点,每个节点汇总各自的1/n数据,并进行运算,然后多个节点的每个节点将其传送到汇总节点。由于所有节点对各自分割后的数据进行运算,处理更快完成。而且更多节点(网络适配器)可经第一次和第二次数据传输参与到数据传输中,所以可达到高速传输,并且可缩短传输时间。
权利要求
1.一种并行计算机,包括三个或更多节点,每个节点具有多个网络适配器;以及纵横交换器,用于连接每个所述节点的网络适配器,其中每个所述节点将保存的数据分割为多个数据并经由不同的网络适配器分别将所分割的数据传送到多个其它节点,每个所述节点对接收到的分割后数据和自身保存数据执行归约运算,所述多个节点经由所述网络适配器将归约运算结果传送到至少一个所述节点来汇总数据。
2.如权利要求1所述的并行计算机,其特征在于,每个所述节点将保存的数据分割为多个数据,并且将除了待由此节点自身进行归约运算的数据之外的分割后数据经由不同的网络适配器分别传送到多个其它节点。
3.如权利要求1所述的并行计算机,其特征在于,所述多个节点经由所述网络适配器将归约运算结果传送到多个其它节点。
4.如权利要求1所述的并行计算机,其特征在于,每个所述节点将待归约的数据除以一除数进行分割,以产生所述分割后数据,其中该除数基于所述网络适配器数量而得。
5.如权利要求1所述的并行计算机,其特征在于,每个所述节点将所述分割后数据传送到其数量与所述网络适配器数量相同的所述多个节点。
6.如权利要求4所述的并行计算机,其特征在于,每个所述节点以所述网络适配器数量加一为除数来分割数据,以产生所述分割后数据。
7.如权利要求1所述的并行计算机,其特征在于,每个所述节点通过预定的网络适配器传送所述分割后数据到其它节点,从而在所述多个节点之间对所述网络适配器的使用不重叠。
8.如权利要求1所述的并行计算机,其特征在于,每个所述网络适配器都经由网络连接于所述纵横交换器。
9.如权利要求1所述的并行计算机,其特征在于,每个所述节点包括至少一个CPU;存储器;以及所述多个网络适配器。
10.如权利要求1所述的并行计算机,其特征在于,在将所述多个节点分成多个节点组而得到的每个节点组中,每个所述节点将保存的数据分割为多个数据,并且将所分割的数据传送到所述节点组中的多个其它节点中,所述节点组中的每个节点都对所接收的分割后数据和自身保存数据进行归约运算,所述多个节点将归约运算结果传送到至少一个所述节点来汇总归约运算结果,每个汇总数据的节点将数据分割为多个数据并将所述分割后数据传送到多个其它汇总数据的节点,每个汇总数据的节点都对接收的分割后数据和自身保存数据进行归约运算,多个汇总数据的节点将归约运算结果传送到至少一个所述汇总数据的节点中,以汇总节点组中的归约运算结果。
11.一种并行计算机的归约处理方法,用于汇总由多个节点保存的数据并归约该数据,其中所述多个节点中的每个节点具有多个网络适配器,该方法包括以下步骤在每个所述节点,将保存数据分割为多个数据;通过每个所述节点的不同的网络适配器,分别传送所分割的数据到多个其它节点;在每个所述节点中,对所接收的分割后数据和保存数据进行归约运算;通过所述网络适配器将归约运算结果从所述节点传送到至少一个所述节点中;以及在接收所述传送的归约运算结果的一个节点汇总数据。
12.如权利要求11所述的并行计算机的归约处理方法,其特征在于,所述传送分割后数据的步骤包括以下步骤通过不同的网络适配器将除了要被此节点自身归约的数据之外的分割后数据分别传送到多个其它节点。
13.如权利要求11所述的并行计算机的归约处理方法,其特征在于,所述传送所述归约运算结果的步骤包括以下步骤通过所述网络适配器将归约运算结果传送到所述多个其它节点。
14.如权利要求11所述的并行计算机的归约处理方法,其特征在于,所述分割步骤包括如下步骤将待归约的数据除以一除数进行分割,其中该除数基于所述网络适配器数量而得;产生所述分割后数据。
15.如权利要求11所述的并行计算机的归约处理方法,其特征在于,所述传送分割后数据的步骤进一步包括以下步骤将所述分割后数据传送到其数量与所述网络适配器数量相同的所述多个节点。
16.如权利要求14所述的并行计算机的归约处理方法,其特征在于,所述分割步骤进一步包括以下步骤以所述网络适配器加一的数量为除数来分割数据,以产生所述分割后数据。
17.如权利要求11所述的并行计算机的归约处理方法,其特征在于,所述传送步骤进一步包括如下步骤经由预定网络适配器传送所接收的分割后数据至另一节点,从而在所述多个节点之间对所述网络适配器的使用不重叠。
18.如权利要求11所述的并行计算机的归约处理方法,其特征在于,每个所述网络适配器通过网络连接到所述纵横交换器。
19.如权利要求11所述的并行计算机的归约处理方法,其特征在于,每个所述节点包括至少一个CPU、存储器和所述多个网络适配器。
20.如权利要求11所述的并行计算机的归约处理方法,进一步包括如下步骤在每个节点组内,进行所述分割步骤、所述传送步骤、所述运算步骤和所述汇总步骤,其中,所述每个节点组由将所述多个节点分成多个节点组得到;以及通过汇总数据的所述多个节点,进行所述分割步骤、所述传送步骤、所述运算步骤和所述汇总步骤。
全文摘要
提供一种并行计算机的归约处理方法和并行计算机。并行计算机对多个节点保存的数据进行归约运算。构成并行计算的每个节点将分割为n部分的数据传送到其它节点中,每个节点汇总各自的1/n数据并进行运算,然后多个节点将各自运算结果传送到汇总节点。由于所有的节点分别对分割后数据进行运算,所以可减少归约处理的时间。并且更多节点(网络适配器)可通过第一次和第二次数据传送参与到数据传送中,所以可实现高速传送处理,并且可缩短传送时间。
文档编号H04L29/02GK101038579SQ20061010781
公开日2007年9月19日 申请日期2006年7月21日 优先权日2006年3月17日
发明者稻垣淳一, 小薮正夫 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1