(57)【特許請求の範囲】
【請求項１】
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算を行う並列演算装置であって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、通信パターン情報にて示される通信パターン群と、に基づいて、前記通信記録情報が示す通信に最も類似する通信パターンを抽出するための比較部であって、
前記通信パターン情報は、それぞれのノードと接続されるＬｅａｆスイッチどうしが層内の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御と、それぞれのノードと接続されるＬｅａｆスイッチどうしが層間の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御のうち、いずれの制御を選択するかを通信パターン毎に特定する割当情報を保持するものである、前記比較部と、
前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる割当部と、
を有する並列演算装置。
【請求項２】
前記割当部は、前記アプリケーションを最初に実行したときの通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出する、
請求項１に記載の並列演算装置。
【請求項３】
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算を行う並列演算システムであって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、通信パターン情報にて示される通信パターン群と、に基づいて、前記通信記録情報が示す通信に最も類似する通信パターンを抽出するための比較部であって、
前記通信パターン情報は、それぞれのノードと接続されるＬｅａｆスイッチどうしが層内の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御と、それぞれのノードと接続されるＬｅａｆスイッチどうしが層間の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御のうち、いずれの制御を選択するかを通信パターン毎に特定する割当情報を保持するものである、前記比較部と、
前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる割当部と、を有する並列演算装置を備える、
並列演算システム。
【請求項４】
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算処理をコンピュータに実行させるためのノード割当プログラムであって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、通信パターン情報にて示される通信パターン群と、に基づいて、前記通信記録情報が示す通信に最も類似する通信パターンを抽出するための比較処理を行うことであって、前記通信パターン情報は、それぞれのノードと接続されるＬｅａｆスイッチどうしが層内の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御と、それぞれのノードと接続されるＬｅａｆスイッチどうしが層間の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御のうち、いずれの制御を選択するかを通信パターン毎に特定する割当情報を保持するものである、前記比較処理を行うことと、
前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てることを、
コンピュータに実行させるためのノード割当プログラム。
【請求項５】
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算処理を
コンピュータが実行するノード割当方法であって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、通信パターン情報にて示される通信パターン群と、に基づいて、前記通信記録情報が示す通信に最も類似する通信パターンを抽出するための比較処理を行うことであって、前記通信パターン情報は、それぞれのノードと接続されるＬｅａｆスイッチどうしが層内の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御と、それぞれのノードと接続されるＬｅａｆスイッチどうしが層間の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御のうち、いずれの制御を選択するかを通信パターン毎に特定する割当情報を保持するものである、前記比較処理を行うことと、
前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てることを含む、
ノード割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列演算装置、並列演算システム、ノード割当プログラム及びノード割当方法に関する。
【背景技術】
【０００２】
ＰＣクラスタ等の複数の計算機を有する並列計算機システムにおけるジョブスケジューリング方法が知られている（例えば、特許文献１参照）。特許文献１には、フロントエンドから要求されたバッチ処理を、複数の計算ノードに割り当てるバッチサーバを備えたクラスタシステムが開示されている。
【０００３】
複数のノード（サーバ）が並列して計算を行う並列計算機システムでは集合通信が行われる。集合通信とは、互いにネットワークで接続されたノード群の間で通信データの送信及び受信を行う通信である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１７５５７３号公報
【特許文献２】特開２０１０−２５７０５６号公報
【特許文献３】特表２００８−５１６３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
並列計算機システムの性能は集合通信の速度の影響を受けやすい。特に、Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結された多層フルメッシュシステムでは、集合通信の一つの実施方法として、Ｌｅａｆスイッチが層内又は層間のいずれかの接続関係にあるノード群の間で行う方法が考えられる。Ｌｅａｆスイッチが層内の接続関係にあるノード群を選択した場合の集合通信と、Ｌｅａｆスイッチが層間の接続関係にあるノード群を選択した場合の集合通信とで並列計算機システムの性能が変わる場合、ジョブを高性能に処理するノード群を選択することが望まれる。
【０００６】
そこで、一側面では、本発明は、多層フルメッシュシステムにおいて、並列処理を実行させるノード群をＬｅａｆスイッチが層内又は層間のいずれかの接続関係にあるノード群から適切に割り当てることを目的とする。
【課題を解決するための手段】
【０００７】
一の案では、Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算を行う並列演算装置であって、アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、通信パターン情報にて示される通信パターン群と、に基づいて、前記通信記録情報が示す通信に最も類似する通信パターンを抽出するための比較部であって、前記通信パターン情報は、それぞれのノードと接続されるＬｅａｆスイッチどうしが層内の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御と、それぞれのノードと接続されるＬｅａｆスイッチどうしが層間の接続関係にあるノード群を、前記アプリケーションを実行するために割り当てる制御のうち、いずれの制御を選択するかを通信パターン毎に特定する割当情報を保持するものである、前記比較部と、前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる割当部と、を有する並列演算装置が提供される。
【発明の効果】
【０００８】
一側面によれば、多層フルメッシュシステムにおいて、並列処理を実行させるノード群をＬｅａｆスイッチが層内又は層間のいずれかの接続関係にあるノード群から適切に割り当てることができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態にかかる多層フルメッシュシステムの一例を示す図。
【図２】一実施形態にかかるノードの層内割当（フルメッシュの場合）を示す図。
【図３】一実施形態にかかるノードの層間割当（ファットツリーの場合）を示す図。
【図４】一実施形態にかかる評価に用いる通信パターン例を示す図。
【図５】一実施形態にかかるファットツリートポロジの一例を示す図。
【図６】一実施形態にかかるフルメッシュトポロジの一例を示す図。
【図７】一実施形態にかかるパケットの投入レートに対する通信遅延を示す図。
【図８】一実施形態にかかるパケットの投入レートに対する通信遅延を示す図。
【図９】一実施形態にかかる評価結果の一例を示す図。
【図１０】一実施形態にかかるジョブスケジューラの機能構成の一例を示す図。
【図１１】一実施形態にかかる通信記録情報テーブルの一例を示す図。
【図１２】一実施形態にかかる通信パターン情報テーブルの一例を示す図。
【図１３】一実施形態にかかる距離の算出を説明するための図。
【図１４】一実施形態にかかるジョブ管理テーブルの一例を示す図。
【図１５】一実施形態にかかるリソース割当テーブルの一例を示す図。
【図１６】一実施形態にかかるノード割当処理の一例を示すフローチャート。
【図１７】一実施形態にかかる通信情報記録処理の一例を示すフローチャート。
【図１８】一実施形態にかかる通信パターンの解析処理の一例を示すフローチャート。
【図１９】一実施形態にかかるフルメッシュトポロジの他の例を示す図。
【図２０】一実施形態にかかるジョブスケジューラのハードウェア構成例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１１】
[多層フルメッシュシステム]
まず、本発明の一実施形態にかかる並列演算システムにおいてアプリケーションを並列して演算するノード群の接続方式について、図１を参照して説明する。図１は、一実施形態にかかる多層フルメッシュシステムの一例を示す。図１では、（ｄ＋１）角形のフルメッシュ（Fullmesh）システムをｄ層接続したトポロジの多層フルメッシュシステムにおいて、ｄ＝３の場合が示されている。
【００１２】
図１において、層内の全てのＬｅａｆスイッチａ１、ｂ１、ｃ１、ｄ１はＳｐｉｎｅスイッチを除いて考えるとフルメッシュ接続の関係にある。具体的には、Ｌｅａｆスイッチだけに着目すれば、Ｌｅａｆスイッチａ１とＬｅａｆスイッチｂ１とは直接接続され、Ｌｅａｆスイッチａ１とＬｅａｆスイッチｃ１とは直接接続され、Ｌｅａｆスイッチａ１とＬｅａｆスイッチｄ１とは直接接続される。また、Ｌｅａｆスイッチｂ１とＬｅａｆスイッチｃ１とは直接接続され、Ｌｅａｆスイッチｂ１とＬｅａｆスイッチｄ１とは直接接続され、Ｌｅａｆスイッチｃ１とＬｅａｆスイッチｄ１とは直接接続される。このような接続をフルメッシュ（Fullmesh）という。Ｌｅａｆスイッチａ１〜ｄ１は、ノードに接続されるネットワークスイッチ（例えばＬＡＮ（Local Area Network）スイッチ）である。ネットワークとしては、例えば、InfiniBandを使用することができる。
【００１３】
丸の図形はノードを表し、丸の図形の中にある数字はノード番号である。ノード０〜ノード３５は、ＭＰＩ（Message Passing Interface）等の通信ライブラリを使用して通信を行うサーバ等の計算機である。ノード０〜ノード２はＬｅａｆスイッチａ１に接続され、ノード３〜ノード５はＬｅａｆスイッチｂ１に接続され、ノード６〜ノード８はＬｅａｆスイッチｃ１に接続され、ノード９〜ノード１１はＬｅａｆスイッチｄ１に接続される。このようにＬｅａｆスイッチａ１〜ｄ１のネットワークトポロジはフルメッシュ型のトポロジ（以下、「フルメッシュトポロジ」ともいう）である。また、Ｌｅａｆスイッチのネットワークトポロジがフルメッシュトポロジであるシステムをフルメッシュシステムと呼ぶ。
【００１４】
本実施形態に係る多層フルメッシュシステム１００は、第１層〜第３層のフルメッシュシステムがＳｐｉｎｅスイッチにより連結された構造を有する。図１においては、Ｌｅａｆスイッチが４台であるフルメッシュシステムの第１層〜第３層がＳｐｉｎｅスイッチＡ〜Ｆを用いて連結されている。網掛けが付された四角の図形はＳｐｉｎｅスイッチを表し、網掛けが付されていない四角の図形のＬｅａｆスイッチと区別している。各Ｓｐｉｎｅスイッチのポート数及び各Ｌｅａｆスイッチのポート数は６である。各Ｌｅａｆスイッチには３台のノードが接続される。Ｌｅａｆスイッチ間のリンク上には１台のＳｐｉｎｅスイッチが設けられる。各Ｓｐｉｎｅスイッチは各フルメッシュシステムに２本のリンクを有し、各フルメッシュシステムにおいて２台のＬｅａｆスイッチに接続される。
【００１５】
ノード及びＬｅａｆスイッチ間、またＬｅａｆスイッチ及びＳｐｉｎｅスイッチ間は、リンクと呼ばれる通信ネットワークのケーブルで接続されている。Ｓｐｉｎｅスイッチは、フルメッシュシステムの層間を接続する役割をもつスイッチである。例えば、Ｌｅａｆスイッチａ１に接続されたノード０〜ノード２と、Ｌｅａｆスイッチａ２に接続されたノード１２〜ノード１４と、Ｌｅａｆスイッチａ３に接続されたノード２４〜ノード２６とはＳｐｉｎｅスイッチＡ〜Ｃを経由して通信可能である。
【００１６】
図１の多層フルメッシュシステムを別の方法で描くと、図２及び図３のようになる。図２及び図３のシステムの接続の形態は、図１のシステムの接続の形態と全く同じである。図２は、アプリケーションの並列演算にＬｅａｆスイッチが層内の接続関係にあるノード群を割り当てる層内割当のトポロジを示す。層内割当されたノード群の接続は、フルメッシュトポロジである。
【００１７】
図３は、アプリケーションの並列演算にＬｅａｆスイッチが層を跨ぐ接続関係にあるノード群を割り当てる層間割当のトポロジを示す。層間割当されたノード群の接続は、ファットツリー型のトポロジ（以下、「ファットツリートポロジ」ともいう）である。
【００１８】
図２に示すように、図１に示す第１層のフルメッシュシステム内のＬｅａｆスイッチａ１、ｂ１、ｃ１に接続されたノード０〜ノード８がアプリケーションの並列演算を行う計算機として割り当てられる。ノード０〜ノード８に対するジョブの配置は、後述されるジョブスケジューラ１０によって実行される。
【００１９】
図３に示すように、図１に示す第１層〜第３層のフルメッシュシステムの層間のＬｅａｆスイッチａ１、ａ２、ａ３に接続されたノード０〜ノード２、ノード１２〜ノード１４、ノード２４〜ノード２６がアプリケーションの並列演算を行う計算機として割り当てられる。図２のフルメッシュの場合、スイッチ間のリンクの本数は「１」であり、１本のリンクでノード間が接続されている。これに対して、図３のファットツリーの場合、スイッチ間のリンクの本数は「３」であり、３本のリンクでノード間が接続されている。このようにファットツリートポロジとフルメッシュトポロジとは異なる接続方式になっている。
【００２０】
[評価]
ノード間の通信は、リンクの本数に応じ、時間当たりに通信可能な量の最大値が決まる。よって、リンク数が多いファットツリートポロジの場合、フルメッシュトポロジよりも通信量の最大値が大きくなる。このため、通信量の多いジョブはＬｅａｆスイッチが層間の接続関係にあるノード群を割り当てることで、Ｌｅａｆスイッチが層内の接続関係にあるノード群を割り当てるよりもジョブを高性能に処理できるのではないかという仮説が立つ。この仮説に基づき、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群のうちいずれがより通信スループットが高いか、すなわち高性能であるかを通信パターン毎に評価する。
【００２１】
本実施形態では、通信パターンとして、図４に示す科学計算アプリケーションで利用されるｂｉｔｃｏｍｐ、ｂｉｔｒｅｖ、ｎｅｉｇｈｂｏｒ、ｓｈｕｆｆｌｅ、ｔｏｒｎａｄｏ、ｔｒａｎｓｐｏｓｅ、ｕｎｉｆｏｒｍを例に挙げる。
【００２２】
評価には、ｂｉｔｃｏｍｐを示す式（１）、ｂｉｔｒｅｖを示す式（２）、ｎｅｉｇｈｂｏｒを示す式（３）によりそれぞれの通信パターンが定義される。また、ｓｈｕｆｆｌｅを示す式（４）、ｔｏｒｎａｄｏを示す式（５）、ｔｒａｎｓｐｏｓｅを示す式（６）によりそれぞれの通信パターンが定義される。
【００２３】
ｕｎｉｆｏｒｍは、各ソースが等しいトラフィック量を各送信先（デスティネーション）に送信する通信パターンである。例えば、Ａ，Ｂ，Ｃ，Ｄのプロセスがあったとき、ｕｎｉｆｏｒｍではプロセスＡがプロセスＢ，Ｃ，Ｄにデータを送る、プロセスＢがプロセスＡ，Ｃ，Ｄにデータを送信する・・・というように、各プロセスから他のプロセスに一様に通信が発生する。
【００２４】
これらの式（１）〜式（６）で示される通信パターン及びｕｎｉｆｏｒｍの通信パターンは、サイクル精度(cycle-accurate)なネットワークシミュレータであるＢｏｏｋｓｉｍシミュレータ等のネットワークシミュレータを使用して評価することができる。評価に当たっては、パケットの投入レート（injection rate）に対するパケットの遅延状態を評価する。ネットワークシミュレータにより、図５に示す６４ノードのファットツリートポロジや、図６に示す６４ノードのフルメッシュトポロジ等の接続方式における上記各通信パターンの評価が可能である。
【００２５】
図７及び図８に、図４に示した各通信パターンの評価結果を示す。図７（ａ）は、ｂｉｔｃｏｍｐの評価結果を示す。横軸のパケットの投入レート（injection rate）は、１サイクル時間毎に投入されるパケット数である。例えば、１ＭＨｚのＣＰＵであれば１秒間に１００万サイクル処理可能であり、１サイクルの時間は、１秒／１００万サイクルで算出される。縦軸は、通信遅延の平均値（以下、「平均通信遅延」（delay）ともいう。）をサイクル時間で示している。
【００２６】
図７及び図８のグラフでは、平均通信遅延が５００サイクル（cycles）を超える前までの投入レート（injection rate）に対するパケットの平均通信遅延（サイクル）がプロットされる。平均通信遅延を表すグラフが立ち上がるまでの投入レートがより大きい値を示したトポロジはより多くのパケットを投入しても遅延が大きくならないこと、つまり、より高スループットであることを示す。
【００２７】
図７（ａ）の「ｂｉｔｃｏｍｐ」では、フルメッシュトポロジの場合、１サイクル時間に投入されるパケット数が「０．１」を超えると、平均通信遅延が立ち上がり、約１５０サイクルの時間に達する。これは、フルメッシュトポロジの場合、１サイクル時間に投入されるパケット数が「０．１」を超えると、ネットワークに負荷がかかり、パケットを投入しても送信先の目的のサーバまですぐに転送されない状態になることを示す。
【００２８】
一方、ファットツリートポロジの場合、１サイクル時間に投入されるパケット数が約「０．７」になると、平均通信遅延が約３００サイクルの時間に達する。したがって、ｂｉｔｃｏｍｐの場合、ファットツリートポロジの方が、フルメッシュトポロジよりも高性能にジョブを処理できる。つまり、「ｂｉｔｃｏｍｐ」の通信パターンのジョブでは、層間のノードを割り当てることが好ましい。
【００２９】
図７（ｂ）の「ｂｉｔｒｅｖ」では、フルメッシュトポロジの場合、１サイクル時間に投入されるパケット数が「１」になっても、平均通信遅延に急激な立ち上がりはみられない。一方、ファットツリートポロジの場合、１サイクル時間に投入されるパケット数が約「０．７」になると、平均通信遅延が１２０サイクルの時間に達する。したがって、ｂｉｔｒｅｖの通信パターンと同じ通信を行うジョブを実行する場合、フルメッシュトポロジの方が、ファットツリートポロジよりも高性能にジョブを処理できる。つまり、「ｂｉｔｒｅｖ」の通信パターンのジョブでは、層内のノードを割り当てることが好ましい。
【００３０】
図７（ｃ）の「ｎｅｉｇｈｂｏｒ」では、ファットツリートポロジの方が、フルメッシュトポロジよりも投入パケット数が大きくなるまで平均通信遅延の立ち上がりは生じない。したがって、ｎｅｉｇｈｂｏｒの場合、ファットツリートポロジの方が、フルメッシュトポロジよりも高性能にジョブを処理できる。つまり、「ｎｅｉｇｈｂｏｒ」の通信パターンのジョブでは、層間のノードを割り当てることが好ましい。
【００３１】
図７（ｄ）の「ｓｈｕｆｆｌｅ」では、ファットツリートポロジの方が、フルメッシュトポロジよりも投入パケット数が大きくなるまで平均通信遅延の立ち上がりは生じない。したがって、ｓｈｕｆｆｌｅの場合、ファットツリートポロジの方が、フルメッシュトポロジよりも高性能にジョブを処理できる。つまり、「ｓｈｕｆｆｌｅ」の通信パターンのジョブでは、層間のノードを割り当てることが好ましい。
【００３２】
図８（ａ）の「ｔｏｒｎａｄｏ」では、ファットツリートポロジの方が、フルメッシュトポロジよりも投入パケット数が大きくなるまで平均通信遅延の立ち上がりは生じない。したがって、ｔｏｒｎａｄｏの場合、ファットツリートポロジの方が、フルメッシュトポロジよりも高性能にジョブを処理できる。つまり、「ｔｏｒｎａｄｏ」の通信パターンのジョブでは、層間のノードを割り当てることが好ましい。
【００３３】
図８（ｂ）の「ｔｒａｎｓｐｏｓｅ」では、フルメッシュトポロジの場合、１サイクル時間に投入されるパケット数が「１」になっても、平均通信遅延に急激な立ち上がりはみられない。一方、ファットツリートポロジの場合、１サイクル時間に投入されるパケット数が約「０．７」になると、平均通信遅延が１２０サイクルの時間に達する。したがって、ｔｒａｎｓｐｏｓｅの場合、フルメッシュトポロジの方が、ファットツリートポロジよりも高性能にジョブを処理できる。つまり、「ｔｒａｎｓｐｏｓｅ」の通信パターンのジョブでは、層内のノードを割り当てることが好ましい。
【００３４】
図８（ｃ）の「ｕｎｉｆｏｒｍ」の通信パターンでは、ファットツリートポロジの場合、１サイクル時間に投入されるパケット数が「０．７」を上回ると、平均通信遅延が４５０サイクルの時間に達する。一方、フルメッシュトポロジの場合、１サイクル時間に投入されるパケット数が「０．７」を超える前に、平均通信遅延が４００サイクルの時間になる。したがって、ｕｎｉｆｏｒｍの場合、ファットツリートポロジの方が、フルメッシュトポロジよりも高性能にジョブを処理できる。つまり、「ｕｎｉｆｏｒｍ」の通信パターンのジョブでは、層間のノードを割り当てることが好ましい。
【００３５】
以上の本実施形態にかかる評価結果の一例を図９に示す。図９では、各通信パターンについてより高い投入レートを示したトポロジに丸が付けられている。ファットツリートポロジに丸が付けられた通信パターンは、Ｌｅａｆスイッチが層間の接続関係にあるノード群に割り当てると層内のノードに割り当てるよりもジョブを高性能に実行できる。フルメッシュトポロジに丸が付けられた通信パターンは、層内のノードに割り当てると層間のノードに割り当てるよりもジョブを高性能に実行できる。通信パターンによってはフルメッシュトポロジの場合が高性能を達成する通信パターンがあり、当初の仮説と異なり、必ずしもファットツリートポロジが高性能を達成するとは限らないことを示している。よって、アプリケーションが実行する通信パターンを判定できれば、アプリケーションをより高速に実行することが可能なノード群として、Ｌｅａｆスイッチが層内又は層間の接続関係にあるいずれのノード群に割り当てるべきかを決めることができ、多層フルメッシュシステムのリソースを効率よく使用することができる。
【００３６】
以下では、アプリケーションで発生する通信が所定の通信パターンのいずれに最も類似するかを判定し、類似の通信パターンを高性能に処理するノード群の割当情報から、並列処理を実行させるノード群をＬｅａｆスイッチが層内又は層間の接続関係にあるノード群から適切に割り当てるジョブスケジューラ１０の機能及び動作について説明する。まず、図１０を参照しながらジョブスケジューラ１０の機能について説明する。
【００３７】
[ジョブスケジューラ]
ジョブスケジューラ１０は、ジョブの実行にどのノード群を利用するかを選択し、選択したノード群を利用してジョブを実行する。ジョブスケジューラ１０は、アプリケーションの通信パターンを判定することで、ジョブの多層フルメッシュシステムにおける適切なノード群への割当による効率的なジョブの実行を実現する。ジョブスケジューラ１０は、Ｌｅａｆスイッチが接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステム１００においてアプリケーションの並列演算を行う並列演算装置の一例である。
【００３８】
ジョブスケジューラ１０(Resource and Job Management System (RJMS))には、Ｓｌｕｒｍ(Simple Linux Utility for Resource Management)、ＰＢＳ(Portable Batch System)などがあり、演算リソース（ノード）の確保とジョブの実行を行う。
【００３９】
ジョブスケジューラ１０は、ジョブ情報受取部１１、ジョブ実行部１２、記録部１３、比較部１４及びノード割当部１５を有する。ジョブ情報受取部１１は、ユーザからジョブが投入されると、リクエストされたジョブに関する情報であるジョブ情報を受け付ける。ジョブ情報には、実行に利用するノード数、実行コマンド、並列演算に必要なパワー等の情報が含まれる。
【００４０】
ジョブ実行部１２は、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群を使用して並列演算を行う。アプリケーションに使用されるノード群の割当は、ノード割当部１５により決定される。割り当てられたノード情報は、ジョブ実行部１２ｂに送信される。
【００４１】
ネットワーク接続された複数の計算ノードからなるシステムで実行されるアプリケーションは、通常複数のプロセスから構成される。アプリケーションを構成する実行実体をプロセスという。ＭＰＩライブラリ２０は、複数のプロセス間の通信に利用される。記録部１３は、アプリケーションを実行したときのプロセス間の通信を（送信元、送信先）の組毎にカウントし、ＭＰＩライブラリ２０に記録する。具体的には、記録部１３は、ＭＰＩライブラリ２０の通信記録情報テーブル２１ａ、２１ｂ・・・(以下、総称して「通信記録情報テーブル２１」ともいう。)にプロセス間の通信回数を記録する。プロセスは、例えば１ノード１プロセスといったように割り当てられ、割り当てられたノードによって実行される。したがって、通信記録情報テーブル２１には、アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報が蓄積されているといえる。
【００４２】
例えば、図１１には、アプリケーションを構成する４つのプロセス０，１，２，３がプロセス間で通信を行う場合に通信記録情報テーブル２１に記録される通信記録情報の一例が示される。図１１（ａ）には、記録部１３が、プロセス０→プロセス３、プロセス１→プロセス２、プロセス２→プロセス１、プロセス３→プロセス０の各通信の回数をカウントし、通信記録情報テーブル２１ａに記録した例が示される。上記通信が１０００回行われたとき、通信記録情報テーブル２１ａには、行列Ａにて示される通信記録情報が記録される。
【００４３】
行列Ａの行は送信元プロセス０、１、２、３であり、列は送信先プロセス０、１、２、３である。プロセス０→プロセス３、プロセス１→プロセス２、プロセス２→プロセス１、プロセス３→プロセス０の各通信がそれぞれ１０００回行われていることが記録されている。なお、行列Ａは、ｂｉｔｃｏｍｐの通信パターンを示す。
【００４４】
図１１（ｂ）には、記録部１３が、プロセス０→プロセス１,２,３、プロセス１→プロセス０,２,３、プロセス２→プロセス０,１,３、プロセス３→プロセス０,１,２の各通信の回数を通信記録情報テーブル２１ｂに記録した例が示される。上記通信が１０００回行われたとき、通信記録情報テーブル２１ｂには、行列Ｂにて示される通信記録情報が記録される。プロセス０→プロセス１,２,３、プロセス１→プロセス０,２,３、プロセス２→プロセス０,１,３、プロセス３→プロセス０〜２の各通信がそれぞれ１０００回行われていることが記録されている。なお、行列Ｂは、ｕｎｉｆｏｒｍの通信パターンを示す。このようにプロセス間の通信記録情報を行列で示す場合、４プロセスであれば、４×４行列で表わされる。行列の各要素は、通信回数を示す。行列Ａ，Ｂは通信記録情報の一例である。
【００４５】
比較部１４は、通信記録情報テーブル２１に記録された通信記録情報と、通信パターン情報テーブル２３に設定された通信パターン情報とを比較する。
【００４６】
図１２に示すように、通信パターン情報テーブル２３は、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群のいずれを割り当てるかを示す割当情報２３ｂが通信パターン２３ａ毎に設定されている。本実施形態で使用される通信パターンは、ｂｉｔｃｏｍｐ、ｂｉｔｒｅｖ、ｎｅｉｇｈｂｏｒ、ｓｈｕｆｆｌｅ、ｔｏｒｎａｄｏ、ｔｒａｎｓｐｏｓｅ、ｕｎｉｆｏｒｍである。割当情報２３ｂは、前述した評価結果（図９参照）に基づき通信パターンごとに特定できる。ファットツリートポロジの場合にジョブの性能が高くなると評価された通信パターンの割当情報２３ｂには、ｆａｔｔｒｅｅ（ファットツリー）と記録される。フルメッシュトポロジの場合にジョブの性能が高くなると評価された通信パターンの割当情報２３ｂには、ｆｕｌｌｍｅｓｈ（フルメッシュ）と記憶される。
【００４７】
ノード割当部１５は、比較した通信記録情報テーブル２１の通信記録情報が示す通信に最も類似する通信パターン２３ａを通信パターン情報テーブル２３から抽出する。ノード割当部１５は、抽出した通信パターン２３ａに関連付けた割当情報２３ｂに基づき、アプリケーションを次に実行するノード群を割り当てる。割当情報２３ｂにｆａｔｔｒｅｅが設定されている場合、ノード割当部１５は、Ｌｅａｆスイッチが層間の接続関係にあるノード群を割り当てる。割当情報２３ｂにｆｕｌｌｍｅｓｈが設定されている場合、ノード割当部１５は、Ｌｅａｆスイッチが層内の接続関係にあるノード群を割り当てる。
【００４８】
比較部１４は、通信記録情報テーブル２１の通信記録情報が示す通信に最も類似する通信パターン２３ａを抽出するために通信記録情報の行列と通信パターンの行列の距離を算出する。距離は、行列の各要素を用いて以下の手順で算出することができる。ただし、距離を算出する手順はこれに限らない。
【００４９】
例えば、図１３の行列Ａの通信記録情報が、あるアプリケーションの実行時に得られたとすると、比較部１４は、所定の各通信パターンを示す行列に、行列Ａの要素の最大値を掛け正規化する。図１３の行列Ａの要素の最大値は「１０００」である。よって、比較部１４は、各通信パターンを示す行列（図１３ではｂｉｔｃｏｍｐ、ｎｅｉｇｈｂｏｒの通信パターンの行列のみ示されている）の各要素に１０００を掛けることで正規化する。
【００５０】
次に、式（７）のｘｉｊに行列Ａの各要素を代入し、式（７）のｙｉｊに正規化された通信パターンの行列の各要素を代入することで距離、すなわち、２つの行列が異なる程度が算出される。つまり、距離は、式（７）に示すように、行列の各要素の差の２乗の平方根の和で示される。ただし、式（７）は距離の算出方法の一例である。反対に、２つの行列の距離が小さいほど２つの行列は類似していると言える。そこで本実施形態では、式（７）により算出される距離が０により近いほど類似しているという。
【００５１】
【数１】
0006492977.tif 000002
【００５２】
計算の結果、行列Ａとｂｉｔｃｏｍｐパターンとの距離は「０」となる。
【００５３】
同様に、図１３の行列Ｂの通信記録情報が、あるアプリケーションの実行時に得られたとすると、比較部１４は、各通信パターンに行列Ｂの要素の最大値を掛けて正規化し、式（７）のｘｉｊに行列Ｂの各要素を代入し、ｙｉｊに正規化された通信パターンの行列の各要素を代入する。この結果、行列Ｂとｂｉｔｃｏｍｐパターンとの距離は「８０００」となる。このようにして比較部１４は、全通信パターンとの距離を算出し、最も類似する通信パターンを明らかにする。
【００５４】
ノード割当部１５は、アプリケーションを実行したときの通信記録情報に最も類似する通信パターンを抽出する。通信記録情報に最も類似する通信パターンは、距離が最も小さい通信パターンである。上記例では、比較の結果、行列Ａ（通信記録情報）はｂｉｔｃｏｍｐの通信パターンに類似していると判定される。
【００５５】
比較部１４は、最も類似する通信パターンをジョブ管理テーブル２２に保存する。ジョブ管理テーブル２２には、ジョブをリクエストしたユーザ名２２ａ、そのユーザがリクエストしたアプリケーション名２２ｂが記録され、そのアプリケーションの解析後であれば、アプリケーション実行時の通信に最も類似していると判定された通信パターン２２ｃが記録される。
【００５６】
例えば、実行したアプリケーションのユーザ名２２ａが「ｕｓｅｒ００１」、アプリケーション名２２ｂが「Ａ」のアプリケーションを実行したときの通信記録情報と最も類似する通信パターンが「ｕｎｉｆｏｒｍ」と判定された場合、該ユーザ名２２ａ及び該アプリケーション名２２ｂに対応する通信パターン２２ｃに「ｕｎｉｆｏｒｍ」が記録される。なお、ジョブ管理テーブル２２に記録されたデータは、所定の期間経過後に削除されるようにしてもよい。
【００５７】
ノード割当部１５は、通信パターン情報テーブル２３に基づき、アプリケーションを実行するときの通信記録情報に最も類似する通信パターン２３ａの割当情報２３ｂを抽出する。上記例では、行列Ａはｂｉｔｃｏｍｐの通信パターンに類似していると判定されたので、ノード割当部１５は、ｆａｔｔｒｅｅを抽出する。
【００５８】
ノード割当部１５は、抽出した割当情報２３ｂから、リソース割当テーブル２４に基づき、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群を割り当てる。リソース割当テーブル２４には、ノードグループＩＤ２４ａ、ｆｕｌｌｍｅｓｈ番号２４ｂ、ｆａｔｔｒｅｅ番号２４ｃ、割当済情報２４ｄが記録されている。ここで、ノードグループＩＤは、同一Ｌｅａｆスイッチに接続されたノード群につけられた識別子である。図１の例であれば、１ノードグループあたり３台のノードが含まれ、一つの例では、このノードグループを単位として、ジョブ実行に必要なノード群の割当てを行う。リソース割当テーブル２４のｆｕｌｌｍｅｓｈ番号２４ｂに記載された記号のうち、同一記号を選択すれば、Ｌｅａｆスイッチが層内の接続関係にあるノード群が選択される。また、ｆａｔｔｒｅｅ番号２４ｃに記載された記号のうち、同一記号を選択すればＬｅａｆスイッチが層間の接続関係にあるノード群が選択される。
【００５９】
抽出した通信パターンが「ｕｎｉｆｏｒｍ」の場合、ノード割当部１５は、割当情報２３ｂが「ｆａｔｔｒｅｅ」であるため、リソース割当テーブル２４のｆａｔｔｒｅｅ番号２４ｃが同じであって割当済情報２４ｄが「Ｎｏ」(未割当ノード)を選択する。そして、ノード割当部１５は、選択したノードをアプリケーションが次に実行されるときに使用するノードに割り当てる。例えば、ノード割当部１５は、リソース割当テーブル２４のｆａｔｔｒｅｅ番号２４ｃが「Ｔ２」の「ノード００１」と「ノード０６３」とを割り当てることが可能である。ここでのノード情報は、「ノード００１」及び「ノード０６３」である。
【００６０】
ジョブ実行部１２は、ノード割当部１５が割り当てたノード情報を取得し、割り当てたノード群を用いてジョブを実行する。
【００６１】
［ノード割当処理］
次に、本実施形態に係るノード割当処理について図１６を参照して説明する。図１６は、本実施形態にかかるノード割当処理の一例を示すフローチャートである。本処理が開始されると、まず、ジョブ情報受取部１１は、ユーザからリクエストされたジョブのジョブ情報を受け付ける（ステップＳ１０）。
【００６２】
次に、ジョブ実行部１２は、ジョブ管理テーブル２２を参照し、ジョブ情報に含まれるユーザ名及びアプリケーションの通信に類似する通信パターンの抽出が既に実行され、ジョブ管理テーブル２２に設定されているかを判定する（ステップＳ１２）。
【００６３】
ジョブ実行部１２が通信パターンの抽出は実行されていないと判定した場合、ノード割当部１５は、リソース割当テーブル２４の割当済情報２４ｄを参照し、Ｌｅａｆスイッチが層内あるいは層間の接続関係のいずれかにある未割当の任意のノード群からジョブ情報に示された必要なノード群を割り当てる（ステップＳ１４）。
【００６４】
次に、ジョブ実行部１２は、割り当てたノード群を使用してジョブを実行する（ステップＳ１６）。ジョブ実行中、記録部１３は、通信が発生する毎にプロセス間の通信をカウントし、ＭＰＩライブラリ２０の通信記録情報テーブル２１に記録する（ステップＳ１６：Ｓ３）。
（通信情報記録処理（Ｓ３））
図１６のステップＳ１６から呼び出される通信情報記録処理（Ｓ３）について、図１７を参照して説明する。通信情報記録処理（Ｓ３）では、記録部１３は、最初に送信先のプロセスの番号を取得する(ステップＳ１６１)。次に、記録部１３は、通信記録情報テーブル２１の該当する行列要素をカウントアップする(ステップＳ１６２)。記録部１３は、送信元プロセスから送信先プロセスへの通信が発生するたびに通信回数をカウントアップする。通信回数のカウント方法は、アプリケーションの実行開始から実行終了までの通信回数をカウントする方法でもよいし、アプリケーションの実行中の所定時間の通信回数をカウントアップする方法でもよい。
【００６５】
かかる処理によりアプリケーションの実行中、プロセス間の通信がカウントされ、ＭＰＩライブラリ２０の通信記録情報テーブル２１に記録される。図１６のノード割当処理に戻り、次に、通信パターンの解析処理（Ｓ２）が実行され(ステップＳ１８)、本処理が終了する。
（通信パターンの解析処理（Ｓ２））
図１６のステップＳ１８から呼び出される通信パターンの解析処理（Ｓ２）について、図１８を参照して説明する。通信パターンの解析処理（Ｓ２）では、比較部１４は、式（７）のｘｉｊに通信記録情報テーブル２１に記録された行列の各要素を代入し、式（７）のｙｉｊに正規化された通信パターンの行列の各要素を代入することで距離を算出する（ステップＳ１８１）。
【００６６】
次に、比較部１４は、距離が最も小さい通信パターンをジョブ管理テーブル２２の通信パターン２２ｃに記録し（ステップＳ１８２）、本処理を終了する。
【００６７】
他方、図１６のノード割当処理のステップＳ１２において、ジョブ情報に含まれるユーザ名及びアプリケーション名の通信パターンの抽出が既に実行され、ジョブ管理テーブル２２に設定されていると判定された場合について説明する。この場合、ノード割当部１５は、ジョブ管理テーブル２２に基づきジョブ情報に含まれるユーザ名２２ａ及びアプリケーション名２２ｂに応じた通信パターン２２ｃを取得する(ステップＳ２０)。つまり、ノード割当部１５は、アプリケーションを最初に実行したときの通信記録情報が示す通信に最も類似する通信パターンをジョブ管理テーブル２２から抽出する。
【００６８】
次に、ノード割当部１５は、取得した通信パターン２２ｃにより特定される通信パターン情報テーブル２３の通信パターン２３ａに対応する割当情報２３ｂを選択する。ノード割当部１５は、選択した割当情報２３ｂに対応する層内又は層間割当に応じたノード群をリソース割当テーブル２４から選択し、確保する(ステップＳ２２)。例えば、割当情報２３ｂが層内割当（fullmesh）を示す場合、ｆｕｌｌｍｅｓｈ番号２４ｂ及び割当済情報２４ｄに基づき、未割当で同記号のｆｕｌｌｍｅｓｈ番号２４ｂのノード群が選択される。例えば、割当情報２３ｂが層間割当（fattree）を示す場合、ｆａｔｔｒｅｅ番号２４ｃ及び割当済情報２４ｄに基づき、未割当で同記号のｆａｔｔｒｅｅ番号２４ｃのノードが選択される。次に、ジョブ実行部１２は、割り当てたノード群を使用してジョブを実行し（ステップＳ２４）、本処理を終了する。
【００６９】
以上に説明したように、一実施形態に係るアプリケーションの並列演算を行う並列演算システムによれば、多層フルメッシュシステム１００において並列処理を実行させるノード群をＬｅａｆスイッチが層内又は層間の接続関係にあるノード群から適切に割り当てることができる。これにより、ジョブの処理速度が向上し、並列計算機システムのスループットを向上させることができる。これにより、多層フルメッシュシステム１００で構成されるＰＣクラスタの計算リソースを最適に利用することが可能になる。
【００７０】
以上の説明では、フルメッシュを構成するノードの組は、同一層のＬｅａｆスイッチの数字が同じものに限ったが、これに限らず、異なる層でフルメッシュを構成する場合もある。例えば、図１９（ａ）では、フルメッシュを構成するノードの組は、Ｌｅａｆスイッチａ１、ｂ１、ｃ１に接続された層内のノード群である。しかしながら、図１９（ｂ）では、フルメッシュを構成するノードの組は、Ｌｅａｆスイッチａ１、ｂ２、ｃ３に接続された層間を跨いだノード群であってもよい。
【００７１】
（ハードウェア構成例）
最後に、本実施形態に係るジョブスケジューラ１０のハードウェア構成について、図２０を参照して説明する。ジョブスケジューラ１０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７、及びＨＤＤ（Hard Disk Drive）１０８などを備え、それぞれがバスＢで相互に接続されている。
【００７２】
入力装置１０１は、キーボードやマウスなどを含み、ジョブスケジューラ１０に各操作信号を入力するために用いられる。表示装置１０２は、ディスプレイなどを含み、各種の処理結果を表示する。通信Ｉ／Ｆ１０７は、ジョブスケジューラ１０をネットワークに接続するインタフェースである。これにより、ジョブスケジューラ１０は、通信Ｉ／Ｆ１０７を介して、ノード群とデータ通信を行うことができる。
【００７３】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、ジョブスケジューラ１０の全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。例えば、ＨＤＤ１０８には、各種のデータベースやノード割当プログラム等のプログラムが格納されてもよい。
【００７４】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。これにより、ジョブスケジューラ１０は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａには、ＣＤ（Compact Disk）、及びＤＶＤ（Digital Versatile Disk）、ならびに、ＳＤメモリカード（SD Memory card）やＵＳＢメモリ（Universal Serial Bus memory）等がある。
【００７５】
ＲＯＭ１０５は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５には、プログラム及びデータが格納されている。ＲＡＭ１０４は、ノード割当プログラム等のプログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ１０８」や「ＲＯＭ１０５」など）から、ノード割当プログラム等のプログラムやデータをＲＡＭ１０４上に読み出し、ノード割当処理、通信情報記録処理及び通信パターンの解析処理を実行する。これにより、多層フルメッシュシステムにおけるジョブの配置制御及びアプリケーションの並列演算を実現する。
【００７６】
なお、通信記録情報テーブル２１、ジョブ管理テーブル２２、通信パターン情報テーブル２３、リソース割当テーブル２４に記憶された情報は、ＲＡＭ１０４、ＨＤＤ１０８等に格納され得る。これらのテーブルは、ネットワークを介してジョブスケジューラ１０に接続されるクラウド上のサーバ等に格納されてもよい。
【００７７】
以上、並列演算装置、並列演算システム、ノード割当プログラム及びノード割当方法を上記実施形態により説明したが、本発明にかかる並列演算装置、並列演算システム、ノード割当プログラム及びノード割当方法は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【００７８】
例えば、上記実施形態に係るジョブスケジューラ１０の構成は一例であり、本発明の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば、本実施形態のジョブスケジューラ１０を一例とする並列演算装置は、ノードと別体の情報処理装置によって実現されてもよいし、ノード内に組み込まれてもよい。
【００７９】
以上の説明に関し、更に以下の項を開示する。
（付記１）
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算を行う並列演算装置であって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群のいずれを割り当てるかを示す割当情報が通信パターン毎に特定された通信パターン情報とを比較する比較部と、
比較した前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる割当部と、を有する並列演算装置。
（付記２）
前記割当部は、前記アプリケーションを最初に実行したときの通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出する、
付記１に記載の並列演算装置。
（付記３）
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算を行う並列演算システムであって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群のいずれを割り当てるかを示す割当情報が通信パターン毎に特定された通信パターン情報とを比較する比較部と、
比較した前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる割当部と、を有する並列演算装置を備える、
並列演算システム。
（付記４）
前記アプリケーションを最初に実行したときの通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出する、
付記３に記載の並列演算システム。
（付記５）
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算処理をコンピュータに実行させるためのノード割当プログラムであって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群のいずれを割り当てるかを示す割当情報が通信パターン毎に特定された通信パターン情報とを比較し、
比較した前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる、
ノード割当プログラム。
（付記６）
前記アプリケーションを最初に実行したときの通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出する、
付記５に記載のノード割当プログラム。
（付記７）
Ｌｅａｆスイッチがフルメッシュ接続されたフルメッシュシステムが複数層連結される多層フルメッシュシステムにおいてアプリケーションの並列演算処理をコンピュータが実行するノード割当方法であって、
アプリケーションを実行したときのノード間の通信回数を記録した通信記録情報と、Ｌｅａｆスイッチが層内又は層間の接続関係にあるノード群のいずれを割り当てるかを示す割当情報が通信パターン毎に特定された通信パターン情報とを比較し、
比較した前記通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出し、該割当情報に基づき前記アプリケーションを次に実行するノード群を割り当てる、
ノード割当方法。
（付記８）
前記アプリケーションを最初に実行したときの通信記録情報が示す通信に最も類似する通信パターンの割当情報を前記通信パターン情報に基づき抽出する、
付記７に記載のノード割当方法。
【符号の説明】
【００８０】
１０：ジョブスケジューラ
１１：ジョブ情報受取部
１２：ジョブ実行部
１３：記録部
１４：比較部
１５：ノード割当部
２０：ＭＰＩライブラリ
２１：通信記録情報テーブル
２２：ジョブ管理テーブル
２３：通信パターン情報テーブル
２４：リソース割当テーブル
１００：多層フルメッシュシステム
【図１】
0006492977.tif 000003
【図２】
0006492977.tif 000004
【図３】
0006492977.tif 000005
【図４】
0006492977.tif 000006
【図５】
0006492977.tif 000007
【図６】
0006492977.tif 000008
【図７】
0006492977.tif 000009
【図８】
0006492977.tif 000010
【図９】
0006492977.tif 000011
【図１０】
0006492977.tif 000012
【図１１】
0006492977.tif 000013
【図１２】
0006492977.tif 000014
【図１３】
0006492977.tif 000015
【図１４】
0006492977.tif 000016
【図１５】
0006492977.tif 000017
【図１６】
0006492977.tif 000018
【図１７】
0006492977.tif 000019
【図１８】
0006492977.tif 000020
【図１９】
0006492977.tif 000021
【図２０】
0006492977.tif 000022