(57)【要約】【課題】複数の情報処理装置がメッシュ状又はトーラス状に接続されたクラスタシステムにおいて、次元順ルーティングによる特定リンクへの通信負荷の集中を防ぐこと。【解決手段】データ分割部２５が、転送データを経路毎に転送する部分データに分割する。そして、分割して得られた部分データのうち、第１転送部２６が、次元順ルーティング経路で転送する部分データを次元順ルーティングで送信し、第２転送部２７が、中継ノード経路で転送する部分データを中継ノード２ａに送信する。【選択図】図３
2017120542.tif 000002
【特許請求の範囲】
【請求項１】
並列処理を行う複数の情報処理装置がメッシュ状又はトーラス状に接続された並列情報処理装置において、
各情報処理装置は、
並列処理の次元数に応じてデータを分割する分割部と、
前記分割部による分割により得られた第１の部分データを次元順ルーティングに基づく第１の経路により特定の情報処理装置に送信する第１送信部と、
前記分割部による分割により得られた部分データのうち前記第１の部分データとは異なる第２の部分データを前記第１の経路とは次元順が異なる第２の経路で前記特定の情報処理装置に送信する第２送信部と
を有することを特徴とする並列情報処理装置。
【請求項２】
前記特定の情報処理装置は、
前記第１送信部及び前記第２送信部がそれぞれ送信した部分データを受信する受信部と、
前記受信部により受信された部分データを合成する合成部と
を有することを特徴とする請求項１に記載の並列情報処理装置。
【請求項３】
前記分割部により分割されるデータは、ログデータであり、
前記第１送信部及び前記第２送信部が部分データを送信する前記特定の情報処理装置は、ログデータの他の装置への出力処理を含む入出力処理を行うことを特徴とする請求項１又は２に記載の並列情報処理装置。
【請求項４】
各情報処理装置は、
前記第１の経路及び前記第２の経路のデータ転送速度を測定する測定部をさらに有し、
前記分割部は、前記測定部により測定されたデータ転送速度に基づいて前記データを分割することを特徴とする請求項１、２又は３に記載の並列情報処理装置。
【請求項５】
他の情報処理装置とメッシュ状又はトーラス状に接続されて並列情報処理装置を構築する情報処理装置によるデータ転送方法において、
並列処理の次元数に応じてデータを分割し、
分割により得られた第１の部分データを次元順ルーティングに基づく第１の経路により特定の情報処理装置に送信し、
分割により得られた部分データのうち前記第１の部分データとは異なる第２の部分データを前記第１の経路とは次元順が異なる第２の経路で前記特定の情報処理装置に送信する
ことを特徴とするデータ転送方法。
【請求項６】
他の情報処理装置とメッシュ状又はトーラス状に接続されて並列情報処理装置を構築する情報処理装置で実行されるデータ転送プログラムにおいて、
並列処理の次元数に応じてデータを分割し、
分割により得られた第１の部分データを次元順ルーティングに基づく第１の経路により特定の情報処理装置に送信し、
分割により得られた部分データのうち前記第１の部分データとは異なる第２の部分データを前記第１の経路とは次元順が異なる第２の経路で前記特定の情報処理装置に送信する  処理を前記情報処理装置に実行させることを特徴とするデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列情報処理装置、データ転送方法及びデータ転送プログラムに関する。
【背景技術】
【０００２】
複数の計算ノードがインターコネクトにより任意の次元でメッシュ状又はトーラス状に接続されたクラスタシステムは、各計算ノードで採取されたログデータをＩＯノードと呼ばれる特定のノードに集めるログ管理機能を有する。ここで、計算ノードとは、他の計算ノードと共に並列処理を行う情報処理装置である。なお、ＩＯノードは計算ノードを兼ねることができる。
【０００３】
各計算ノードは、採取したログデータを次元順ルーティングによりＩＯノードに送信する。ここで、次元順ルーティングとは、所定の次元順でデータを転送するルーティング方式である。図１４は、次元順ルーティングを説明するための図である。図１４は、複数の計算ノードが２次元のメッシュ状に接続された場合を示す。
【０００４】
図１４では、各計算ノード２は、ｘ軸上及びｙ軸上の座標により識別される。例えば、左下隅を原点として、左下隅の計算ノード２は（０，０）で識別され、右下隅の計算ノード２は（５，０）で識別され、左上隅の計算ノード２は（０，５）で識別される。図１４に示すように、（０，０）で識別される計算ノード２が右上隅のＩＯノード３にログデータを転送する場合、（０，０）で識別される計算ノード２は、まずｘ軸方向に（５，０）で識別される計算ノード２までログデータを送信する。そして、（５，０）で識別される計算ノード２が、受信したログデータをｙ軸方向に（５，５）で識別されるＩＯノード３まで送信する。
【０００５】
このように、次元順ルーティングでは、データの転送方向を示す座標軸の順番が定められている。図１４に示した例では、ログデータはまずｘ軸方向に転送され、ｘ座標がＩＯノード３と等しい計算ノード２までログデータが転送されると、次にログデータはｙ軸方向にＩＯノード３まで転送される。すなわち、図１４の例では、座標軸についてｘ→ｙの順番でデータが転送される。次元順ルーティングは単純な論理回路で実現できるため、経路情報を保持するためのルーティングテーブルが不要となり、ハードウェア量が少なくて済む。
【０００６】
なお、複数のルータ間のデータのホップ先を次元順ルーティングにより決定する計算機システムにおいて、データの送信先から送信元への制御データのホップ先をデータの転送経路とは異なる経路の隣接ルータに決定することで、スループットを改善する技術がある。また、収集した輻輳情報に基づき経路情報保持部が保持する経路情報を書き換え、書き換えた経路情報に基づき演算処理装置が指示した通信を送信部に行わせることで、経路選択のレイテンシを減らす技術がある。
【０００７】
また、大量並列処理システムにおいて、メンテナンス機能を実行するため、非ブロック型、フロー制御されない仮想メンテナンスネットワークを含めることで、メンテナンス機能のためだけに用いられる特殊な物理通信リンクをなくす技術がある。また、リンク状況情報及び下流バッファの満杯度等の下流情報がコンパクト・ベクトルに保管される複数レベル調停処理を使用して、パケット伝送の好ましい方向及び仮想チャネルを判定することで、経路テーブルを不要とする技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−２４１４７４号公報
【特許文献２】特開２０１２−２１６０７８号公報
【特許文献３】特開２００４−１１８８５５号公報
【特許文献４】特表２００４−５２７１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、図１４に示した次元順ルーティングには、一部のリンクに負荷が集中するという問題がある。図１４において、最上段以外の計算ノード２がＩＯノード３へログデータを送信する場合、リンクｂは必ず使用されるため、リンクｂに負荷が集中する。一方、リンクａは最上段の計算ノード２だけに使用されるため、リンクａの負荷は少ない。
【００１０】
本発明は、１つの側面では、複数の計算ノードがインターコネクトにより任意の次元でメッシュ状又はトーラス状に接続されたクラスタシステムにおいて、特定のリンクへの負荷の集中を防ぐことを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、並列情報処理装置は、並列処理を行う複数の情報処理装置がメッシュ状又はトーラス状に接続される。各情報処理装置は、分割部と第１送信部と第２送信部とを有する。前記分割部は、並列処理の次元数に応じてデータを分割する。前記第１送信部は、前記分割部による分割により得られた第１の部分データを次元順ルーティングに基づく第１の経路により特定の情報処理装置に送信する。前記第２送信部は、前記分割部による分割により得られた部分データのうち前記第１の部分データとは異なる第２の部分データを前記第１の経路とは次元順が異なる第２の経路で前記特定の情報処理装置に送信する。
【発明の効果】
【００１２】
１つの側面では、特定のリンクへの負荷の集中を防ぐことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係るクラスタシステムの構成を示す図である。
【図２】図２は、実施例に係るルーティングを説明するための図である。
【図３】図３は、実施例に係るノードの機能構成を示す図である。
【図４】図４は、経路情報記憶部の一例を示す図である。
【図５】図５は、性能情報記憶部の一例を示す図である。
【図６】図６は、分割されて得られた部分データのフォーマット例を示す図である。
【図７】図７は、データ転送処理のフローを示すフローチャートである。
【図８】図８は、性能測定処理のフローを示すフローチャートである。
【図９】図９は、データ分割処理のフローを示すフローチャートである。
【図１０】図１０は、中継ノードによる部分データの受信処理のフローを示すフローチャートである。
【図１１】図１１は、データ合成処理のフローを示すフローチャートである。
【図１２】図１２は、２次元トーラスにおけるルーティングを説明するための図である。
【図１３】図１３は、計算ノードのハードウェア構成を示す図である。
【図１４】図１４は、次元順ルーティングを説明するための図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する並列情報処理装置、データ転送方法及びデータ転送プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１５】
まず、実施例に係るクラスタシステムの構成について説明する。図１は、実施例に係るクラスタシステムの構成を示す図である。図１に示すように、クラスタシステム１は、インターコネクトでメッシュ状に接続された複数の計算ノード２と、メッシュの右上隅に配置されるＩＯノード３と、複数の管理ノード４と、ログ管理サーバ５とを有する。 
【００１６】
計算ノード２は、他の計算ノード２と通信を行いながら並列処理を行う情報処理装置である。ＩＯノード３は、各計算ノード２で採取されたログデータの出力処理を含む入出力処理を管理ノード４との間で行う情報処理装置である。ログデータには、消費電力のログが含まれる。なお、ＩＯノード３は計算ノード２を兼ねることができる。
【００１７】
各計算ノード２は、ｘ軸上及びｙ軸上の座標により識別される。図１では、左下隅を原点として、左下隅の計算ノード２は（０，０）で識別され、右下隅の計算ノード２は（５，０）で識別され、左上隅の計算ノード２は（０，５）で識別される。ＩＯノード３の座標は（５，５）である。
【００１８】
管理ノード４は、計算ノード２を管理する管理装置である。ＩＯノード３が出力したログデータは、複数の管理ノード４により中継され、ログ管理サーバ５に送信される。図１では、６台の管理ノード４が２階層に配置されるが、より多くの管理ノード４がより多くの階層に配置されてもよい。また、図１では、上位層の２つの管理ノード４がそれぞれ２台の下位層の管理ノード４に接続されるが、より多くの上位層の管理ノード４がより多くの下位層の管理ノード４に接続されてもよい。管理ノード間は、ＧＢ（ギガビット）イーサネット（登録商標、以下同様）で接続される。
【００１９】
ＩＯノード３は、ＧＢイーサネットで下位層の１つの管理ノード４に接続される。図１では、１つの管理ノード４だけがＩＯノード３に接続されるが、下位層の他の管理ノード４は、それぞれ別のＩＯノード３に接続される。すなわち、クラスタシステム１は、４台のＩＯノード３と、２４×４＝９６台の計算ノード２を有する。なお、クラスタシステム１は、より多くの台数又はより少ない台数のＩＯノード３及び計算ノード２を有してよい。
【００２０】
また、図１では、計算ノード２は２次元に配置されるが、計算ノード２は任意の次元に配置されてよい。また、図１では、計算ノード２はメッシュ状に配置されるが、計算ノード２はトーラス状に配置されてよい。
【００２１】
ログ管理サーバ５は、各計算ノード２が採取したログデータを管理する。ログ管理サーバ５と上位層の各管理ノード４との間は、ＧＢイーサネットで接続される。
【００２２】
次に、実施例に係るルーティングについて説明する。図２は、実施例に係るルーティングを説明するための図である。図２は、（０，０）で識別される計算ノード２と（２，１）で識別される計算ノード２がＩＯノード３にログデータを送信する場合を示す。図２に示すように、（０，０）で識別される計算ノード２及び（２，１）で識別される計算ノード２は、２つの経路を用いてログデータを分割して転送する。一方の経路は次元順ルーティングに基づく経路であり、他方の経路は次元順ルーティングとは異なる次元順に基づく経路である。
【００２３】
次元順ルーティングに基づく経路では、座標軸の方向についてｘ→ｙの順番でデータが転送される。一方、次元順ルーティングとは異なる次元順に基づく経路では、座標軸の方向についてｙ→ｘの順番でデータが転送される。ログデータは、各経路の性能に基づいて２つに分割される。
【００２４】
ただし、（５，０）で識別される計算ノード２、（０，５）で識別される計算ノード２のように一方の座標が宛先のＩＯノード３と等しい場合には、計算ノード２は１つの経路でログデータを送信する。すなわち、各計算ノード２は、次元順ルーティングに基づく経路と次元順ルーティングとは異なる次元順に基づく経路とがある場合には、ログデータを分割して２つの経路で送信する。
【００２５】
このように、各計算ノード２は、２つの経路でログデータを送信することによって、リンクｂへの負荷の集中を防ぐことができる。なお、以下では説明の便宜上、次元順ルーティングに基づく経路を「次元順ルーティング経路」と呼び、次元順ルーティングとは異なる次元順に基づく経路を「中継ノード経路」と呼ぶ。ここで、「中継ノード」とは、受信した座標軸の方向とは異なる座標軸の方向にデータを送信する計算ノード２である。
【００２６】
例えば、図２では、（０，０）で識別される計算ノード２に関して中継ノードは（０，５）で識別される計算ノード２である。（０，５）で識別される計算ノード２は、ｙ軸方向で受信したデータをｘ軸方向に送信する。また、（２，１）で識別される計算ノード２に関して中継ノードは（２，５）で識別される計算ノード２である。
【００２７】
なお、３次元のメッシュ状に計算ノード２が接続される場合には、計算ノード２は、３×２＝６個の経路を有する。具体的には、計算ノード２は、ｘ→ｙ→ｚ、ｘ→ｚ→ｙ、ｙ→ｘ→ｚ、ｙ→ｚ→ｘ、ｚ→ｘ→ｙ、ｚ→ｙ→ｘの順番でそれぞれデータを転送する６つの経路を有する。また、各中継ノード経路には、２つの中継ノードが含まれる。
【００２８】
一般に、ｎを正の整数として、ｎ次元のメッシュ状に計算ノード２が接続される場合には、ＩＯノード３とｎ個の座標が全て異なる場合、計算ノード２は、ｎ×（ｎ−１）×（ｎ−２）×．．．×２＝ｎ！個の経路を有する。各中継ノード経路には、（ｎ−１）個の中継ノードが含まれる。また、ｎ次元のトーラス状に計算ノード２が接続される場合には、ＩＯノード３とｎ個の座標が全て異なる場合、計算ノード２は、２ｎ！個の経路を有する。各中継ノード経路には、（ｎ−１）個の中継ノードが含まれる。
【００２９】
次に、実施例に係るノードの機能構成について説明する。図３は、実施例に係るノードの機能構成を示す図である。図３に示すように、計算ノード２は、経路特定部２１と、経路情報記憶部２２と、性能測定部２３と、性能情報記憶部２４と、データ分割部２５と、第１転送部２６と、第２転送部２７とを有する。中継ノード２ａは、データ受信部２８と、データ転送部２９とを有する。ＩＯノード３は、データ受信部３１と、データ合成部３２とを有する。
【００３０】
経路特定部２１は、自ノードからＩＯノード３への次元順ルーティング経路と全ての中継ノード経路とを特定する。経路特定部２１は、特定した経路に関する情報を経路情報として経路情報記憶部２２に格納する。経路情報記憶部２２は、経路特定部２１により特定された経路の情報を記憶する。図４は、経路情報記憶部２２の一例を示す図である。図４に示すように、経路情報記憶部２２は、経路数と、各経路の情報を記憶する。各経路の情報には、経路番号と転送順番が含まれる。
【００３１】
経路数は、中継ノード経路の数に次元順ルーティング経路の数として１を加えた数である。図４は２次元のメッシュ状に計算ノード２が接続される場合を示し、経路数は２である。経路番号は、経路を識別する番号である。転送順番は、データを転送する座標軸の方向の順番を示す。図４では、番号が「１」の経路では、ｘ→ｙの順番でデータが転送され、番号が「２」の経路では、ｙ→ｘの順番でデータが転送される。
【００３２】
性能測定部２３は、各経路に対してデータを転送し、単位時間当たりの転送データ量を測定することによって、ネットワークの性能を測定する。性能測定部２３は、測定した値を性能情報記憶部２４に書き込む。性能情報記憶部２４は、各経路について、単位時間当たりの転送データ量を性能情報として記憶する。
【００３３】
図５は、性能情報記憶部２４の一例を示す図である。図５は、２次元のトーラス状に計算ノード２が接続される場合を示す。図５に示すように、性能情報記憶部２４は、経路番号と転送速度を経路毎に記憶する。経路番号は、経路を識別する番号である。転送速度は、１ｓ（秒）当たりのデータ転送量である。データ転送量の単位はＭＢ（メガバイト）である。例えば、番号が「１」の経路では、５０ＭＢ／ｓのデータが転送される。
【００３４】
データ分割部２５は、各経路の転送速度に基づいて転送データを分割する。具体的には、データ分割部２５は、転送データを分割し、各経路で転送される部分データの割合を（経路の転送速度）／（全経路の転送速度の合計）とする。例えば、図５において、番号が「１」の経路では、５０／（５０＋２０＋３０＋１００）＝５０／２００＝０．２５＝２５％の部分データが転送される。
【００３５】
第１転送部２６は、次元順ルーティング経路用の部分データを次元順ルーティング経路で転送する。図３では、２次元のメッシュ状に計算ノード２が接続される場合の例として、部分データ“ａ，ｂ，ｃ”が次元順ルーティング経路でＩＯノード３に転送される。
【００３６】
第２転送部２７は、各中継ノード経路用の部分データを対応する中継ノード経路で転送する。ｎ次元のメッシュ状に計算ノード２が接続される場合には、第２転送部２７は、（ｎ！−１）個の中継ノード経路でデータを転送する。また、ｎ次元のトーラス状に計算ノード２が接続される場合には、第２転送部２７は、（２ｎ！−１）個の中継ノード経路でデータを転送する。図３では、２次元のメッシュ状に計算ノード２が接続される場合の例として、部分データ“ｄ，ｅ，ｆ”が中継ノード経路で転送される。
【００３７】
データ受信部２８は、送信元の計算ノード２から送信された部分データを受信し、受信した部分データをデータ転送部２９に渡す。データ転送部２９は、部分データのヘッダに含まれる経路情報を参照し、ＩＯノード３又は他の中継ノード２ａに部分データを転送する。
【００３８】
図６は、分割されて得られた部分データのフォーマット例を示す図である。図６に示すように、分割されて得られた部分データには、転送方式と、中継情報と、合成情報と、データ本体が含まれる。転送方式は、「次元順ルーティング方式」であるか「中継ノード方式」であるかを示す。
【００３９】
中継情報は、中継ノードの識別子とＩＯノード３の識別子を示す。「次元順ルーティング方式」では、中継情報は不要である。例えば、「中継ノード方式」では、中継情報は、中継ノードの識別子として「ｎｏｄｅＡ」、「ｎｏｄｅＢ」を示し、ＩＯノード３の識別子として「ＩＯｎｏｄｅ」を示す。また、「次元順ルーティング方式」では、中継情報は、「０，０，０」であり、中継ノードがないことを示す。
【００４０】
合成情報は、部分データの合成の順番とデータ識別子とデータ分割数を示す。例えば、「次元順ルーティング方式」により、「１００１」で識別され２つに分割されたデータの２番目の部分データが転送され、「中継ノード方式」により、「１００１」で識別され２つに分割されたデータの１番目の部分データが転送される。
【００４１】
転送方式と中継情報と合成情報は、分割されたデータのヘッダに含まれる。データ本体は、分割されて転送されるデータである。例えば、「次元順ルーティング方式」により、「０ａｂ２ｃｆ４ｊ５ｄｋ４ｓａｆｄａｓｋｌ．．．」がデータ本体として転送され、「中継ノード方式」により、「１ａｂ３ｃｆ５ｊｄｋ９７ｓ３０ａｆｄａｓｋｌ．．．」がデータ本体として転送される。
【００４２】
データ受信部３１は、計算ノード２又は中継ノード２ａから送られてきた部分データを受信し、データ合成部３２に渡す。データ合成部３２は、渡された部分データのヘッダを参照し、分割されて送られてきた部分データをヘッダに含まれる順番とデータ識別子とデータ分割数に基づいて合成して、分割前のデータを復元する。図３では、次元順ルーティング経路で送信された部分データ“ａ，ｂ，ｃ”と中継ノード経路で送信された部分データ“ｄ，ｅ，ｆ”が合成され、分割前のデータ“ａ，ｂ，ｃ，ｄ，ｅ，ｆ”が復元される。
【００４３】
なお、図３において、一点鎖線は、ネットワークの性能を測定する処理の流れを示し、破線は、情報の書き込み又は参照を示し、実線は、データ転送の処理の流れを示す。
【００４４】
次に、データ転送処理のフローについて説明する。図７は、データ転送処理のフローを示すフローチャートである。図７において、送信ノードは、ＩＯノード３にデータを送信する計算ノード２であり、集約ノードは、分割されたデータを集約するＩＯノード３である。また、実線は処理の流れを示し、破線はデータの流れを示す。
【００４５】
図７に示すように、送信ノードは、データを分割するデータ分割処理を行い（ステップＳ１）、中継ノード２ａへのデータ転送処理と次元順ルーティングによるデータ転送処理を行う（ステップＳ２〜ステップＳ３）。なお、ステップＳ２とステップＳ３の処理は、いずれが先に行われてもよい。
【００４６】
中継ノード２ａは、部分データを受信するデータ受信処理を行い（ステップＳ４）、受信した部分データのヘッダに含まれる中継情報に基づいて、受信した部分データを中継ノード２ａ又は集約ノードに転送するデータ転送処理を行う（ステップＳ５）。
【００４７】
集約ノードは、中継ノード経路又は次元順ルーティング経路で送られてきた部分データを受信するデータ受信処理を行う（ステップＳ６）。そして、集約ノードは、受信した部分データのヘッダに含まれる順番とデータ識別子とデータ分割数に基づいて部分データを合成する合成処理を行う（ステップＳ７）。
【００４８】
このように、送信ノードは、中継ノード経路と次元順ルーティング経路とに分けて部分データを集約ノードに送信することにより、特定のリンクへの通信負荷の集中を防ぐことができる。
【００４９】
次に、ネットワークの性能を測定する性能測定処理のフローについて説明する。図８は、性能測定処理のフローを示すフローチャートである。図８に示すように、送信ノードは、ＩＯノード３への中継ノード経路と次元順ルーティング経路とを特定する経路特定処理を行う（ステップＳ１１）。そして、送信ノードは、ネットワークの性能測定のためのデータを生成する（ステップＳ１２）。
【００５０】
そして、送信ノードは、次元順ルーティングの性能測定の場合には、生成したデータを次元順ルーティングにより転送し（ステップＳ１３）、中継ノード経路の性能測定の場合には、生成したデータを中継ノード２ａへ転送する（ステップＳ１４）。
【００５１】
中継ノード２ａは、データを受信するデータ受信処理を行い（ステップＳ１５）、受信したデータを中継ノード２ａ又は集約ノードに転送するデータ転送処理を行う（ステップＳ１６）。
【００５２】
集約ノードは、データを受信するデータ受信処理を行い（ステップＳ１７）、測定結果を送信ノードに返却する（ステップＳ１８）。そして、送信ノードは、測定結果を受信する測定結果受信処理を行い（ステップＳ１９）、受信した測定結果を保存する（ステップＳ２０）。
【００５３】
このように、送信ノードは、次元順ルーティング経路と中継ノード経路の性能測定を行うことによって、転送データを適切に分割することができる。
【００５４】
次に、データ分割処理のフローについて説明する。図９は、データ分割処理のフローを示すフローチャートである。なお、このデータ分割処理は、図７に示したステップＳ１の処理に対応する。
【００５５】
図９に示すように、送信ノードは、転送データのサイズを測定する（ステップＳ３１）。また、送信ノードは、経路情報記憶部２２から経路情報を取得し（ステップＳ３２）、性能情報記憶部２４から経路毎の性能情報を取得する（ステップＳ３３）。
【００５６】
そして、送信ノードは、転送データのサイズ、経路情報及び性能情報に基づいて、経路毎に転送データを分割し（ステップＳ３４）、分割して得られた部分データにヘッダを追加するヘッダ追加処理を行う（ステップＳ３５）。
【００５７】
具体的には、ヘッダ追加処理では、送信ノードは、転送方式情報を追加し（ステップＳ３６）、中継情報を追加し（ステップＳ３７）、データ合成のための順番、データ識別子、データ分割数を追加する（ステップＳ３８）。
【００５８】
このように、送信ノードは、性能情報記憶部２４が経路毎に記憶する性能情報に基づいて転送データを分割することによって、部分データがＩＯノード３に到着する時刻の差を少なくすることができる。
【００５９】
次に、中継ノード２ａによる部分データの受信処理のフローについて説明する。図１０は、中継ノード２ａによる部分データの受信処理のフローを示すフローチャートである。なお、この受信処理は、図７に示したステップＳ４の処理に対応する。
【００６０】
図１０に示すように、中継ノード２ａは、転送された部分データを受信し（ステップＳ４１）、受信した部分データのヘッダを解析する（ステップＳ４２）。そして、中継ノード２ａは、ヘッダの解析結果に基づいて、次のデータ転送先を決定する（ステップＳ４３）。
【００６１】
このように、中継ノード２ａは、受信した部分データのヘッダを解析することによって、中継ノード経路で転送される部分データの次の転送先を決定することができる。
【００６２】
次に、データ合成処理のフローについて説明する。図１１は、データ合成処理のフローを示すフローチャートである。図１１に示すように、集約ノードは、受信した部分データのヘッダの読み込みを行う（ステップＳ５１）。そして、集約ノードは、データ識別子の比較を部分データ間で行って、同一データ識別子か否かを判定し（ステップＳ５２）、同一データ識別子でない場合には、ステップＳ５１に戻る。
【００６３】
一方、同一データ識別子である場合には、集約ノードは、ヘッダに含まれる順番で部分データを結合する（ステップＳ５３）。そして、集約ノードは、同一データの部分データ全てを結合したか否かを判定し（ステップＳ５４）、結合していない部分データがある場合には、ステップＳ５１に戻り、全ての部分データを結合した場合には、処理を終了する。
【００６４】
このように、集約ノードは、受信した部分データのヘッダに含まれる順番とデータ識別子と分割データ数に基づいて部分データを結合することにより、分割されて転送されたデータを復元することができる。
【００６５】
次に、２次元トーラスにおけるルーティングについて説明する。図１２は、２次元トーラスにおけるルーティングを説明するための図である。図１２に示すように、ＩＯノード３は、ｘ軸方向及びｙ軸方向について、それぞれ２つの方向から部分データを受信する。具体的には、ＩＯノード３は、ａ〜ｄの４つのリンクを介して部分データを受信する。
【００６６】
リンクｃは、ｘ軸に関してリンクａと逆方向のリンクであり、ＩＯノード３が物理的に端のノードである場合、リンクｃは巻き込みリンク（wrap  around  link）である。同様に、リンクｄは、ｙ軸に関してリンクｂと逆方向のリンクであり、ＩＯノード３が物理的に端のノードである場合、リンクｄは巻き込みリンクである。
【００６７】
このように、２次元トーラスにおけるルーティングでは、送信ノードは、ＩＯノード３へ４方向から部分データを送信することによって、ネットワークの通信負荷を均等化することができる。
【００６８】
次に、計算ノード２のハードウェア構成について説明する。図１３は、計算ノード２のハードウェア構成を示す図である。図３に示した各機能は、図１３に示す計算ノード２でデータ転送プログラムを実行することによって実現される。図１３に示すように、計算ノード２は、メモリ５１と、ＣＰＵ５２と、ネットワークインタフェース５３と、ディスク装置５４とを有する。
【００６９】
メモリ５１は、データ転送プログラム等のプログラムやプログラムの実行途中結果等を記憶するＲＡＭ（Random  Access  Memory）である。ＣＰＵ５２は、メモリ５１からプログラムを読出して実行する中央処理装置である。ネットワークインタフェース５３は、計算ノード２をインターコネクト経由で他の計算ノード２に接続するためのインタフェースである。ディスク装置５４は、プログラムやデータを記憶する不揮発性記憶装置である。
【００７０】
計算ノード２において実行されるデータ転送プログラムは、計算ノード２にインストールされる。そして、インストールされたデータ転送プログラムは、ディスク装置５４に記憶され、メモリ５１に読み出されてＣＰＵ５２によって実行される。
【００７１】
上述してきたように、実施例では、データ分割部２５が、転送データを経路毎に転送する部分データに分割する。そして、分割して得られた部分データのうち、第１送信部２６が、次元順ルーティング経路で転送する部分データを次元順ルーティングで送信し、第２送信部２７が、中継ノード経路で転送する部分データを中継ノード２ａに送信する。したがって、送信ノードは、次元順ルーティングにおいて特定リンクで発生する負荷の集中を防ぐことができる。
【００７２】
また、実施例では、第１送信部２６及び第２送信部２７はＩＯノード３へログデータを送信するので、ＩＯノード３はログデータをまとめてログを管理する装置へ送信することができる。
【００７３】
また、実施例では、性能測定部２３が、経路毎のデータ転送速度を測定し、データ分割部２５は、性能測定部２３により測定されたデータ転送速度に基づいてデータを部分データに分割するので、到着時刻の部分データ間の差を少なくすることができる。
【００７４】
なお、実施例では、ＩＯノード３にログデータを送信する場合について説明したが、本発明は、これに限定されるものではなく、特定のノードにデータを送信する場合にも同様に適用することができる。
【符号の説明】
【００７５】
１    クラスタシステム
２    計算ノード
２ａ    中継ノード
３    ＩＯノード
４    管理ノード
５    ログ管理サーバ
２１    経路特定部
２２    経路情報記憶部
２３    性能測定部
２４    性能情報記憶部
２５    データ分割部
２６    第１転送部
２７    第２転送部
２８    データ受信部
２９    データ転送部
３１    データ受信部
３２    データ合成部
５１    メモリ
５２    ＣＰＵ
５３    ネットワークインタフェース
５４    ディスク装置
【図１】
2017120542.tif 000003
【図２】
2017120542.tif 000004
【図３】
2017120542.tif 000005
【図４】
2017120542.tif 000006
【図５】
2017120542.tif 000007
【図６】
2017120542.tif 000008
【図７】
2017120542.tif 000009
【図８】
2017120542.tif 000010
【図９】
2017120542.tif 000011
【図１０】
2017120542.tif 000012
【図１１】
2017120542.tif 000013
【図１２】
2017120542.tif 000014
【図１３】
2017120542.tif 000015
【図１４】
2017120542.tif 000016