计算机系统、通信控制装置以及计算机系统的控制方法

文档序号:6485419阅读:181来源:国知局
计算机系统、通信控制装置以及计算机系统的控制方法
【专利摘要】本发明提供计算机系统、通信控制装置以及计算机系统的控制方法。在输出数据的情况下,更新发送节点数存储部(16)存储的发送节点数,输入部(11)输入的数据所包含的发送节点数与发送节点数存储部(16)存储的发送节点数的比较的结果,在发送节点数存储部(16)存储的发送节点数比输入部(11)输入的数据所包含的发送节点数大的情况下,将输出部(12)输出的数据所包含的发送节点数改写为发送节点数存储部(16)存储的发送节点数,由此高效地实现与通信路径上的通信状态一致的辐辏控制。
【专利说明】计算机系统、通信控制装置以及计算机系统的控制方法
【技术领域】
[0001]本发明涉及计算机系统、通信控制装置以及计算机系统的控制方法。
【背景技术】
[0002]以往,已知有具备进行运算处理的多个节点的并行计算机。并行计算机所具备的节点经由包括多个通信设备、路由装置(例如,交换机)等的网络而连接,相互进行数据通?目。
[0003]图34是表示并行计算机500的构成例的图。
[0004]该图34所示并行计算机500具备:进行计算的节点NO~Ν4、和将接收到的数据转送至特定的发送目的地的节点的交换机510~514。交换机510~514构成将交换机配置在直线上的一维网状型网络来作为网络拓扑。
[0005]交换机若从连接有节点、其他交换机的输入端口接收包,则基于接收到的包内所包含的目的地信息,来决定输出包的输出端口。然后,交换机向决定的输出端口输出包。
[0006]此外,交换机具备暂时存放接收到的数据和输出的数据的缓冲区520,在引起输出冲突的情况下,选择一个包进行转送,在此期间内,将冲突的其他包存放于缓冲区520。
[0007]在接收到多个要向相同的输出端口输出的包的情况下,交换机进行调解,以使得从各输入端口向输出端口输出的包的个数均等。然后,交换机根据调解结果,从输出端口发送包。
[0008]在网络中,若将超过了每单位时间流过链路的量的包进行通信,则发生辐辏。
[0009]在上述的并行计算机500中,若通信集中于一部交换机,则越是到通信集中的交换机为止的跳数较大的节点,通信带宽越较大地下降。该情况下,与来自跳数较小的节点的数据相比,从跳数较大的节点到目的地节点的数据的到达延迟。
[0010]图35是表示节点NO和节点Ν3对节点Ν4发送数据的例子的图。
[0011]通常,交换机以将来自各输入端口的包均等地输出的方式进行调解。即,交换机以向各输入端口输入的包的向输出端口的输出数均等,即成为1/2的方式进行所输入的包的调解。因此,从节点Ν3发送给交换机513并且从交换机513发送给交换机514的包个数为从交换机513发送给交换机514的全部包个数的1/2。
[0012]在图35所示的例子中,在从交换机513到节点Ν4间的路径中,从节点NO发送来的包和从节点Ν3发送来的包交叠,节点NO和节点Ν3能够使用的通信频带分别成为1/2。但是,由于节点Ν0、Ν3以最大的频带持续输出包,所以缓冲区520成为已满(缓冲区已满)的状态。下面,有时将缓冲区已满的状态表现为缓冲区520阻塞。
[0013]而且,在发生了缓冲区520的阻塞的情况下,例如,在从接收发送目的地的缓冲区520空闲这样的通知开始进行包的发送的通信控制方法中,产生通知的延迟。另一方面,在不确认发送目的地的缓冲区520空闲地进行包发送的通信控制方法中,在发送目的地的缓冲区520已满的状态下包被废弃,所以产生再送包的需要。即,由于这些通知的延迟或包的再送,而产生通信性能的恶化。[0014]此外,由于缓冲区520的阻塞,使其他节点的通信也受到影响。例如,在交换机511、512的缓冲区520阻塞的情况下,节点N1、N2间的通信必须等待至缓冲区520中产生空闲为止。即,使辐辏传播。
[0015]这里,已知有在包之间放入特殊的间隙包,基于所放入的间隙包,调整包个数,从而抑制数据的废弃以及数据的再送的转送方法。
[0016]非专利文献1: “ JCNnetwork =工业技术综合研究院,将使网络流量平滑化的软件PSPacerl.0 公开=,,,URL: “http://www.japancorp.net/japan/Article.Asp ? Art_ID =29900”

【发明内容】

[0017]如上述那样在并行计算机系统中,向包之间插入何种程度的间隙较好则取决于包的发送源和发送目的地的组合(通信模式)。然而,难以预先在通信模式中预测通信以何种程度交叠来决定间隙区间。此外,若通信模式是随机等不规则的模式,则预测包的通信的交叠变得更加困难。
[0018]在一个方面,本案的目的在于抑制辐辏的发生。
[0019]另外,不限于上述目的,由用于实施后述的发明的方式所示的各构成而推导出的作用效果,且实现了从现有技术无法获得的作用效果也能够作为本发明的一个其他目的而定位。
[0020]为了达到上述的目的,在分别具备多个通信控制装置、经由上述通信控制装置而发送数据的发送源的计算节点、以及经由上述通信控制装置来接收数据的发送目的地的计算节点的计算机系统中,上述发送源的计算节点具有:数据发送部,其向上述发送目的地的计算节点发送数据;和调整部,其基于接收到的控制数据所包含的发送节点数,来调整上述数据发送部发送的数据间的间隔,上述通信控制装置具有:输入部,其输入上述发送源的计算节点所发送的数据;输出部,其输出向上述发送目的地的计算节点发送的数据;发送节点数存储部,其存储发送节点数,该发送节点数表示经由上述通信控制装置来发送数据的计算节点的个数;更新处理部,在上述输出部输出数据的情况下,该更新处理部更新上述发送节点数存储部存储的发送节点数;比较部,其比较上述输入部输入的数据所包含的发送节点数和上述发送节点数存储部存储的发送节点数;以及改写部,基于上述比较部的比较的结果,在上述发送节点数存储部存储的发送节点数比上述输入部输入的数据所包含的发送节点数大的情况下,该改写部将上述输出部输出的数据所包含的发送节点数改写成上述发送节点数存储部存储的发送节点数,上述发送目的地的计算节点具有控制数据发送部,该控制数据发送部将包含接收到的数据所包含的发送节点数的上述控制数据发送至上述发送源的计算节点。
[0021]此外,在通信控制装置中,具有:输入部,其输入经由上述通信控制装置来发送数据的发送源的计算节点所发送的数据;输出部,其输出向经由上述通信控制装置来接收数据的发送目的地的计算节点发送的数据;发送节点数存储部,其存储发送节点数,该发送节点数表示经由上述通信控制装置来发送数据的计算节点的个数;更新处理部,在上述输出部输出数据的情况下,该更新处理部更新上述发送节点数存储部所存储的发送节点数;t匕较部,其比较上述输入部输入的数据所包含的发送节点数和上述发送节点数存储部存储的发送节点数;以及改写部,基于上述比较部的比较的结果,在上述发送节点数存储部存储的发送节点数比上述输入部输入的数据所包含的发送节点数大的情况下,该改写部将上述输出部输出的数据所包含的发送节点数改写成上述发送节点数存储部存储的发送节点数。
[0022]另外,在分别具有多个通信控制装置、经由上述通信控制装置来发送数据的发送源的计算节点、以及经由上述通信控制装置来接收数据的发送目的地的计算节点的计算机系统的控制方法中,上述发送源的计算节点具有的数据发送部向上述发送目的地的计算节点发送数据,上述发送源的计算节点具有的调整部基于接收到的制数据所包含的发送节点数,来调整上述数据发送部发送的数据间的间隔,上述通信控制装置具有的输入部输入上述发送源的计算节点所发送的数据,上述通信控制装置具有的发送节点数存储部存储表示经由上述通信控制装置来发送数据的计算节点的个数的发送节点数后,上述通信控制装置具有的输出部输出向上述发送目的地的计算节点发送的数据,在上述输出部输出数据的情况下,上述通信控制装置具有的更新处理部更新上述发送节点数存储部所存储的发送节点数,上述通信控制装置具有的比较部比较上述输入部输入的数据所包含的发送节点数和上述发送节点数存储部存储的发送节点数,根据上述比较部的比较的结果,在上述发送节点数存储部存储的发送节点数比上述输入部输入的数据所包含的发送节点数大的情况下,上述通信控制装置具有的改写部将上述输出部输出的数据所包含的发送节点数改写成上述发送节点数存储部存储的发送节点数,上述发送目的地的计算节点具有的控制数据发送部将包含接收到的数据所包含的发送节点数的上述控制数据发送至上述发送源的计算节点。
[0023]能够高效地实现与通信路径上的通信状态一致的辐辏控制。
【专利附图】

