并行计算机、通信控制装置以及通信控制方法

文档序号:7977672阅读:116来源:国知局
并行计算机、通信控制装置以及通信控制方法
【专利摘要】在具有进行运算处理的多个节点且将节点间连接成能够相互通信的并行计算机的节点中,具备:计测单元,其基于节点间的通信方式来计测到各目的地节点为止的通信带宽;以及控制单元,其按照计测单元计测出的通信带宽来控制向目的地节点发送的包大小。
【专利说明】并行计算机、通信控制装置以及通信控制方法
【技术领域】
[0001]本发明涉及并行计算机、通信控制装置以及通信控制方法。
【背景技术】
[0002]以往,已知有一种具备进行运算处理的多个节点的并行计算机。并行计算机所具备的各节点经由包含多个通信设备、例如交换机(switch)等的网络而连接,相互进行数据通信。
[0003]图1是表示并行计算机100的构成例的图。
[0004]图1所示的并行计算机100具备进行计算的节点NO?N7、和将接收到的数据转送至特定的发送目的地的节点的交换机110?117。交换机110?117构成将交换机配置于直线上的I维网格型网络。
[0005]交换机若从与节点或其他交换机连接的输入端口接收到包,则根据接收到的包的目的地来决定输出包的输出端口。而且,交换机向所决定的输出端口输出包。
[0006]在接收到多个向相同输出端口输出的包的情况下,交换机进行协调,以使从各输入端口向输出端口输出的包的个数均等。而且,交换机根据协调结果从输出端口发送包。
[0007]与上述技术相关联,已知有一种下述的无线多跳网络,其包含:发送节点,决定与到目的地为止的转送次数即跳数对应的包大小并进行将发送数据断片化为大小更小的包的碎片化;和中继节点,根据与跳数对应的优先控制来发送包。
[0008]另外,已知有一种通过基于完成了通信的包的长度来决定下一包的长度,从而总是进行效率良好的通信的无线数据通信方法。
[0009]专利文献1:日本特开2003 - 273788号公报
[0010]专利文献2:日本特开2001 - 326648号公报
[0011]在上述的并行计算机100中,若进行组群通信而使通信集中于一部分交换机,则到集中了通信的交换机为止的跳数越大的节点,通信带宽越大幅下降。该情况下,与来自跳数小的节点的数据相比,从跳数大的节点向目的地节点发送的数据延迟到达。
[0012]图2表示了节点NO?N6对节点N7发送数据的组群通信的例子。
[0013]交换机进行要输入的包的协调,以使向各输入端口输入的包向输出端口的输出数均等、即各为I / 2。因此,从节点N6向交换机116发送且从交换机116向交换机117发送的包数成为从交换机116向交换机117发送的全部包数的I / 2。
[0014]在图2中,将任意节点发送的包数相对于向节点N7发送的包数、即向交换机117发送的包数的比率称为“包数比”。该情况下,节点N6处的包数比为I / 2。
[0015]另外,从交换机115向交换机116发送且从交换机116向交换机117发送的包数成为从交换机116向交换机117发送的全部包数的I / 2。而且,从节点N5向交换机115发送且从交换机115向交换机116发送的包数成为从交换机115向交换机116发送的全部包数的I / 2。因此,节点N5处的包数比为I / 4。
[0016]同样,节点N4、N3、N2以及NI的包数比分别是I / 8、I / 16、I / 32以及I / 64。另外,由于交换机110仅将从节点NO发送来的包向交换机111发送,因此节点NO的包数比与节点NI相同,为I / 64。
[0017]在此,将作为组群通信的发送源的各节点发送的包的大小的比率称为“包大小比”。在图2所示的组群通信中,由于所有的节点输出大小相同的包,因此节点N6、N5、N4、N3、N2、N1以及NO处的包大小比为I:1:1:1:1:1:1。
[0018]另外,将发送源的节点发送包时使用的通信带宽相对于通信带宽整体的比率称为“通信带宽比”。在所有的节点输出大小相同的包的情况下,由于各节点处的包数比直接成为通信带宽比,所以若将整体设为1,则节点N6、N5、N4、N3、N2、N1以及NO处的通信带宽比分别为 I / 2、1 / 4、1 / 8、1 / 16、1 / 32、1 / 64 以及 I / 64。
[0019]在图2所示的组群通信的例子中,导致距离目的地节点N7远的节点N0、N1的通信带宽大幅下降。如果没有完成所有节点的通信,则组群通信不结束。因此,与从接近于目的地节点N7的节点N6向目的地节点N7发送的数据相比,从节点NO、NI向目的地节点N7发送的数据延迟到达。该情况下,距离目的地节点N7较远的节点NO、NI的通信带宽成为瓶颈。从跳数大的节点向目的地节点发送的数据延迟到达。
[0020]另外,即便是组群通信以外的通信,如果将通信集中于一部分的交换机,则到集中了通信的交换机为止的转送次数即跳数较大的节点的通信带宽也大幅下降。
[0021]图3是表示在并行计算机100中因组群通信以外的通信导致一部分节点的通信带宽大幅下降的情况的例子的图。图3表示了节点N0、N1、N2以及N3分别与相距4跳的节点同时进行通信的情况。其中,为了使通信路径容易理解,在图3中将各节点间的通信路径分别用包含箭头的实线来记述,但并行计算机100的构成与图1相同。
[0022]从节点N3向交换机113发送且从交换机113向交换机114发送的包数成为从交换机113向交换机114输出的全部包数的I / 2。
[0023]在图3中,将任意的节点发送的包数相对于向交换机113发送的包数的比率称为“包数比”。此时,节点N3处的包数比为I / 2。
[0024]另外,从交换机112向交换机113发送且从交换机113向交换机114发送的包数成为从交换机113向交换机114发送的包数的I / 2。而且,从节点N2向交换机112发送且从交换机112向交换机113发送的包数成为从交换机112向交换机113发送的包数的I /
2。因此,节点N2处的包数比为I / 4。
[0025]同样,节点NI的包数比为I / 8。另外,由于交换机110仅将从节点NO发送来的包向交换机111发送,因此节点NO的包数比与节点NI相同,为I / 8。
[0026]在节点NO?N3输出大小相同的包的情况下,节点N0、N1、N2以及N3各自的包大小比为1:1:1:1。此时,由于包数比直接成为通信带宽比,因此若将整体设为1,则节点NO、N1、N2以及N3处的通信带宽比分别为I / 2、1 / 4、1 / 8以及I / 8。
[0027]在图3所示的通信的例子中,与其他节点的通信带宽相比,节点N0、N1的通信带宽大幅下降。此时,如果到通信集中的交换机114为止的跳数较大的节点即节点NO、NI的通信没有完成,则例如对于进行依赖于节点NO、NI的通信完成的处理的其他节点而言,通信不会结束。因此,节点NO、NI的通信带宽成为瓶颈。
[0028]此外,在图1?图3中,对将交换机配置于直线上的I维网格型网络情况进行了说明,但在多维网格型网络的情况下也会产生同样的问题。另外,上述的问题在并行计算机100具有网格型网络以外的网络方式的情况下也会发生。
[0029]图4是表示具有环(torus)型网络的网络方式的并行计算机400的构成例的图。
[0030]图4所示的并行计算机400具备进行计算的节点NO?N7、和将接收到的数据向特定的发送目的地转送的交换机410?417。交换机410?417构成环状的环型网络。
[0031 ] 在图4中,节点N4经由包含交换机414、415、416以及417的路径与节点N7进行通信。节点N5经由包含交换机415、416以及417的路径与节点N7进行通信。节点N6经由包含交换机416以及417的路径与节点N7进行通信。另外,节点NO经由包含交换机413、412、411、410以及417的路径与节点N7进行通信。节点NO经由包含交换机413、412、411、410以及417的路径与节点N7进行通信。节点NI经由包含交换机412、411、410以及417的路径与节点N7进行通信。节点N3经由包含交换机411、410以及417的路径与节点N7进行通信。节点N4经由包含交换机410以及417的路径与节点N7进行通信。
[0032]从交换机416向交换机417发送且从交换机417向节点N7发送的包数成为从交换机417向节点N7发送的包数的1/2。另外,从节点N6向交换机416发送且从交换机416向交换机417发送的包数成为从交换机416向交换机417发送的包数的I / 2。
[0033]在图4中,将任意的节点发送的包数相对于向节点N7发送的包数的比率称为“包数比”。此时,节点N6处的包数比为I / 4。
[0034]另外,从交换机415向交换机416发送且从交换机416向交换机117发送的包数成为从交换机416向交换机417发送的包数的I / 2。而且,从节点N5向交换机415发送且从交换机415向交换机416发送的包数成为从交换机415向交换机416发送的包数的I /
2。此时,节点N5处的包数比为I / 8。
[0035]由于交换机414仅将从节点N4输入的包向交换机415输出,因此节点N4处的包数比与节点N5相同,为I / 8。
[0036]同样,节点N0、N1、N2以及N3的包数比分别为I / 4、I / 8、I / 16以及I / 16。
[0037]在节点NO?N6输出大小相同的包的情况下,节点NO?N6处的包大小比为1:1:1:1:1:1:1。此时,由于包数比直接成为通信带宽比,因此节点N0、N1、N2、N3、N4、N5以及N6处的通信带宽比分别为I / 4、1 / 8、1 / 16、1 / 16、1 / 8、1 / 8以及I / 4。
[0038]在图4所示的组群通信的例子中,与其他节点的通信带宽相比,到节点N7为止的跳数较大的节点即节点N2、N3的通信带宽大幅下降。由于如果没有完成所有节点的通信,则组群通信不会结束,因此节点N2、N3的通信带宽成为瓶颈。从跳数较大的节点向目的地节点发送的数据延迟到达。
[0039]此外,在图4中,对将节点间连接成环状的环型网络的情况进行了说明,但在多维环型网络的情况下也会产生同样的问题。
[0040]图5是表示网络方式为胖树(fat tree)型的情况下的并行计算机500的构成例的图。
[0041]图5所示的并行计算机500具备进行计算的节点NO?N7、和将接收到的数据向特定的发送目的地转送的交换机510?514。交换机510?514被连接成胖树型。在此,胖树型是指将上位层的交换机到连接各节点的下位层的交换机连接成交换机间的连接对称分支的树型的连接方式。
[0042]在图5中示出了节点NO?N6向节点N7发送数据的组群通信的例子。[0043]从节点N6向交换机514发送且从交换机514向节点N7发送的包数为从交换机514向节点N7发送的包数的I / 2。
[0044]在图5中,将任意节点发送的包数相对于向节点N7发送的包数的比率称为“包数比”。此时,节点N6处的包数比为I / 2。
[0045]交换机510将由交换机511、512以及513发送的包向交换机514发送。因此,例如,从交换机513向交换机510发送且从交换机510向交换机514发送的包数为从交换机510向交换机514发送的全部包数的I / 3。
[0046]另外,交换机513将由节点N4以及节点N5发送的包向交换机510发送。因此,从节点N4向交换机513发送且从交换机513向交换机510发送的包数为从交换机513向交换机510发送的全部包数的I / 2。同样,从节点N5向交换机513发送且从交换机513向交换机510发送的包数为从交换机513向交换机510发送的全部包数的I / 2。因此,节点N4以及N5处的包数比分别为I / 12。
[0047]在节点NO?N6输出大小相同的包的情况下,节点NO?N6处的包大小比分别为I。此时,包数比直接成为通信带宽比,因此节点NO、N1、N2、N3、N4、N5以及N6处的通信带宽比分别为 I / 12,1 / 12、1 / 12、1 / 12、1 / 12、1 / 12 以及 I / 2。
[0048]在图5所示的组群通信的例子中,与节点N6的通信带宽相比,节点NO?N5的通信带宽大幅下降。因此,节点NO?N5的通信带宽成为瓶颈。从跳数较大的节点向目的地节点发送的数据延迟到达。
[0049]如以上说明那样,若组群通信等通信集中于一部分交换机,则由于向集中了通信的交换机的跳数较大的节点的通信带宽大幅下降,所以从跳数较大的节点向目的地节点发送的数据延迟到达。因此,向目的地节点发送的数据的到达时间根据跳数的大小而产生偏差。

