(57)【特許請求の範囲】
【請求項１】
複数の計算ノードと
前記複数の計算ノード間の接続を可変とするネットワーク装置と、を有し、
処理負荷を前記複数の計算ノードに分散して配置し、
前記処理負荷によって生じる前記複数のノード間の通信量を予測し、
予測結果に基づいて前記接続を決定し、
前記処理負荷はグラフ構造を有しており、
前記処理負荷を分散して配置する際に、グラフ頂点を各計算ノードに配置し、
前記通信量を予測する際に、互いに異なる計算ノードに配置されたグラフ頂点を接続する辺の数に基づいて前記通信量を予測することを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
管理ノードを有し、
前記管理ノードが、
前記処理負荷を前記複数の計算ノードに分散して配置し、
前記予測を各計算ノードに指示することを特徴とする情報処理システム。
【請求項３】
請求項１に記載の情報処理システムにおいて、
前記複数の計算ノードは、グループに分かれてグループ毎にスイッチに接続され、
各スイッチが前記ネットワーク装置の各ポートに接続されていることを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムにおいて、
前記予測結果に基づいて前記接続を決定する際に、
前記予測結果から各スイッチ間の通信量を予測して前記接続を決定することを特徴とする情報処理システム。
【請求項５】
請求項３に記載の情報処理システムにおいて、
各スイッチは、それぞれ複数の前記ポートに接続されていることを特徴とする情報処理システム。
【請求項６】
請求項１に記載の情報処理システムにおいて、
前記ネットワーク装置は、光スイッチであることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関し、特にリソース間を接続するネットワークの制御に関する。
【背景技術】
【０００２】
本技術分野の背景技術として特許文献１に開示されている技術がある。この公報には、アプリケーションフレームワークによって制御される少なくとも一台の回線交換機と、多数の計算ノードが接続されたネットワークを備え、ＣＰＵ負荷やメモリ使用率、ボトルネック等の監視結果に基づいて回線交換機を制御する発明が開示されている。【０００３】
特許文献２では、ストリーム処理グラフを複数のプロセッサからなる処理ノードの集合（特許文献２ではスーパーノードクラスタ（Ｓｕｐｅｒ  ｎｏｄｅ  ｃｌｕｓｔｅｒ）と記載）に割当て、該集合間が相互に接続されるように光回線交換機を制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第８１２５９８４号明細書
【特許文献２】米国特許第８０３７２８４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、ソーシャルネットワークにおける人間関係や企業間の取引関係など、繋がりのある大規模なデータの解析が注目されている。このようなデータは一般的にグラフとして表現される。グラフを解析する際には処理速度とデータサイズの要求に応じて複数のサーバを用いて並列分散処理を行う必要が生じる。上記のような自然発生的なグラフは、一般に、複雑な構造を有し疎密の偏りが大きいため、並列分散処理を行う際にサーバ間の通信負荷の偏りが生じ易い。通信負荷の高いサーバは、通信負荷のために処理時間が長くなり、全体の処理性能のボトルネックになりやすいという問題を生じる。【０００６】
ここで、前述した特許文献１に記載のシステムでは、実行中の負荷監視結果に基づいてネットワークの構成を変えることができるが、プログラム実行中のトポロジ変更処理自体がオーバーヘッドとなる。また、プログラム実行開始時にどのようなネットワークトポロジを用いるべきかについては言及されていない。【０００７】
一方、前述した特許文献２に記載のシステムでは、ストリームグラフの処理ノードの割当て結果をもとに光回線交換機を用いてネットワークトポロジを変更しているが、単に全ての処理ノード間で、発生する通信量の総合計を上回る帯域を与えると記載されている。大規模なグラフ処理になるほど処理ノード間の通信量が大きく偏る場合が増え、全ての処理ノード間に通信量の総合計を上回る帯域を与えると無駄が多くなり、物量の観点から不利である。【０００８】
本発明は上記の課題に鑑みてなされたものであり、その目的は各処理ノード間で発生する通信量の予測値をもとに、処理ノード間の通信量の偏りに応じたネットワークトポロジを決定可能な情報処理システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の情報処理システムでは、処理負荷を複数の計算ノードに分散配置し、処理負荷により生じる通信負荷を予測し、予測結果に基づき計算ノード間のネットワークトポロジを決定することで、上述の課題を解決する。
【発明の効果】
【００１０】
本発明によれば、グラフ処理のように並列処理時に計算ノード間の通信量に偏りが生じる場合であっても、通信量の偏りに応じたネットワークトポロジを構成することが可能となり、ひいては処理の高速化を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムの構成を示すブロック図である。
【図２】情報処理システムの機能を示すブロック図である。
【図３】接続可変ネットワークの説明図である。
【図４】情報処理システム全体の動作を示すフローチャートである。
【図５】情報処理システムにおける負荷配置の例を示す図である。
【図６】情報処理システムにおける負荷配置情報の例を示す図である。
【図７】情報処理システムにおける負荷とサーバの対応関係の例を示す図である。
【図８】情報処理システムにおけるサーバとネットワークスイッチの対応関係の例を示す図である。
【図９】情報処理システムにおいて負荷配置情報から通信負荷を予測する手順を示すフローチートである。
【図１０】情報処理システムにおいて負荷配置情報から通信負荷を予測した結果の例を示す図である。
【図１１】情報処理システムにおいてトポロジ決定の例を示した図である。
【図１２】情報処理システムにおいて、処理サーバ間のネットワークトポロジの例を示す図である。
【図１３】情報処理システムの入力となるグラフの例を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１３】
図１３に、本発明の情報処理システムが扱う処理負荷の例として、入力グラフの例を示す。頂点が丸印で、辺が頂点間を結ぶ矢印でグラフ構造が表現されている。各頂点には固有の通し番号であるＩＤが付けられている。また辺で繋がった頂点どうしを「隣接する」と呼ぶ。具体的なグラフ処理としては、頂点間の最短経路を算出する処理や、グラフ中の重要な頂点を算出する中心性計算など様々なものがある。これらの多くは辺に沿って情報のやり取りを行うトラバース処理を中心とする処理である。【００１４】
トラバース処理は辺に沿って頂点間でデータをやり取りする処理で、以下のステップを頂点毎に行う。まず、隣接する頂点から辺に沿ってデータを受信する。次に、受信したデータをもとに計算を行い頂点のデータを更新する。そして更新したデータを辺に沿って隣接する頂点に送信する。【００１５】
このようなグラフ処理を複数のサーバ上で並列に実行する場合、グラフを分割してその一部をサーバに割当てる。このとき、辺の両端の頂点が異なるサーバに割当てられていると、トラバース処理中に発生する辺に沿ったデータの送受信はネットワークを介したサーバ間の通信処理として実現される。【００１６】
図１に、本発明の実施例である情報処理システム１００を示す。情報処理システム１００は、管理サーバ１０１と、複数の処理サーバ１０６−１〜８と、ストレージ１１１と、を備える。管理サーバ１０１と処理サーバ１０６−１〜８は、夫々対応するネットワークスイッチ１１０−１〜１１０−５に接続されている。ネットワークスイッチ１１０−１〜５は、接続可変ネットワーク装置１１２を介して相互に接続されている。処理サーバ１０６−１〜８は、並列処理を行う計算ノードとして働く。【００１７】
管理サーバ１０１は、メモリ１０２と、中央処理装置（ＣＰＵ）１０３と、ネットワークインターフェース１０４と、接続可変ネットワーク制御インターフェース１０５と、を備える。管理サーバ１０１は、情報処理システム１００内で、管理ノードとして働く。なお、管理サーバ１０１は、さらに計算ノードとして処理サーバ１０６−１〜８と同様に働くことも可能である。【００１８】
接続可変ネットワーク制御インターフェース１０５は、接続可変ネットワーク装置１１２に応じて専用の接続を用いるほか、例えばＵＳＢ、シリアル接続など汎用の接続を用いることができる。処理サーバ１０６−１〜８は同様のハードウェア構成を備え、夫々メモリ１０７と、ＣＰＵ１０８とネットワークインターフェース１０９と、を備える。【００１９】
接続可変ネットワーク装置１１２について図４を併用しながら説明する。接続可変ネットワーク装置１１２は、複数のポート３０２を備え、接続対象のネットワークスイッチとひとつまたは複数のリンク３０１を用いて接続される。リンク３０１には、例えば光ファイバや電気ケーブルを用いることができる。また、接続可変ネットワーク装置１１２は、制御部１１３と、可変リンク部１１７とを備える。制御部１１３は、制御インターフェース（Ｉ／Ｆ）１１４と、ＣＰＵ１１５と、メモリ１１６と、を備える。可変リンク部１１７は、制御装置１１８と、複数の可変リンク３０３と、を備える。可変リンク部１１７は、制御装置１１８からの指示に基づいて任意のポート間に可変リンク３０３を張ることができる。図４の例ではポート１と７、ポート２と４、ポート８と１０、ポート６と１２が接続されている状態を示している。可変リンク３０３を制御することは接続可変ネットワーク装置１１２に接続されているネットワークスイッチ間の物理的な結線を変更することに相当する。これにより、固定された結線のネットワーク上でルーティングを制御する場合と比べて、より柔軟にネットワークスイッチ間の帯域を決めることが可能となる。接続可変ネットワーク装置１１２としては、例えばＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ）による光スイッチ等を用いることができる。【００２０】
図２に情報処理システム１００の機能ブロック図を示す。管理サーバ１０１および処理サーバの各部と情報はそれぞれのメモリ上に格納される。管理サーバ１０１は、メモリ１０２上に、負荷配置部２０１と、予測通信量集計部２０２と、予測通信量通知部２０３と、通信量予測結果２０４と、負荷配置リスト２０５と、ネットワークスイッチ対応情報２０６と、を格納する。処理サーバ１０６−１〜８は、メモリ１０７に、夫々通信量予測部２０７と、処理部２０８と、負荷配置リスト２０５と、ネットワークスイッチ対応情報２０６と、処理負荷情報２０９と、を格納する。ストレージ１１１は、負荷データ２１２と、ネットワークスイッチ情報２０６と、を格納する。【００２１】
図４に、情報処理システム１００の動作フローを示す。ステップ４０１では、管理サーバ１０１が、ストレージ１１１上に格納されたネットワークスイッチ対応情報２０６を読み込んでメモリ１０２上に格納する。その後、管理サーバ１０１は、全ての処理サーバ１０６−１〜８にスイッチ対応情報２０６を送信する。各処理サーバ１０６−１〜８は、受信したネットワークスイッチ対応情報を夫々のメモリ１０７に格納する。本実施例では、各サーバは固定的にネットワークスイッチに接続されており、実行中にサーバとスイッチの対応関係が変化しないため、静的な構成情報として事前に準備されているものとした。図８にスイッチ対応情報の例を示す。各サーバの識別情報（ＩＤ）に対して、各サーバが接続されているネットワークスイッチのＩＤが格納されている。なお、対応関係に規則性があれば、対応情報を数式で表現してもかまわない。【００２２】
ステップ４０２では、管理サーバ１０１の負荷配置部２０１が、ストレージ１１１上に格納された負荷データ２１２を読み込んで処理サーバ１０６−１〜８のメモリ１０７上に格納する。分散処理を前提とするため、各処理サーバは夫々異なる負荷データの部分をメモリに格納し処理を行う。例えば、管理サーバ１０１の負荷配置部２０１は、ストレージ１１１から負荷データ２１２のデータサイズを取得する。その後、管理サーバ１０１の負荷配置部２０１は、負荷データ２１２のデータサイズを処理サーバ数（本実施例では８）で割って、処理サーバ１台分の読み込みサイズを決定する。その後、管理サーバ１０１の負荷配置部２０１は、各処理サーバに読み込む範囲を通知する。各処理サーバは、受け取った読み込み範囲に従いストレージ１１１から負荷データ２１２の一部を読み取り夫々のメモリ１０７に処理負荷情報２０９として格納する。【００２３】
図５にステップ４０２による負荷配置イメージを示す。処理サーバ１は頂点１〜６、処理サーバ２は頂点７〜１２というように、各サーバに連続した番号の頂点が格納されている。図６は、各処理サーバ１０６−１〜８に格納されている配置情報の例である。各リストには、各サーバに配置されている頂点と、該頂点に隣接する頂点の番号とが格納されている。例えば、サーバ１には頂点１〜６が割り当てられており、頂点１には頂点２と頂点４３が隣接していることを示す。【００２４】
ステップ４０３では、ステップ４０２の結果をもとに各サーバ間の通信量の予測を行う。ステップ４０３の詳細な手順を図９に示す。通信量予測処理は管理サーバ１０１からの指示に基づいて処理サーバ１０６−１〜８が夫々独立に実行し、最終的に管理サーバ１０１の予測通信量集計部２０２が結果を集計する。【００２５】
ステップ９０１では、管理サーバ１０１の予測通信量集計部２０２は、処理サーバの中からまだ予測処理を実行していないサーバを一つ選択する。例えば、管理サーバ１０１は、処理サーバ１０６−１を選択する。【００２６】
ステップ９０２では、管理サーバ１０１は、ステップ９０１で選択した処理サーバに対して、通信量予測処理を開始するよう指示する。【００２７】
ステップ９０３では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、自身のメモリ上に格納されているネットワークスイッチ対応情報２０６を参照し、自身と接続しているネットワークスイッチのＩＤを取得する。図８のとおり、処理サーバ１０６−１は、ネットワークスイッチ１と接続している。また、該処理サーバの通信量予測部２０７は、取得したＩＤに対応するネットワークスイッチと、それ自身を含むすべてのネットワークスイッチとの間の通信量のカウンタを０に初期化する。【００２８】
ステップ９０４では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、該処理サーバに割り当てられている頂点のうち、まだ処理されていないものを選択する。選択の順序は任意であるが、例えばＩＤの小さい順から選択する。選択中の処理サーバ１は図６に示すとおり頂点１〜６が割り当てられていて、初期状態ではどの頂点も処理されていないので、最初に頂点１が選択される。【００２９】
ステップ９０５では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、ステップ９０４で選択した頂点に隣接する頂点のうち、まだ処理されていないものを選択する。選択の順序は任意であるが、例えばＩＤの小さい順から選択する。図６のとおり、ステップ９０４で選択した頂点１には頂点２と頂点４３が隣接している。初期状態ではいずれも処理されていないので頂点２を選択する。【００３０】
ステップ９０６では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、負荷配置リスト２０５を参照することによりステップ９０５で選択した頂点の所属するサーバのＩＤを取得する。図７のとおり、ステップ９０５で選択した頂点２はサーバ１に所属していることが分かる。【００３１】
ステップ９０７では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、ネットワークスイッチ対応情報２０６を参照することによりステップ９０６で取得したＩＤに対応するサーバが接続しているネットワークスイッチのＩＤを取得する。図９のとおり、サーバ１はネットワークスイッチ１に接続していることがわかる。【００３２】
ステップ９０８では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、ステップ９０３で取得したＩＤに対応するネットワークスイッチとステップ９０７で取得したＩＤに対応するネットワークスイッチの間の通信量を加算する。ここではステップ９０７で取得したネットワークスイッチのＩＤは１なので、ネットワークスイッチ１に対する通信量に１を加算する。【００３３】
ステップ９１０では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、ステップ９０４で選択された頂点に隣接する頂点のうち、未処理のものがあるかどうか判定する。未処理のものがある場合、ステップ９０５に戻り、該処理サーバは前回実行時と異なる隣接頂点を選択する。未処理のものが無い場合、ステップ９１１に進む。ここでは、上記のとおり選択中の頂点１に頂点２と頂点４３が隣接しており、頂点４３が未処理であるため判定の結果がｙｅｓとなり、ステップ９０５に戻り頂点４３が選択される。【００３４】
ステップ９１１では、ステップ９０１で選択された処理サーバの通信量予測部２０７が、ステップ９０１で選択された処理サーバに割り当てられている頂点のうち、まだ処理されていないものがあるかどうか判定する。処理されていないものがある場合、ステップ９０４に戻り、該処理サーバの通信量予測部２０７は、前回実行時と異なる頂点を選択する。処理されていないものが無い場合、ステップ９１２に進む。ここでは、上記のとおり選択中のサーバ１には頂点１〜６が割り当てられており、頂点２〜６は未処理であるため、判定結果がｙｅｓとなり、ステップ９０４に戻り、異なる頂点が選択される。【００３５】
ステップ９１２では、ステップ９０１で選択された処理サーバが、ステップ９０３〜９１１で求めた結果を管理サーバ１０１に送信する。【００３６】
ステップ９１３では、管理サーバ１０１の予測通信量集計部２０２が、通信量予測処理を行っていない処理サーバがあるかどうかを判定する。通信量予測処理を行っていない処理サーバがある場合、ステップ９０１に戻り、管理サーバ１０１は、前回実行時と異なる処理サーバを選択する。通信量予測処理を行っていない処理サーバが無い場合、管理サーバ１０１は通信量予測処理を終了する。【００３７】
図１０に、ステップ４０３の出力結果である通信量予測結果を示す。この通信量予測結果は、ネットワークスイッチの組ごとに予測される通信量を格納した行列の形式で示されている。計算結果は通信量予測結果２０４として管理サーバ１０１のメモリ１０２に格納される。説明の便宜上、処理サーバを逐次に選択して通信量予測処理を行うようにしたが、各処理サーバで並列に通信量予測処理を行っても良い。【００３８】
ステップ４０４では、管理サーバ１０１の予測通信量通知部２０３が、ステップ４０３で計算された通信量予測結果２０４を制御Ｉ／Ｆ１０５を通じて接続可変ネットワーク装置１１２に送信する。【００３９】
ステップ４０５では、接続可変ネットワーク装置１１２のＣＰＵ１１５で実行されるトポロジ最適化部２１３が、受信した通信量予測結果に応じたトポロジを決定する。トポロジの決定方法としては、例えば全体の通信量に対する特定のネットワークスイッチ間通信量の割合に応じてリンクを分配する方法がある。【００４０】
例えば、図１０に示した通信量予測結果から、全てのネットワークスイッチの組の通信量を列挙すると図１１のような結果が得られる。各組の通信量を合計すると全体の通信量が得られる。図１１の例では全体の通信量は３０となる（図示せず）。こうして求めた全体の通信量に対して各ネットワークスイッチの組の通信量の割合を求めると、図１１の“割合”列のような結果が得られる。この割合に従ってリンクを分配する。図３に示したように各ネットワークスイッチから３ポートに対してリンクを張っている場合、全部で１２ポート分が可変リンクで利用可能である。可変リンク１本につき２ポートを使用するため、使用できる可変リンクの数は最大で６本となる。前記割合に沿って６本を分配すると図１１の“リンク本数”列のようになる。リンク本数は整数値しか取れないため、小数点以下は切り捨てる。ＣＰＵ１１５で実行されるトポロジ最適化部２１３は、このようにして得られたトポロジ最適化結果を制御装置１１８に送り、最適結果を反映するように可変リンク３０３を変更する。図１２は、この結果を反映したトポロジの例である。特定のネットワークスイッチ間でポート８と１１及びポート９と１０という２本の可変リンクが張られており、当該スイッチ間でより多くの帯域を使用する事が可能になっている。【００４１】
ステップ４０６では、管理サーバ１０１が、各処理サーバ１０６−１〜８に処理開始の準備が整ったことを通知する。通知を受けた各処理サーバ１０６−１〜８は、夫々の持つ処理部２０８の実行を開始する。【００４２】
一連の手順により、グラフデータの不均一性に起因する通信量の偏りを反映したネットワークトポロジを構成することができる。これにより、サーバ間の通信で発生していたボトルネックを解消することができるため処理を高速に実行することが可能になる。
【符号の説明】
【００４３】
１００：情報処理システム、１０１：管理サーバ、１０２：メモリ、１０３：ＣＰＵ、１０４：ネットワークインターフェース、１０５：制御インターフェース、１０６−１〜８：処理サーバ、１０７：メモリ、１０８：ＣＰＵ、１０９：ネットワークインターフェース、１１０−１〜５：ネットワークスイッチ、１１１：ストレージ、１１２：接続可変ネットワーク装置、１１３：制御部、１１４：制御インターフェース、１１５：ＣＰＵ、１１７：可変リンク部、１１８：制御装置、２０１：負荷配置部、２０２：予測通信量集計部、２０３：予測通信量通知部、２０４：通信量予測結果、２０５：負荷配置リスト、２０６：ネットワークスイッチ対応情報、２０７：通信量予測部、２０８：処理部、２０９：処理負荷情報、２１２：負荷データ、２１３：トポロジ最適化部、３０１：リンク、３０２：ポート、３０３：可変リンク、１３０１：グラフの頂点、１３０２：グラフの辺。
【図１】
0006036848.tif 000002
【図２】
0006036848.tif 000003
【図３】
0006036848.tif 000004
【図４】
0006036848.tif 000005
【図５】
0006036848.tif 000006
【図６】
0006036848.tif 000007
【図７】
0006036848.tif 000008
【図８】
0006036848.tif 000009
【図９】
0006036848.tif 000010
【図１０】
0006036848.tif 000011
【図１１】
0006036848.tif 000012
【図１２】
0006036848.tif 000013
【図１３】
0006036848.tif 000014