(57)【特許請求の範囲】
【請求項１】
パケットが入力される複数の入力部と、
パケットを出力する複数の出力部と、
前記複数の入力部に入力された複数のパケットのうち、同一の出力部を宛先とする複数の競合パケットの中から、各競合パケットに設定された優先情報に基づいて、前記同一の出力部から出力する出力パケットを選択する選択部と、
前記複数の競合パケットのうち、前記選択部が前記出力パケットとして選択しなかった非選択パケットのそれぞれの優先情報を、選択された前記出力パケットのパケットサイズに応じた重み情報に基づいて更新する処理部と、
をそなえることを特徴とする、通信制御装置。
【請求項２】
前記選択部が、
前記複数のパケットのそれぞれから取得した宛先情報に基づき前記競合パケットを特定する競合パケット特定部と、
前記競合パケット特定部によって特定された前記競合パケットの中から、前記優先情報に基づいて、前記出力パケットを選択する出力パケット選択部とをそなえることを特徴とする、請求項１記載の通信制御装置。
【請求項３】
パケットが入力される複数の入力部と、パケットを出力する複数の出力部と、前記複数の入力部に入力された複数のパケットのうち、同一の出力部を宛先とする複数の競合パケットの中から、各競合パケットに設定された優先情報に基づいて、前記同一の出力部から出力する出力パケットを選択する選択部と、前記複数の競合パケットのうち、前記選択部が前記出力パケットとして選択しなかった非選択パケットのそれぞれの優先情報を、選択された前記出力パケットのパケットサイズに応じた重み情報に基づいて更新する処理部とをそなえる通信制御装置と、
前記通信制御装置を介して通信可能に接続される複数の計算ノードと、
をそなえることを特徴とする、並列計算機システム。
【請求項４】
パケットが入力される複数の入力部と、パケットを出力する複数の出力部とをそなえる通信制御装置の通信制御方法において、
前記通信制御装置が、
前記複数の入力部に入力された複数のパケットのうち、同一の出力部を宛先とする複数の競合パケットの中から、各競合パケットに設定された優先情報に基づいて、前記同一の出力部から出力する出力パケットを選択し、
前記複数の競合パケットのうち、前記出力パケットとして選択しなかった非選択パケットのそれぞれの優先情報を、選択された前記出力パケットのパケットサイズに応じた重み情報に基づいて更新することを特徴とする、通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、通信制御装置、並列計算機システム及び通信制御方法に関する。
【背景技術】
【０００２】
従来、演算処理を行なう複数のノードをそなえる並列計算機が知られている。並列計算機にそなわるノードは、複数の通信機器、ルーティング装置（例えば、スイッチ）等を含むネットワークを介して接続され、互いにデータ通信を行なう。
図１０は並列計算機１００の構成例を示す図である。
この図１０に示す並列計算機１００は、計算を行なうノードＮ０〜Ｎ７と、受信したデータを特定の送信先のノードに転送するスイッチ１１０〜１１７とをそなえる。スイッチ１１０〜１１７は、スイッチを直線上に配置した１次元のメッシュ型ネットワークを構成する。
【０００３】
スイッチは、ノードや他のスイッチが接続されている入力ポートからパケットを受信すると、受信したパケット内に含まれる宛先情報に基づいて、パケットを出力する出力ポートを決定する。そして、スイッチは、決定した出力ポートにパケットを出力する。
同じ出力ポートに出力するパケットを複数受信した場合、スイッチは、各入力ポートから出力ポートに出力するパケットの数が均等になるように調停を行なう。そして、スイッチは、調停結果に従って出力ポートからパケットを送信する。
【０００４】
上記技術に関連して、宛先までの転送回数であるホップ数に応じたパケットサイズを決定して送信データをより小さいサイズのパケットに断片化するフラグメント化を行なう送信ノードと、ホップ数に応じた優先制御によってパケットを送信する中継ノードとを含む無線マルチホップネットワークが知られている。
また、通信が完了したパケットの長さに基づいて、次のパケットの長さを定めることにより、常に効率のよい通信を行なう無線データ通信方法が知られている。
【特許文献１】特開２００３−２７３７８８号公報
【特許文献２】特開２００１−３２６６４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の並列計算機１００において、ノードＮ０〜Ｎ７間で集団通信を行なうことにより一部のスイッチに通信が集中すると、通信が集中したスイッチまでのホップ数が大きいノードほど通信帯域幅が大きく下がる。この場合、ホップ数が小さいノードからのデータに比べて、ホップ数の大きいノードからの宛先ノードへのデータの到着が遅延する。
図１１はノードＮ０〜Ｎ６がノードＮ７に対してデータを送信する集団通信の例を示す図である。
【０００６】
一般に、スイッチは各入力ポートからのパケットが均等に出力されるように調停を行なう。すなわち、スイッチは、各入力ポートに入力されるパケットの、出力ポートへの出力数が均等、つまり１／２ずつになるように、入力するパケットの調停を行なう。従って、ノードＮ６からスイッチ１１６に送信され、且つ、スイッチ１１６からスイッチ１１７に送信されるパケット数は、スイッチ１１６からスイッチ１１７に送信される全パケット数の１／２となる。
【０００７】
図１１では、ノードＮ７に送信されるパケット数、すなわち、スイッチ１１７に送信されるパケット数に対して、任意のノードが送信するパケット数の比率を「パケット数比」とする。この場合、ノードＮ６におけるパケット数比は１／２となる。
また、スイッチ１１５からスイッチ１１６に送信され、且つ、スイッチ１１６からスイッチ１１７に送信されるパケット数は、スイッチ１１６からスイッチ１１７に送信される全パケット数の１／２となる。そして、ノードＮ５からスイッチ１１５に送信され、且つ、スイッチ１１５からスイッチ１１６に送信されるパケット数は、スイッチ１１５からスイッチ１１６に送信される全パケット数の１／２となる。従って、ノードＮ５におけるパケット数比は１／４となる。
【０００８】
同様に、ノードＮ４、Ｎ３、Ｎ２、及びＮ１のパケット数比は、それぞれ１／８、１／１６、１／３２、及び１／６４となる。
ここで、集団通信の発信元である各ノードが送信するパケットのサイズの比率を「パケットサイズ比」とする。図１１に示す集団通信では、全てのノードが同様のサイズのパケットを出力するので、ノードＮ６、Ｎ５、Ｎ４、Ｎ３、Ｎ２、Ｎ１、及びＮ０におけるパケットサイズ比は、それぞれ１：１：１：１：１：１：１となる。
【０００９】
また、通信帯域幅全体に対する、送信元のノードがパケットを送信するために使用する通信帯域幅の比率を「通信帯域幅比」とする。全てのノードが同様のサイズのパケットを出力する場合、各ノードにおけるパケット数比がそのまま通信帯域幅比となるので、ノードＮ６、Ｎ５、Ｎ４、Ｎ３、Ｎ２、Ｎ１、及びＮ０における通信帯域幅比は全体を１とすると、それぞれ１／２、１／４、１／８、１／１６、１／３２、１／６４、及び１／６４となる。
【００１０】
図１１に示した集団通信の例では、宛先ノードＮ７から近いノードＮ６やＮ５に対して、宛先ノードＮ７から遠いノードＮ０やＮ１の通信帯域幅が大きく下がってしまうことになる。全てのノードの通信が完了しなければ、集団通信は完了しない。そのため、宛先ノードＮ７に近いノードＮ６から宛先ノードＮ７へのデータに比べて、ノードＮ０やＮ１からの宛先ノードＮ７へのデータの到着が遅延する。この場合、宛先ノードＮ７から遠いノードＮ０やＮ１の通信帯域幅がボトルネックとなる。ホップ数の大きいノードからの宛先ノードへのデータの到着が遅くなる。
【００１１】
また、集団通信以外の通信であっても、一部のスイッチに通信が集中すると、通信が集中したスイッチまでの転送回数であるホップ数が大きいノードの通信帯域幅は大きく下がる。
例えば、図１１に示すようなネットワークにおいて３６個のスイッチが１列に連なって接続されている状態では、宛先ノードから最も遠いノードの通信帯域幅は、約、１／３４３億まで低下し、事実上通信に参加できない状態となる。
【００１２】
このように、集団通信等、一部のスイッチに通信が集中すると、通信が集中したスイッチへのホップ数が大きいノードの通信帯域幅が大きく下がってしまうため、ホップ数の大きいノードから宛先ノードへのデータの到着が遅くなる。そのため、ホップ数の大小によって宛先ノードへのデータの到着時間に偏りが生じる。
１つの側面では、本件は、宛先ノードへのデータの到着時間の均一化を図ることを目的とする。
【００１３】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【００１４】
このため、この通信制御装置は、パケットが入力される複数の入力部と、該パケットを
出力する複数の出力部と、前記複数の入力部に入力された複数のパケットのうち、同一の出力部を宛先とする複数の競合パケットの中から、各競合パケットに設定された優先情報に基づいて、前記同一の出力部から出力する出力パケットを選択する選択部と、前記複数の競合パケットのうち、前記選択部が前記出力パケットとして選択しなかった非選択パケットのそれぞれの優先情報を、選択された前記出力パケットのパケットサイズに応じた重み情報に基づいて更新する処理部とをそなえる。
【００１５】
また、この並列計算機システムは、パケットが入力される複数の入力部と、パケットを出力する複数の出力部と、前記複数の入力部に入力された複数のパケットのうち、同一の出力部を宛先とする複数の競合パケットの中から、各競合パケットに設定された優先情報に基づいて、前記同一の出力部から出力する出力パケットを選択する選択部と、前記複数の競合パケットのうち、前記選択部が前記出力パケットとして選択しなかった非選択パケットのそれぞれの優先情報を、選択された前記出力パケットのパケットサイズに応じた重み情報に基づいて更新する処理部とをそなえる通信制御装置と、前記通信制御装置を介して通信可能に接続される複数の計算ノードと、をそなえる。
【００１６】
さらに、この通信制御方法は、パケットが入力される複数の入力部と、パケットを出力する複数の出力部とをそなえる通信制御装置の通信制御方法において、前記通信制御装置が、前記複数の入力部に入力された複数のパケットのうち、同一の出力部を宛先とする複数の競合パケットの中から、各競合パケットに設定された優先情報に基づいて、前記同一の出力部から出力する出力パケットを選択し、前記複数の競合パケットのうち、前記出力パケットとして選択しなかった非選択パケットのそれぞれの優先情報を、選択された前記出力パケットのパケットサイズに応じた重み情報に基づいて更新する。
【発明の効果】
【００１７】
１実施形態によれば、宛先ノードへのデータの到着時間の均一化を図ることができる
。
【図面の簡単な説明】
【００１８】
【図１】実施形態の一例としてのスイッチの構成を模式的に示す図である。
【図２】実施形態の一例としてのスイッチをそなえる並列計算機システムの構成を模式的に示す図である。
【図３】実施形態の一例としてのスイッチのハードウェア構成を模式的に示す図である。
【図４】実施形態の一例としてのスイッチにおける優先カウンタ値を説明するための図である。
【図５】実施形態の一例としてのスイッチにおける出力ポート調停部のハードウェア構成を模式的に示す図である。
【図６】実施形態の一例としてのスイッチにおける競合発生時の処理を説明するためのフローチャートである。
【図７】実施形態の一例としてのスイッチにおける入力ポート及び出力ポートの状態を模式的に例示する図である。
【図８】実施形態の一例としてのスイッチにおける入力ポート及び出力ポートの状態を模式的に例示する図である。
【図９】実施形態の一例としてのスイッチをそなえた並列計算機システムにおけるパケットの転送状態を示す図である。
【図１０】並列計算機の構成例を示す図である。
【図１１】ノードＮ０〜Ｎ６がノードＮ７に対してデータを送信する集団通信の例を示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本通信制御装置、並列計算機システム及び通信制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
図１は実施形態の一例としてのスイッチ２０の構成を模式的に示す図、図２はそのスイッチ２０をそなえる並列計算機システム１の構成を模式的に示す図、図３はそのスイッチ２０のハードウェア構成を模式的に示す図である。
【００２０】
並列計算機システム１は、図２に示すように、複数（図２に示す例では１６個）の計算ノード２００を、１以上（図２に示す例では１６個）のルータ（スイッチ装置）２０を介して相互に通信可能に接続した相互結合網により構成されている。
図２に示す例においては、格子状に形成されたネットワーク２の各格子点にルーティング装置（通信制御装置）２０がそれぞれ配置され、各ルーティング装置２０を介して計算ノード２００がそれぞれ接続されている。
【００２１】
なお、本実施形態において、並列計算機システム１にそなえられる複数の計算ノード２００は互いに同様の構成をそなえており、又、複数のルーティング装置２０も互いに同様の構成をそなえている。
計算ノード２００は図示しない相互結合網インタフェースを介してルーティング装置２０と通信可能に接続されている。これにより、本並列計算機システム１内の任意の計算ノード２００間でパケットを送受信することができる。
【００２２】
本並列計算機システム１においては、各計算ノード２００から送信されるデータはパケットに分割された状態で送受信される。又、このパケットのパケット長は適宜設定することができ、又、固定長もしくは可変長として適宜実施することができる。
計算ノード２００は、図示しないプロセッサをそなえる。このプロセッサは、図示しない相互結合網インタフェースのパケット受信回路が保持するパケットを順次取得し、演算処理を行なう。また、プロセッサは、他の計算ノード２００へデータを送信する必要がある場合に、そのデータを分割して宛先アドレスを含むパケットを生成し、相互結合網インタフェースを介して出力する。
【００２３】
ルーティング装置２０は、計算ノード２００や他のルーティング装置２０と通信可能に接続され、受信したパケット（データ）を転送先に送信する中継装置である。ルーティング装置２０としては、例えば、スイッチが用いられる。以下、ルーティング装置２０をスイッチ２０とも表す。
図３に例示するスイッチ２０は、２次元メッシュのネットワークに用いられる５ポートのスイッチ２０であり、通信制御部２２０，ネットワークポート１０１−１〜１０１−４及びノードポート１１０を備える。
【００２４】
ネットワークポート１０１−１〜１０１−４は、他のスイッチ２０との通信に用いられる通信ポートであり、通信回線を介して、他のスイッチ２０と通信可能に接続される。
これらのネットワークポート１０１−１〜１０１−４は互いに同様の構成をそなえる。以下、ネットワークポートを示す符号としては、複数のネットワークポートのうち１つを特定する必要があるときには符号１０１−１〜１０１−４を用いるが、任意のネットワークポートを指すときには符号１０１を用いる。又、ノードポート１１０に計算ノード２００が接続される。
【００２５】
なお、図３中においては、便宜上、各ネットワークポート１０１やノードポート１１０，通信制御部２２０等の詳細な構成の図示を省略している。
ネットワークポート１０１は、図３に示すように、ポート送信部１０２及びポート受信部１０６を備える。
ポート受信部１０６は、通信回線を介して接続された他のスイッチ２０から送信されたパケットの受信を行なう。すなわち、このポート受信部１０６が、パケットが入力される入力部として機能する。
【００２６】
このポート受信部１０６は、バッファ１０７及び受信制御部１０８を備える。バッファ１０７は、接続された他のスイッチ２０から送信されたパケットを格納するＦＩＦＯ（First In, First Out）型のメモリである。
受信制御部１０８は、他のスイッチ２０からのパケットを受信し、バッファ１０７に格納する制御を行なう。又、受信制御部１０８は、バッファ１０７に格納されたパケットを、当該パケットの送信先に対応するネットワークポート１０１やノードポート１１０に対して、通信制御部２２０を介して送出する制御も行なう。
【００２７】
この受信制御部１０８は、他のスイッチ２０から送信される送信要求に対して、バッファ１０７にパケットを格納可能な状態になると送信許可を返信する。そして、他のスイッチ２０から送信されるパケットを受信しバッファ１０７に格納する。
受信制御部１０８は、受信したパケットのルーティングヘッダやリモートアドレスを参照して転送先のネットワークポート１０１や計算ノード２００を決定する。そして、決定した、ネットワークポート１０１のポート送信部１０２の送信制御部１０４やノードポート１１０のポート送信部１１１の送信制御部１１３に対して、通信制御部２２０を介して送信要求を送出する。受信制御部１０８は、これらの送信制御部１０４から送信許可を受信すると、バッファ１０７に格納されているパケットを、通信制御部２２０を介してネットワークポート１０１のポート送信部１０２やノードポート１１０のポート送信部１１１に対して送出する。
【００２８】
ポート送信部１０２は、ネットワーク２を介して接続された他のスイッチ２０に対してパケットの送信を行なう。すなわち、このポート送信部１０２が、パケットを出力する出力部として機能する。
このポート送信部１０２は、バッファ１０３及び送信制御部１０４を備える。バッファ１０３は、接続された他のスイッチ２０に送出するパケットを格納するＦＩＦＯ型のメモリである。
【００２９】
送信制御部１０４は、バッファ１０３に格納されたパケットを、他のスイッチ２０に対して送出する制御を行なう。
この送信制御部１０４は、他のネットワークポート１０１のポート受信部１０６から他のスイッチ２０へ送信するパケット及び送信要求を受信し、この送信要求に従って、他のスイッチ２０に対してパケットを送信する。送信制御部１０４は、他のスイッチ２０に対してパケットを送信するに際して、そのスイッチ２０に対して送信要求を送出し、このスイッチ２０から送信許可を受信すると、バッファ１０３に格納されているパケットを送出する。又、送信制御部１０４は、他のネットワークポート１０１のポート受信部１０６から通信制御部２２０を介して送信要求を受信し、バッファ１０３にパケットを格納可能な状態となると、そのポート受信部１０６の受信制御部１０８に対して送信許可を送信する。
【００３０】
ノードポート１１０は、計算ノード２００と通信可能に接続され、この接続された計算ノード２００とのパケットの授受を行なう。
ノードポート１１０は、図３に示すように、ポート送信部１１１及びポート受信部１１４を備える。ポート送信部１１１は、接続された計算ノード２００の相互結合網インタフェースに対して、当該スイッチ２０においてネットワークポート１０１が受信したパケットを送信する。
【００３１】
ポート送信部１１１は、接続された計算ノード２００の相互結合網インタフェースにパケットを送信する。すなわち、このポート送信部１１１は、パケットを出力する出力部として機能する。
このポート送信部１１１は、バッファ１１２及び送信制御部１１３を備える。バッファ１１２は、接続された計算ノード２００の相互結合網インタフェースに送出するパケットを格納するＦＩＦＯ型のメモリである。送信制御部１１３は、バッファ１１２に格納されたパケットを計算ノード２００に対して送出する制御を行なう。
【００３２】
この送信制御部１１３は、ネットワークポート１０１から通信制御部２２０を介して送信要求及びパケットを受信し、この送信要求に従って計算ノード２００に対してパケットを送信する。送信制御部１１３は、計算ノード２００にパケットを送信するに際して、その相互結合網インタフェースに対して送信要求を送出する。そして、相互結合網インタフェースから送信許可が応答されると、バッファ１１２に格納されているパケットをその相互結合網インタフェースに対して送出する。又、送信制御部１１３は、バッファ１１２に新たなパケットを格納可能な状態となると、通信制御部２２０を介してネットワークポート１０１に対して送信許可を送信する。
【００３３】
ポート受信部１１４は、計算ノード２００の相互結合網インタフェースから送信されるパケットを受信する。すなわち、このポート受信部１１４も、パケットが入力される入力部として機能する。
ポート受信部１１４は、バッファ１１５及び受信制御部１１６を備える。バッファ１１５は、接続された計算ノード２００の相互結合網インタフェースから受信したパケットを格納するＦＩＦＯ型のメモリである。受信制御部１１６は、相互結合網インタフェースから送信されるパケットを受信し、バッファ１１５に格納する制御を行なう。又、受信制御部１１６は、バッファ１１５に格納されたパケットを、当該パケットの送信先に対応するネットワークポート１０１に通信制御部２２０を介して送出する制御も行なう。
【００３４】
この受信制御部１１６は、計算ノード２００の相互結合網インタフェースから送信される送信要求に対して、バッファ１１５にパケットを格納可能な状態になると送信許可を返信する。そして、受信制御部１１６は、相互結合網インタフェースから送信されるパケットを受信しバッファ１１５に格納する。
受信制御部１１６は、受信したパケットのルーティングヘッダやリモートアドレスを参照して転送先のネットワークポート１０１を決定し、通信制御部２２０を介してそのネットワークポート１０１のポート送信部１０２の送信制御部１０４に対して送信要求を送出する。受信制御部１１６は、ネットワークポート１０１から送信許可を受信すると、バッファ１１５に格納されているパケットを、通信制御部２２０を介してネットワークポート１０１のポート送信部１０２に対して送出する。
【００３５】
通信制御部２２０は、ネットワークポート１０１間におけるデータの送受信を制御する。後述する出力ポート調停部２１及びデータクロスバースイッチ２２が、この通信制御部２２０を実現する。
スイッチ２０は、図１に示すように、出力ポート調停部２１とデータクロスバースイッチ２２と加算処理部２５と、複数の入力ポート２３−１〜２３−５と複数の出力ポート２４−１〜２４−５とをそなえる。
【００３６】
なお、以下、入力ポートを示す符号としては、複数の入力ポートのうち１つを特定する必要があるときには符号２３−１〜２３−５を用いるが、任意の入力ポートを指すときには符号２３を用いる。同様に、以下、出力ポートを示す符号としては、複数の出力ポートのうち１つを特定する必要があるときには符号２４−１〜２４−５を用いるが、任意の出力ポートを指すときには符号２４を用いる。
【００３７】
そして、上述したネットワークポート１０１やノードポート１１０がこれらの入力ポート２３や出力ポート２４として機能する。又、一つの入力ポート２３と一つの出力ポート２４とで一つのポートが形成される。例えば、ネットワークポート１０１−１が入力ポート２３−１及び出力ポート２４−１に、又、ネットワークポート１０１−２が入力ポート２３−２及び出力ポート２４−２に、それぞれ相当する。同様に、ネットワークポート１０１−３が入力ポート２３−３及び出力ポート２４−２に、又、ネットワークポート１０１−４が入力ポート２３−４及び出力ポート２４−４に、それぞれ相当する。更に、ノードポート１１０が入力ポート２３−５及び出力ポート２４−５に相当する。
【００３８】
出力ポート２４は、計算ノード２００や他のスイッチ２０と通信回線を介して通信可能に接続され、これらの外部機器に対してパケットを出力する。出力ポート２４には、入力ポート２３−１〜２３−５のいずれかに入力されたパケットが出力パケットとして出力され、この設定されたパケットが出力される。
また、各出力ポート２４は、下流側の他のスイッチ２０や計算ノード２００に対するパケットの送出完了後に解放される。ここで、解放とは、当該出力ポート２４がデータを受け入れ可能な状態であることである。前述した送信制御部１０４，１１３は、例えば、出力ポート２４が解放されると送信許可の送信を行なう。
【００３９】
入力ポート２３は、計算ノード２００や他のスイッチ２０と通信回線を介して通信可能に接続され、これらの外部機器から出力されるパケットが入力される。入力ポート２３は、入力されたパケットを複数格納可能なバッファ２３１をそなえる。このバッファ２３１は、入力されたパケットをＦＩＦＯに格納し、このバッファ２３１に格納されたパケットのうち最も古いものから順に出力ポート２４に送出される。図３に示すバッファ１０７，１１５が、このバッファ２３１に相当する。以下、入力ポート２３においてバッファ２３１に格納されたパケットのうち、最も古いパケット、すなわち、入力ポート２３から最初に出力されるべきパケットを先頭パケットという場合がある。
【００４０】
また、以下、入力ポートを表す符号２３−１〜２３−５において、−（ハイフン）以下の数字１〜５をポート番号という場合がある。
本並列計算機システム１においては、例えばパケットのヘッダの先頭ワードに、パケットサイズＳ，宛先情報Ｄ及び優先カウンタ値（優先情報）Ｐが格納されている。これらのパケットサイズＳ，宛先情報Ｄ及び優先カウンタ値Ｐは、ＦＩＦＯ格納状態で読出可能である。又、優先カウンタ値Ｐは書き込み可能である。
【００４１】
パケットサイズＳは、そのパケットのサイズを表す情報であり、宛先情報Ｄはそのパケットの宛先を表す情報である。これらのパケットサイズＳ及び宛先情報Ｄは、既知の並列計算機システム１において授受されるパケットにもそなえられており、その詳細な説明は省略する。
優先カウンタ値Ｐは、そのパケットが転送処理を遅延させられた積算時間を表す値であり、後述する出力ポート調停部２１が、この優先カウンタ値Ｐに基づいて、優先的に処理するパケットの選択を行なう。
【００４２】
具体的には、後述するように、競合発生時において、出力ポート調停部２１による調停の結果、他のパケットが選択されることにより、そのパケットが調停で選択されなかった場合に、選択されたパケット（出力パケット）のパケットサイズＳｎが非選択パケットの優先カウンタ値Ｐに加算される。
すなわち、優先カウンタ値Ｐは、競合時に行なわれる調停により、当該パケットが非選択となった場合に、その調停により選択された出力パケットのパケットサイズＳｎが加算される。
【００４３】
図４は実施形態の一例としてのスイッチ２０における優先カウンタ値Ｐを説明するための図である。
この図４に示すように、優先カウンタ値Ｐは、そのパケットがこれまでに出力ポート調停部２１の調停により経路を譲った各パケットのパケットサイズの合計値（合計サイズ）である。
【００４４】
また、入力ポート２３の先頭パケットのパケットサイズＳ，宛先情報Ｄ及び優先カウンタ値Ｐは、後述する出力ポート調停部２１のレジスタＲＥＧ＿Ｓ，ＲＥＧ＿Ｄ及びＲＥＧ＿Ｐに、それぞれ格納される。
なお、図１中においては、各入力ポート２３の先頭パケットのパケットサイズＳ，宛先情報Ｄ及び優先カウンタ値Ｐに、それぞれポート番号を付して示している。
【００４５】
出力ポート調停部２１は、入力ポート２３に入力されたパケットを、その出力先に対応する出力ポート２４に受け渡すための制御を行なう。出力ポート調停部２１は、各入力ポート２３に入力されたパケットについて、そのヘッダから宛先を読み出し、その宛先に対応する出力ポート２４を選択する。この出力ポート２４の選択は、例えば、予め設定されたルーティングテーブル（図示参照）を参照することにより行なう。そして、出力ポート調停部２１は、データクロスバースイッチ２２を介して、出力先である出力ポート２４にパケットを受け渡す。以下、出力ポート２４にパケットを受け渡すことを、出力ポート２４にパケットを出力するという場合がある。
【００４６】
出力ポート調停部２１は、出力ポート２４において下流側の他のスイッチ２０や計算ノード２００へのパケットの送出処理が完了すると、入力ポート２３に格納されているパケットの各宛先を確認し、その出力ポート２４を宛先とする一のパケットを出力パケットとして選択する。この選択された出力パケットが、データクロスバースイッチ２２により、その出力先である出力ポート２４に受け渡される。
【００４７】
ここで、スイッチ２０において、同一の出力ポート２４を宛先とするパケットが同時に複数の入力ポート２３に格納されている状態を競合状態といい、又、宛先の出力ポート２４が同一であるこれらの複数のパケットを競合パケットという。
このような競合状態においては、出力ポート調停部（選択部）２１は、これらの競合パケットの中から、優先カウンタ値Ｐが最も大きい一のパケットを出力パケットとして選択する。すなわち、出力ポート調停部２１は、競合パケットの中から、各競合パケットに設定された優先カウンタ値Ｐに基づいて、出力パケットを選択する。
【００４８】
図５は実施形態の一例としてのスイッチ２０における出力ポート調停部２１のハードウェア構成を模式的に示す図である。
この図５に示すように、出力ポート調停部２１は、レジスタＲＥＧ＿Ｐ，ＲＥＧ＿Ｄ，ＲＥＧ＿Ｓ，ＲＥＧ＿ＳＩ，サイズ値交換用クロスバスイッチ２１１及び優先度付き調停器２１２をそなえる。
【００４９】
レジスタＲＥＧ＿Ｐ，ＲＥＧ＿Ｄ，ＲＥＧ＿Ｓ，ＲＥＧ＿ＳＩは、それぞれ入力ポート２３−１〜２３−５毎にそなえられる。
レジスタＲＥＧ＿Ｐには、入力ポート２３の先頭パケットのヘッダから読み出された優先カウンタ値Ｐが格納される。すなわち、入力ポート２３−１に対してそなえられたレジスタＲＥＧ＿Ｐには、入力ポート２３−１の先頭パケットの優先カウンタ値Ｐが格納される。同様に、入力ポート２３−２〜２３−５に対してそれぞれそなえられた各レジスタＲＥＧ＿Ｐには、入力ポート２３−１〜２３−５の各先頭パケットの優先カウンタ値Ｐがそれぞれ格納される。
【００５０】
レジスタＲＥＧ＿Ｄには、入力ポート２３の先頭パケットのヘッダから読み出された宛先情報Ｄが格納される。すなわち、入力ポート２３−１に対してそなえられたレジスタＲＥＧ＿Ｄには、入力ポート２３−１の先頭パケットの宛先情報Ｄが格納される。同様に、入力ポート２３−２〜２３−５に対してそれぞれそなえられた各レジスタＲＥＧ＿Ｄには、入力ポート２３−２〜２３−５の各先頭パケットの宛先情報Ｄがそれぞれ格納される。
【００５１】
レジスタＲＥＧ＿Ｓには、入力ポート２３の先頭パケットのヘッダから読み出されたパケットサイズＳが格納される。すなわち、入力ポート２３−１に対してそなえられたレジスタＲＥＧ＿Ｓには、入力ポート２３−１の先頭パケットのパケットサイズＳが格納される。同様に、入力ポート２３−２〜２３−５に対してそれぞれそなえられた各レジスタＲＥＧ＿Ｓには、入力ポート２３−２〜２３−５の各先頭パケットのパケットサイズＳがそれぞれ格納される。
【００５２】
レジスタＲＥＧ＿ＳＩには、後述するサイズ値交換用クロスバスイッチ２１１から出力されるパケットサイズＳが格納される。すなわち、入力ポート２３−１に対してそなえられたレジスタＲＥＧ＿ＳＩには、サイズ値交換用クロスバスイッチ２１１から出力され、入力ポート２３−１の優先カウンタ値Ｐに加算されるパケットサイズＳが格納される。同様に、入力ポート２３−２〜２３−５に対してそれぞれそなえられた各レジスタＲＥＧ＿ＳＩには、サイズ値交換用クロスバスイッチ２１１から出力され、入力ポート２３−２〜２３−５の各先頭パケットの優先カウンタ値Ｐに加算されるパケットサイズＳがそれぞれ格納される。
【００５３】
これらのレジスタＲＥＧ＿ＳＩに格納されたパケットサイズＳは、後述する加算処理部２５に加算値Ｓｎとして入力される。
なお、レジスタＲＥＧ＿Ｐ，ＲＥＧ＿Ｄ，ＲＥＧ＿Ｓ，ＲＥＧ＿ＳＩは各ポート１０１にそなえてもよく、種々変形して実施することができる。
優先度付き調停器２１２は、各入力ポート２３に入力されたパケットを出力先の出力ポート２４に受け渡すための制御を行なう。具体的には、下流側のデータクロスバースイッチ２２に対して、各出力ポート２４に対して、どの入力ポート２３に格納されたパケットを出力させるかを示す情報を調停結果として通知する。又、優先度付き調停器２１２は、この調停結果をサイズ値交換用クロスバスイッチ２１１にも通知する。
【００５４】
調停結果は例えば、｛ｌｎ１, ｌｎ２, ｌｎ３, ｌｎ４, ｌｎ５｝で表される。ここで、ｌｎ１〜ｌｎ５は出力ポート２４−１〜２４−５にそれぞれ対応する。例えば、ｌｎ３は出力ポート２４−３に対応する。
そして、調停結果は、これらのｌｎ１〜ｌｎ５に対して、出力させるパケットが格納されている入力ポート２３を特定する情報を対応付けることにより構成される。
【００５５】
例えば、ｌｎ１〜ｌｎ５に対して、入力ポート２３のポート番号１，２，３，４，５のいずれかを対応させる。
具体的には、例えば、調停結果｛ｌｎ１, ｌｎ２, ｌｎ３, ｌｎ４, ｌｎ５｝＝｛０，０，２，０，０｝は、出力ポート２４−３に対して、入力ポート２３−２に格納されているパケットを出力することを示す。ただし、ポート番号０は、その出力ポート２４に出力を行なわせないことを表す。
【００５６】
この優先度付き調停器２１２には、各レジスタＲＥＧ＿Ｄ及び各レジスタＲＥＧ＿Ｄから各入力ポート２３の先頭パケットの宛先情報Ｄ及び優先カウンタ値Ｐが入力される。
優先度付き調停器２１２は、出力ポート２４の解放状況を監視し、出力ポート２４がパケットを受け入れ可能な状態になったことを検知すると、その出力ポート２４を出力先とするパケットが各入力ポート２３に格納されているか否かを確認する。
【００５７】
具体的には、各入力ポート２３に対応するレジスタＲＥＧ＿Ｄから取得した宛先情報Ｄに基づき、例えば、ルーティングテーブル（図示省略）を参照することにより、各パケットの出力とすべき出力ポート２４を特定する。
優先度付き調停器２１２は、その解放状態となった出力ポート２４を出力先とするパケットが、複数の入力ポート２３に格納されている状態、すなわち、競合が発生している状態においては、この競合を調停し、出力先の出力ポート２４に最初に受け渡す一のパケット（選択パケット）を選択する。
【００５８】
具体的には、優先度付き調停器２１２は、競合するパケットの各レジスタＲＥＧ＿Ｐの優先カウンタ値Ｐを取得し、これらの優先カウンタ値Ｐが最も大きいパケットを出力パケットとして選択する。優先度付き調停器２１２は、選択されたパケットが格納された入力ポート２３の先頭パケットをその出力ポート２４に出力させるべく、調停結果をデータクロスバースイッチ２２に通知する。
【００５９】
優先度付き調停器２１２は、調停結果を、サイズ値交換用クロスバスイッチ２１１にも通知する。ただし、このサイズ値交換用クロスバスイッチ２１１へ通知する調停結果には、競合パケットのうち出力パケットとして選択されなかった非選択パケットが格納されている入力ポート２３の情報（例えばポート番号）も含まれる。
また、優先度付き調停器２１２は、その解放状態となった出力ポート２４を出力先とするパケットが、一つの入力ポート２３にだけ格納されている状態、すなわち、競合が発生していない状態においては、その入力ポート２３の先頭パケットをその出力ポート２４に出力させるべく、調停結果をデータクロスバースイッチ２２及びサイズ値交換用クロスバスイッチ２１１に通知する。
【００６０】
サイズ値交換用クロスバスイッチ２１１は、出力パケットとして選択されたパケットが格納されている入力ポート２３に対応するレジスタＲＥＧ＿ＳからパケットサイズＳを読み出し、このパケットサイズＳを非選択パケットが格納されている入力ポート２３に対応するレジスタＲＥＧ＿ＳＩへ格納する。
サイズ値交換用クロスバスイッチ２１１は、優先度付き調停器２１２から調停結果を受信すると、調停により出力パケットとして決定されたパケットのパケットサイズＳをレジスタＲＥＧ＿Ｓから読み出す。そして、サイズ値交換用クロスバスイッチ２１１は、この読み出したパケットサイズＳを、競合パケットのうち非選択パケットが格納されている入力ポート２３に対応する各レジスタＲＥＧ＿ＳＩにそれぞれ格納する。
【００６１】
加算処理部（処理部）２５は、複数の競合パケットのうち、出力ポート調停部２１が出力パケットとして選択しなかった非選択パケットのそれぞれの優先カウンタ値Ｐをパケットサイズに応じた重み情報に基づいて更新する。具体的には、加算処理部２５は、出力ポート調停部２１によって選択された出力パケットのパケットサイズＳ（加算値Ｓｎ）を、競合パケットのうち出力パケットとして選択されなかったパケット（非選択パケット）の各優先カウンタ値Ｐに加算する。
【００６２】
例えば、加算処理部２５は、サイズ値交換用クロスバスイッチ２１１によりレジスタＲＥＧ＿ＳＩにパケットサイズＳが格納されると、対応する入力ポート２３の先頭パケット（非選択パケット）のヘッダから、当該パケットの優先カウンタ値Ｐを読み出す。そして、加算処理部２５は、読み出した優先カウンタ値ＰにレジスタＲＥＧ＿ＳＩのパケットサイズＳ（加算値Ｓｎ）を加算して、加算後の値を新たな優先カウンタ値Ｐとして当該パケットのヘッダに格納する。すなわち、加算処理部２５は、競合に対する調停が出力ポート調停部２１によって行なわれると、競合パケットのうちの非選択パケットの優先カウンタ値Ｐを、出力パケットのパケットサイズＳを加算することにより更新する。
【００６３】
なお、加算処理部２５による優先カウンタ値Ｐの加算・更新処理は、入力ポート２３のバッファ２３１における先頭パケットであって、調停で選択されなかったパケットに対してのみ実施する。すなわち、バッファ２３１における先頭バッファに後続する他のパケット（後続パケット）に対しては、優先カウンタ値Ｐの更新は行なわない。
この加算処理部２５は、例えば、各ポート１０１にそなえられる。ただし、この加算処理部２５は通信制御部２２０にそなえてもよく、種々変形して実施することができる。
【００６４】
データクロスバースイッチ２２は、出力ポート調停部２１の優先度付き調停器２１２から通知された調停結果に基づき、入力ポート２３の先頭パケットを読み出し、このパケットの出力先である出力ポート調停部２１へ受け渡す。
このように、本スイッチ２０においては、出力ポート調停部２１においてパケットの出力調停が行なわれるたびに、調停の結果待たされることになったパケット（非選択パケット）の優先カウンタ値Ｐの増分指示が行なわれる。又、同時に、出力ポート調停部２１がデータクロスバースイッチ２２に対して調停結果に基づくデータ転送指示を行ない、データクロスバースイッチ２２がこれに従い、パケット転送を行なう。
【００６５】
上述の如く構成された実施形態の一例としてのスイッチ２０における競合発生時の処理を、図７及び図８を参照しながら、図６に示すフローチャート（ステップＳ１０〜Ｓ６０）に従って説明する。図７及び図８はスイッチ２０における入力ポート２３及び出力ポート２４の状態を模式的に例示する図である。
スイッチ２０において、例えば、出力ポート２４−３が解放されると、出力ポート調停部２１の優先度付き調停器２１２が、各入力ポート２３に対応するレジスタＲＥＧ＿Ｄ及びＲＥＧ＿Ｐから、宛先情報Ｄ及び優先カウンタ値Ｐを取得する（ステップＳ１０）。
【００６６】
ここで、図７に示すように、入力ポート２３−１，２３−２及び１２−４の各先頭パケットが、この出力ポート２４−３を出力先としており、競合状態となっている。優先度付き調停器２１２は、これらの競合パケットの調停を行なう。すなわち、優先度付き調停器２１２は、これらの入力ポート２３−１，２３−２及び１２−４に対応する各レジスタＲＥＧ＿Ｐから、それぞれ優先カウンタ値Ｐを取得する。そして、これらの競合パケットの優先カウンタ値Ｐを比較して（ステップＳ２０）、優先カウンタ値Ｐが最も大きいパケットを出力パケットとして選択する（ステップＳ３０）。
【００６７】
本例においては、入力ポート２３−２のパケットの優先カウンタ値Ｐ２が、入力ポート２３−１，２３−４のパケットの優先カウンタ値Ｐ１，Ｐ４よりも大きい値であるものとする。すなわち、優先度付き調停器２１２は、入力ポート２３−２の先頭パケットを出力ポート２４−３の出力パケットとして選択する。
優先度付き調停器２１２は、データクロスバースイッチ２２に対して、この出力パケットとして選択された入力ポート２３−２の先頭パケットを出力させるよう転送指示を行なう（ステップＳ４０）。
【００６８】
なお、図８に示す例においては、出力ポート調停部２１による調停の結果、入力ポート２３−２の先頭パケットが出力ポート２４−３に設定されるとともに、入力ポート２３−３，２３−５の各先頭パケットが、出力ポート２４−５，２４−１にそれぞれ出力される。従って、優先度付き調停器２１２は、調停結果として、｛ｌｎ１, ｌｎ２, ｌｎ３, ｌｎ４, ｌｎ５｝＝｛５，０，２，０，３｝をデータクロスバースイッチ２２に対して通知する。
【００６９】
また、優先度付き調停器２１２は、サイズ値交換用クロスバスイッチ２１１に対しても調停結果を通知する。すなわち、非選択パケットが格納されていた入力ポート２３−１，２３−４に対応するレジスタＲＥＧ＿ＳＩに、出力パケットである入力ポート２３−２の先頭パケットのパケットサイズＳ２を格納させる転送指示をそれぞれ行なう（ステップＳ５０）。
【００７０】
なお、これらのステップＳ４０，Ｓ５０の処理順序は逆であってもよく、又、これらの処理を同時に行なってもよく、適宜変更して実施することができる。
加算処理部２５が、入力ポート２３−１，２３−４に対応するレジスタＲＥＧ＿ＳＩからパケットサイズＳ２を加算値Ｓｎ（Ｓｎ１，Ｓｎ４）として読み出す。そして、加算処理部２５は、これらの入力ポート２３−１，２３−４の先頭パケット（非選択パケット）に対して、各優先カウンタ値Ｐに加算値Ｓｎ（Ｓｎ１，Ｓｎ４）を加算して（ステップＳ６０）、処理を終了する。
【００７１】
このように、実施形態の一例としての並列計算機システム１によれば、入力ポート２３において、パケットの優先カウンタ値Ｐは、競合時に行なわれる調停により、当該パケットが非選択となった場合に、その調停により選択された出力パケットのパケットサイズＳｎが加算される。すなわち、調停に負けて非選択パケットとなった期間が最も長いパケットほど優先カウンタ値Ｐの値が大きくなる。
【００７２】
そして、競合発生時に、出力ポート調停部２１が、競合パケットの中から優先カウンタ値Ｐが最も大きいパケットを出力パケットとして選択して出力する。
これにより、競合発生時の調停において、調停に負けて非選択パケットとなった期間が最も長いパケットが優先して出力パケットとして選択され、宛先ノードへのデータの到着時間を均一化したノード間通信を行なうことが可能となる。又、ノード毎のバンド幅の公平性が確保される。
【００７３】
図９は実施形態の一例としてのスイッチ２０をそなえた並列計算機システム１におけるパケットの転送状態を示す図である。
この図９に示すように、本スイッチ２０をそなえた並列計算機システム１においては、パケットは、ネットワーク２内を移動する過程において、出力調停でブロックされるほど優先度が上がって行く。そして、ネットワーク２内のボトルネックで輻輳が発生している箇所では、パケット発信元である計算ノード２００ごとに公平な通信帯域幅が確保される方向に調停がバランスする。すなわち、各計算ノード２００間でパケット伝送の通信帯域幅を公平にシェアすることが可能となる。
【００７４】
また、パケット内に優先カウンタ値Ｐを格納するためのフィールドを１つ追加し、スイッチ２０毎に局所的に優先カウンタ値Ｐの加算処理と大小比較による調停を行なうだけで、大域的にノードごとの帯域均衡を即時に図ることができる。又、ハードウェアによる実現容易性が高いという利点もある。
図４に示したように、本スイッチ２０においては、ある一つのパケットに着目し、自分のパケットサイズＳとし、又、これまでに調停に負けて経路を譲ったパケットのサイズの合計をＰとする。このＰの値が自パケットの優先カウンタ値Ｐとして計上されている。
【００７５】
ここで、この自パケットの経路占有率（の割り当てバンド幅割合）はＳ／（Ｓ＋Ｐ）であり、このパケットに割り当てられるバンド幅はリンクバンド幅のＳ／（Ｓ＋Ｐ）になっていると考えることができる。ある程度の経路調停を経てＰ＞＞Ｓになってくると、Ｓ／（Ｓ＋Ｐ）≒１／Ｐと近似できる。
各スイッチ２０で出力パケットの調停をする際に、その時点での割り当てバンド幅割合（＝１／Ｐ）が最も小さいパケット、すなわち優先カウンタ値Ｐが最大のものを選択することが、各パケットのバンド幅割合１／Ｐの均衡化をもたらすことになる。ひいては、一つ一つのパケットのバンド幅割合の均衡化を図ることにより、各発信元ノードのバンド幅均衡化が実現することになる。
【００７６】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、優先カウンタ値Ｐに、競合時に行なわれる調停により、当該パケットが非選択となった場合に、その調停により選択された出力パケットのパケットサイズＳｎを加算しているが、これに限定されるものではない。
【００７７】
例えば、調停により選択された出力パケットのパケットサイズＳｎの代わりに、このパケットサイズＳｎに基づいて求められる値を用いてもよく、例えば、パケットサイズＳｎに比例して求められる値を加算値として用いてもよい。又、非選択パケットが調停により待たされた時間、すなわち、調停により選択された出力パケットが出力ポート２４に出力されるのにかかった時間を計時し、この時間に基づく値を加算値として優先カウンタ値Ｐに加算してもよい。
【００７８】
また、上述した実施形態では、出力ポート調停部２１が、出力ポート２４の選択を、宛先情報Ｄに基づいてルーティングテーブルを参照することにより行なっているが、これに限定されるものではない。すなわち、各パケットの宛先情報Ｄとして、パケットのホップ毎に出力ポートを特定する情報を格納し、出力ポート調停部２１がこの情報に従って出力ポート２４の選択を行なってもよく、適宜変形して実施することができる。
【００７９】
さらに、本実施形態においては、ルーティング装置（通信制御装置）２０としてスイッチの例を示しているが、これに限定されるものではなく、例えば、ルータ等の他の通信機器に適用して実施してもよい。
また、上述した実施形態においては、便宜上、ネットワーク２が１次元のメッシュ型ネットワークとして構成された例について説明したが、これに限定されるものではなく、より複雑な構成をそなえるネットワークにおいても適用できることはいうまでもない。
【００８０】
上述した実施形態においては、スイッチ２０が５つのポートをそなえる５ポートスイッチとして構成されているが、これに限定されるものでなく、スイッチ２０は、４つ以下もしくは６つ以上のポートをそなえてもよい。
そして、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【符号の説明】
【００８１】
１    並列計算機システム
２    ネットワーク
２０    スイッチ（ルーティング装置，通信制御装置）
２１    出力ポート調停部（選択部）
２２    データクロスバースイッチ
２３，２３−１〜２３−５    入力ポート（入力部）
２４，２４−１〜２４−５    出力ポート（出力部）
２５    加算処理部（処理部）
１０１−１〜１０１−４，１０１    ネットワークポート
１０２，１１１    ポート送信部
１０３，１０７，１１２，１１５    バッファ
１０４，１１３    送信制御部
１０６，１１４    ポート受信部
１０８，１１６    受信制御部
１１０    ノードポート
２００    計算ノード
２１１    サイズ値交換用クロスバスイッチ
２１２    優先度付き調停器
２２０    通信制御部
２３１    バッファ
【図１】
0005821624.tif 000002
【図２】
0005821624.tif 000003
【図３】
0005821624.tif 000004
【図４】
0005821624.tif 000005
【図５】
0005821624.tif 000006
【図６】
0005821624.tif 000007
【図７】
0005821624.tif 000008
【図８】
0005821624.tif 000009
【図９】
0005821624.tif 000010
【図１０】
0005821624.tif 000011
【図１１】
0005821624.tif 000012