【附图说明】
[0024]图1是示意性地表示作为第I实施方式的一例的并行计算机系统的功能构成的图。
[0025]图2是示意性地表示作为第I实施方式的一例的并行计算机系统的构成的图。
[0026]图3是示意性地表示作为第I实施方式的一例的并行计算机系统的计算节点的构成的图。
[0027]图4是示意性地例示作为第I实施方式的一例的并行计算机系统中的发送包的格式的图。
[0028]图5是例示作为第I实施方式的一例的并行计算机系统中的本地节点地址以及远程节点地址的格式的图。
[0029]图6是例示作为第I实施方式的一例的并行计算机系统中的路由报头的格式的图。
[0030]图7是示意性地例示作为第I实施方式的一例的并行计算机系统中的响应包的格式的图。
[0031]图8是示意性地表示作为第I实施方式的一例的并行计算机系统的交换机的构成的图。
[0032]图9是示意性地表示作为第I实施方式的一例的并行计算机系统中的发送节点数存储部的功能构成的图。
[0033]图10是表示作为第I实施方式的一例的并行计算机系统中的发送节点数存储部的变形例的图。
[0034]图11的图11A、图11B、图1lC是说明作为第I实施方式的一例的并行计算机系统中的包的通信方法的概要的图。
[0035]图12是说明作为第I实施方式的一例的并行计算机系统中的交换机的端口接收部的处理的流程图。
[0036]图13是说明作为第I实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0037]图14是例示作为第I实施方式的一例的并行计算机系统中的包的发送状态的图。
[0038]图15是示意性地例示作为第2实施方式的一例的并行计算机系统中的发送包的格式的图。
[0039]图16是说明作为第2实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0040]图17是示意性地例示作为第3实施方式的一例的并行计算机系统中的发送包的格式的图。
[0041]图18是说 明作为第3实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0042]图19是示意性地表示作为第4实施方式的一例的并行计算机系统的计算节点的构成的图。
[0043]图20是示意性地例示作为第4实施方式的一例的并行计算机系统中的发送包的格式的图。
[0044]图21是示意性地表示作为第4实施方式的一例的并行计算机系统中的发送节点数存储部的功能构成的图。
[0045]图22是示意性地例示作为第4实施方式的一例的并行计算机系统中的响应包的格式的图。
[0046]图23是说明作为第4实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0047]图24是示意性地表示作为第5实施方式的一例的并行计算机系统的构成的图。
[0048]图25是示意性地表示作为第5实施方式的一例的并行计算机系统所具备的交换机的硬件构成的图。
[0049]图26是示意性地表示作为第5实施方式的一例的并行计算机系统的发送包中存储的发送节点数的格式例的图。
[0050]图27是说明作为第5实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0051]图28是说明作为第6实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0052]图29是示意性地表示作为第7实施方式的一例的并行计算机系统中的计算节点的构成的图。
[0053]图30是示意性地例示作为第7实施方式的一例的并行计算机系统中的发送包的格式的图。[0054]图31是表示作为第7实施方式的一例的并行计算机系统中的发送节点数存储部的构成的图。
[0055]图32是说明作为第7实施方式的一例的并行计算机系统中的为发送源节点的计算节点的网络接口的处理的流程图。
[0056]图33是说明作为第7实施方式的一例的并行计算机系统中的端口发送部的处理的流程图。
[0057]图34是表示并行计算机的构成例的图。
[0058]图35是表示节点NO和节点N3对节点N4发送数据的例子的图。
【具体实施方式】
[0059]以下,参照附图,对本计算机系统、通信控制装置以及计算机系统的控制方法所涉及的实施方式进行说明。但是,以下所示的实施方式终究只是例示,并未将实施方式中未明示的各种变形例和技术的应用排除。即,在不脱离其宗旨的范围内能够对本实施方式进行各种变形(组合实施方式以及各变形例等)并实施。此外,各图并不是仅具备图中所示的构成要素这样的内容,能够包括其他功能等。
[0060](A)第I实施方式
[0061]图1是示意性地表示作为第I实施方式的一例的并行计算机系统I的功能构成的图,图2是示意性地表示其构成的图。
[0062]如图2所示,并行计算机系统I由将多个(图2所示的例子中为5个)计算节点200经由I个以上(图2所示的例子中为5个)的路由装置(通信控制装置)100以能够相互通信的方式连接的互连网络构成。
[0063]g卩,由将5个计算节点200-0?200-4经由5个交换机100_0?100_4以能够相
互通信的方式连接的互连网络构成。
[0064]在图2所示的例子中,作为将路由装置100-0?100-4配置成一维直线状的一维网状而形成网络2,各路由装置100-0?100-4分别与计算节点200-0?200-4连接。SP,路由装置 100-0、100-1、100-2、100-3、100-4 分别与计算节点 200-0、200-1、200-2、200_3、200-4连接。
[0065]另外,在本实施方式中,并行计算机系统I所具备的多个计算节点200-0?200-4彼此具备相同的构成,此外,多个路由装置100-0?100-4也彼此具备相同的构成。
[0066]以下,作为表示路由装置的符号,在需要确定多个路由装置中的一个时使用符号100-0?100-4,但是当指代任意的路由装置时使用符号100。同样地,以下,作为表示计算节点的符号,当需要确定多个计算节点中的一个时使用符号200-0?200-4,但是当指代任意的计算节点时使用符号200。
[0067]各计算节点200经由路由装置100以能够相互通信的方式连接。以下,存在仅将包括节点200和路由装置100的网络的一部分或者全部称为网络2的情况。此外,在图2中,为了方便,仅图示交换机100的一部分的构成。
[0068]计算节点200是进行任意的运算处理的运算装置等信息处理装置。计算节点200具备一般的信息处理装置所具备的构成要素,例如,处理器、主存储装置等。
[0069]计算节点200经由网络接口 203以能够通信的方式而与路由装置100连接。由此,能够在本并行计算机系统I内的任意的计算节点200间收发数据。即,在本并行计算机系统I中,任意一个计算节点200都能够既作为数据的发送源,又作为发送目的地发挥作用。
[0070]这里,将在节点间通信中请求通信的侧的节点称为本地节点,将在节点间通信中接受来自本地节点的通信请求的侧的节点称为远程节点。
[0071]以下,存在将数据的发送源的计算节点200称为本地节点,将数据的发送目的地的计算节点200称为远程节点的情况。
[0072]而且,如图1所示,作为发送源节点的计算节点200具备作为包发送部21和间隙调整部22的功能。
[0073]包发送部21对发送目的地的计算节点200发送包。后述的包发送部206作为该包发送部21发挥作用。
[0074]间隙调整部(调整部)22基于从发送节点数发送部23发送来的发送节点数,来调整发送的数据间的间隔(间隙)。后述的间隙控制部207作为该间隙调整部22发挥作用。另外,所谓间隙是指不发送包的区间。
[0075]此外,如图1所示,作为发送目的地节点的计算节点200具备发送节点数发送部
23。该发送节点数发送部23将从接收到的包读出的发送节点数发送给发送源的计算节点200。后述的包接收部208和包发送部206作为该发送节点数发送部23发挥作用。
[0076]图3是示意性地表示作为第I实施方式的一例的并行计算机系统I的计算节点200的构成的图。
[0077]如该图3所示,第I实施方式的计算节点200具备处理器201、主存储装置202以及网络接口 203。
[0078]在本并行计算机系统i中,从各计算节点200发送的数据以分割成包的状态被收发。此外,能够对该包的包长进行适当地设定,此外,能够作为固定长或者可变长适当地实施。以下,在本实施方式中,对包为固定长的例子进行说明。
[0079]处理器201是按照规定的程序进行运算处理的运算处理装置。处理器201依次获取网络接口 203接收的包,并进行运算处理。此外,处理器201在需要向其他计算节点200发送数据的情况下,对该数据进行分割后生成包含目的地地址的包,并经由网络接口 203输出。
[0080]在节点间进行通信时,本地节点的处理器201向网络接口 203的控制部205发送消息发送指示。消息发送指示中包含例如通信的种类等的信息。
[0081]主存储装置202是存储各种数据、程序等的存储器。此外,在处理器201进行运算处理时,在该主存储装置202中暂时地存放、展开该处理器201执行的程序、数据。主存储装置202能够包括实现DMA (Direct Memory Access:直接存储器存取)转送的DMA电路,该DMA转送不经由处理器201,将主存储装置202保持的数据转送至网络接口 203。
[0082]网络接口 203是用于使计算节点200经由网络2而与其他计算节点200进行通信的接口。
[0083]如图3所示,网络接口 203具备:DMA控制器204、控制部205、包发送部206、间隙控制部207以及包接收部208。
[0084]DMA控制器204若被后述的控制部205通知进行DMA的数据的地址和数据长,则对主存储装置202指定控制部205通知的地址和数据长,进行DMA请求。这样,主存储装置202将存放于指定的地址中的指定的数据长的数据DMA转送至DMA控制器204。DMA控制器204将从主存储装置202被DMA转送的数据发送至包发送部206。
[0085]控制部205若从处理器201收到包发送指示,则控制DMA控制器204、包发送部206、包接收部208等,进行包的收发处理。在进行包的发送处理的情况下,控制部205将通过指定一个包所包含的数据的数据长而发送的数据读入至DMA控制器204和包发送部206。在本实施方式中,从计算节点200发送的包的长度(大小)是固定的。
[0086]控制部205若接收到发送的数据,则创建向数据附加报头的包(发送包),并将该创建的包发送至包发送部206,并向网络2发送。
[0087]图4是示意性地例示作为第I实施方式的一例的并行计算机系统I中的发送包的格式的图。此外,图5是例示本地节点地址和远程节点地址的格式的图,图6是例示路由报头的格式的图。
[0088]如图4所示,例如发送包具备分别存放包类型、路由报头、本地节点地址、远程节点地址、偏移、发送节点数以及净负荷的字段。包类型是表示该包的种类的信息,例如,表示是Put请求(Put通信)中使用的包或Get请求(Get通信)中使用的包。
[0089]这里,所谓Put通信,表示本地节点指定本身和远程节点的主存储装置202的区域,并将本地节点的主存储装置202的数据写入至远程节点的主存储装置202的区域的通?目。
[0090]此外,所谓Get通信,表示本地节点指定本身和远程节点的主存储装置202的区域,并将远程节点的主存储装置202的数据写入至本地节点的主存储装置202的区域的通 信。
[0091]本地节点地址是表示该包的发送节点数源节点的地址(节点地址)的信息,远程节点地址是表示该包的发送目的地节点的地址的信息。这些节点地址例如由各维坐标值来表不。
[0092]在本实施方式中,网络2具备由X和Y构成的二维环面或者网状拓扑,如图5所示,节点地址由X、Y的坐标值来表示。
[0093]路由报头是指定该包的路径的信息,例如,是表示在将网络2上的该包的发送源节点(本地节点)的位置设为原点时的远程节点的位置的坐标值。该路由报头例如由各维度坐标值来表示。
[0094]在本实施方式中,如前述那样,网络2具备由维度X和维度Y构成的二维环面或者网状拓扑,如图6所示,路由报头由DX、DY的坐标值来表示。
[0095]而且,路由装置100基于存放在该路由报头中的信息来决定发送包的端口。
[0096]发送节点数是网络2中的正在发送包的计算节点200的个数。
[0097]如后述那样,在发送包经过路由装置100时,将该发送节点数与该路由装置100所保持的发送节点数进行比较,在存储在路由装置100中的发送节点数比发送包中的发送节点数大的情况下,利用路由装置100的发送节点数来改写包的发送节点数。即,在由路由装置100转送时,包内的发送节点数被该路由装置100更新。
[0098]这样,包的发送节点数表示经过该包的经过路径上的包的发送源的计算节点200的个数。而且,该包中的发送节点数与存放在该包经过的各路由装置100中的发送节点数的最大值相等。[0099]净负荷是根据需要来分割发送源节点对发送目的地节点发送的消息(数据来源)而得到的数据。偏移是指定用于存放净负荷的主存储装置202的地址的信息。
[0100]包接收部208接收从其他计算节点200等经由网络2而发送来的包,并进行将其净负荷传递给处理器201等的接收处理。
[0101]此外,包接收部208在该计算节点200接收到发送包的状态下,即,在该计算节点200是发送目的地节点的状态下,从接收到的包读出发送节点数,并传递给包发送部206。此外,包接收部208在该计算节点200发送了发送包的状态下,即,在该计算节点200是发送源节点的状态下,接收从发送目的地节点发送的响应包(后述),读出该响应包所包含的发送节点数并传递给间隙控制部207。
[0102]包发送部206在该计算节点200是发送源节点的状态下,将由控制部205创建的包发送至目的地的计算节点200。
[0103]此外,包发送部206在该计算节点200是发送目的地节点的状态下,对接收到的包的发送源的计算节点200创建响应包并进行发送。
[0104]图7是示意性地例示作为第I实施方式的一例的并行计算机系统I中的响应包的格式的图。
[0105]如图7所示,该响应包例如具备存放包类型、路由报头、本地地址、远程地址以及发送节点数的字段。存放在该响应包中的各信息与使用图4说明的发送包所包含的各信息相同,因此省略其 详细的说明。
[0106]另外,存放在该响应包中的发送节点数使用从包接收部208接收到的包(发送包)读出的值。
[0107]间隙控制部207基于从响应包读出的发送节点数,来决定从包发送部206发送的多个包之间的发送间隔(间隙长)。具体而言,间隙控制部207基于下式(I)来决定向包之间插入的间隙长。
[0108]间隙长=包大小X (发送节点数-1)...(]_)
[0109]间隙控制部207在从包发送部206连续发送的包之间插入如上述那样决定的长度的间隙。具体而言,例如,通过使从包发送部206发送的包的输出定时延迟所计算的间隙长的量,将如上述那样计算的长度的间隙插入至从包发送部206输出的包之间。另外,在包长可变化的情况下,例如,能够考虑将预先设定的基准长用作包大小,来适当变形进行实施。
[0110]路由装置100是与计算节点200或其他路由装置100以能够通信的方式连接,并将接收到的包(数据)转送到规定的目的地的通信控制装置(中继装置)。作为路由装置100,例如,使用交换机。以下,也将路由装置100表示为交换机100。
[0111]图8是示意性地表示作为第I实施方式的一例的并行计算机系统I的交换机100的构成的图。该图8所例示的交换机100是用于一维网状的网络的3端口的交换机100,具备网络端口 101-1、101-2和节点端口 110。
[0112]而且,如图1所示,该交换机100具备作为输入部11、输出部12、比较部13、改写处理部14、更新处理部15以及发送节点数存储部16的功能。
[0113]网络端口 101-1、101-2进行与网络2的其他交换机100的包的授受。这些网络端口 101-1、101-2彼此具备相同的构成。以下,作为表示网络端口的符号,在需要确定多个网络端口中的一个时使用符号101-1、101-2,但是在指代任意的网络端口时使用符号101。[0114]如图8所示,网络端口 101具备端口发送部102和端口接收部106。
[0115]端口接收部106进行从经由网络2而连接的其他交换机100发送来的包的接收。SP,该端口接收部106相当于输入被转送的包的输入部11。
[0116]该端口接收部106具备缓冲区107和接收控制部108。缓冲区107是存放从连接的其他交换机100发送来的包的FIFO (First In,First Out)型的存储器。
[0117]接收控制部108进行接收来自其他交换机100的包,并存放于缓冲区107的控制。此外,接收控制部108也进行将存放在缓冲区107中的包对与该包的发送目的地对应的网络端口 101、节点端口 110发送出的控制。
[0118]该接收控制部108针对从其他交换机100发送的发送请求,若成为能够将包存放于缓冲区107的状态,则返回发送许可。然后接收从其他交换机100发送的包并存放于缓冲区107。
[0119]接收控制部108参照接收到的包的路由报头、远程地址,来决定转送目的地的网络端口 101、计算节点200。然后对决定的网络端口 101的端口发送部102的发送控制部104、节点端口 110的端口发送部111的发送控制部113发送出发送请求。接收控制部108若从这些发送控制部104、发送控制部113接收到发送许可,则将存放在缓冲区107中的包向网络端口 101的端口发送部102、节点端口 110的端口发送部111发送出。
[0120]端口发送部102对经由网络2而连接的其他交换机100进行包的发送。
[0121]即,该端口发送部102相当于输出所转送的包的输出部12。该端口发送部102具备缓冲区103、发送控制部104以及发送节点数存储部105。缓冲区103是存放向连接的其他交换机100发送出的包的FIFO型的存储器。
[0122]发送控制部104进行将存放在缓冲区103中的包向其他交换机100发送出的控制。
[0123]该发送控制部104从其他的端口发送部102的端口接收部106接收向其他交换机100发送的包以及发送请求,根据该发送请求,向其他交换机100发送包。发送控制部104在向其他交换机100发送包时,向该交换机100发送出发送请求,若从该交换机100接收到发送许可,则发送出存放在缓冲区103中的包。此外,发送控制部104若从其他网络端口101的端口接收部106接收到发送请求,并且为能够将包存放于缓冲区103的状态,则向该端口接收部106的接收控制部108发送出发送许可。
[0124]此外,发送控制部104从存放在缓冲区103中的包提取远程节点地址(发送节点地址)和发送节点数,基于这些信息来进行发送节点数存储部105的发送状态信息的更新。另外,之后再详细叙述由该发送控制部104进行的发送状态信息的更新方法。
[0125]发送节点数存储部105基于经过该交换机100的包,来管理与经过该交换机100的包相关的、表示发送源节点的状态的信息,即发送状态信息。该发送节点数存储部105例如是存储器等的存储部。
[0126]图9是示意性地表示作为第I实施方式的一例的并行计算机系统I中的发送节点数存储部105的功能构成的图。
[0127]如图9所示,发送节点数存储部105具备计数器121和发送节点信息存储部122。
[0128]如图9所示,发送节点信息存储部122是对将节点地址等的确定计算节点200的信息和表示该计算节点200是否正在发送包的信息建立对应的发送节点状态信息(发送节点信息、发送状态信息)进行存储的存储部。作为表示计算节点200是否正在发送包的信息,例如,存放表示“发送中”或者“无发送”的任意一个的信息。此外,该发送节点信息存储部122例如通过存储器等存储电路来实现。
[0129]而且,在网络端口 101中,当端口发送部102的发送控制部104向其他交换机100发送包时,在发送节点信息存储部122中,与该包的发送目的地节点建立对应地设定成“发送中”。
[0130]另外,在并行计算机系统i中,预先可知网络2的构成。因此,能够在发送节点信息存储部122中预先设定可成为经过该交换机100的包的发送源节点的计算节点200。
[0131]计数器121是对网络2中正在发送经由该交换机100的包的计算节点200的个数(发送节点数;发送状态信息)进行计数的计数器。该计数器121根据来自发送控制部104的递增计数指示或递减计数指示,进行该计数值的递增计数或递减计数。具体而言,根据从发送控制部104发送的递增计数信号或递减计数信号,进行计数值的递增计数或递减计数。
[0132]例如,发送控制部104在向其他交换机100发送包时,通过对计数器121发送指示递增计数的递增计数信号,使计数器121进行递增计数。
[0133]此外,在本第I实施方式中,发送控制部104使用未图示的定时器来测定从将针对发送源节点的发送节点状态信息存放于发送节点数存储部105开始的经过时间。而且,发送控制部104例如若检测到从该发送源节点未发送预先设定的规定时间包,则在发送节点信息存储部122中,对该发送源节点设定“无发送”。此外,在具备计数器121的情况下,与此同时,发送控制部104对计数器121发送指示递减计数的递减计数信号,使发送节点数递减计数。
[0134]即,发送控制部104作为在从输出部输出数据时,更新发送节点数存储部105中的计数器121的发送节点数、发送节点信息存储部122的信息的更新处理部15发挥作用。
[0135]另外,计数器121的值与发送节点信息存储部122中存储为“发送中”的发送源节点的个数相等。因此,通过对该发送节点信息存储部122中存储为“发送中”的发送源节点的个数进行计数,能够在发送节点数存储部105中省略计数器121。
[0136]图10是表示作为第I实施方式的一例的并行计算机系统I中的发送节点数存储部105的变形例的图。作为该图10所示的第I实施方式的一例的并行计算机系统I的发送节点数存储部105从第I实施方式的发送节点数存储部105去掉了计数器121,仅具备发送节点信息存储部122。
[0137]在具备作为该变形例的发送节点数存储部105的交换机100中,例如在发送控制部104中,通过对发送节点数存储部105中存储为“发送中”的发送源节点的个数进行计数来求出发送节点数。由此,在发送节点数存储部105中,能够省略计数器121的安装,使装置构成简单化,从而降低制造成本。
[0138]而且,节点数存储部105相当于对表示网络2中正在发送经由该交换机100的数据的计算节点200的个数的发送节点数进行存储的发送节点数存储部16。
[0139]此外,如图1所示,发送控制部104具备作为比较部13和改写处理部14的功能。
[0140]比较部13比较在网络端口 101的端口发送部102中发送的包的发送节点数与发送节点数存储部105的计数器121的计数器值。[0141]改写处理部14根据比较部13的比较的结果,若计数器121的计数器值比发送的包的发送节点数大,则利用计数器121的计数器值来改写包的发送节点数。
[0142]另外,如图10所示,在发送节点数存储部105不具备计数器121的情况下,代替计数器121的计数器值,比较部13使用在发送节点信息存储部122中对“发送中”的发送节点的个数进行了计数的值。
[0143]节点端口 110以能够通信的方式与计算节点200连接,进行与该连接的计算节点200的包的授受。
[0144]如图8所示,节点端口 110具备端口发送部111和端口接收部114。端口发送部111对所连接的计算节点200的网络接口 203发送该交换机100中网络端口 101接收到的包。
[0145]端口发送部111将包发送给所连接的计算节点200的网络接口 203。S卩,该端口发送部111相当于将转送的包输出的输出部12。
[0146]该端口发送部111具备缓冲区112和发送控制部113。缓冲区112是存放向所连接的计算节点200的网络接口 203发送出的包的FIFO型的存储器。发送控制部113进行向计算节点200发送出存放在缓冲区112中的包的控制。
[0147]该发送控制部113从网络端口 101接收发送请求以及包,根据该发送请求向计算节点200发送包。发送控制部113在向计算节点200发送包时,将发送请求发送给其网络接口 203。然后,若从网络接口 203响应发送许可,则将存放在缓冲区112中的包发送给该网络接口 203。此外,若缓冲区112成为能够存放新的包的状态,则发送控制部113将发送许可发送给网络端口 101。
[0148]端口接收部114接收从计算节点200的网络接口 203发送的包。即,该端口接收部114也相当于将转送的包输入的输入部11。
[0149]端口接收部114具备缓冲区115和接收控制部116。缓冲区115是存放从所连接的计算节点200的网络接口 203接收到的包的FIFO型的存储器。接收控制部116进行接收从网络接口 203发送的包,并存放于缓冲区115的控制。此外,接收控制部116也进行将存放在缓冲区115中的包发送给与该包的发送目的地对应的网络端口 101的控制。
[0150]该接收控制部116针对从计算节点200的网络接口 203发送的发送请求,若成为缓冲区115能够存放包的状态,则返回发送许可。然后,接收控制部116接收从网络接口203发送的包并存放于缓冲区115。
[0151]接收控制部116参照接收到的包的路由报头、远程地址,来决定转送目的地的网络端口 101,并将发送请求发送给该网络端口 101的端口发送部102的发送控制部104。接收控制部116若从网络端口 101接收到发送许可,则将存放在缓冲区115中的包发送给网络端口 101的端口发送部102。
[0152]使用图11A、图1lB以及图11C,来说明如上述那样构成的、作为第I实施方式的一例的并行计算机系统I中的包的通信方法的概要。
[0153]这些图11A、1 IBUlC所示的并行计算机系统I具备与图2所示的构成相同的构成,构成将5个计算节点200-0?200-4经由5个交换机100-0?100-4以能够相互通信的方式连接的网络(互连网络、通信网)2。另外,以下,存在以节点NO?N4来表示5个计算节点200-0?200-4的情况。此外,以下,存在将确定计算节点200的符号NO?N4作为节点识别信息这样的情况。
[0154]此外,在图11A、11B、11C中,为了方便,仅图示交换机100的一部分的构成。
[0155]如上述那样,本并行计算机系统I中,若从网络端口 101的端口发送部102发送包,则交换机100将发送节点地址存储到发送节点数存储部105的发送节点信息存储部122。
[0156]在图11A、11B、11C中,示出节点NO和节点N3向节点N4发送包的例子。
[0157]在这样的状态下,如图1lA所示,针对为发送源节点的节点NO,将是“发送中”这一意思存储到交换机100-0~100-2的网络端口 101的发送节点信息存储部122。此外,针对为发送源节点的节点NO、N3,将是“发送中”这一意思存储到交换机100-3、100-4的网络端口 101的发送节点信息存储部122。
[0158]另外,在图11A、11B、11C中,为了方便,在发送节点信息存储部122中仅示出是“发送中”的计算节点200的节点识别信息。
[0159]此外,从发送源节点发送来的包的发送节点数在经过各交换机100时,被发送控制部104更新。由此,包的发送节点数中存储经过的交换机100中的发送节点数的最大值。在图1lA所示的例子中,在送达至节点N4的包中存放该网络2中的发送节点数“2”。
[0160]接收到包的计算节点200将存放了从接收到的包提取出的发送节点数的响应包返送至该包的发送源的计算节点200。在图1lB所示的例子中,节点N4将存放了发送节点数“2”的响应包返送至节点NO和节点N3。
[0161]接收到该响应包的节点N0、N3的间隙控制部207基于上述的式(I)来计算发送的多个包的间隔,包发送部206在连续发送的多个包之间插入该计算出的长度(间隙长)的间隙。
[0162]在图1lC所示的例子中,由于发送节点数是“2”,所以在包之间插入的间隙长=包大小。对节点NO和节点N3而言,由于能够用于包的发送的通信频带(使用频带)为1/2,所以通过在包之间插入与包相同的长度的间隙,能够高效地使用网络2的通信频带。即,能够防止辐辏的发生,并能够在各发送源节点间均等地使用通信频带。
[0163]在并行计算机系统I中,通过之后也重复上述的处理,从而各发送源节点200根据发送节点数的增减,动态地调整在发送的包之间插入的间隙长。例如,在节点N2向节点N4发送包的情况下,作为发送源节点,将节点N2作为“发送中”追加到该包经过的交换机
100-2~100-4的各端口的发送节点信息存储部122。
[0164]此外,存放于包的发送节点数为“3”。作为发送源节点的节点N0、N2、N3分别基于上述式(I),来在包之间插入包的2倍的长度的间隙,以使得均等地使用通信频带。
[0165]接着,根据图12所示的流程图(步骤AlO~A60),对如上述那样构成的、作为第I实施方式的一例的并行计算机系统I中的交换机100的端口接收部106的处理进行说明。
[0166]在本例中,如图1lA~IlC所示,网络2具备二维网状构成,路由按照X、Y的顺序,进行对应坐标的维度顺序路由。
[0167]在交换机100中,网络端口 101的端口接收部106从其他交换机100接收包(步骤Α10)。端口接收部106基于接收到包的网络端口 101,更新包的路由报头。即,根据接收到的网络端口 101的维度,通过对路由报头的值(DX、DY)+1或者-1来更新。
[0168] 具体而言,例如,使网络2的构成与坐标空间对应,并且决定虚拟的原点。然后,针对交换机100的网络端口 101相对于原点的位置(坐标),将坐标的增加方向设为“+”,此夕卜,将减少方向设为“-”。
[0169]然后,接收控制部108针对包的路由报头,对与接收到的网络端口 101相同的维度的DX或者DY的值,若是-方向则-1,若是+方向则+1(步骤A20)。例如,当网络端口 101在X维是-方向时,将DX的值-1。此外,当网络端口 101在Y维是+方向时,将DY+1。
[0170]接收控制部108确认路由报头的值DX、DY的值是否全部为O (步骤A30)。在DX、DY均为O的情况下(参照步骤A30的“是”分支),意味着包到达了与目的地的远程节点直接连接的交换机100。因此,接收控制部108选择将包与网络接口 203连接的该交换机100的节点端口 110(步骤A40)。
[0171]另一方面,在DX、DY的至少任意一个不是0(非O)的情况下(参照步骤A30的“否”分支),例如,按照X坐标,Y坐标的顺序调查非O的字段,选择该非O的字段的值靠近O的网络端口 101(步骤A60)。即,选择与该字段相同的维度、相同的符号的端口。另外,在按照Y坐标、X坐标的顺序进行维度顺序路由的情况下,按照Y坐标,X坐标的顺序查看非O的字段。
[0172]然后,接收控制部108将发送请求发送给所选择的节点端口 110或者网络端口 101的发送控制部113、104。若从发送控制部113、104返回发送许可,则接收控制部108将包发送给该节点端口 110或者网络端口 101(步骤A50)。
[0173]此外,接收到包的网络端口 101的端口发送部102的发送控制部104在将包发送给其他交换机100时,进行发送节点数存储部105的更新。即,针对该发送节点,在发送节点信息存储部122存储“发送中”,此外,进行计数器121的发送节点数的递增计数。
[0174]接着,根据图13所示的流程图(步骤BlO?B70),对作为第I实施方式的一例的并行计算机系统I中的端口发送部102的处理进行说明。
[0175]端口发送部102若接收到从端口接收部114、端口接收部106转送的包,则将接收到的包存放于缓冲区103 (步骤B10)。
[0176]发送控制部104基于包的本地节点来确认发送节点信息存储部122 (步骤B20)。即,确认在发送节点信息存储部122中,该本地节点是否成为“发送中”。
[0177]若在发送节点信息存储部122中,该本地节点成为“发送中”(参照步骤B20的“是”分支),则发送控制部104 (比较部13)比较由发送节点数存储部105管理的发送节点数和存放在包中的发送节点数(步骤B30)。
[0178]这里,在发送节点数存储部105具备计数器121的情况下(参照图9),将该计数器的值用作发送节点数。此外,在发送节点数存储部105不具备计数器121的情况下(参照图10),通过对发送节点信息存储部122中存储为“发送中”的节点进行计数来求出发送节点数。
[0179]另一方面,若在发送节点信息存储部122中,该本地节点成为“无发送”(参照步骤B20的“否”分支),则发送控制部104与发送节点信息存储部122中的该本地节点建立对应地设定“发送中”。此外,发送控制部104通过对计数器121发送递增计数信号,对发送节点数进行递增计数(+1)(步骤B70)。然后,移至步骤B30。
[0180]在由发送节点数存储部105管理的发送节点数在包的发送节点数以下的情况下(参照步骤B30的“否”分支),发送控制部104向连接的其他交换机100的网络端口 101发送出发送请求。然后,若从该网络端口 101响应发送许可,则发送控制部104将包发送给该当网络端口 101(步骤B50)。
[0181]此外,若由发送节点数存储部105管理的发送节点数比包的发送节点数大(参照步骤B30的“是”分支),则发送控制部104 (改写处理部14)利用发送节点数存储部105的发送节点数来改写包的发送节点数的值(步骤MO)。然后,移至步骤B50。
[0182]发送控制部104测定从在发送节点信息存储部122中对发送源节点设定“发送中”开始的经过时间。然后,若从对发送节点设定“发送中”开始,在预先设定的时间的期间,未从相同的节点送来包,则对发送节点信息存储部122中的该发送源节点设定“无发送”。此外,在发送节点数存储部105具备计数器121的情况下(参照图9),发送控制部104通过对计数器121发送递减计数信号,对发送节点数进行递减计数(-1)(步骤B60)。另外,在发送节点数存储部105不具备计数器121的情况下(参照图10),发送控制部104不进行递减计数信号的发送。
[0183]这样,根据作为第I实施方式的一例的并行计算机系统1,从发送源节点向发送目的地节点的路径上的交换机100将发送有经过该路径上的包的发送源节点的个数(发送节点数)存储于发送节点数存储部105。而且,发送源节点基于该发送节点数,计算连续发送的包之间的发送间隔。
[0184]具体而言,将作为“包大小X (发送节点数-1)”计算的长度(间隙长)的间隙插入至包之间。
[0185]该间隙长是基于向通信路径上发送有包的发送源节点的个数而计算的,其对应于通过多个发送源节点向通信路径上发送出包而使这些包交叠(重合)而产生的通信频带的减少量。因此,通过基于该发送节点数来设定间隙长,能够使正在发送包的各发送源节点均等地使用通信频带。
[0186]根据本并行计算机系统1,发送源节点能够以与通信路径上的包的通信状态一致的间隔来发送包,由此,能够消除辐辏。即,能够高效地实现与通信路径上的通信状态一致的辐辏控制,能够高效地使用并行计算机系统I中的网络2。
[0187]图14是例示作为第I实施方式的一例的并行计算机系统I中的包的发送状态的图。在该图14所示的例子中,节点NO和节点N3对节点N4发送数据。
[0188]如该图14所示,在本第I实施方式的并行计算机系统I中,当发送源节点发送包时,预先将与由于从多个发送源节点发送包而减少的通信频带对应的长度的间隙插入至包之间。
[0189]在该图14所示的例子中,从节点NO发送来的包和从节点N3发送来的包在从交换机100-3到节点N4的路径上交叠。在该交叠部分,节点NO和节点N3能够使用的通信频带减少到1/2。
[0190]这里,作为包的发送源节点的节点NO、N3通过向连续发送的包之间插入与包相同的长度(间隙长)的间隙,从而使这些节点N0、N3使用的通信频带分别成为1/2。由此,在从交换机100-3到节点N4的交叠部分,通信频带不减少,从而不发生缓冲区阻塞。即,组织辐辏的发生,节点N1、N2的通信不受缓冲区的阻塞的影响。
[0191]此外,在本并行计算机系统I中,通过在包中存放发送节点数,从而各交换机100能够容易地掌握网络2上的发送节点数。[0192]在交换机100中,在发送节点数中管理发送节点数,在从端口发送部102发送包时,将该包的本地节点的信息(发送中)存储于发送节点数存储部105(发送节点信息存储部122)。由此,在交换机100中,能够实时地掌握正在发送包的发送源节点。
[0193]在交换机100中,发送节点数存储部105具备计数器121,通过由该计数器121对发送节点数进行计数,能够实时地掌握交换机100中正在发送包的发送源节点的个数。
[0194]此外,当从将针对发送源节点的发送节点状态信息存放于发送节点数存储部105开始在规定时间未发送包的情况下,对计数器121的发送节点数进行递减计数。由此能够适当地管理发送节点数的值,提高可靠性。
[0195]在交换机100中,当从端口发送部102发送包时,比较由发送节点数存储部105(计数器121)管理的发送节点数和存储在包中的发送节点数。然后,在发送节点数存储部105的发送节点数比包的发送节点数大的情况下,利用发送节点数存储部105的发送节点数来改写包的发送节点数。由此,能够使各交换机100中管理的发送节点数的值反映于包。
[0196]此外,发送目的地节点从接收到的包提取发送节点数,创建响应包并发送给发送源节点。由此,能够使发送源节点容易地掌握发送节点数,并能够使用从该响应包读出的发送节点数,利用上述式(I)来计算间隙长。
[0197](B)第I实施方式的变形例
[0198]在上述的第I实施方式中,对Put通信等的本地节点向远程节点发送消息的例子进行了说明,但是并不局限于此。即,本技术也能够应用于Get通信等的远程节点向本地节点发送消息的情况。
[0199]以下,对Get通信等的远程节点向本地节点发送消息的情况下的处理进行说明。
[0200](I)本地节点向远程节点发送用于请求消息发送的Get请求包。
[0201]另外,作为该Get请求包的包格式,例如,能够使用从如图4所示的发送包的格式去掉发送节点数和净负荷后的格式。
[0202](2)在交换机100中,端口接收部106以与图12所示的流程图相同的方法进行基于路由报头的维度顺序路由,向远程节点发送包。此外,端口发送部102以与图13所示的流程图的步骤B10、B50相同的处理进行包的发送。另外,在该时刻,端口发送部102不进行图13的流程图的步骤B20?B40、B60所示的、基于发送节点数的发送节点数存储部105的更新处理。
[0203](3)接收到Get请求包的远程节点的网络接口 203读出所请求的数据,并将Get响应包返送至本地节点。
[0204]另外,作为该Get响应包的包格式,例如,能够使用与图4所示的发送包的格式相同的格式。
[0205](4)在交换机100中,端口接收部106通过与图12所示的流程图相同的处理,进行基于路由报头的维度顺序路由,向本地节点发送包。此外,端口发送部102通过与图13所示的流程图相同的处理,进行包的发送和基于发送节点数的发送节点数存储部105的更新
处理等。
[0206](5)接收到Get响应包的本地节点的网络接口 203将包的净负荷存储于主存储装置202,此外,将存储了发送节点数的响应包返送至远程节点。[0207]另外,作为该响应包的包格式,例如,与图7所示的响应包的格式相同。
[0208](6)接收到包的远程节点的网络接口 203利用上述式(1),计算间隙长,将具有该间隙长的间隙插入至Get响应包之间,并向本地节点发送。
[0209](C)第2实施方式
[0210]在作为上述的第I实施方式的一例的并行计算机系统I中,发送控制部104若检测到在预先设定的时间未从发送源节点发送包,则在发送节点信息存储部122中,对该发送源节点设定“无发送”。此外,在具备有计数器121的情况下,与此同时,发送控制部104向计数器121发送递减计数信号,使发送节点数递减计数。
[0211]在作为本第2实施方式的一例的并行计算机系统I中,在端口发送部102中,发送控制部104针对构成一个消息的多个包,检测其末尾的包(末尾包)。然后,在发送控制部104发送该末尾包时,在发送节点信息存储部122中,对该发送源节点设定“无发送”。此外,在具备有计数器121的情况下,与此同时,发送控制部104向计数器121发送递减计数信号,使发送节点数递减计数。
[0212]具体而言,在发送源节点中,包发送部206在生成消息包时,对消息的末尾的包设定表示是末尾这一意思的信息(末尾标识)。
[0213]图15是示意性地例示作为第2实施方式的一例的并行计算机系统I中的发送包的格式的图。作为本第2实施方式的一例的并行计算机系统I的发送包格式除了图4所示的第I实施方式的发送包格式之外,还具备末尾标识。另外,发送包中的其他部分以与第I实施方式的发送包格式相同的方式构成,省略其说明。 [0214]此外,以下,由于在图中与既述的符号相同的符号表不相同的部分,故省略其详细说明。
[0215]在发送源节点中,网络接口 203在将消息分割成多个包进行发送时,针对末尾的包,将其末尾标识设为有效。例如,对末尾标识设定“I”。此外,针对末尾以外的包,分别对末尾标识设定“O”。这些末尾标识的“I”相当于表示该包(分割数据)是末尾的包的末尾识别息。
[0216]另外,针对该末尾标识的“O”或“I”的设定例如可以由控制部205进行,此外还可以由包发送部206进行。
[0217]如上述那样,作为本第2实施方式的一例的并行计算机系统I的计算节点200在网络接口 203中,对所发送的各包设定“I”或“O”来作为末尾标识,但是其他部分以与第I实施方式的计算节点200相同的方式构成,省略其说明。
[0218]在交换机100中,端口发送部102的发送控制部104基于该末尾标识,进行发送节点数存储部105的更新。即,发送控制部104确认所发送的包的末尾标识,在发送对末尾标识设定了 “I”的包时,在发送节点信息存储部122中,对该发送源节点设定“无发送”。此外,与此同时,在发送节点数存储部105中具备有计数器121的情况下,发送控制部104向计数器121发送递减计数信号,使发送节点数递减计数。
[0219]此外,在本第2实施方式中,作为发送目的地节点的计算节点200在向发送源节点发送的响应包也具备末尾标识。具体而言,除了图7所示的第I实施方式的响应包格式之外,还具备末尾标识。计算节点200将从接收到的包读出的末尾标识的值设定为其响应包的末尾标识并返回。[0220]根据图16所示的流程图(步骤ClO?C80),对作为第2实施方式的一例的并行计算机系统I中的端口发送部102的处理进行说明。
[0221]端口发送部102若接收到从端口接收部114、端口接收部106转送的包,则将接收到的包存放于缓冲区103 (步骤C10)。
[0222]发送控制部104确认包的末尾标识,并确认该包是否为构成一个消息的多个包中的末尾的包(步骤C20)。
[0223]在该末尾标识中设定有“I”的情况下,即,在该包是末尾的包的情况下(参照步骤C20的“是”分支),发送控制部104在发送节点信息存储部122中,对该发送源节点设定“无发送”。此外,在发送节点数存储部105具备有计数器121的情况下,发送控制部104向计数器121发送递减计数信号,使发送节点数递减计数(-1)(步骤C30)。另外,在不具备计数器121的情况下,能够省略该步骤C30的处理。
[0224]发送控制部104(比较部13)比较由发送节点数存储部105管理的发送节点数与存放在包中的发送节点数(步骤C40)。另外,在发送节点数存储部105具备有计数器121的情况下(参照图9),与第I实施方式相同地,对发送节点数使用该计数器的值。此外,在发送节点数存储部105不具备计数器121的情况下(参照图10),通过对发送节点信息存储部122中存储为“发送中”的节点进行计数来求出发送节点数。
[0225]在由发送节点数存储部105管理的发送节点数在包的发送节点数以下的情况下(参照步骤C40的“否”分支),发送控制部104向连接的其他交换机100的网络端口 101发送出发送请求。然后,若从该网络端口 101响应发送许可,则发送控制部104将包发送给符合的网络端口 101 (步骤C60)。
[0226]此外,若由发送节点数存储部105管理的发送节点数比包的发送节点数大(参照步骤C40的“是”分支),则发送控制部104 (改写处理部14)利用发送节点数存储部105的发送节点数来改写包的发送节点数的值(步骤C50)。然后,移至步骤C60。
[0227]另一方面,在对末尾标识设定了 “O”的情况下,即,在包不是末尾的包的情况下(参照步骤C20的“否”分支),发送控制部104基于包的本地节点来确认发送节点信息存储部122(步骤C70)。
[0228]在发送节点信息存储部122中,若该本地节点为“发送中”(参照C70的“是”分支),则移至步骤C40。此外,在发送节点信息存储部122中,若该本地节点为“无发送”(参照步骤C70的“否”分支),则发送控制部104与发送节点信息存储部122中的该本地节点建立对应地设定“发送中”。此外,发送控制部104通过向计数器121发送递增计数信号,对发送节点数进行递增计数(+1)(步骤C80)。然后,移至步骤C40。
[0229]这样,根据作为第2实施方式的一例的并行计算机系统1,除了能够获得与上述的第I实施方式同样的作用效果之外,在发送控制部104检测到是末尾包的情况下,进行发送节点数存储部105的更新。即,通过检测末尾包,进行发送节点信息存储部122中向该发送源节点的“无发送”的设定、计数器121的递减计数。
[0230]S卩,无需如第I实施方式那样,等待从将针对发送源节点的发送节点状态信息存放于发送节点数存储部105开始而经过规定时间,就能够进行发送节点信息存储部122中的向该发送源节点的“无发送”的设定、计数器121的递减计数。由此,能够迅速且准确地掌握针对一个消息的一组包的发送结束,能够立即对应包的发送结束。[0231]即,在发送源节点中,能够使基于间隙调整部22的在包之间插入的间隙值的计算迅速地反映通信路径上的通信状态,能够提高准确性和可靠性。
[0232](D)第3实施方式
[0233]在作为上述的各实施方式和其变形例的一例的并行计算机系统I中,发送控制部104基于发送的全部的包来进行发送节点数存储部105的更新。
[0234]在作为本第3实施方式的一例的并行计算机系统I中,端口发送部102中,发送控制部104将包的消息长与预先设定的阈值进行比较。然后,若消息长比阈值小,则不进行针对该包的发送节点数存储部105的更新。即,不进行对发送节点信息存储部122的“发送中”、“无发送”的设定和计数器121的递增计数。
[0235]即,在本第3实施方式中,发送控制部104作为在包的数据大小比阈值小的情况下抑制发送节点数的更新的更新抑制部发挥作用。
[0236]图17是示意性地例示作为第3实施方式的一例的并行计算机系统I中的发送包的格式的图。作为本第3实施方式的一例的并行计算机系统I的发送包格式除图15所示的第2实施方式的发送包格式之外还具备消息长。另外,发送包中的其他的部分构成为与第2实施方式的发送包格式相同,省略其说明。
[0237]在发送源节点中,当网络接口 203将消息分割成包进行发送时,对各包设定表示消息整体的数据长的消息长。该消息长例如与消息发送指示一起被处理器201发送。 [0238]在交换机100中,端口发送部102的发送控制部104基于该消息长,进行是否进行发送节点数存储部105的更新的判别。即,发送控制部104在发送包时,将发送的包的消息长与预先设定的阈值进行比较。该比较的结果,在消息长比阈值小的情况下,针对该包,不进行对发送节点信息存储部122发送节点信息存储部122的“无发送”或“发送中”的设定、计数器121的更新,而进行该包的转送。另外,交换机100中的其他部分构成为与第2实施方式的发送包格式相同,省略其说明。
[0239]按照图18所示的流程图(步骤C1、Dll、C20~C80),对作为第3实施方式的一例的并行计算机系统I中的端口发送部102的处理进行说明。另外,以下,图中赋予了与既述的符号相同的符号的步骤表示相同的处理,故省略其说明。
[0240]端口发送部102若从端口接收部114、端口接收部106接收到转送的包,则将接收到包存放于缓冲区103 (步骤C10)。
[0241]发送控制部104确认包的消息长是否比预先设定的阈值短(步骤Dll)。该确认的结果,在包的消息长比阈值短的情况下(参照步骤Dll的“是”分支),移至步骤C60。
[0242]此外,当包的消息长在阈值以上的情况下(参照步骤Dll的“否”分支),移至步骤C20。
[0243]这样,根据作为第3实施方式的一例的并行计算机系统1,能够获得与上述的第2实施方式相同的作用效果,此外,在包的消息长比预先设定的阈值小的情况下,不进行向计数器121的递增计数和向发送节点信息存储部122的登记。
[0244]由此,防止当向其他节点通知发送节点数的增加时,已完成消息的发送这样的短消息对其他计算节点200中设定的间隙长产生影响。即,防止通过短消息来对发送节点数进行递增计数,使发送源节点中被发送的包之间的间隙增长。由此,防止使消息的发送过分地延迟,提高了包的传输效率。[0245]另外,在作为上述的第3实施方式的一例的并行计算机系统I中,发送包格式中具备消息长,并且在交换机100中,基于消息长进行是否进行发送节点数存储部105的更新的判别。而且,示出了其他的部分构成为与第2实施方式的发送包格式相同的例子,但是并不局限于此。即,作为其他的部分,也可以具备与第I实施方式或者其变形例相同的构成。
[0246](E)第4实施方式
[0247]在作为上述的各实施方式以及变形例的并行计算机系统I中,示出在计算节点200中具备一个包发送部206的例子。在本第4实施方式中,计算节点200具备多个包发送部206,通过从这些多个包发送部206分别发送消息包,能够同时地发送多个消息。
[0248]图19是示意性地表示作为第4实施方式的一例的并行计算机系统I的计算节点200的构成的图。
[0249]如该图19所示,在本第4实施方式中,计算节点200具备多个包发送部206。此夕卜,各包发送部206具备针对包附加确定与该包对应的消息的消息标号(消息识别信息)的功能。
[0250]图20是示意性地例示作为第4实施方式的一例的并行计算机系统I中的发送包的格式的图。作为本第4实施方式的一例的并行计算机系统I的发送包格式除了图15所示的第2实施方式的发送包格式之外,还具备消息标号。
[0251]对于消息标号而言,在作为发送源节点的计算节点200同时发送多个消息的情况下,为了能够识别这些同时发送的多个消息,网络接口 203附加标号进行发送。
[0252]此外,作为发送目的地节点的计算节点200若接收到从发送源节点发送来的包,则将接收到的包中附加的消息标号附加到向该发送源节点返回的响应包并进行发送。作为该响应包格式,例如,能够使用对图7所示的第I实施方式中的响应包格式附加了消息标号的格式。
[0253]另外,消息标号的附加方法例如从O开始,每次消息发送指示到达就进行递增计数(+1)。此外,在发送源节点中,若从发送目的地节点接收到与针对一个消息的末尾包对应的响应包,则将该响应包中附加的消息标号再次分配给下一次发送的消息。由此,能够高效地运用消息标号。
[0254]另外,发送包中的消息标号以外的部分与第2实施方式的发送包格式相同,省略其说明。
[0255]在发送源节点中,网络接口 203在将消息分割成包进行发送时,对各包设定识别该消息的消息标号。
[0256]图21是示意性地表示作为第4实施方式的一例的并行计算机系统I中的发送节点数存储部105的功能构成的图。该发送节点数存储部105具备计数器121以及发送节点信息存储部122。
[0257]如图21所示,在本第4实施方式的并行计算机系统I中,发送节点信息存储部122将节点地址等的确定发送源节点的信息和消息标号的组合、与表示示出是否发送了与该组合相当的包的“发送中”或者“无发送”的任意一个的信息建立对应。
[0258]S卩,在本第4实施方式中,即使是从相同的发送源节点发送来的包,消息标号不同的包也作为不同的发送节点数处理。即,在交换机100的端口发送部102中,即使是从相同的发送源节点发送来的包,针对消息标号不同的包,也作为不同的包进行计数,来作为发送源节点数。
[0259]此外,发送控制部104在发送包时,即使是从相同的发送源节点发送来的包,当发送消息标号不同的包时,计数器121也一个个进行递增计数。
[0260]这是因为在同时从同一发送源节点发送多个消息的情况下,若这些消息的发送路径交叠,则在这些消息间,也与由于从其他发送源节点分别发送来的消息的交叠(重合)而产生频带减少相同地产生频带减少。
[0261]图22是示意性地例示作为第4实施方式的一例的并行计算机系统I中的响应包的格式的图。
[0262]例如如图22所示,该响应包在图7所示的响应包中具备消息标号以及末尾标识。另外,存放在该响应包中的消息标号以外的信息与使用图7等说明的包所包含的既述的各信息相同,故省略其详细说明。
[0263]此外,存放在该响应包中的消息标号使用从包接收部208接收到的包(发送包)读出的值。
[0264]发送目的地节点若接收到包则将该响应包发送至发送源节点,由此将发送节点数以及末尾标识、消息标号通知给发送源节点。
[0265]在发送源节点中,基于附加给响应包的发送节点数,按照上述式(I)来计算间隙长。即,即使是从相同的发送源节点发送来的包,对于消息标号不同的包而言,也基于作为不同的包而计数的发送节点数来计算间隙长。
[0266]在发送源节点中,将通过这种方式计算出的间隙长的空闲插入至连续发送的包之间。由此,能够以与由从同一发送源节点发送来的多个消息产生的通信频带的减少对应的间隙长来发送包,阻止辐辏的发生。
[0267]按照图23所示的流程图(步骤(:10、020331、040~060371381),说明作为第4实施方式的一例的并行计算机系统I中的端口发送部102的处理。另外,以下,图中赋予了与既述的符号相同的符号的步骤表示相同的处理,故省略其说明。
[0268]端口发送部102若接收到从端口接收部114、端口接收部106转送的包,则将接收到的包存放到缓冲区103 (步骤C10)。
[0269]发送控制部104确认包的末尾标识,确认该包是否是构成一个消息的多个包中的末尾的包(步骤C20)。
[0270]在对该末尾标识设定了 “I”的情况下,即,在包是末尾的包的情况下(参照步骤C20的“是”分支),发送控制部104在发送节点信息存储部122中与该发送源节点和对应的消息标号的组合对应地设定“无发送”。此外,在发送节点数存储部105具备计数器121的情况下,发送控制部104向计数器121发送递减计数信号,使发送节点数递减计数(步骤E31),移至步骤C40。
[0271]另一方面,在对末尾标识设定了 “O”的情况下,即,在包不是末尾的包的情况下(参照步骤C20的“否”分支),发送控制部104基于包的本地节点和消息标号来确认发送节点信息存储部122 (步骤E71)。
[0272]在发送节点信息存储部122中,若对该本地节点和对应的消息标号的组合设定“发送中”(参照步骤E71的“是”分支),则移至步骤C40。此外,在发送节点信息存储部122中,若对该本地节点和对应的消息标号的组合设定“无发送”(参照步骤E71的“否”分支),则发送控制部104与发送节点信息存储部122中的该本地节点和对应的消息标号的组合建立对应地设定“发送中”。此外,发送控制部104通过向计数器121发送递增计数信号,对发送节点数进行递增计数(+1)(步骤E81)。然后,移至步骤C40。
[0273]这样,根据作为第4实施方式的一例的并行计算机系统1,能够获得与上述的第2实施方式相同的作用效果,此外,在从发送源的计算节点200同时发送多个消息的情况下也能够向包之间插入适当的间隙。即,作为发送源节点数,即使是从相同的发送源节点发送来的包,针对消息标号不同的包,也作为不同的包处理。即,在交换机100的端口发送部102中,作为发送源节点数,即使是从相同的发送源节点发送来的包,针对消息标号不同的包,也作为不同的包进行计数。
[0274]由此,在发送源节点中,求出与由从同一发送源节点发送的多个消息产生的通信频带的减少对应的间隙长,以最合适的间隔来发送包。由此,能够阻止辐辏的发生。
[0275]另外,在本第4实施方式中,如图19所示,计算节点200的网络接口 203具备多个包发送部206,但是并不局限于此,在不脱离实施方式的宗旨的范围内能够以各种变形的方式进行实施。例如,一个计算节点200也可以具备多个网络接口 203。该情况下,代替消息标号,按照每个网络接口 203来设定固有的识别信息(例如网络接口标号)。然后,在发送节点信息存储部122中,代替消息标号,使用该网络接口标号,来与本地节点和网络接口标号的组合建立对应地设定“发送中”、“无发送”的信息。由此,能够与本第4实施例相同地实现。
[0276](F)第5实施方式
[0277]例如,图2所例示的第I实施方式的并行计算机系统I具备将多个交换机100配置成一维的直线状的一维网状的网络构成,但是并不局限于此。即,并行计算机系统I也可以具备多维网络构成。
[0278]图24是示意性地表示作为第5实施方式的一例的并行计算机系统I的构成的图,图25是示意性地表示该并行计算机系统I所具备的交换机100的硬件构成的图。
[0279]图24所示的并行计算机系统I具备N维网状(其中N= 2)的网络构成,在由X方向和Y方向构成的二维的格子状的网络的各格子点,分别配置有如图25所示的5端口的交换机100。此外,各交换机100与计算节点200连接。另外,以下,存在将X方向称为维度X的情况,存在将Y方向称为维度Y的情况。
[0280]在该图24所示的例子中,并行计算机系统I具备在X方向上为4列(X = I?4)、在Y方向上为4列(Y = I?4))的二维的格子状的网络构成,具备16个交换机100和16个计算节点200。
[0281]以下,为了方便,存在以X、Y坐标值来确定该图24所示的并行计算机系统I中的各个交换机100的情况。例如,使用位于图24中的左上的、连接被表示符号A的计算节点200(以下,存在称为节点A的情况)的交换机100的坐标(1、4),将该交换机100表示为交换机100 (1、4)。同样地,使用位于图24中的右下的、连接被表示符号F的计算节点200 (以下,存在称为节点F的情况)的交换机100的坐标(4、I),将该交换机表示为交换机100 (4、I)。以下,通过同样的方式,确定各交换机100、计算节点200。
[0282]在图24所示的例子中,交换机100 (2、4)与节点B连接,交换机100 (1、3)与节点C连接,交换机100 (4、4)与节点D连接,交换机100 (4、3)与节点E连接。[0283]而且,在该图24所示的例子中,表示节点A、B、C分别向节点F发送包的状态。
[0284]此外,假设在本并行计算机系统I中,也进行按照如图12所示那样的X、Y的顺序使坐标一致的维度顺序路由。
[0285]在本第5实施方式中,使用如图25所示那样的5端口的交换机100。在该5端口的交换机100中,具备4个网络端口 101-1~101-4。
[0286]而且,这4个网络端口 101-1~101-4中,例如,网络端口 101_1、101_2被用于X方向的通信,网络端口 101-3、101-4被用于Y方向的通信。
[0287]由此,网络端口 101-1、101-2所具备的各发送节点数存储部105存储关于网络2中的X方向的包通信所涉及的发送节点数的信息。即,网络端口 101-1、101-2属于维度X。此外,网络端口 101-3、101-4所具备的各发送节点数存储部105存储关于网络2中的Y方向的包通信所涉及的发送节点数的信息。即,网络端口 101-3、101-4属于维度Y。
[0288]以下,作为表示网络端口的符号,当需要确定多个网络端口中的I个时使用符号
101-1~101-4,但是当指代任意的网络端口时使用符号101。此外,节点端口 110与计算节点200连接。
[0289]另外,在图25中,为了方便,省略各网络端口 101等的构成的图示。此外,在图24中,为了方便,省略各交换机100的构成的图示,并且,仅示出针对一部分的交换机100的发送节点数存储部105。
[0290]此外,以下,在 图24中,例如如交换机100(1、4)那样,交换机100的内部所示的发送节点信息存储部105表示用于X方向的通信的网络端口 101的端口发送部102所具备的发送节点信息存储部105。此外,如交换机100 (4、4)那样,交换机100的外部所示的发送节点信息存储部105表示用于Y方向的通信的网络端口 101的端口发送部102所具备的发送节点信息存储部105。
[0291]在本第5实施方式的并行计算机系统I中,在发送节点数存储部105存储关于按照具备该发送节点数存储部105的网络端口 101所属的维度的通信所涉及的发送源节点的信息。
[0292]此外,在包的通信路径中,在产生维度的切换的交换机100中,代替切换前的维度的网络端口 101的发送状态信息,对切换后的维度的网络端口 101的发送节点数存储部105设定该交换机100的信息。
[0293]这里,所谓维度的切换,是指通过在交换机100中,将经过一个维度方向的通信路径的包从属于该一个维度的网络端口 101转送给属于其他维度的端口发送部102,从而向其他维度方向切换通信路径。例如,是指在由维度X和维度Y构成的二维网络2中,通过在交换机100中,将经过X方向(或者Y方向)的通信路径的包从属于维度X(或者维度Y)的网络端口 101转送给属于其他维度Y(或者维度X)的端口发送部102,从而向Y方向(或者X方向)切换通信路径。
[0294]具体而言,例如,在具备图24所示的网络2的并行计算机系统I中,从节点A向节点F发送的包首先按照交换机100(1、4)、交换机100(2、4)、交换机100 (3、4)以及交换机100(4、4)的顺序经过X方向(维度X)的路径。然后,在交换机100(4、4)中,向Y方向(维度Y)的路径进行维度的切换。然后,包按照交换机100 (4、4)、交换机100 (4、3)、交换机100(4,2)以及交换机100(4、1)的顺序经过Y方向的路径而到达节点F。[0295]这里,在与节点D连接的交换机100 (4、4)中,实际上使从节点A发送来的包和从节点B发送来的包经过。因此,在与节点B连接的交换机100 (2、4)的X方向的网络端口101的发送节点数存储部105中存储发送源节点A、B的信息。具体而言,在发送节点信息存储部122中,分别对发送源节点A、B设定“发送中”,此外,对计数器121设定计数值“2”。另外,图24中,使用确定发送源节点的符号来表示向发送节点数存储部105登记的发送源节点A、B所涉及的这些发送状态信息。
[0296]然后,如上述那样,在从这些节点A、B发送的包的通信路径中,通过与节点D连接的交换机100 (4、4),进行从X方向(第一维度)向Y方向(第2维度)的维度的切换。在该交换机100(4、4)中,代替切换前的维度(X方向)的网络端口 101的发送状态信息(在图24中是对切换后的维度(Y方向)的网络端口 101的发送节点数存储部105设定该交换机100所涉及的发送状态信息(图24中为“D”)。
[0297]然后,在切换该维度时,即使在切换前的维度中存储有针对2个以上的发送源节点的发送状态信息,在切换后的维度中,也置换成与该交换机100连接的一个计算节点200的发送状态信息。
[0298]S卩,针对网络2中的一个维度的路径上的2个以上的发送源节点的发送状态信息在产生维度的切换的交换机100中被存储为与该交换机100连接的计算节点200的发送状态息。
[0299]S卩,在包的通信路径中的、进行从维度X的通信路向维度Y的通信路的切换的交换机100中,代替在切换前的维度X的通信路上的发送状态信息,向该发送节点数存储部105存储与切换后的维度Y对应的网络端口 101中针对计算节点200 (4、4)的发送状态信息。
[0300]以下,将针对一个维度方向的2个以上的发送源节点的发送状态信息,通过交换机100中的维度的切换,而置换为针对其他维度的方向的、与该交换机100连接的计算节点200的发送状态信息这一情况称为“汇集”或者“聚集”。
[0301]例如,在交换机100(4、4)中,针对节点A、B的发送状态信息被汇集地存储为Y维度的地址与这些节点A、B相等的节点D的发送状态信息。
[0302]同样地,在与节点E连接的交换机100(4、3)中,表示其X方向的维度中的发送源节点C的发送状态信息被汇集成表示节点E的发送状态信息。此外,在该交换机100 (4、3)中,在Y方向路径上也经过从交换机100(4、4)输出的包。由此,也向交换机100(4、3)的发送节点数存储部105存储表示节点D的发送状态信息。即,向交换机100 (4、3)的发送节点数存储部105存储节点D、E所涉及的发送状态信息。
[0303]图26是示意性地表示作为第5实施方式的一例的并行计算机系统I的发送包中存储的发送节点数的格式例的图。
[0304]在本第5实施方式中,如该图26所示,存储在包中的发送节点数具备维度X的发送节点数和维度Y的发送节点数。
[0305]在本第5实施例的交换机100中,各网络端口 101仅针对该网络端口 101所属的维度方向的发送源节点,向发送节点数存储部105存储发送状态信息。此外,在发送节点数存储部105具备计数器121的情况下,向该计数器121存储针对该网络端口 101所属的维度方向的发送节点的发送节点数。即,按照各维度向发送节点数存储部105存储发送状态信息。[0306]此外,接收到包的远程节点的网络接口 203将接收到的包的发送节点数直接地记录到响应包并返送至本地节点。
[0307]然后,在接收到响应包的本地节点的网络接口 203中,间隙控制部207将从包读出的各维度的发送节点数的合计减去该包在从发送源节点到发送目的地节点的路径上切换了维度的个数的值计算为发送节点数。即,在本第5实施方式所示的例子中,基于以下的式
(2)来计算发送节点数。
[0308]发送节点数=(维度X的发送节点数)+ (维度Y的发送节点数)-(切换了维度的个数)...(2)
[0309]另外,在本地节点地址与远程节点地址之间,能够对各维度的值进行比较,将值不同的维度的个数用作包切换了维度的个数。
[0310]此外,在本并行计算机系统I中,根据发送源节点和发送目的地节点的组合来确定包的发送路径。因此,基于发送源节点和发送目的地节点的组合,能够容易地得知该通信路径中的“切换了维度的个数”。此外,在本地节点地址与远程节点地址间,比较各维度的值,值不同的维度的个数也可以说是切换了维度的次数。
[0311]间隙控制部207使用由上述式(2)计算出的发送节点数,按照以下的式(3)来计算间隙长。
[0312]间隙长=包大小X (发送节点数-1) X α...(3)
[0313]另外,α是参数(其中α > I),通过乘以预先设定的该参数α来调整间隙长。这是为了在本第5实施方式的方法中,如以下那样对可能产生在网络2中的一部分区域中发送节点数与实际的值不一致的情况进行校正。
[0314]例如,在图24所示的例子中,在连结节点A的交换机100 (0、4)、连结节点B的交换机100(2、4)中,X方向上的发送节点数是2,Y方向上的发送节点数是2。此外,在交换机100(4,4)中,从X方向向Y方向切换一次维度。因此,按照上述式(2)求出
[0315]发送节点数=2+2-1 = 3。
[0316]接收到包的节点F将存放了该发送节点数“3”的响应包发送至节点Α、Β。
[0317]在图24所示的例子中,该发送节点数“3”与实际上向节点F发送包的节点数(节点Α、B、C这三个)一致。
[0318]另一方面,在连结了节点C的交换机100 (1、3)中,X方向上的发送节点数是1,Y方向上的发送节点数是2。此外,在交换机100 (4、3)中,从X方向到Y方向切换一次维度。因此,按照上述式(2)求出
[0319]发送节点数=1+2-1 = 2。
[0320]接收到包的节点F将存放了该发送节点数“2”的响应包发送至节点Α、Β。
[0321]在图24所示的例子中,该发送节点数“2”与实际上向节点F发送包的节点数(节点Α、B、C这三个)不一致,比实际的发送节点数小。
[0322]这样,在作为本第5实施方式的一例的并行计算机系统I中,当在路径中从位于维度不同的地址的多个节点分别发送包时,产生发送节点数比实际的值小的情况。但是,通过向发送节点数存储部105仅存储网络端口 101所属的维度的发送状态信息,能够大幅度消减用作发送节点数存储部105的存储部的容量。
[0323] 即,通过仅限定网络端口 101所属的维度的发送状态信息来进行存放,作为存储部,具备仅能够存放N个发送状态信息的容量即可,能够降低制造成本。对于此,例如,在各维度的节点数是N的二维网状、环面的情况下,若要存储针对整个节点的发送状态信息,则作为存储部,需要用于按照每个网络端口 101来存放NXN个发送状态信息的容量,从而制造成本增加。
[0324]按照图27所示的流程图(步骤C10、F20、C30?C80),对如上述那样构成的、作为第5实施方式的一例的并行计算机系统I中的端口发送部102的处理进行说明。另外,以下,图中赋予了与既述的符号相同的符号的步骤表示相同的处理,故省略其说明。
[0325]端口发送部102若接收到从端口接收部114、端口接收部106转送的包,则将接收到的包存放于缓冲区103 (步骤C10)。
[0326]发送控制部104基于包的本地节点来确认发送节点信息存储部122 (步骤F20)。即,确认在发送节点信息存储部122中是否该本地节点成为“发送中”,并且该包是末尾的包。
[0327]若在发送节点信息存储部122中,该本地节点是“发送中”,并且,该包是末尾包(参照步骤F20的“是”分支),则移至步骤C30。
[0328]另一方面,在发送节点信息存储部122中,该本地节点是“发送中”,并且该包不是末尾包的情况下(参照步骤F20的“否”分支),移至步骤C70。
[0329]这样,根据作为第5实施方式的一例的并行计算机系统1,能够获得与上述的第2实施方式相同的作用效果,此外,在具备N维网状的网络构成的情况下,通过向发送节点数存储部105仅存储网络端口 101所属维度的发送状态信息,能够消减用作发送节点数存储部105的存储部的容量。
[0330]S卩,通过仅限定网络端口 101所属的维度的发送状态信息来进行存放,能够降低制造成本。
[0331](G)第6实施方式
[0332]在作为上述的各实施方式、其变形例的一例的并行计算机系统I中,接收到发送包的发送目的地节点向发送源节点返回包含发送节点数的响应包。
[0333]在作为本第6实施方式的一例的并行计算机系统I中,交换机100向发送源节点返回包含发送节点数的响应包。即,在作为本第6实施方式的一例的并行计算机系统I中,交换机100具备作为发送节点数发送部23的功能。
[0334]具体而言,在交换机100的端口发送部102中,发送控制部104比较包的发送节点数与存储在发送节点数存储部105中的端口的发送节点数。
[0335]然后,若存储在发送节点数存储部105中的端口的发送节点数比包的发送节点数大,则发送控制部104创建记录了端口的发送节点数的响应包,并将其返送至该包的本地节点。
[0336]另外,该响应包的格式和创建方法能够利用与第I实施方式相同的方法来实现,省略其详细的说明。
[0337]按照图28所示的流程图(步骤ClO?C50、G51、C60?C80),对如上述那样构成的、作为第6实施方式的一例的并行计算机系统I中的端口发送部102的处理进行说明。另夕卜,以下,图中赋予了与既述的符号相同的符号的步骤表示相同的处理,故省略其说明。
[0338]发送控制部104(比较部13)比较由发送节点数存储部105管理的发送节点数与存放在包中的发送节点数(步骤C40)。该比较的结果,若由发送节点数存储部105管理的发送节点数比包的发送节点数大(参照步骤C40的“是”分支),则发送控制部104以发送节点数存储部105的发送节点数来改写包的发送节点数的值(步骤C50)。
[0339]发送控制部104基于所改写的包的发送节点数,来生成响应包。然后,发送控制部104将发送请求发送给作为发送源的网络端口 101的端口发送部102。若从该端口发送部102返回发送许可,则发送响应包(步骤G51)。
[0340]然后,发送控制部104将发送请求发送给连接的其他交换机100的网络端口 101。然后,若从该网络端口 101响应发送许可,则发送控制部104向对应的网络端口 101发送包(步骤C60),结束处理。
[0341]此外,在接收到响应包的本地节点的网络接口 203中,与第I实施方式同样地,控制为将发送节点数发送至间隙控制部207,并向包发送部206插入间隙。
[0342]这样,根据作为第6实施方式的一例的并行计算机系统1,在交换机100中,当转送包时发送节点数增加时,创建响应包并返送至发送源节点。由此,与从发送目的地节点返送响应包相比,能够将网络2上的通信状态迅速地通知给发送源节点,并以最合适的间隙长进行包的发送。即,能够对发送源节点迅速地反映网络2的通信状态。
[0343]此外,在作为上述的第6实施方式的一例的并行计算机系统I中,也可以将向发送源节点返送响应包的交换机100限定为特定的交换机100。由此,能够减少由于从全部的交换机100发送出响应包而可能产生的网络流量的增加等的影响。
[0344]另外,作为具 备返送响应包的功能的交换机100,希望限定为例如网络2的拓扑是网状的情况下的中央部分的交换机等预想通信集中的交换机100。
[0345](H)第7实施方式
[0346]图29是示意性地表示作为第7实施方式的一例的并行计算机系统I中的计算节点200的构成的图。
[0347]如该图29所示,第7实施方式的计算节点200具备多个控制部205,此外具备与第I实施方式的计算节点200相同的构成。另外,以下,图中,与既述的符号相同的符号表示相同的部分,故省略其详细说明。
[0348]在本第7实施方式的并行计算机系统I中,从各计算节点200发送的数据以分割成包的状态进行收发。此外,能够适当地设定该包的包长,此外,能够作为固定长或者可变长设当实施。
[0349]在作为本第7实施方式的一例的并行计算机系统I中,从处理器201收到了消息发送指示的各控制部205生成包,并将生成的这些包分别发送给包发送部206。
[0350]在处理器201进行多个消息发送指示,多个控制部205分别将包发送到包发送部206的情况下,包发送部206以时间分割来发送包。
[0351]图30是示意性地例示作为第7实施方式的一例的并行计算机系统I中的发送包的格式的图。作为本第7实施方式的一例的并行计算机系统I的发送包格式除了图15所示的第2实施方式的发送包格式之外还具备最先标识。另外,发送包中的其他部分与使用图15等进行说明的包所包含的既述的各信息相同,故省略其详细说明。
[0352]此外,以下,图中与既述的符号相同的符号表示相同的部分,故省略其详细说明。
[0353]在发送源节点中,网络接口 203在将消息分割成多个包并进行发送时,针对最先的包,将其最先标识设定为例如“I”。此外,针对最先以外的包,分别对最先标识设定“O”。它们的最先标识的“I”相当于表示该包(分割数据)为最先的最先识别信息。
[0354]另外,对该最先标识的“O”或“I”的设定例如可以由控制部205进行,此外也可以由包发送部206进行。
[0355]图31是表示作为第7实施方式的一例的并行计算机系统I中的发送节点数存储部105的构成的图。作为该图31所示的第7实施方式的一例的并行计算机系统I的发送节点数存储部105是从第I实施方式的发送节点数存储部105去掉了发送节点数存储部105的部件,仅具备计数器121。
[0356]在具备作为该第7实施方式的发送节点数存储部105的交换机100中,计数器121基于来自发送控制部104的递增计数信号或者递减计数信号来变更其计数值。
[0357]然后,发送控制部104在将被设定了最先标识“I”的包(最先包)发送给其他交换机100时,通过向计数器121发送递增计数信号,来使计数器121进行递增计数。
[0358]此外,发送控制部104在发送被设定了末尾标识“I”的末尾包时,通过向计数器121发送递减计数信号,使其对发送节点数进行递减计数。
[0359]另外,计数器121的递增计数或递减计数的定时并不局限与此,能够以各种变形的方式实施。例如,也可以在端口接收部106接收到最先包时,接收控制部108向计数器121发送递增计数信号使其进行递增计数。
[0360]同样地,也可以在端口接收部106接收到末尾包时,接收控制部108向计数器121发送递减计数信号,使其对发送节点数进行递减计数。
[0361]按照图32所示的流程图(步骤HlO?H100),对作为如上述那样构成的第7实施方式的一例的并行计算机系统I中的为发送源节点的计算节点200的网络接口 203的处理进行说明。
[0362]控制部205从处理器201接收消息发送指示(步骤H10)。控制部205确认该消息发送指示,确认该消息发送指示是否是指示存放在主存储装置202中的数据的发送(步骤H20)。作为指示存放在主存储装置202中的数据的发送的消息发送指示,例如是Put请求。此外,作为不指示存放在主存储装置202中的数据的发送的消息发送指示,例如是Get请求或者单纯的指令发送。
[0363]在消息发送指示是向远程节点发送数据的情况下(参照步骤H20的是分支),控制部205分割对象的数据,并生成以I个包进行发送的数据的主存储装置202上的地址和数据长。控制部205将生成的这些信息发送给DMA控制器204,并从主存储装置202读出发送给DMA控制器204的数据(步骤H30)。
[0364]控制部205基于来自处理器201的消息发送指示,生成用于发送的包(步骤H40)。例如,在进行数据发送的情况下,通过与基于DMA控制器204读出的数据和从消息发送指示获取的信息等而创建的报头进行组合来生成包。此外,在消息发送指示是不进行数据发送的情况下(参照步骤H20的“否”分支),基于消息发送指示来创建用于发送的包。
[0365]然后,控制部205确认所生成的包是消息涉及的最先包,并且其他控制部205没有正在发送包(步骤H50)。
[0366]在所生成的包是消息所涉及的最先包,并且其他控制部205没有正在发送包的情况下(参照步骤H50的“是”分支),将该包的最先标识变为有效(步骤H60)。例如,对最先标识设定“ I ”。然后,控制部205使包发送部206发送该包(步骤H70)。
[0367]另一方面,在不满足所生成的包是消息所涉及的最先包,并且其他控制部205没有正在发送包的条件的情况下(参照步骤H50的“否”分支),接着,确认是否该包是末尾包,并且相同的消息的最先包的最先标识被设定为有效(步骤H90)。
[0368]在未满足该包是末尾包,并且,相同的消息中最先标识被设定为有效的条件的情况下(参照步骤H90的“否”分支),移至步骤H70。
[0369]此外,若该包是末尾包,并且相同的消息中最先标识被设定为有效(参照步骤H90的“是”分支),则将该包的末尾标识设成有效。即,例如对末尾标识设定“I” (步骤H100)。然后,移至步骤H70。
[0370]然后,控制部205确认该包是否是末尾包(步骤H80),在不是末尾包的情况下(参照步骤H80的“否”分支),返回至步骤H20。此外,若该包是末尾包(参照步骤H80的“是”分支),则结束处理。
[0371]接着,按照图33所示的流程图(步骤(:10、111、112工20~060),对作为第7实施方式的一例的并行计算机系统I中的端口发送部102的处理进行说明。另外,以下,图中赋予了与既述的符号相同的符号的步骤表示相同的处理,故省略其说明。
[0372]端口发送部102若接收到从端口接收部114、端口接收部106转送的包,则将接收到的包存放于缓冲区103 (步骤C10)。
[0373]发送控制部104确认该接收到的包的最先标识,从而确认该包是否是最先包(步骤J11)。该确认的结果,在包是最先包的情况下(参照步骤Jll的“是”分支),发送控制部104向发送节点数存储部105 (计数器121)发送递增计数信号,使其对计数器值进行递增计数(+1)(步骤J12)。然后,移至步骤C40。
[0374]此外,在包不是最先包的情况下(参照步骤Jll的“否”分支),移至步骤C20。
[0375]这样,根据作为第7实施方式的一例的并行计算机系统1,能够获得与上述的第2实施方式相同的作用效果,此外,在交换机100中,发送节点数存储部105仅具备计数器121,基于该计数器值来管理发送节点数。
[0376]由此,无需设置如发送节点信息存储部122这样的用于进行发送节点状态信息的存储的存储区域,能够消减用作发送节点数存储部105的存储部的容量。因此,能够降低制造成本。
[0377]此外,发送包中具备发送标识和末尾标识。而且,在一个发送源节点以时间分割发送多个消息的情况下,通过仅对一个消息将最先标识和末尾标识设成有效,从而能够准确地对发送节点数进行计数,能够提高可靠性。
[0378](I)其他
[0379]而且,本发明并不限定于上述的实施方式,在不脱离本发明的宗旨的范围内能够以各种变形的方式实施。
[0380]另外,若公开了本发明的各实施方式,则对本领域技术人员来说能够实施、制造本发明。
[0381 ]图中符号说明:
[0382] 1:并行计算机系统;2:网络;11:输入部;12:输出部;13:比较部;14:改写处理部;15:更新处理部;16:发送节点数存储部;21:包发送部;22:间隙调整部;23:发送节点数发送部;100:交换机;101、101-1、101-2、101-3、101-4:网络端口 ;102:端口发送部;103、107、112、115:缓冲区;104、113:发送控制部;105:发送节点数存储部;106:端口接收部;108、116:接收控制部;110:节点端口 ;111:端口发送部;121:计数器122:发送节点信息存储部;200、200-1、200-2、200-3、200-4:计算节点(发送源节点、发送目的地节点);201:处理器;202:主存储装置;203:网络接口 ;204:DMA控制器;205:控制部;206:包发送部;207:间隙控制部;208:包接收部。
【权利要求】
1.一种计算机系统,是分别具备多个通信控制装置、经由所述通信控制装置来发送数据的发送源的计算节点、以及经由所述通信控制装置来接收数据的发送目的地的计算节点的计算机系统,其特征在于, 所述发送源的计算节点具有: 数据发送部,其向所述发送目的地的计算节点发送数据;和 调整部,其基于接收到的控制数据所包含的发送节点数,来调整所述数据发送部发送的数据间的间隔, 所述通信控制装置具备: 输入部,其输入所述发送源的计算节点发送的数据; 输出部,其输出向所述发送目的地的计算节点发送的数据; 发送节点数存储部,其存储发送节点数,该发送节点数表示经由所述通信控制装置来发送数据的计算节点的个数; 更新处理部,在所述输出部输出数据的情况下,该更新处理部更新所述发送节点数存储部存储的发送节点数; 比较部,其比较所述输入部输入的数据所包含的发送节点数和所述发送节点数存储部存储的发送节点数;以及 改写部,基于所述比较部的比较的结果,在所述发送节点数存储部存储的发送节点数比所述输入部输入的数据所包含的发送节点数大的情况下,该改写部将所述输出部输出的数据所包含的发送节点数改写成所述发送节点数存储部存储的发送节点数, 所述发送目的地的计算节点具有: 控制数据发送部,该控制数据发送部将包含接收到的数据所包含的发送节点数的所述控制数据发送至所述发送源的计算节点。
2.根据权利要求1所述的计算机系统,其特征在于, 所述通信控制装置还具有: 数据大小比较部,其比较作为所述输入部输入的数据的大小的数据大小和预先设定的阈值;和 更新抑制部,基于所述数据大小比较部的比较的结果,在所述数据大小比所述阈值小的情况下,当所述输出部输出数据时,该更新抑制部抑制所述更新处理部对所述发送节点数存储部存储的发送节点数的更新。
3.根据权利要求1或2所述的计算机系统,其特征在于, 所述数据发送部生成被分割的多个数据, 在所述输出部输出所生成的所述多个数据中的最先的数据的情况下,所述更新处理部更新所述发送节点数存储部存储的发送节点数。
4.根据权利要求3所述的计算机系统,其特征在于, 所述数据发送部对被分割的所述多个数据中的最先的数据附加表示是最先这一意思的最先识别信息, 所述更新处理部在从所述输出部输出附加了所述最先识别信息的数据的情况下,更新所述发送节点数存储部存储的发送节点数。
5.根据权利要求1或2所述的计算机系统,其特征在于,所述数据发送部创建被分割的多个数据, 所述更新处理部在所述输出部输出所生成的所述多个数据中的末尾的数据的情况下,使所述发送节点数存储部的发送节点数减少。
6.根据权利要求5所述的计算机系统,其特征在于, 所述数据发送部创建被分割的多个数据,并且对所述多个数据的末尾的数据附加表示是末尾这一意思的末尾识别信息, 在所述输出部输出附加了所述末尾识别信息的数据的情况下,所述更新处理部使所述发送节点数存储部的发送节点数减少。
7.根据权利要求1~4中任意一项所述的计算机系统,其特征在于, 所述更新处理部在使所述发送节点数存储部的发送节点数增加后经过了规定时间的情况下,使所述发送节点数存储部存储的发送节点数减少。
8.根据权利要求1~7中任意一项所述的计算机系统,其特征在于, 所述通信控制装置具有发送节点信息存储部,该发送节点信息存储部存储发送节点信息,该发送节点信息表示正在发 送经由所述通信控制装置的数据的计算节点, 在所述输出部输出数据的情况下,所述更新处理部参照所述发送节点信息存储部,在所述发送节点信息中未包含所述输出部输出的数据的发送源的计算节点时,使所述发送节点信息包含所述数据的发送源的计算节点,并且更新所述发送节点数存储部存储的发送节点数。
9.根据权利要求8所述的计算机系统,其特征在于, 所述数据发送部在发送分别与多个消息对应的多个数据的情况下,对分别与所述多个消息对应的多个数据分别附加识别所对应的消息的消息识别信息, 所述发送节点信息存储部按照每个消息识别信息来存储发送节点信息, 在所述输出部输出数据的情况下,所述更新处理部按照每个消息识别信息来更新所述发送节点数存储部存储的发送节点数。
10.根据权利要求1~9中任意一项所述的计算机系统,其特征在于, 连接通信控制装置、所述发送源的计算节点、以及所述发送目的地的计算节点间的通信网具有连接多个维度的通信路的多维网络构成, 所述节点数存储部按照每个维度对应地存储所述发送节点数, 存在于从所述发送源的计算节点到所述发送目的地的计算节点的通信路中,并进行从一个维度的通信路向其他维度的通信路的切换的通信控制装置的更新处理部代替切换前的所述一个维度的通信路的发送节点数而存储与所述通信控制装置连接的计算节点的个数,来作为与切换后的所述其他维度对应的发送节点数。
11.一种通信控制装置,其特征在于,具有: 输入部,其输入经由所述通信控制装置来发送数据的发送源的计算节点所发送的数据; 输出部,其输出向经由所述通信控制装置来接收数据的发送目的地的计算节点发送的数据; 发送节点数存储部,其存储发送节点数,该发送节点数表示经由所述通信控制装置来发送数据的计算节点的个数;更新处理部,在所述输出部输出数据的情况下,该更新处理部更新所述发送节点数存储部存储的发送节点数; 比较部,其比较所述输入部输入的数据所包含的发送节点数、和所述发送节点数存储部存储的发送节点数;以及 改写部,基于所述比较部的比较的结果,在所述发送节点数存储部存储的发送节点数比所述输入部输入的数据所包含的发送节点数大的情况下,该改写部将所述输出部输出的数据所包含的发送节点数改写成所述发送节点数存储部存储的发送节点数。
12.—种计算机系统的控制方法,是分别具备多个通信控制装置、经由所述通信控制装置来发送数据的发送源的计算节点、以及经由所述通信控制装置来接收数据的发送目的地的计算节点的计算机系统的控制方法,其特征在于, 所述发送源的计算节点具有的数据发送部向所述发送目的地的计算节点发送数据,所述发送源的计算节点具有的调整部基于接收到的控制数据所包含的发送节点数,来调整所述数据发送部发送的数据间的间隔, 所述通信控制装置具有的输入部输入所述发送源的计算节点发送的数据, 所述通信控制装置具有的发送节点数存储部存储表示经由所述通信控制装置来发送数据的计算节点的个数的发送节点数, 所述通信控制装置具有的输出部输出向所述发送目的地的计算节点发送的数据, 在所述输出部输出数据的情况下,所述通信控制装置具有的更新处理部更新所述发送节点数存储部存储的发送节点数, 所述通信控制装置具有的比较部比较所述输入部输入的数据所包含的发送节点数、和所述发送节点数存储部存储的发送节点数,基于所述比较部的比较的结果,在所述发送节点数存储部存储的发送节点数比所述输入部输入的数据所包含的发送节点数大的情况下,所述通信控制装置具有的改写部将所述输出部输出的数据所包含的发送节点数改写成所述发送节点数存储部存储的发送节点数,所述发送目的地的计算节点具有的控制数据发送部将包含接收到的数据所包含的发送节点数的所述控制数据发送至所述发送源的计算节点。
【文档编号】G06F15/173GK104040528SQ201180076079
【公开日】2014年9月10日 申请日期:2011年12月28日 优先权日:2011年12月28日
【发明者】平本新哉 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1