【发明内容】

[0050]在I个方式中,本发明的并行计算机进行使数据向目的地节点的到达时间平均化的节点间通信。
[0051]根据该并行计算机的I个观点,该并行计算机具备以下的构成要素。
[0052]该并行计算机是具有进行运算处理的多个节点,并将该节点间连接成能够相互通
信的信息处理装置。
[0053]而且,所述节点具备计测单元和控制单元。所述计测单元基于所述节点间的通信方式来计测到各目的地节点为止的通信带宽。另外,所述控制单元按照所述计测单元计测出的通信带宽来控制向目的地节点发送的包大小。
[0054]根据该并行计算机的I个方式,能够进行使数据向目的地节点的到达时间平均化的节点间通信。
【专利附图】

【附图说明】
[0055]图1是表示并行计算机的构成例的图。
[0056]图2是表示在图1所示的并行计算机中,节点NO?N6向节点N7发送数据的组群通信的例子的图。[0057]图3是表示在图1所示的并行计算机中,因组群通信以外的通信导致一部分节点的通信带宽大幅下降时的例子的图。
图4是表示具有环型网络的网络方式的并行计算机的构成例的图。
图5是表示网络方式为胖树型时的并行计算机的构成例的图。
图6是说明并行计算机600的图。
图7是表不并行计算机700的构成例的图。
图8是说明并行计算机700所含的节点的概要的图。
图9是表示图8所示的节点的具体的构成例的图。
图10是表示并行计算机700的包发送处理的流程图。
图11是表示图10所示的步骤S1003的具体处理的流程图。
图12是表示图9所示的节点的变形例的图。
图13是表示使用了图12中说明的节点的并行计算机700的包发送处理的流程
图14是表示图13所示的步骤S1303的具体处理的流程图。
图15是表示图9所示的节点的其他变形例的图。
图16是表示使用了图15中说明的节点的并行计算机700的包发送处理的流程图17是表示图9所示的节点的其他.变形例的图。
图18是表示使用了图17中说明的节点的并行计算机700所使用的交换机的构成图19是表示使用了图17中说明的节点以及图18中说明的交换机的并行计算机
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]图。
[0068]
[0069]
[0070]图。
[0071]
[0072]
例的图。
[0073]
700的包发送处理的流程图。
[0074]
[0075]
[0076]图。
[0077]
[0078]的图。
[0079]
[0080]图。
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]程图。
图20是说明其他实施例涉及的并行计算机2000所包含的节点的概要的图。
图21是表示图20所示的节点的具体的构成例的图。
图22是表示使用了图21中说明的节点的并行计算机2000的包发送处理的流程
图23是表示图22所示的步骤S2206的具体处理的流程图。
图24是说明其他实施例涉及的并行计算机2400所包含的节点以及交换机的概要
图25是表示图24所示的交换机的具体的构成例的图。
图26是表图25所的交换机所具备的存储部中存储的等待时间表的例子的
图27是表不图25所不的交换机的处理的流程图。
图28是表示图24所示的处理器进行的包大小的决定处理的流程图。
图29是表示图24所示的节点的变形例的图。
图30是表示图29所示的节点的具体的构成例的图。
图31是表不图30所不的交换机的存储部中存储的等待时间表的例子的图。
图32是表示使用了图30中说明的节点的并行计算机2400中的包发送处理的流[0087]图33是表示图32所示的步骤S3203的具体处理的流程图。
[0088]图34是表示并行计算机600、700、2000、2400中的节点间通信所使用的包的例子的图。
[0089]图35是表示与并行计算机700进行对比而使用的并行计算机3500的图。
[0090]图36是表示在图35所示的并行计算机3500的各交换机间向目的地节点的方向流动的包的时序图。
[0091 ] 图37是表示在并行计算机700中,节点710?713对节点715或者716进行Gather通信时的例子的图。
[0092]图38是表示在图37所示的并行计算机700的各交换机间向目的地节点的方向流动的包的时序图。
[0093]图39是表示当图35所示的并行计算机3500的各节点不将消息进行分割地向目的地节点发送时,在各交换机间向目的地节点的方向流动的包的时序图。
[0094]图40是表示图35所示的并行计算机3500的节点3510?3512分别与相隔4跳的目的地节点进行通信时的例子的图。
[0095]图41是表示在图40所示的并行计算机3500的各交换机间向目的地节点的方向流动的包的时序图。
[0096]图42是表示在并行计算机700中,节点710?712分别与相隔4跳的目的地节点进行通信时的例子的图。
[0097]图43是表示在图42所示的并行计算机700的各交换机间向目的地节点的方向流动的包的时序图。
[0098]图44是表示图40所示的并行计算机3500的各节点以存储转发方式进行动作时,在各交换机间向目的地节点的方向流动的包的时序图。
[0099]图45是表示图42所示的并行计算机700的各节点以存储转发方式进行动作时,在各交换机间向目的地节点的方向流动的包的时序图。
【具体实施方式】
[0100]以下,基于图6?图45对本实施方式的一例进行说明。其中,以下说明的实施方式只是例示,并不意图排除在以下没有明示的各种变形和技术的应用。即,本实施方式在不脱离其主旨的范围内能够将各实施例组合等进行各种变形来实施。
[0101]实施例
[0102]图6是说明本实施例涉及的并行计算机600的图。
[0103]并行计算机600具备节点610、620、...。各节点以能够相互通信的方式连接。节点610、620、..?具有同样的构成,因此以下以节点610作为代表来进行说明。
[0104]节点610是进行任意的运算处理的运算装置等信息处理装置。节点610具备一般的信息处理装置所具有的构成要素,例如处理器和主存储装置等。
[0105]而且,节点610具备计测单元611和控制单元612。
[0106]计测单元611基于与本节点进行通信的目的地节点间的通信方式来计测本节点与该目的地节点间的发送包的转送次数即跳数。通信方式可包含节点610、620、..?通过连接成能够相互通信而实现的网络的方式、与本节点进行通信的目的地节点间的通信距离或者表示通信距离的信息,例如从发送源节点到目的地节点为止发送包经由的转送单元的个数即跳数等。转送单元是为了将节点610、620、..?连接成能够相互通信来实现网络而夹设于节点间并转送数据或包的通信设备,例如是交换机或路由器等。转送单元例如具备被输入包的多个输入端口和输出被输入的包的输出包。而且,转送单元在接收到多个向相同输出端口输出的包的情况下,能够进行协调以使从各输入端口向输出端口输出的包的数量均等。转送单元按照协调结果从输出端口发送包。
[0107]控制单元612按照计测单元611的计测结果,以使从本节点向目的地节点的包到达时间与从其他节点向目的地节点的包到达时间均等化的方式,对与该目的地节点的通信所使用的包大小进行控制。例如,在计测单元611计测到的本节点610和目的地节点620间的发送包的跳数较大时,控制单元612增大向该目的地节点620发送的包的大小。
[0108]例如,在转送单元中,协调成从各输入端口向输出端口输出的包的数量变得均等,来向目的地节点转送包。此时,与从跳数较小的节点向目的地节点转送的包数相比,从跳数较大的节点向目的地节点转送的包数的比率下降。而且,与到目的地节点为止的跳数较小的节点能够使用的通信带宽相比,到目的地节点为止的跳数较大的节点能够使用的通信带宽的比率降低。
[0109]但是,如上所述,节点610、620、..?基于与目的地节点的通信距离即跳数,按每个目的地节点控制在通信中使用的包大小。例如,节点610、 620、..?在到目的地节点为止的跳数较大的情况下,使向目的地节点发送的包的大小变大。由此,可使跳数较小的节点能够使用的通信带宽和跳数较大的节点能够使用的通信带宽的比率均等。结果,节点610、620、...能够进行使从本节点向目的地节点的包到达时间和从其他节点向目的地节点的包到达时间均等化的节点间通信。
[0110](其他的实施例)
[0111]图7是表示本实施例涉及的并行计算机700的构成例的图。
[0112]并行计算机700具备节点710?716和交换机720?726。各节点710?716经由交换机720?726连接成能够相互通信。以下将包含节点710?716和交换机720?726的网络的一部分或全部简称为“网络”。
[0113]各节点710?716例如是包含根据规定的程序来进行运算处理的处理器、存储规定程序的主存储装置等的运算装置。另外,各节点710?716包含经由其他节点与网络进行通信的网络接口装置。
[0114]交换机720?726是将接收到的数据向规定的目的地转送的通信装置。
[0115]其中,在图7中示出了具备7个节点710?716的并行计算机700的构成例,但并不意图限定节点的数量。
[0116]另外,在图7中示出了网络构成为网格型时的并行计算机700,但本实施例涉及的节点以及交换机也能够应用于网络构成为环型或胖树型的情况。
[0117]图8是说明本实施例涉及的并行计算机700所包含的节点的概要的图。由于节点710?716全部是同样的构成,因此在图8中,将并行计算机700所包含的节点中的节点710作为代表记载。
[0118]节点710具备处理器810、主存储装置820和网络接口装置830。
[0119]处理器810是根据规定的程序来进行运算处理的运算处理装置。主存储装置820存储程序等。主存储装置820中可包括DMA电路,该DMA电路不理解处理器810地实现将主存储装置820保持的数据向接口控制部832转送的DMA (Direct Memory Access)转送。网络接口装置830是节点经由网络与其他的节点进行通信用的接口。
[0120]网络接口装置830具备跳数表存储部331和接口控制部832。
[0121]跳数表存储部831包含按每个发送包的目的地即目的地节点来存储包含对目的地节点进行识别的目的地节点地址和到目的地节点为止经由的交换机的数量的跳数表840的存储装置。以下,将从发送源的节点发送出的包到目的地节点为止经由的交换机的数量称为“跳数”。
[0122]接口控制部832根据网络中使用的协议,将包含处理器810所指定的数据的一部分或全部的包向规定的目的地节点发送。在进行该发送时,接口控制部832参照跳数表存储部831中存储的跳数表840,取得到包的目的地节点为止的跳数。而且,在判断为到目的地节点为止的跳数较多时,接口控制部832增大向该目的地节点发送的包大小。另外,在判断为到目的地节点为止的跳数较少的情况下,接口控制部832减小向该目的地节点发送的包大小。
[0123]另外,接口控制部832将从网络接收到的数据向处理器810发送。
[0124]图9是表示图8所示的节点710的具体的构成例的图。
[0125]节点710如图8所示,具备处理器810、主存储装置820和网络接口装置830。
[0126]网络接口装置830具备跳数表存储部831、控制部901、DMA控制器902和包发送部903。但是,图9并不意味网络接口装置830仅具备图9所示的构成要素。网络接口装置830例如还可包括包的接收功能等功能。
[0127]控制部901在从处理器810接收到包发送指示后,控制DMA控制器902、包发送部903来进行包的发送处理。此时,控制部901对DMA控制器902和包发送部903指定I个包中包含的数据的数据长度。另外,控制部901根据从本节点到包的目的地为止的跳数来计测本节点的通信带宽。对应于该计测,控制部901改变向对DMA控制器902和包发送部903指定的该目的地节点发送的包的数据长度。
[0128]控制部901根据表示基于到包的目的地为止的跳数的本节点的通信带宽的计测、和对应于该计测而改变的数据长度之间的关系的数式,能够定量地求出向目的地节点发送的包的数据长度。
[0129]DMA控制器902在被控制部901通知了进行DMA的数据的地址和数据长度后,对主存储装置820指定控制部901通知的地址和数据长度来进行DMA请求。于是,主存储装置820将被指定的地址中保存的数据以被指定的数据长度向DMA控制器902进行DMA转送。DMA控制器902将由主存储装置820进行DMA转送的数据向包发送部903发送。
[0130]包发送部903根据由DMA控制器902转送的数据来创建包含控制部901指定的数据长度的数据的包并向目的地节点发送。
[0131]图10是表示本实施例涉及的并行计算机700的包发送处理的流程图。
[0132]从步骤S1000开始进行处理,在步骤S1001中,控制部901在从处理器810接受了包发送指示后,取得包发送指示中包含的目的地节点地址、网络构成以及通信模式信息。
[0133]网络构成是指包含并行计算机700所具备的节点710?716以及交换机720?726的网络的构成。在包发送指示所包含的网络构成中,例如可包括将各节点连接成网格状的网格型、将各节点连接成环状的环型、将上位层的交换机到连接各节点的下位层的交换机连接成交换机间的连接对称分岐的胖树型等。另外,通信模式信息中可以包括利用图26后述的通信模式。
[0134]在步骤S1002中,控制部901参照跳数表存储部831中存储的跳数表840。而且,控制部901从跳数表840取得从在步骤S1001中取得的本节点到目的地节点的跳数和并行计算机700整体中的最大跳数。
[0135]在步骤S1003中,基于在步骤S1001中取得的网络构成以及通信模式信息、和在步骤S1002中取得的从本节点到目的地节点的跳数以及并行计算机700整体中的最大跳数,来决定向该目的地节点发送的包的包大小。
[0136]在来自处理器810的包发送指示是基于Put请求的指示的情况下(步骤S1004:是),控制部901将处理转移至步骤S1005。该情况下,控制部901从主存储装置820读出处理器810所指定的数据(步骤S1005)。在此,Put请求是指进行通信的节点指定本节点的主存储装置的区域和目的地节点的主存储装置的区域,并将本节点的主存储装置的区域中存储的数据向目的地节点的主存储装置的区域写入的请求。作为Put请求的具体处理,例如进行以下那样的处理。
[0137]DMA控制器902对主存储装置820指定由控制部901根据包发送指示指定的、发送对象的数据被储存的地址和使包所含的数据的数据长度来进行DMA请求。于是,主存储装置820将被指定的地址中储存的数据以所指定的数据长度向DMA控制器902进行DMA转送。DMA控制器902将转送来的数据向包发送部903发送。
[0138]其中,数据长度可使用从在步骤S1003中决定的包大小除去包所含的包头长度而得到的值。
[0139]在步骤S1006中,包发送部903若从DMA控制器902接收到数据,则创建包含控制部901所指定的数据长度的数据的包。而且,包发送部903将创建的包向目的地节点发送。
[0140]另一方面,在来自处理器810的包发送指示是基于Get请求的指示的情况下(步骤S1004:否),控制部901将处理转移至步骤S1007。此时,包发送部903创建对在步骤S1003中决定的包大小进行指定的Get请求包并向目的地节点发送(步骤S1007)。在此,Get请求是指进行通信的节点指定本节点的主存储装置的区域和目的地节点的主存储装置的区域,并将目的地节点的主存储装置的区域中存储的数据向本节点的主存储装置的区域读入的请求。
[0141]若以上的处理结束,则控制部901结束包发送处理(步骤S1008)。
[0142]图11是表示本实施例涉及的包大小的决定处理(步骤S1003)的详细的流程图。
[0143]当在步骤S1001中取得的网络构成是环型或网格型时(步骤SllOl:是),控制部901将处理转移至步骤S1102。此时,控制部901根据下式计算出包大小候补(步骤S1102)。
[0144]α X (m+n) Xl...(I)
[0145]其中,α为用于调整包大小的大于O的常数,m为最大包大小,η为最大跳数,I为向目的地节点的跳数。
[0146]另一方面,当在步骤S1001中取得的网络构成为胖树型时(步骤SllOl:否),控制部901将处理转移至步骤S1103。此时,控制部901判别到目的地节点为止的跳数是否是I(步骤 S1103)。[0147]在到目的地节点为止的跳数是I的情况下(步骤SI 103:是),控制部901将处理转移至步骤S1104。此时,控制部901根据下式来计算包大小候补(步骤S1104)。
[0148]β Xm+ (k — j)...(2)
[0149]其中,β为用于调整包发送间隔的大于O的常数,j为与一个交换机直接连接的节点数,k为全部节点数。
[0150]另外,在步骤S1103中,当到目的地节点为止的跳数不是I时(步骤S1103:否),控制部901将处理转移至步骤S1105。此时,控制部901根据下式来计算包大小候补(步骤S1105)。
[0151]Y Xm...(3)
[0152]其中,Y为用于调整包大小的大于O的常数。
[0153]若通过以上的处理计算出包大小候补,则控制部901将处理转移至步骤S1106。
[0154]在步骤S1106中,当发送数据是从其他节点接收并中继的数据时(步骤S1106:是),控制部901将处理转移至步骤S1107。此时,控制部901根据下式来计算新的包大小候补(步骤S1107)。
[0155]δ X (i + I) XP...(4)
[0156]其中,δ为用于调整包大小的大于O的常数,i为接收并中继数据的节点的个数,P为在步骤SI 102、SI 104或者SI 105中计算出的包大小候补。
[0157]若根据式(4)计算出新的包大小候补,则控制部901将处理转移至步骤S1108。
[0158]另外,在步骤S1106中,当发送数据不是从其他节点接收并中继的数据时(步骤S1106:否),控制部901将处理转移至步骤S1108。
[0159]在步骤S1108中,当在步骤S1102、S1104、S1105或者S1107中求出的包大小候补为能够改变包大小的最大值以上时,控制部901将该最大值设为包大小。另外,当在步骤S1102、S1104、S1105或者S1107中求出的包大小候补为能够改变包大小的最小值以下时,控制部901将该最小值设为包大小。另外,当在步骤S1102、S1104、S1105或者S1107中求出的包大小候补为大于最小值且小于最大值的以上时,控制部901将该包大小候补设为包大小。
[0160]若以上的处理结束,则控制部901结束包大小的决定处理(步骤S1109)。
[0161](变形例)
[0162]图12是表示图9所示的节点710的变形例的图。
[0163]图12所示的节点1200具备处理器810、主存储装置820和网络接口装置1210。
[0164]网络接口装置1210具备跳数表存储部831、控制部1211、DMA控制器902和包发送部1212。其中,图12并不意味网络接口装置1210仅具备图12所示的构成要素。网络接口装置1210例如也能够包括包的接收功能等功能。
[0165]控制部1211若从处理器810接收到包发送指示,则控制DMA控制器902、包发送部1212来进行包的发送处理。此时,控制部1211对包发送部1212指示包发送间隔。另外,控制部1211根据到包的目的地为止的跳数来计测本节点与目的地节点间的通信带宽。而且,根据该计测,控制部1211改变向包发送部1212指示的包发送间隔。
[0166]控制部1211能够通过对基于到包的目的地为止的跳数的本节点的通信带宽的计测与根据该计测而改变的包发送间隔的关系进行表示的数式,定量地求出向包发送部1212指示的包发送间隔。
[0167]包发送部1212根据从DMA控制器902转送的数据来创建包。而且,包发送部1212以控制部1211所指示的包发送间隔来将包向目的地节点发送。
[0168]图13是表示使用了图12中说明的节点1200的并行计算机700的包的发送处理的流程图。
[0169]步骤S1301?S1302的处理与图10的步骤S1001?S1002相同,因此省略说明。
[0170]在步骤S1303中,基于在步骤S1301中取得的网络构成以及通信模式信息、和在步骤S1302中取得的到目的地节点为止的跳数以及并行计算机700整体中的最大跳数来决定包发送间隔。
[0171]在来自处理器810的包发送指示为基于Put请求的指示的情况下(步骤S1304:是),控制部1211将处理转移至步骤S1305。此时,控制部1211从处理器810所指定的主存储装置820进行读取(步骤S1305)。在步骤S1305中,具体进行以下那样的处理。
[0172]DMA控制器902对主存储装置820指定由控制部901根据包发送指示而指定的、发送对象的数据被保存的地址和包中所含的数据的数据长度来进行DMA请求。于是,主存储装置820将被指定的地址中储存的数据以所指定的数据长度向DMA控制器902进行DMA转送。DMA控制器902将转送来的数据向包发送部903发送(步骤S1306)。
[0173]其中,数据长度可使用从作为处理器810所指定的包大小、即事先决定的包大小中除去了包所含的包头长度而得到的值。
[0174]另一方面,在来自处理器810的包发送指示是基于Get请求的指示的情况下(步骤S1304:否),控制部1211将处理转移至步骤S1307。此时,包发送部1212创建对包含处理器810与包发送指示一起指定的数据长度的数据的包大小进行指定的Get请求包。而且,包发送部1212将创建的Get请求包以在步骤S1303中决定的包发送间隔向目的地节点发送(步骤S1307)。
[0175]若以上的处理结束,则控制部1211结束包发送处理(步骤S1308)。
[0176]图14是表示本实施例涉及的包发送间隔的决定处理(步骤S1303)的详细的流程图。
[0177]当在步骤S1301中取得的网络构成是环型或者网格型时(步骤S1401:是),控制部1211将处理转移至步骤S1402。此时,控制部1211根据下式来计算包发送间隔候补(步骤S1402)。
[0178]α I Xml X (η — I)...(5)
[0179]其中,α I是用于调整包发送间隔的大于O的常数,ml是既定的包大小,η是最大跳数,I是向目的地节点的跳数。
[0180]另一方面,当在步骤S1301中取得的网络构成是胖树型时(步骤S1401:否),控制部1211将处理转移至步骤S1403。此时,控制部1211判别到目的地节点为止的跳数是否是
I(步骤 S1403)。
[0181]在到目的地节点为止的跳数是I的情况下(步骤S1403:是),控制部1211将处理转移至步骤S1404。此时,控制部1211根据下式来计算包发送间隔候补(步骤S1404)。
[0182]β IXmlX (k— j)...(6)
[0183]其中,β I是用于调整包发送间隔的大于O的常数,j是与一个交换机直接连接的节点数,k是全部节点数。
[0184]在步骤S1403中,当到目的地节点为止的跳数不是I时(步骤S1403:否),控制部1211将处理向步骤S1405转移。此时,控制部1211将包发送间隔候补决定为Y I (步骤S1405)。其中,Y I是用于调整包发送间隔的大于O的常数,设为比通常的通信中使用的既定值小的值。
[0185]若通过以上的处理求出了包发送间隔,则控制部1211将处理转移至步骤S1406。
[0186]在步骤S1406中,当发送数据是从其他节点接收并向目的地节点中继的数据时(步骤S1406:是),控制部1211将处理转移至步骤S1407。此时,控制部1211根据下式计算从该其他节点向该目的地节点的新的包发送间隔候补(步骤S1407)。
[0187]δ 1+ (i + I) XPl...(7)
[0188]其中,δ I是用于调整包发送间隔的大于O的常数,i是接收并中继数据的节点的个数,Pl是在步骤S1402、S1404或者S1405中计算出的包发送间隔候补。
[0189]若根据式(7)计算出新的包发送间隔候补,则控制部1211将处理转移至步骤S1408。另外,在步骤S1406中,当发送数据不是从其他节点接收并中继的数据时(步骤S1406:否),控制部1211将处理转移至步骤S1408。
[0190]若以上的处理结束,则控制部1211结束包发送间隔的决定处理(步骤S1408)。
[0191](其他的变形例)
[0192]图15是表示图9所示的节点710的其他变形例的图。其中,本变形例涉及的节点1500能够利用于网络的构成为多维网格型或者环型的情况。在以下的说明中,针对并行计算机700的网络构成为3维网格型或者环型的情况进行说明。
[0193]图15所示的节点1500具备处理器810、主存储装置820和网络接口装置1510。
[0194]网络接口装置1500具备控制部1511、跳数计算部1512、DMA控制器902和包发送部903。其中,图15并不意味网络接口装置1510仅具备图15所示的构成要素。网络接口装置1510例如能够还包括包的接收功能等功能。
[0195]控制部1511若从处理器810接收到包发送指示,则控制DMA控制器902、包发送部903来进行包的发送处理。控制部1511从跳数计算部1512取得到包的目的地为止的跳数。此时,控制部1511对DMA控制器902和包发送部903指定I个包中包含的数据的数据长度。另外,控制部1511根据到包的目的地为止的跳数来计测本节点和目的地节点间的通信带宽。根据该计测,控制部1511改变对DMA控制器902和包发送部903指定的向目的地节点发送的包的数据长度。
[0196]控制部1511能够通过对基于到包的目的地为止的跳数的本节点的通信带宽的计测、和根据该计测而改变的数据长度的关系进行表示的数式,定量地求出向目的地节点发送的包的数据长度。
[0197]跳数计算部1512若从控制部901接收到目的地节点地址的通知,则根据目的地节点地址、本节点地址以及网络的构成来计算跳数。跳数计算部1512将计算出的跳数向控制部901通知。
[0198]图16是表示使用了在图15中说明的节点1500的并行计算机700的包的发送处
理的流程图。
[0199]由于步骤S1601的处理与图10的步骤S1001相同,因此省略说明。[0200]在步骤S1602中,控制部1511从跳数计算部1512取得到目的地节点为止的跳数和并行计算机700整体的最大跳数。此时,具体例如进行以下的处理。
[0201]控制部1511将在步骤S1601中取得的目的地节点地址以及网络构成向跳数计算部1512通知。于是,跳数计算部1512根据由控制部1511通知的目的地节点地址以及网络构成,利用下式来计算到目的地节点为止的跳数。
[0202](网络构成为网格型的情况)
[0203]I xl — x0 I + I yl — yO I + I zl — z0 I...(8)
[0204](网络构成为环型的情况)
[0205]min (I xl — x0 I , Nx — I xl — xO I ) + min ( I yl — yO I,Ny — I yl —yO I ) + min ( I zl — zO I , Nz — I zl — zO I )...(9)
[0206]其中,节点地址利用xyz轴坐标系的坐标值来表示。而且,将本节点地址设为(xO,yO, zO),将目的地节点地址设为(xl, yl, zl)。另外,分别将x轴方向、y轴方向以及z轴方向所含的节点数设为Nx、Ny以及Nz。
[0207]若计算出到目的地节点为止的跳数,则跳数计算部1512将到目的地节点为止的跳数和并行计算机700整体的最大跳数向控制部1511通知。
[0208]若以上的处理结束,则控制部1511将处理转移至步骤S1603。由于步骤S1603?1608与图10的步骤S1003?S1008相同,因此省略说明。
[0209](其他的变形例)
[0210]图17是表示图9所示的节点710的其他变形例的图。
[0211]图17所示的节点1700具备处理器810、主存储装置820和网络接口装置1710。
[0212]网络接口装置1710具备控制部1711、包发送部1712、包接收部1713和DMA控制器902。其中,图17并不意味网络接口装置1710仅具备图17所示的构成要素。网络接口装置1710例如也能够包括包的接收功能等公知的功能。
[0213]控制部1711若从处理器810接收到包发送指示,则控制DMA控制器902、包发送部1712来进行包的发送处理。此时,控制部1711对DMA控制器902和包发送部1712指定I个包中所含的数据的数据长度。
[0214]控制部1711能够通过对基于到包的目的地为止的跳数的本节点的通信带宽的计测和根据该计测而改变的数据长度的关系进行表示的数式,定量地求出I个包中所含的数据的数据长度。
[0215]另外,为了调查到目的地节点为止的跳数,控制部1511对包发送部1712进行跳数调差用包的发送指示。控制部1711从包接收部1713接受相对于跳数调查用包的响应包的跳数字段中包含的包数的通知。该通知的包数是到目的地节点为止的跳数。控制部1711根据到目的地节点为止的跳数来计测本节点和该目的地节点间的通信带宽。根据该计测,控制部1711改变向DMA控制器902以及包发送部903指示的数据长度。
[0216]包发送部1712根据由DMA控制器902转送的数据来创建包含控制部1711所指定的数据长度的数据的包并向目的地节点发送。另外,控制部1711若从控制部1711接收到跳数调查用包的发送指示,则创建跳数调查用包。而且,控制部1711将创建的跳数调查用包向目的地节点发送。
[0217]其中,跳数调查用包是指包含跳数字段的包。在跳数调查用包发送时,作为跳数字段的初始值而设定O。跳数字段是能够更新跳数调查用包经由的交换机的字段。交换机若接收到跳数调查用包,则将跳数字段中保存的值更新为加I后的值。
[0218]另外,接收到跳数调查用包的目的地节点将相对于跳数调查用包的响应包向跳数调查用包的发送源节点发送。此时,在相对于跳数调查用包的响应包中,保持原样地包含目的地的节点接收到的跳数调查用包的跳数字段。
[0219]包接收部1713从网络接收包。在接收到的包是对应于跳数调查用包的响应包的情况下,包接收部1713从接收到的响应包中包含的跳数字段取得跳数。而且,包接收部1713将取得的跳数向控制部1711通知。
[0220]以上说明的节点1510所具备的控制部1511也可以如图12所示的节点1210具备的控制部1211那样,改变对包发送部903指定的包发送间隔来控制包发送间隔。此时,节点1510只要取代图16的步骤S1603?S1607的处理而执行图13的步骤S1303?S1307的处理即可。
[0221 ] 图18是表示本变形例中使用的交换机1800的构成例的图。
[0222]交换机1800具备发送缓冲部1810以及1820、包发送控制部1830、端口 1840以及1850、加法器 1860。
[0223]发送缓冲部1810具备对从节点1700接收到的包进行存储的存储装置。而且,若将包存储到存储装置,则发送缓冲部1810将存储装置中存储的包的例如包头部所含的目的地节点地址向包发送控制部1830发送。另外,发送缓冲部1810根据来自包发送控制部1830的请求将包向包发送控制部1830发送。
[0224]发送缓冲部1820具备对从网络接收到的包进行存储的存储装置。而且,若将包存储到存储装置,则发送缓冲部1820将存储装置中存储的包的例如包头部所含的目的地节点地址向包发送控制部1830输出。另外,发送缓冲部1820根据来自包发送控制部1830的请求将包向包发送控制部1830发送。
[0225]包发送控制部1830若从发送缓冲部1810、1820接收到包的目的地节点地址的通知,则基于被通知的目的地节点地址来决定包发送时使用的端口。另外,若从发送缓冲部1810、1820取得包,则包发送控制部1830向所决定的端口发送包。
[0226]端口 1840若从网络接收到包,则将接收到的包向发送缓冲部1820发送。端口 1850若从包发送控制部1830接收到发送请求,则向包发送控制部1830通知发送许可。然后,若从包发送控制部1830接收到包,则端口 1850将经由加法器1860接收到的包向目的地节点发送。
[0227]加法器1860将从端口 1850发送来的包中包含的跳数字段中保存的值更新为使该值加I而得到的值。
[0228]此外,在图18中,将端口 1840、端口 1850以及加法器1860分别记载为I个,但端口 1840、端口 1850以及加法器1860也可以分别具备多个。
[0229]图19是表示使用了图17中说明的节点1700以及图18中说明的交换机1800的并行计算机700中的包发送处理的流程图。
[0230]由于步骤S1901的处理与图10的步骤S1001相同,因此省略说明。
[0231]在步骤S1902中,控制部1711向包的目的地、即目的地节点地址所表示的节点发送跳数调查用包,并取得到目的地节点为止的跳数。此时,具体例如进行以下的处理。[0232]控制部1711对包发送部1712进行向在步骤S1701中取得的目的地节点地址发送跳数调查用包的发送指示。包发送部1712若从控制部1711接收到跳数调查用包的发送指示,则向在步骤S1701中取得的目的地节点地址发送跳数调查用包。
[0233]包接收部1713若接收到相对于跳数调查用包的响应包,则参照响应包中包含的跳数字段,取得到目的地节点为止的跳数。而且,包接收部1713将到目的地节点为止的跳数向控制部1711通知。
[0234]若以上的处理结束,则控制部1711将处理转移至步骤S1903。由于步骤S1903?S1907的处理与图10的步骤S1003?S1007相同,因此省略说明。
[0235]以上说明的节点1710所具备的控制部1711也可以如图12所示的节点1210具备的控制部1211那样,改变对包发送部1712指定的包发送间隔来控制包发送间隔。此时,节点1710能够取代图19的步骤S1903?S1607的处理而执行图13的步骤S1303?S1307的处理。
[0236](其他的实施例)
[0237]图20是说明本实施例涉及的并行计算机2000所包含的节点的概要的图。本实施例涉及的并行计算机2000取代图7所示的节点710?716而使用图20所示的节点2010。
[0238]节点2010具备处理器810、主存储装置820和网络接口装置2020。
[0239]而且,网络接口装置2020具备响应时间表存储部2021、接口控制部2022、发送部2023、计数器2024和接收部2025。
[0240]响应时间表存储部2021包括存储响应时间表2030的存储装置,该响应时间表2030按发送包的目的地即目的地节点来存储基准响应时间和响应时间。响应时间是从向目的地节点发送包起,到从目的地节点接收到针对所发送的包的响应包为止所需要的时间。在响应时间表2030的响应时间中存储实际计测的响应时间。基准响应时间是通信带宽的计测所使用的响应时间的基准值。基准响应时间能够基于网络的构成、到目的地节点为止的跳数、标准环境下的实测值或者逻辑值等来决定。
[0241]接口控制部2022按照网络中使用的协议对发送部2023进行指示,以便将包含处理器810指定的数据的一部分或全部的包向规定的目的地节点发送。在进行该指示时,接口控制部2022参照响应时间表存储部2021中存储的响应时间表2030,取得到目的地节点为止的基准响应时间和响应时间。接口控制部2022基于取得的基准响应时间和响应时间,计测本节点2010与目的地节点间的通信带宽。而且,基于该计测,接口控制部2022决定所发送的包的大小。接口控制部2022将基于决定出的包的大小的数据长度向发送部2023进行指示。
[0242]发送部2023按接口控制部2022指定的每个数据长度来创建包含处理器810指定的数据的一部分或全部的包。此时,发送部2023参照计数器2024而取得计数值。而且,发送部2023将取得的计数值设定到包的规定区域。
[0243]另外,在所发送的包是响应包的情况下,发送部2023将接收到的包的规定区域中设定的计数值设定到响应包的规定区域。而且,发送部2023将响应包向发送源的节点发送。
[0244]计数器2024是以一定的间隔计数的计数器。
[0245]接收部2025取得在接收到的包的规定区域中设定的计数值A。另外,接收部2025参照计数器2024来取得计数值B。而且,接收部2025根据计数值B与计数值A的差值来计算响应时间。接收部2025将计算出的响应时间存储于响应时间表2030。
[0246]另外,接收部2025将接收到的包存储于主存储装置820。接口控制部2022若被接收部2025通知包的接收,则将该信息与包的存储位置一起向处理器810通知。
[0247]图21是表示图20所示的节点2010的具体构成例的图。
[0248]节点2010具备处理器810、主存储装置820和网络接口装置2020。
[0249]网络接口装置2020具备响应时间表存储部2101、包发送管理部2102、控制部2103、DMA控制器2104、包发送部2105、计数器2106和包接收部2107。
[0250]响应时间表存储部2101与图20所示的响应时间存储表2021相同。因此,响应时间表存储部2101具备存储响应时间表2030的存储装置,该响应时间表2030按发送包的目的地即目的地节点来存储基准响应时间和响应时间。
[0251]包发送管理部2102利用在未接收针对所发送的包的响应包的状态下能够发送的包数q、和在接收到I个响应包时能够发送的包数P来管理可发送的包数。其中,P和q为O以上的整数。具体而言,包发送管理部2102通过以下的操作来管理可发送的包数。
[0252](I)作为初始值,从处理器810通知包数q。于是,包发送管理部2102保持包数q作为可发送的包数。
[0253](2)若从控制部2103接收到已经发送了包的通知,则包发送管理部2102将可发送的包数q更新为减去“ I ”而得到的值。
[0254](3)若从包接收部2107接收到已经接收了响应包的通知,则包发送管理部2102将可发送的包数q更新为加上“P”而得到的值。
[0255]包发送管理部2102若从控制部2103接收到可发送的包数的询问,则将可发送的包数向控制部2103通知。
[0256]控制部2103若从处理器810接收到包发送指示,则向包发送管理部2102进行询问来取得可发送的包数。而且,如果能够发送包,则控制部2103参照响应时间表存储部2101中存储的响应时间表2030,取得到目的地节点为止的基准响应时间和响应时间。控制部2103基于取得的基准响应时间和响应时间来决定所发送的包的大小。
[0257]例如,在响应时间大于基准响应时间的情况下,控制部2103计测为本节点、即节点2010的通信带宽较窄。该情况下,控制部2103使所发送的包的大小变大。另外,在响应时间小于基准响应时间的情况下,控制部2103计测为本节点、即节点2010的通信带宽较宽。该情况下,控制部2103使所发送的包的大小变小。
[0258]控制部2103按照成为所决定的包的大小的方式来计算包中所含的数据长度。而且,将计算出的数据长度和所发送的数据的地址向DMA控制器2104通知。
[0259]控制部2103能够通过对基于响应时间的本节点的通信带宽的计测和根据该计测而改变的数据长度的关系进行表示的数式,定量地求出向目的地节点发送的包的数据长度。
[0260]DMA控制器2104若被控制部2103通知了地址和数据长度,则对主存储装置820指定控制部2103通知的地址和数据长度来进行DMA请求。于是,主存储装置820将被指定的地址中保存的数据以所指定的数据长度向DMA控制器2104进行DMA转送。DMA控制器2104将从主存储装置820DMA转送的数据向包发送部2105发送。[0261]包发送部2105创建包含从DMA控制器2104发送来的数据的包。此时,包发送部2105参照计数器2106而取得计数值。而且,包发送部2105将取得的计数值设定到包的规定区域。而且,包发送部2105将创建的包向目的地节点发送。
[0262]另外,在发送的包是响应包的情况下,包发送部2105将接收到的包的规定区域中设定的计数值设定于响应包的规定区域。而且,包发送部2105将响应包向目的地节点发送。
[0263]计数器2106是以一定的间隔进行计数的计数器。
[0264]包接收部2107取得在接收到的包的规定区域中设定的计数值A。另外,包接收部2107参照计数器2106而取得计数值B。而且,包接收部2107根据计数值B和计数值A的差值来计算响应时间。包接收部2107将计算出的响应时间存储到响应时间表存储部2101中保存的响应时间表2030。另外,包接收部2107将已经接收到响应包的信息通知给包发送部 2105。
[0265]另外,包接收部2107将接收到的包存储于主存储装置820。控制部2103若被包接收部2107通知了包的接收,则将该信息与包的存储位置一起通知给处理器810。
[0266]图22是表示使用了在图21中说明的节点2010的并行计算机700中的包发送处理的流程图。
[0267]由于步骤S2201的处理与图10的步骤S1001相同,因此省略说明。
[0268]在步骤S2202中,控制部2103从包发送管理部2102取得可发送的包数。
[0269]在从包发送管理部2102取得的可发送的包数小于I的情况下(步骤S2203:否),控制部2103将处理转移至步骤S2204。该情况下,控制部2103例如以一定间隔对包发送管理部2102进行询问等,等待到可发送的包数成为I以上(步骤S2204)。而且,若可发送的包数成为I以上,则控制部2103将处理转移至步骤S2205。
[0270]另外,当从包发送管理部2102取得的可发送的包数为I以上时(步骤S2203:是),控制部2103将处理转移至步骤S2205。
[0271]在步骤S2205中,控制部2103参照响应时间表存储部2101中存储的响应时间表2030。而且,控制部2103从响应时间表2030取得关于目的地节点的基准响应时间和响应时间。
[0272]在步骤S2206中,控制部2103基于在步骤S2205中取得的基准响应时间以及响应时间、通信模式来决定包的大小。
[0273]在来自处理器810的包发送指示是基于Put请求的指示的情况下(步骤S2207:是),控制部2103将处理转移至步骤S2208。此时,控制部2103从主存储装置820读取处理器810指定的数据(步骤2208)。具体例如进行以下那样的处理。
[0274]DMA控制器2104对主存储装置820指定由控制部2103根据包发送指示而指示的发送对象的数据被保存的地址、和包中包含的数据的数据长度来进行DMA请求。于是,主存储装置820将被指定的地址中保存的数据以所指定的数据长度向DMA控制器2104进行DMA转送。DMA控制器2104将转送来的数据向包发送部2105发送。
[0275]其中,数据长度可使用从在步骤S2206中决定的包大小除去包中包含的包头长度而得到的值。
[0276]在步骤S2209中,控制部2103若从DMA控制器902接收到数据,则创建包含由控制部2103指定的数据长度的数据的包。另外,包发送部2105从计数器2106取得计数值,将取得的计数值设定于包的规定区域。而且,包发送部2105将包向目的地节点发送。
[0277]另一方面,在来自处理器810的包发送指示是基于Get请求的指示的情况下(步骤S2207:否),控制部2103将处理转移至步骤S2210。此时,控制部2103创建对在步骤S2206中决定的包大小进行指定的Get请求包并向目的地节点发送(步骤S2210)。
[0278]若以上的处理结束,则控制部2103结束包发送处理(步骤S2211)。
[0279]图23是表示本实施例涉及的包大小的决定处理(步骤S2206)的详细的流程图。
[0280]在步骤S2301中,控制部2103根据下式来计算包大小候补。
[0281]m2 + α 2Χ (11 — η2)...(10)
[0282]其中,α 2是用于调整包大小的大于O的常数,m2是标准包大小,η2是在步骤S2205中取得的基准响应时间,11是在步骤S2205中取得的响应时间。m2可使用在响应时间与基准响应时间相同时发送的包大小等。其中,标准包大小是在并行计算机2000的节点间通信中使用的包的大小。
[0283]在步骤S2302中,当发送数据是从其他节点接收并向目的地节点中继的数据时(步骤S2302:是),控制部2103将处理转移至步骤S2303。该情况下,控制部2103根据下式来计算从该其他节点接收并向该目的地节点中继的包的新的包大小候补(步骤S2303)。
[0284]β 2Χ (i + I) XP2...(11)
[0285]其中,β 2是用于调整包大小的大于O的常数,i是接收数据并进行中继的节点的个数,P2是在步骤S2301中计算出的包大小候补。
[0286]若根据式(11)计算出新的包大小候补,则控制部2103将处理转移至步骤S2304。另外,在步骤S2302中,当发送数据不是从其他节点接收并向目的地节点中继的包的数据时(步骤S2302:是),控制部2103将处理转移至步骤S2304。
[0287]在步骤S2304中,当在步骤S2301或者S2303中求出的包大小候补为能够变更包大小的最大值以上时,控制部2103将包大小候补设为最大值的包大小。另外,当在步骤S2301或者S2303中求出的包大小候补为能够变更包大小的最小值以下时,控制部2103将包大小候补设为最小值的包大小。另外,当在步骤S2301或者S2303中求出的包大小候补为大于最小值且小于最大值的以上时,控制部2103将包大小候补设为包大小。
[0288]若以上的处理结束,则控制部2103结束包大小的决定处理(步骤S2305)。
[0289]以上说明的节点2020所具备的控制部2103也可以如图12所示的节点1210具备的控制部1211那样,对包发送部2105指定包发送间隔来控制包发送间隔。该情况下,节点2020能够取代图22的步骤S2206?S2210的处理而执行图13的步骤S1303?S1307的处理。
[0290](其他的实施例)
[0291]图24是说明本实施例涉及的并行计算机2400所包含的节点以及交换机的概要的图。本实施例涉及的并行计算机2400对图7所示的节点710?716使用图24所示的节点2410,并对图7所示的交换机720?726使用图24所示的交换机2420。
[0292]节点2410具备处理器2411和网络接口装置2412。节点2410经由LAN线缆等与交换机2420连接成能够通信。另外,节点2410所具备的处理器2411可经由专用线或LAN线缆等与交换机2420所具备的存储部2560连接成能够通信。[0293]处理器2411是按照规定的程序进行运算处理的运算装置。另外,处理器2411在将所希望的数据向其他的节点发送的情况下,对网络接口装置2412进行包发送指示。此时,处理器2411与包发送指示一起指定包的大小。
[0294]此外,处理器2411也可以如图12所示的节点1210所具备的控制部1211那样,对网络接口装置2412指定包发送间隔。该情况下,处理器2411可取代图22的步骤S2206?S2209的处理而通过图14所示的处理来求出包发送间隔。
[0295]包的大小例如能够基于交换机2420所具备的存储部2421中存储的等待时间表2600中设定的包的发送等待时间来决定。对于等待时间表2600,将利用图26后述。
[0296]网络接口装置2412若接收到由处理器2411通知的包发送指示,则创建与包发送指示一起指定的包大小的包并向交换机2420发送。
[0297]交换机2420具备发送缓冲器2421、2422以及2423、计数器2424和存储部2425。
[0298]发送缓冲器2421是将从节点2410接收到的包保持至发送为止的存储装置。发送缓冲器2422以及2423是将从其他节点接收到的包保持至发送为止的存储装置。
[0299]计数器2424是对从节点2410接收到包起到将接收到的包向下一节点发送为止的发送等待时间进行计数的计数器。计数器2424将计数得到的发送等待时间设定于存储部2425中存储的等待时间表2600。
[0300]存储部2425是存储等待时间表2600的存储装置,该等待时间表2600按每个通信模式存储从接收到包起到向目的地节点发送为止的发送等待时间。
[0301]在以上的构成中,例如考虑处理器2411对包进行处理的情况。此时,处理器2411从存储部2425中存储的等待时间表2600取得从接收到包起到向目的地节点发送为止的发送等待时间。而且,处理器2411基于取得的发送等待时间来计测本节点2410和目的地节点间的通信带宽。而且,处理器2411基于该计测的结果来决定包的大小。
[0302]处理器2411能够通过对基于发送等待时间的本节点的通信带宽的计测、和根据该计测而改变的数据长度的关系进行表示的数式,定量地求出向目的地节点发送的包的数据长度。
[0303]处理器2411对网络接口装置2410指定包发送指示与包的大小。于是,网络接口装置2410创建处理器2411所指定的大小的包并向交换机2420发送。
[0304]向交换机2420输入的包被保存于发送缓冲器2421。若包被保存到发送缓冲器2421,则计数器2424对发送缓冲器2421中保存的包到被发送为止的发送等待时间进行计数。而且,计数器2424将计数得到的发送等待时间设定于存储部2425中存储的等待时间表 2600。
[0305]其中,为了容易理解包处于发送等待的状态,在图24中记载了 3个发送缓冲器2421、2422和2423。但是,发送缓冲器2421、2422和2423也能够由I个或者多个发送缓冲器来实现。
[0306]另外,图24并不意味节点2410仅具备图24所示的构成要素。节点2410例如能够还具备图8所示的主存储装置820等进行信息处理的功能。
[0307]图25是表示图24所示的交换机2420的具体构成例的图。
[0308]交换机2420具备发送缓冲部2510、包发送控制部2520、端口 2530以及2540、计数器2550和存储部2560。[0309]发送缓冲部2510具备对从节点2410所具备的网络接口装置2412接收到的包进行存储的存储装置。而且,若将包存储于存储装置,则发送缓冲部2510将存储装置中存储的包的例如包头部所包含的目的地节点地址向包发送控制部2520发送。另外,发送缓冲部2510根据来自包发送控制部2520的请求,将包向包发送控制部2520发送。
[0310]包发送控制部2520若从发送缓冲部2510接收到包的目的地节点地址的通知,则基于被通知的目的地节点地址来决定包发送所使用的端口。包发送控制部2520对所决定的端口、例如端口 2530或者2540进行发送请求。若从进行了发送请求的端口通知了发送许可,则包发送控制部2520从发送缓冲部2510取得包。而且,若从发送缓冲部2510取得了包,则包发送控制部2520将包向所决定的端口发送。
[0311]另外,包发送控制部2520若从发送缓冲部2510接收到目的地节点地址的通知,则向计数器2550通知由发送缓冲部2510通知的目的地节点地址。同时,包发送控制部2520将开始等待时间的计数的开始指示向计数器2550通知。若包的发送结束,则包发送控制部2520将针对发送已经完成的包的结束发送等待时间的计数的停止指示向计数器2550通知。
[0312]计数器2550若从包发送控制部2520接收到开始指示,则针对由包发送控制部2520通知的目的地节点地址的包,按每个包开始发送等待时间的计数。另外,若计数器2550从包发送控制部2520接收到停止指示,则针对有停止指示的向目的地节点发送的包,结束发送等待时间的计数。而且,计数器2550将计数值设定于存储部2560中存储的等待时间表2600。
[0313]端口 2530若从包发送控制部2520接收到发送请求,则向包发送控制部2520通知发送许可。然后,若从包发送控制部2520接收到包,则端口 2530将接收到的包向目的地节点发送。端口 2540也与端口 2530同样地进行动作。
[0314]此外,图25中示出了交换机2420具备2个端口 2530以及2540的情况的例子,但并不意图限定交换机2420所具备的端口的数量。另外,交换机2420能够具备图18所示的发送缓冲部1820以及端口 1840等。
[0315]图26是表示存储部2560中存储的等待时间表2600的例子的图。
[0316]图26所示的等待时间表2600是包含通信模式、目的地节点地址、从分别接收到由与交换机2420连接的节点2410向目的地节点地址发送的包起到向目的地节点地址进行发送为止的发送等待时间的信息。
[0317]通信模式例如可包含MPI(MessagePassing Interface)中规定的“All Gather”、“All to All”以及“All reduce”等组群通信的种类。另外,通信模式也可包含例如MPI中规定的Iroadcast'“Gather”以及“Reduce”等组群通信的种类。
[0318]“All Gather”是各节点对其他全部节点发送相同数据的通信模式。“All to All”是各节点对其他全部节点分别发送不同数据的通信模式。“AU reduce”是任意I个节点将利用全部节点所保持的数据进行了运算而得到的结果向进行了运算的节点以外的全部节点发送的通信模式。“Broadcast”是任意I个节点向其他多个节点发送数据的通信模式。“Gather”是多个节点向任意I个节点发送数据的通信模式。“Reduce”是任意I个节点利用全部节点所保持的数据进行运算的通信模式。该情况下,运算结果仅由进行了运算的节点保持。[0319]例如,在图26所示的等待时间表2600中,当通信模式为“AllGather”时,设定有向目的地节点地址为“n00”的目的地节点发送的包“p00”、“p01”、...的发送等待时间
“too”、“t01”、...。
[0320]图27是表示图25所示的交换机2420的处理的流程图。
[0321]在步骤S2701中,包发送控制部2520从发送缓冲部2510接受目的地节点地址。于是,包发送控制部2520将处理转移至步骤S2702。
[0322]在步骤S2702中,包发送控制部2520基于从发送缓冲部2510接收到的目的地节点地址来决定发送包的端口。若决定了发送包的端口,则包发送控制部2520对所决定的端口进行发送请求(步骤S2703)。
[0323]在步骤S2704中,包发送控制部2520对计数器2550通知从发送控制部2520接收到的目的地节点地址,并且进行开始指示。接受了开始指示的计数器2550针对向目的地节点地址发送的包的发送等待时间,例如从O开始进行计数。
[0324]在步骤S2705中,包发送控制部2520若从进行了发送请求的端口接收到发送许可,则向接受了发送许可的端口发送包。若包的发送结束,则包发送控制部2520对计数器2550进行停止指示(步骤S2706)。接受了停止指示的计数器2550结束因步骤S2704的开始指示而开始的计数。而且,计数器2550对等待时间表2600内的相应的通信模式存储计数值和目的地节点地址。
[0325]以上的说明并不意图将包发送控制部2520的处理限定为图27所示的步骤S2700?S2707的处理的顺序。例如,包发送控制部2520也可以同时进行步骤S2703和步骤S2704。另外,包发送控制部2520也可以同时进行步骤S2705和步骤S2706。
[0326]图28是表示本实施例涉及的处理器2411所进行的包大小的决定处理的流程图。
[0327]在步骤S2801中,处理器2411从交换机2420所具备的存储部2560中存储的等待时间表2600取得此后要进行的通信的通信模式中的、向各目的地节点的全部发送等待时间。
[0328]在步骤S2802中,处理器2411若计算出在步骤S2801中取得的向各目的地节点的发送等待时间的平均值12,则根据下式来计算包大小候补。
[0329]m2 + α 3Χ (12 — η2)...(12)
[0330]其中,α 3是用于调整包大小的大于O的常数,12是向目的地节点的等待时间的平均值,m2是标准包大小,η2是事先决定的基准等待时间。m2可使用等待时间与基准等待时间相同时发送的包大小等。基准等待时间η2例如可使用事先进行各种通信从而在全部节点中计测出的、相同目的地节点的包的发送等待时间的平均值等。
[0331]在步骤S2803中,当在步骤S2802中求出的包大小候补为能够变更包大小的最大值以上时,处理器2411将包大小的最大值设为包大小。另外,当在步骤S2802中求出的包大小候补为能够变更包大小的最小值以下时,处理器2411将包大小的最小值设为包大小。另外,当在步骤S2802中求出的包大小候补为大于最小值且小于最大值的以上时,处理器2411将包大小候补设为包大小。
[0332]若以上的处理结束,则处理器2411结束包大小的决定处理(步骤S2804)。
[0333](变形例)
[0334]图29是表示图24所示的节点2410的变形例的图。[0335]图24所示的节点2910具备处理器810、主存储装置820、和包含接口控制部2912的网络接口装置2911。
[0336]节点2910经由LAN线缆等与交换机2420连接成可通信。另外,节点2910所包含的接口控制部2912能够经由专用线或者LAN线缆等与交换机2420所具备的存储部2560连接成可通信。
[0337]接口控制部2912按照来自处理器810的包发送指示来进行包发送处理。此时,接口控制部2912根据交换机2420所具备的存储部2421中存储的等待时间表3100中设定的包的发送等待时间,来计测本节点和目的地节点间的通信带宽。根据该计测,接口控制部2912改变向该目的地节点发送的包的大小。对于等待时间表3100,将利用图31后述。
[0338]图30是表示图29所示的节点2910的具体构成例的图。
[0339]节点2910具备处理器810、主存储装置820和网络接口装置2911。
[0340]网络接口装置2911具备控制部3001、DMA控制器902和包发送部903。其中,图30并不意味网络接口装置2911仅具备图30所示的构成要素。网络接口装置2911例如能够包括包的接收功能等功能。
[0341]控制部3001若从处理器810接受了包发送指示,则操作DMA控制器902、包发送部903来进行包的发送处理。控制部3001根据从交换机2420所具备的存储部2560中存储的等待时间表3100取得的包的发送等待时间来计测本节点和目的地节点间的通信带宽。根据该计测,控制部3001改变向该目的地节点发送的包的大小。
[0342]控制部3001能够通过对基于发送等待时间的本节点的通信带宽的计测和根据该计测而改变的数据长度的关系进行表示的数式,定量地求出向目的地节点发送的包的数据长度。
[0343]图31是表示本变形例中使用的等待时间表3100的例子的图。
[0344]图31所示的等待时间表3100是包含识别目的地节点的信息即目的地节点地址、和向目的地节点发送的包的发送等待时间的信息。在发送等待时间中,由计数器2550设定向相应的目的地节点发送的包中最新的包的发送等待时间。
[0345]其中,在本变形例中也能够使用图26所示的等待时间表2600。不过,在使用等待时间表2600的情况下,如图28所示那样,由于需要计算向目的地节点的发送等待时间的平均值12,因此有时会受到包发送的延时的影响。
[0346]图32是表示使用了在图30中说明的节点2910的并行计算机2400中的包发送处
理的流程图。
[0347]由于步骤S3201的处理与图10的步骤S1001相同,因此省略说明。
[0348]在步骤S3202中,控制部3001若从处理器810接收到包发送指示,则从交换机2420所具备的存储部2560中存储的等待时间表3100取得向目的地节点地址发送的包的发送等待时间。
[0349]在步骤S3203中,控制部3001基于在步骤S3202中取得的发送等待时间和通信模式来决定向目的地节点发送的包的大小。
[0350]由于步骤S3204?S3207的处理与图10的步骤S1004?S1007相同,因此省略说明。
[0351]图33是表示本变形例涉及的包大小的决定处理(步骤S3203)的详细的流程图。[0352]在步骤S3301中,控制部3001根据下式来计算包大小候补。
[0353]a 4Xm2 + (13 — η2)...(13)
[0354]其中,α 4是用于调整包大小的大于O的常数,m2是标准包大小,η2是基准等待时间,13是在步骤S3202中取得的向目的地节点的发送等待时间。m2可使用等待时间与基准等待时间相同时发送的包大小等。基准等待时间η2例如可使用事先进行各种通信而在全部节点中计测出的相同目的地节点的包的发送等待时间的平均值等。
[0355]在步骤S3302中,当发送数据是从其他节点接收并中继的数据时(步骤S3302:是),控制部3001将处理转移至步骤S3303。此时,控制部3001根据下式来计算新的包大小候补(步骤S3303)。
[0356]β 4Χ (i + I) ΧΡ4...(14)
[0357]其中,β 4是用于调整包大小的大于O的常数,i是接收数据并进行中继的节点的个数,P4是在步骤S3301中计算出的包大小候补。
[0358]若根据式(14)计算出新的包大小候补,则控制部3001将处理转移至步骤S3304。另外,在步骤S3302中,当发送数据不是从其他节点接收并向目的地节点中继的包的数据时(步骤S3302:否),控制部3001将处理转移至步骤S3304。
[0359]在步骤S3304中,当在步骤S3301或者S3303中求出的包大小候补为能够变更的最大值以上时,控制部3001将包大小候补设为最大值的包大小。另外,当在步骤S3301或者S3303中求出的包大小候补为能够变更的最小值以下时,控制部3001将包大小候补设为最小值的包大小。另外,当在步骤S3301或者S3303中求出的包大小候补为大于最小值且小于最大值的以上时,控制部3001将包大小候补设为包大小。
[0360]若以上的处理结束,则控制部3001结束包大小的决定处理(步骤S3305)。
[0361]以上说明的节点2911所具备的控制部3001也可以如图12所示的节点1210所具备的控制部1211那样,对包发送部903指定包发送间隔来控制包发送间隔。此时,控制部3001能够取代图32的步骤S3203?S3207的处理而执行图13的步骤S1303?S1307的处理。
[0362]对于以上说明的并行计算机600、700、2000、2400中的节点间通信所使用的包而言,能够使用图34所示的包3400。
[0363]在图34所示的包3400中,包含包类型、远程节点地址、本地节点地址以及有效载荷(Payload)。包类型是表示Put请求所使用的包、Get请求所使用的包等包的种类的信息。远程节点地址是表示包的发送目的地节点的地址的信息。本地节点地址是表示包的发送源节点的地址的信息。有效载荷是根据需要将节点向目的地节点发送的消息分割而得的数据。
[0364]以下,说明本实施例涉及的并行计算机的效果的一个例子。例如,考虑图35所示的并行计算机3500。并行计算机3500是与图1所示的并行计算机100同样的构成,但为了与本实施例涉及的并行计算机进行对比而将交换机的数量和节点的数量设为7个。
[0365]图35所示的并行计算机3500表示了节点3510?3513对节点3515或者3516进行Gather通信的情况的例子。
[0366]交换机3523按照包数比均等的方式进行协调。因此,交换机3523将从节点3513接收到的包向目的地节点发送的包数、和交换机3523将从交换机3522接收到的包向目的地节点发送的包数的比率各为I / 2。同样,交换机3522将从节点3512接收到的包向目的地节点发送的包数、和交换机3522将从交换机3521接收到的包向目的地节点发送的包数的比率各为I / 2。另外,交换机3521将从节点3511接收到的包向目的地节点发送的包数、和交换机3521将从交换机3520接收到的包向目的地节点发送的包数的比率各为I /2。
[0367]于是,节点3513、3512、3511以及3510向目的地节点发送的包的包数的比率、即包数比分别为I / 2、1 / 4、1 / 8和I / 8。
[0368]由于各节点3513、3512、3511以及3510发送的包大小相同,所以包数的比率直接成为通信带宽比。该情况下,与从接近于作为目的地节点的节点3515、3516的节点3513向目的地节点发送的数据相比,从与作为目的地节点的节点3515、3516较远的节点3510、3511向目的地节点发送的数据延迟到达。
[0369]图36表示了在图35所示的并行计算机3500的各交换机间向目的地节点的方向流动的包的时序图。图36是节点3510?3513按照节点3515、3516的顺序进行Gather通信的通信模式的情况的例子。其中,节点3510?3513将消息大小4K字节的数据分割成IK字节来向节点3515以及3516发送。不过,并不意图限定分割的大小。另外,交换机3520?3526能够以直通转发(Cut — Through)方式动作、即若从其他交换机等接收到包的开头,贝U能够将本交换机接收到的或者已经接收到的包向下一交换机发送。
[0370]其中,图36所示的记载为(O)的□表示节点3510向目的地节点发送的包。同样,记载为(I)、(2)、(3)的□分别表示节点3511、3512、3513向目的地节点发送的包。图39、图41以及图44也同样。
[0371]参照图36可知,例如节点3510向目的地节点发送的包数的比率通过多级的交换机的协调而在交换机3523 - 3524间的路径中下降。另外,节点3511、3512向目的地节点发送的包数的比率也在交换机3523 - 3524间的路径中下降。
[0372]与之相对,交换机3523 — 3524间的路径中的、节点3513发送的包数的比率变高。即,交换机3523 - 3524间的路径中的、节点3513能够利用的通信带宽变高。因此,在节点3510?3512向节点3515的包发送全部结束之前,节点3513向节点3516发送包。S卩,在节点3510?3512向节点3515的Gather通信结束之前,节点3513开始了向节点3516的Gather通信。由此,等待从节点3510?3513向节点3515的包的发送、即从节点3510?3513向节点3515的Gather通信。
[0373]这样,从跳数较大的节点向目的地节点发送的包的到达比从跳数较小的节点向目的地节点发送的包的到达变慢。
[0374]另一方面,图37表示了在本实施例涉及的并行计算机700中,节点710?713对节点715或者716进行Gather通信的情况的例子。
[0375]并行计算机700例如通过图11中说明的步骤S1102等的处理,使到目的地节点为止的跳数较大的节点发送的包的包大小变大。在图37中,跳数较大的节点710、711的包大小比为4。另外,跳数较小的节点713的包大小比为I。结果,节点720?723使用的通信带宽比均等。由此,不再有成为瓶颈的通信带宽的节点。而且,来自跳数较大的节点的包和来自跳数较小的节点的包到达目的地节点的时刻平均化。
[0376]其中,图37所示的包大小比是用于说明的例示,例如可通过图11的步骤S1102等处理来求出。
[0377]图38表示了在图37所示的并行计算机700的各交换机间向目的地节点的方向流动的包的时序图。
[0378]图38是节点710?713按照节点715、716的顺序进行Gather通信的通信模式的情况的例子。设节点710?713将4K字节的消息向节点715以及716发送。交换机720?726能够以直通转发方式动作。
[0379]其中,图38所示的记载为(O)’的□表示节点710向目的地节点发送的包。同样,记载为(1)’、(2)’、(3)’的□分别表示节点711、712、713向目的地节点发送的包。图43和图45也同样。
[0380]参照图38。交换机720?S726按照包数比均等的方式进行协调。因此,交换机723 - 724间的路径中的、节点710?713向目的地节点发送的包的包数比与图36所示的交换机3523 - 3524间的路径中的、节点3510?3513向目的地节点发送的包的包数比相同。
[0381]但是,包数比较小的节点710、711向目的地节点发送的包大小大于包数比较大的节点713等向目的地节点发送的包大小。例如,在图38的例子中,节点710以及711向目的地节点发送的包大小为4K字节,节点712向目的地节点发送的包大小为2K字节,节点713向目的地节点发送的包大小为IK字节。结果,例如交换机723 - 724间的路径中的、节点710?713分别按单位时间使用路径的时间变得公平。节点710?713分别使用的通信带宽比变得均等。
[0382]结果,例如根据图38的交换机725 — 726间的路径的时序图可知,从跳数较大的节点710、711向目的地节点716发送的包的到达、和从跳数较小的节点713向目的地节点716发送的包的到达被平均化。
[0383]图35?图38表示了将由各节点发送的4K字节的消息分割成规定大小的包并向目的地节点发送的情况的例子。与之相对,在不将各节点发送的4K字节的消息分割成规定大小的包地向目的地节点发送的情况下,也能够得到图38中说明的效果。
[0384]图39是在图35所示的并行计算机3500的各节点不分割消息地向目的地节点发送的情况下,在各交换机间向目的地节点的方向流动的包的时序图。
[0385]在各节点不分割消息地向目的地节点发送的情况下,也如图36中说明那样,例如节点3510向目的地节点发送的包数的比率通过多级的交换机协调而在交换机3523 —3524间的路径中下降。另外,节点3511、3512向目的地节点发送的包数的比率也在交换机3523 - 3524间的路径中下降。
[0386]与之相对,交换机3523 — 3524间的路径中的、节点3513发送的包数的比率变高。即,交换机3523 - 3524间的路径中的节点3513能够利用的通信带宽变高。因此,在节点3510?3512向节点3515的包发送未完全结束的状态下,节点3513正向节点3516发送包。即,在节点3510?3512向节点3515进行的Gather通信结束之前,节点3513开始了向节点3516的Gather通信。由此,等待从节点3510?3513向节点3515的包的发送、即从节点3510?3513向节点3515的Gather通信。
[0387]在不将各节点向目的地节点发送的消息分割为规定大小的包来向目的地节点发送的情况下,从跳数较大的节点向目的地节点发送的包的到达也比从跳数较小的节点向目的地节点发送的包的到达延迟。因此,在不将各节点向目的地节点发送的消息分割为规定大小的包地向目的地节点发送的情况下,通过使用本实施例涉及的并行计算机700,也能够得到图38中说明的效果。
[0388]以上,说明了组群通信中的本实施例涉及的并行计算机700的效果的一例,以下将说明进行组群通信以外的通信时的本实施例涉及的并行计算机700的效果的一例。
[0389]图40表示了图35所示的并行计算机3500的节点3510?3512与分别相距4跳的目的地节点进行通信的情况的例子。
[0390]交换机3522按照包数比均等的方式进行协调。因此,交换机3522将从节点3512接收到的包向目的地节点发送的包数、和交换机3522将从交换机3521接收到的包向目的地节点发送的包数的比率各为I / 2。同样,交换机3521将从节点3511接收到的包向目的地节点发送的包数、和交换机3521将从交换机3520接收到的包向目的地节点发送的包数的比率各为I / 2。最终,节点3512、3511以及3510向目的地节点发送的包数的比率、即包数比分别为I / 2、1 / 4以及I / 4。节点3512、3511以及3510的通信带宽比也分别成为I / 2、1 / 4 以及 I / 4。
[0391]该情况下,节点3512的通信带宽大于节点3510、3511的通信带宽。因此,在交换机3522中,从接收到节点3510、3511向目的地节点发送的包起到向目的地节点发送为止的时间大于从接收到节点3512向目的地节点发送的包起到向目的地节点发送为止的时间。结果,例如即使在与节点3512相比,节点3510向目的地节点发送的消息的大小较小的情况下,也存在节点3512发送的消息到达目的地节点的时刻比节点3510发送的消息到达目的地节点的时刻迟的情况。
[0392]图41是表示在图40所示的并行计算机3500的各交换机间向目的地节点的方向流动的包的时序图的图。设节点3510以及节点3511将4K字节的消息分割成IK字节的包并向分别相距4跳的目的地节点3514以及3515发送。另外,节点3512将8K字节的消息分割成IK字节的消息并向相距4跳的目的地节点3516发送。
[0393]参照图41可知,例如节点3510向目的地节点发送的包数的比率通过多级的交换机协调,在交换机3522 - 3523间的路径中下降。在交换机3522中,从接收到节点3510向目的地节点3514发送的包起到向目的地节点3514发送为止的时间大于从接收到节点3512向目的地节点3516发送的包起到向目的地节点3516发送为止的时间。结果,与节点3512相比,虽然消息3510向目的地节点发送的消息的大小较小,但节点3510向目的地节点3514发送的消息的到达比节点3512向目的地节点3516发送的消息的到达延迟。
[0394]另一方面,图42示出了在本实施例涉及的并行计算机700中,节点710?712与分别相距4跳的目的地节点进行通信的情况的例子。
[0395]并行计算机700例如通过图11中说明的步骤S1102等处理,使到目的地节点为止的跳数较大的节点、即包数比较小的节点向目的地节点发送的包大小变大。由此,包数比较小的节点向目的地节点发送的包的包大小比变大。例如,在图42中,包数比较小的节点710、711的包大小比为2。结果,节点720?722使用的通信带宽比变得均等。不再有成为瓶颈的通信带宽的节点。
[0396]其中,图42所示的包大小比是用于说明的例示,例如能够通过图11的步骤S1102等处理来求出。[0397]图43表示了在图42所示的并行计算机700的各交换机间向目的地节点的方向流动的包的时序图。图43是节点710?712与分别相距4跳的目的地节点714?716进行通信的通信模式的情况的例子。节点710以及711根据需要针对4K字节的消息改变包大小而分别向节点714以及715发送。节点712根据需要针对8K字节的消息改变包大小而分别向节点716发送。
[0398]如图43所示,包数比较小的节点710、711向目的地节点发送的包大小与包数比较大的节点712向目的地节点发送的包大小相比变大。例如,在图43的例子中,节点710以及711分别向目的地节点714以及715发送的包大小为2K字节。另外,节点712向目的地节点716发送的包大小为IK字节。结果,例如交换机722 - 723间的路径中的、节点710?712分别在单位时间使用路径的时间变得均等。节点710?712分别使用的通信带宽比变得均等。结果,例如根据图43的交换机723 - 724间、724 — 725间以及725 — 726间的路径的时序图可知以下情况。即,从节点710向目的地节点714发送的消息、从节点711向目的地节点715发送的消息、以及从节点712向目的地节点716发送的消息的到达时刻被分散而平均化。
[0399]在图40?图43中,示出了交换机能够以直通转发方式动作的例子。与此相对,即使在交换机能够以存储转发(Store and Forward)方式动作的情况下,也能够得到图43中说明的效果。其中,存储转发方式是指交换机在接收到由其他交换机等发送来的全部包后,将本交换机接收到的或者已经接收到的包向下一交换机发送的方式。
[0400]图44是表示图40所示的并行计算机3500的各节点以存储转发方式动作时的、在各交换机间向目的地节点的方向流动的包的时序图。
[0401]即使在节点3520?3526以存储转发方式动作的情况下,也与图41同样,例如节点3510向目的地节点发送的包数的比率通过多级的交换机协调,在交换机3522 — 3523间的路径中下降。在交换机3522中,从接收到节点3510向目的地节点3514发送的包起到向目的地节点3514进行发送为止的时间大于从接收到节点3512向目的地节点3516发送的包起到向目的地节点3516进行发送为止的时间。结果,与节点3512相比,虽然消息3510向目的地节点发送的消息的大小较小,但节点3510向目的地节点3514发送的消息的到达比节点3512向目的地节点3516发送的消息的到达延迟。
[0402]另一方面,图45是表示图42所示的并行计算机700的各节点以存储转发方式动作时的、在各交换机间向目的地节点的方向流动的包的时序图。
[0403]在节点720?726为存储转发方式的情况下,若接收的包的包大小较大,则在等待包的接收完成的期间,形成无法向下一交换机发送包的期间、例如图45所示的区间A。但是,除了该点以外,可以说与图43相同。
[0404]例如,如图45所示,包数比较小的节点710、711向目的地节点发送的包大小与包数比较大的节点712向目的地节点发送的包大小相比较大。例如,在图45的例子中,节点710以及711分别向目的地节点714以及715发送的包大小成为2K字节。另外,节点712向目的地节点716发送的包大小为IK字节。结果,例如交换机722 - 723间的路径中的、节点710?712分别在单位时间使用路径的时间变得均等。节点710?712分别使用的通信带宽比变得均等。结果,例如根据图43的交换机723 - 724间、724 — 725间以及725 —726间的路径的时序图可知如下的情况。即,从节点710向目的地节点714发送的包的到达时刻、从节点711向目的地节点715发送的包的到达时刻、以及从节点712向目的地节点716发送的包的到达时刻被分散而平均化。
[0405]在以上的说明中,跳数表840、响应时间表2030、等待时间表2600以及3100能够列举为节点间的通信方式的一例。
[0406]另外,进行SllOl — S1107的处理等的控制部901、控制部1511以及控制部1711能够列举为计测单元的一例。另外,进行S1401 - S1407的处理等的控制部1211、进行S2301 - S2304的处理等的控制部2103也能够列举为计测单元的一例。另外,进行S2801 —S2803的处理等的处理器2411、进行S3301 — S3304的处理等的控制部3001也能够列举为计测单元的一例。
[0407]另外,进行S1004 - S1006的处理等的控制部901、进行S1304 — S1307的处理等的控制部1211能够列举为控制单元的一例。同样,进行S1604 - S1606的处理等的控制部1511、进行31904 - S1906的处理等的控制部1711也能够列举为控制单元的一例。另外,进行S2207 - S2209的处理等的控制部2103、进行S2701 — S2706的处理等的处理器2411、进行S3204 - S3206的处理等的控制部3001也能够列举为控制单元的一例。
[0408]以上说明的节点710例如在网络构成为环型或网格型的情况下根据式(I)求出包大小。即,到目的地节点为止的跳数越多,节点710使包大小越大。该情况下,到目的地节点为止的跳数越多,则包大小比越大。
[0409]一般在网络构成为环型或网格型的情况下,到目的地节点为止的跳数越多,则包数比越下降。但是,到目的地节点为止的跳数越多,节点710使包大小比越大。结果,节点710按照从本节点到目的地节点的发送包的到达时间和从其他节点到目的地节点的发送包的到达时间平均化的方式动作。
[0410]对于节点711?节点716而言,也进行与节点710同样的动作。
[0411]结果,即使因组群通信等通信集中于一部分交换机而使得包数比下降,节点710?节点716也按照从本节点到目的地节点的发送包的到达时间和从其他节点向目的地节点的发送包的到达时间平均化的方式动作。
[0412]另外,在网络构成为网格型的情况下,当到目的地节点为止的跳数不是I时,例如如图5所示的节点NO和N7的状态那样没有与和目的地节点相同的交换机连接时,节点710根据式(3)求出包大小。该情况下,节点710使包大小变大。
[0413]一般在网络构成为网格型的情况下,与目的地节点所连接的交换机相同的交换机直接连接的节点以外的节点的包数比下降。这如图5中例示那样。
[0414]但是,在网络构成为网格型的情况下,当没有与和目的地节点相同的交换机连接时,节点710使包大小比变大。结果,节点710按照从本节点到目的地节点的发送包的到达时间与从其他节点到目的地节点的发送包的到达时间平均化的方式动作。
[0415]对于节点711?节点716,在网络构成为网格型的情况下,当没有和与目的地节点相同的交换机连接时,也进行与节点710同样的动作。
[0416]结果,在网络构成为网格型的情况下,即使和目的地节点所连接的交换机直接连接的节点以外的节点的包数比下降,节点710?节点716也能够使从本节点到目的地节点的发送包的到达时间和从其他节点到目的地节点的发送包的到达时间平均化。
[0417]在使用了节点1500或1700的并行计算机700的情况下,也与使用了节点710?节点716的并行计算机700同样地动作。因此,使用了节点1500或1700的并行计算机700即使在如组群通信等那样通信集中于一部分节点间的情况下,也能够进行不降低通信性能的节点间通信。并且,使用了节点1500或1700的并行计算机700即使在网络构成为网格型时的组群通信中,也能够不降低通信性能地进行节点间通信。
[0418]节点1200在例如网络构成为环型或网格型的情况下根据式(5)求出包大小。SP,到目的地节点为止的跳数越多,节点1200使包发送间隔越小。在此,若将包大小比认为是在一定时间由作为组群通信的发送源的各节点发送的包的总量的比率,则包发送间隔越小,包大小比越大。
[0419]一般在网络构成为环型或网格型的情况下,到目的地节点为止的跳数越多,则包数比越下降。但是,到目的地节点为止的跳数越多,则节点1200使包大小比越大。结果,节点1200按照从本节点到目的地节点的发送包的到达时间和从其他节点到目的地节点的发送包的到达时间平均化的方式动作。
[0420]另外,节点1200在网络构成为网格型的情况下,当到目的地节点为止的跳数不是I时,例如如图5所示的节点NO和N7的状态那样没有和与目的地节点相同的交换机连接时,通过步骤S1405求出。该情况下,节点1200使包发送间隔小于在通常的通信中使用的既定值。
[0421]一般在网络构成为网格型的情况下,和与目的地节点所连接的交换机相同的交换机直接连接的节点以外的节点的包数比下降。这如图5中所例示那样。
[0422]但是,节点1200在网络构成为网格型的情况下,当没有和与目的地节点相同的交换机连接时,通过使包发送间隔变小来使包大小比变大。结果,节点1200按照从本节点到目的地节点的发送包的到达时间和从其他节点到目的地节点的发送包的到达时间平均化的方式动作。
[0423]节点2020根据式(10)求出包大小。即,计数得到的响应时间越大,则节点2020使包大小越大。该情况下,计数得到的响应时间越大,则包大小比越大。
[0424]—般认为计测得到的响应时间越大,则作为通信路径中的交换机的协调结果,包数比越下降。但是,计测得到的响应时间越大,节点2020使包大小比越大。结果,节点2020能够使从本节点到目的地节点的发送包的到达时间和从其他节点到目的地节点的发送包的到达时间平均化。
[0425]节点2410根据式(12)求出包大小。即,向目的地节点发送的包的等待时间的平均值越大,则节点2410使包大小越大。该情况下,向目的地节点发送的包的等待时间的平均值越大,则包大小比越大。
[0426]—般认为向目的地节点发送的包的等待时间的平均值越大,则作为通信路径中的交换机的协调结果,包数比越下降。但是,向目的地节点发送的包的等待时间的平均值越大,则节点2410使包大小比越大。其结果,节点2410能够使从本节点到目的地节点的发送包的到达时间和从其他节点到目的地节点的发送包的到达时间平均化。
[0427]在使用了节点2910的并行计算机2400的情况下,也进行与使用了节点2410的并行计算机2400同样的动作。
[0428]如上所述,通过使用本实施例涉及的并行计算机,能够进行使向目的地节点发送的数据的到达时间平均化的节点间通信。
【权利要求】
1.一种并行计算机,其具有进行运算处理的多个节点,并将该节点间连接成相互能够通信,所述节点具备:计测单元,其基于所述节点间的通信方式来计测到各目的地节点的通信带宽;和控制单元,其按照所述计测单元计测出的通信带宽来控制向目的地节点发送的包大小。
2.根据权利要求1所述的并行计算机,其特征在于,所述计测单元基于在作为通信源的第I节点与作为该第I节点的通信目标的第2节点之间的通信路径中夹设的包的转送单元的数量来计测所述通信带宽。
3.根据权利要求1所述的并行计算机,其特征在于,所述计测单元基于从作为通信源的第I节点向作为该第I节点的通信目标的第2节点发送了包开始到所述第I节点从所述第2节点接收到针对该包的响应包为止的响应时间来计测所述通信带宽。
4.根据权利要求1所述的并行计算机,其特征在于,所述计测单元取得从由与自 身连接的转送单元接收到包开始到向与自身连接的其他转送单元转送该包为止的等待时间,基于该等待时间来计测所述通信带宽。
5.根据权利要求1所述的并行计算机,其特征在于,所述控制单元根据所述计测单元计测的与目的地节点之间的通信带宽,来增大所述节点向所述目的地节点发送的包的大小。
6.根据权利要求1所述的并行计算机,其特征在于,所述控制单元根据所述计测单元计测的与目的地节点之间的通信带宽,来增大所述节点向所述目的地节点发送包的发送间隔。
7.根据权利要求2所述的并行计算机,其特征在于,还具备存储单元,该存储单元存储包含在所述第I节点与所述第2节点之间的通信路径中夹设的所述转送单元的个数的信息,所述计测单元从所述存储单元所存储的信息取得在所述第I节点与所述第2节点之间夹设的所述转送单元的个数,基于该取得的所述转送单元的个数来计测与目的地节点之间的通信带宽。
8.根据权利要求2所述的并行计算机,其特征在于,还具备计算单元,该计算单元基于包含所述节点的网络中的所述第I节点与所述第2节点的位置关系来计算在所述第I节点与所述第2节点之间的通信路径中夹设的所述转送单元的个数,所述计测单元从所述计算单元取得在所述第I节点与所述第2节点之间夹设的所述转送单元的个数,基于该取得的所述转送单元的个数来计测所述通信带宽。
9.根据权利要求2所述的并行计算机,其特征在于,还具备:发送单元,其将调查用包向所述第2节点发送,该调查用包包含对每当经由所述转送单元便被该转送单元更新的计数值进行保持的计数值区域;和接收单元,其接收针对所述调查用包的响应包,在该响应包中,所述调查用包所包含的所述数值区域中保持的所述计数值由所述第2节点设定,所述计测单元从所述接收单元接收到的响应包取得在所述第I节点与所述第2节点之间夹设的所述转送单元的个数,基于该取得的所述转送单元的个数来计测所述通信带宽。
10.根据权利要求3所述的并行计算机,其特征在于,还具备:存储单元,其夹设在所述第I节点与所述第2节点之间的通信路径,存储基于包的转送单元的个数的标准的响应时间;和计数单元,其对所述响应时间进行计数,所述计测单元将所述存储单元存储的标准的响应时间与所述计数单元计数得到的所述响应时间进行比较,基于该比较的结果来计测所述通信带宽。
11.一种通信控制装置,其在具有进行运算处理的多个节点,并将该节点间连接成能够相互通信的并行计算机中,对所述节点的通信进行控制,其中,该通信控制装置具备:计测单元,其基于所述节点间的通信方式来计测节点间的通信带宽;和控制单元,其按照所述计测单元的计测结果来控制在节点间发送的包大小。
12.根据权利要求11所述的通信控制装置,其特征在于,所述计测单元基于在通信源节点与该第I节点的通信目标节点之间的通信路径中夹设的包的转送单元的个数来计测所述通信带宽。
13.根据权利要求11所述的通信控制装置,其特征在于,所述计测单元基于从通信源节点向该第I节点的通信目标节点发送了包开始到所述通信源节点从所述通信目标节点接收到针对该包的响应包为止的响应时间来计测所述通 信带宽。
14.根据权利要求11所述的通信控制装置,其特征在于,所述计测单元从对通信源节点发送的包进行转送的转送单元取得自接收到该包开始到向其他转送单元进行转送为止的等待时间,并基于该等待时间来计测所述通信带宽。
15.一种通信控制方法,是在具有进行运算处理的多个节点,并将该节点间连接成能够相互通信的并行计算机中对所述节点的通信进行控制的通信控制方法,其中,基于所述节点间的通信方式来计测通信带宽,按照所述计测结果来控制包大小。
16.根据权利要求15所述的通信控制方法,其特征在于,基于在作为通信源的第I节点与作为该第I节点的通信目标的第2节点之间的通信路径中夹设的包的转送单元的个数来计测所述通信带宽。
17.根据权利要求15所述的通信控制方法,其特征在于,基于从作为通信源的第I节点向作为该第I节点的通信目标的第2节点发送了包开始到所述第I节点从所述第2节点接收到针对该包的响应包为止的响应时间来计测所述通信带宽。
18.根据权利要求15所述的通信控制方法,其特征在于,从对作为通信源的第I节点发送的包进行接收并转送的转送单元取得自接收到该包开始到向其他转送单元进行转送为止的等待时间,并基于该等待时间来计测所述通信带
【文档编号】H04L12/931GK103444142SQ201180069370
【公开日】2013年12月11日 申请日期:2011年3月22日 优先权日:2011年3月22日
【发明者】平本新哉, 追永勇次, 安岛雄一郎, 井上智宏 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1