(57)【要約】【課題】通信処理時間を短くするようにプロセスを配置すること。【解決手段】互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置装置１００は、ネットワーク領域分割部１２３とプロセスグループ分割部１２４とプロセスグループ配置部１２５とを有する。ネットワーク領域分割部１２３は、複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割する。プロセスグループ分割部１２４は、ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割する。プロセスグループ配置部１２５は、分割プロセスグループを複数の分割ネットワークのいずれかにに配置する。【選択図】図３
2012243224.tif 000002
【特許請求の範囲】
【請求項１】
互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置装置において、
前記複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割するネットワーク分割部と、
前記ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割するプロセスグループ分割部と、
前記分割プロセスグループを前記複数の分割ネットワークのいずれかにに配置するプロセスグループ配置部と、
を有することを特徴とするプロセス配置装置。
【請求項２】
前記プロセスグループ配置部は、
前記分割プロセスグループを、互いに隣接する分割ネットワーク領域にそれぞれ配置することを特徴とする請求項１記載のプロセス配置装置。
【請求項３】
前記プロセスグループ分割部は、分割プロセスグループが配置される分割ネットワーク領域が、これから分割を行なうプロセスグループが配置される分割ネットワーク領域と隣接する場合に、前記分割プロセスグループを、前記これから分割を行なうプロセスグループに含めてから、前記ネットワーク領域の分割結果に基づいて、前記プロセスグループを分割することを特徴とする請求項１又は２記載のプロセス配置装置。
【請求項４】
前記プロセス配置装置はさらに、
前記プロセスグループ配置部が分割ネットワーク領域に配置したプロセスグループに属するプロセスそれぞれを、前記分割ネットワーク領域に含まれるノードのいずれかに配置するプロセス配置部を有することを特徴とする請求項１〜３のいずれか１項に記載のプロセス配置装置。
【請求項５】
前記プロセス配置装置はさらに、
前記プロセス配置部が配置したプロセスの配置を、プロセスが配置されたノード間の距離と通信量に基づいて評価する評価値を算出し、前記評価値が所定の閾値を超えたか否かを判定する評価値判定部を有し、
前記プロセス配置部は、
前記評価値判定部が算出した評価値が所定の閾値を超えた場合、前記分割された分割プロセスグループを、前記複数の分割ネットワークに、新たな分割プロセスグループと分割ネットワークの組合せにより再配置することを特徴とする請求項１〜４のいずれか１項に記載のプロセス配置装置。
【請求項６】
互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置方法において、
コンピュータが、
前記複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割し、
前記ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割し、
前記分割された分割プロセスグループを前記分割された複数の分割ネットワークに配置する
ことを特徴とするプロセス配置方法。
【請求項７】
互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置プログラムにおいて、
コンピュータに、
前記複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割させ、
前記ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割させ、
前記分割された分割プロセスグループを前記分割された複数の分割ネットワークに配置させる
ことを特徴とするプロセス配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス配置装置、プロセス配置方法及びプロセス配置プログラムに関する。
【背景技術】
【０００２】
従来、複数の情報処理装置（以下、ノードと記す）を有するコンピュータシステムでは、ノードに配置された各プロセスが、他のノードに配置されたプロセスと互いに通信を行なうことで並列プログラムを実行する。
【０００３】
また、プロセス間の通信処理時間は、プロセスが配置されるノードの位置によって影響される。例えば、１回の通信に要するホップ数が多くなると通信処理時間は長くなる。このため、コンピュータシステムは、ノード上へ配置したプロセスの組み合わせについて、例えば、通信処理時間を測定して、あるいは相対的な評価値を算出して、最適なプロセスの配置を選択する。
【０００４】
ところが、Ｎ個のプロセスをノード上に配置する場合、ノード上へ配置するプロセスの組み合わせの総数はＮ！のオーダとなることから、数千、数万プロセスの配置を最適化する場合、組み合わせの総数は膨大な数となる。このような場合、すべての組み合わせの中から１つの最適な組み合わせを選択することは極めて困難である。
【０００５】
このようなことから、Ｎ個のプロセスをｍ個ずつのプロセスグループに分割してノードに配置することで、組み合わせの総数を減らす手法が開示されている。図１２Ａ〜図１２Ｆを用いて、組み合わせの総数を減らす手法について説明する。
【０００６】
図１２Ａは、１６台のノードをメッシュ状に接続して形成されるネットワーク領域の一例を示す図であり、図１２Ｂは、プロセス間の通信関係を示す図である。また、図１２Ｃは、図１２Ｂに示すプロセスを１回分割して生成するプロセスグループの一例を示す図であり、図１２Ｄは、図１２Ｂに示すプロセスを２回分割して生成するプロセスグループの一例を示す図である。図１２Ｅは、図１２Ｂに示すプロセスを３回分割して生成するプロセスグループの一例を示す図であり、図１２Ｆは、図１２Ｅに示すプロセスグループに属するプロセスをノードに配置する一例を示す図である。
【０００７】
図１２Ａに示す４ｘ４ノードの２次元メッシュのネットワークに対して、図１２Ｂに示す１６個のプロセスを配置する場合、コンピュータシステムは、以下の処理を実行する。すなわち、コンピュータシステムは、図１２Ｂに示すプロセスをグループ化してプロセスグループを生成し、生成したプロセスグループを分割して、図１２Ｃに示すプロセスグループ８１０及びプロセスグループ８２０を生成する。コンピュータシステムは、所定の条件を満たすまで分割を繰り返す。ここでは、所定の条件の一例として、各プロセスグループに属するプロセスが２個になるものとして説明する。
【０００８】
次に、コンピュータシステムは、プロセスグループ８１０を分割し、図１２Ｄに示すプロセスグループ８１１及びプロセスグループ８１２を生成する。続いて、コンピュータシステムは、プロセスグループ８１１を分割し、図１２Ｅに示すプロセスグループ８１１ａ及びプロセスグループ８１１ｂを生成する。
【０００９】
コンピュータシステムは、プロセスグループ８１１ａに属するプロセスが２個であるので、所定の条件を満たすものと判定する。そして、コンピュータシステムは、図１２Ｆに示すように、プロセスグループ８１１ａに属するプロセスをノード９１５とノード９１９とに配置する。また、コンピュータシステムは、プロセスをノードに配置した場合、プロセスの配置を最適化する。
【００１０】
その後、コンピュータシステムは、同様の処理を繰り返し実行する。すなわち、コンピュータシステムは、所定の条件を満たしていないプロセスグループを所定の条件を満たすまで分割し、所定の条件を満たしたプロセスグループに属するプロセスから順にノードに配置する。そして、コンピュータシステムは、プロセスの配置を最適化する。
【００１１】
このように、従来の技術では、Ｎ個のプロセスを一度にノードに配置するのではなく、Ｎ個のプロセスをｍ個ずつのプロセスグループに分割してノードに配置する。この場合、組み合わせ総数は、ＮＰｍ＋Ｎ−ｍＰｍ＋・・・＋ｍＰｍとなり、Ｎ個のプロセスを一度にノードに配置する場合の組み合わせ総数Ｎ！よりも十分に小さい値となる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特表２００８−５１６３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来の技術では、通信処理時間を短くするようにプロセスを配置することができない場合があるという課題がある。
【００１４】
例えば、従来の技術では、ノードに配置する順番が後になるプロセスグループほど、選択可能なノードの数が少なくなる。図１３Ａ及び図１３Ｂを用いて一例を説明する。図１３Ａは、図１２Ｂに示すプロセスを５回分割して生成するプロセスグループの一例を示す図である。また、図１３Ｂは、図１３Ａに示すようにプロセスグループが分割された場合にノードに配置されているプロセスの一例を示す図である。
【００１５】
図１３Ａに示すようにプロセスが分割された場合、プロセスグループ８２２に属するプロセスは、図１３Ｂに示すノード９１０、ノード９１３、ノード９２０及びノード９２１に配置される。図１３Ｂの様に配置された場合、プロセスグループ８２２に属するプロセスは、近接するノードにまとまって配置されない。この結果、最後に配置されるプロセスグループほど、ノードの選択の余地が少ないため、プロセスグループ内の通信ホップ数が長くなりやすく、また、他のプロセスグループとの通信ホップ数も長くなりやすい。
【００１６】
１つの側面では、通信処理時間を短くするようにプロセスを配置することができるプロセス配置装置、プロセス配置方法及びプロセス配置プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
第１の案では、互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置である。プロセス配置は、複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割する。プロセス配置は、ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割する。プロセス配置は、分割プロセスグループを複数の分割ネットワークのいずれかにに配置する。
【発明の効果】
【００１８】
通信処理時間を短くするようにプロセスを配置することができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、コンピュータシステムの構成例を示す図である。
【図２Ａ】図２Ａは、１６台のノードをメッシュ状に接続して形成されるネットワーク領域の一例を示す図である。
【図２Ｂ】図２Ｂは、１６個のプロセス間の通信関係を示す図である。
【図２Ｃ】図２Ｃは、図２Ａに示すネットワーク領域を１回分割して生成するネットワーク領域の一例を示す図である。
【図２Ｄ】図２Ｄは、図２Ｂに示すプロセスを１回分割して生成するプロセスグループの一例を示す図である。
【図２Ｅ】図２Ｅは、図２Ａに示すネットワーク領域を２回分割して生成するネットワーク領域の一例を示す図である。
【図２Ｆ】図２Ｆは、図２Ｂに示すプロセスを２回分割して生成するプロセスグループの一例を示す図である。
【図２Ｇ】図２Ｇは、図２Ａに示すネットワーク領域を３回分割して生成するネットワーク領域の一例を示す図である。
【図２Ｈ】図２Ｈは、図２Ｂに示すプロセスを３回分割して生成するプロセスグループの一例を示す図である。
【図３】図３は、プロセス配置装置の構成を示すブロック図である。
【図４】図４は、ノード配置テーブルの一例を示す図である。
【図５】図５は、分割ルールテーブルの一例を示す図である。
【図６Ａ】図６Ａは、分割前のネットワーク領域の一例を示す図である。
【図６Ｂ】図６Ｂは、図６Ａに示すネットワーク領域を分割して生成するネットワーク領域の一例を示す図である。
【図７Ａ】図７Ａは、分割前のプロセスグループの一例を示す図である。
【図７Ｂ】図７Ｂは、図７Ａに示すプロセスグループを３回分割して生成したプロセスグループの一例を示す図である。
【図７Ｃ】図７Ｃは、サブグループを生成した一例を示す図である。
【図７Ｄ】図７Ｄは、生成したサブグループを分割対象であるプロセスグループにまとめた一例を示す図である。
【図７Ｅ】図７Ｅは、図７Ｄに示すプロセスグループを分割した一例を示す図である。
【図８】図８は、プロセス配置装置によるプロセス配置処理の処理手順を示すフローチャートである。
【図９】図９は、プロセス配置装置によるネットワーク領域分割処理の処理手順を示すフローチャートである。
【図１０】図１０は、プロセス配置装置によるプロセスグループ分割処理の処理手順を示すフローチャートである。
【図１１】図１１は、プロセス配置プログラムを実行するコンピュータを示す図である。
【図１２Ａ】図１２Ａは、１６台のノードをメッシュ状に接続して形成されるネットワーク領域の一例を示す図である。
【図１２Ｂ】図１２Ｂは、プロセス間の通信関係を示す図である。
【図１２Ｃ】図１２Ｃは、図１２Ｂに示すプロセスを１回分割して生成するプロセスグループの一例を示す図である。
【図１２Ｄ】図１２Ｄは、図１２Ｂに示すプロセスを２回分割して生成するプロセスグループの一例を示す図である。
【図１２Ｅ】図１２Ｅは、図１２Ｂに示すプロセスを３回分割して生成するプロセスグループの一例を示す図である。
【図１２Ｆ】図１２Ｆは、図１２Ｅに示すプロセスグループに属するプロセスをノードに配置する一例を示す図である。
【図１３Ａ】図１３Ａは、図１２Ｂに示すプロセスを５回分割して生成するプロセスグループの一例を示す図である。
【図１３Ｂ】図１３Ｂは、図１３Ａに示すようにプロセスグループが分割された場合にノードに配置されているプロセスの一例を示す図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示するプロセス配置装置、プロセス配置方法及びプロセス配置プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００２１】
実施例１では、図１から図１０を用いて、システムの全体構成、プロセス配置装置の構成、プロセス配置装置による処理の処理手順、効果などについて説明する。
【００２２】
図１は、コンピュータシステムの構成例を示す図である。図１に示すように、コンピュータシステム１は、ノード１０〜ノード２５、プロセス配置装置１００を有する。ノード１０〜ノード２５それぞれは、隣接する各ノードと、メッシュ状に接続されており、互いに通信可能である。プロセス配置装置１００は、各ノードと、例えばＬＡＮ（Local  Area  Network）などで互いに通信可能に接続される。なお、コンピュータシステム１における各ノードと隣接するノードとの接続は、メッシュ状の接続に限定されるものではなく、トーラス状又はループ状に接続されてもよい。
【００２３】
ノード１０は、ＣＰＵ（Central  Processing  Unit）とメモリとを有する情報処理装置であり、プロセス配置装置１００によってプロセスが配置されている。ノード１０に配置されたプロセスは、他のノードに配置されたプロセスと互いに通信することで並列プログラムを実行する。なお、ノード１１〜ノード２５の動作についてもノード１０の動作と同様であるため、ここでは説明を省略する。
【００２４】
プロセス配置装置１００は、ノード１０〜ノード２５をメッシュ状に接続して形成されるネットワーク領域を分割する。また、プロセス配置装置１００は、ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを分割する。そして、プロセス配置装置１００は、生成したプロセスグループそれぞれを生成した隣接するネットワーク領域に配置する。図２Ａから図２Ｈを用いて、プロセス配置装置１００による各ノードへのプロセス初期配置の決定動作を説明する。
【００２５】
図２Ａは、１６台のノードをメッシュ状に接続して形成されるネットワーク領域の一例を示す図であり、図２Ｂは、１６個のプロセス間の通信関係を示す図である。プロセス配置装置１００は、図２Ａに示すネットワーク領域を分割するとともに、図２Ｂに示すプロセスグループを分割する。
【００２６】
図２Ｃは、図２Ａに示すネットワーク領域を１回分割して生成するネットワーク領域の一例を示す図であり、図２Ｄは、図２Ｂに示すプロセスを１回分割して生成するプロセスグループの一例を示す図である。まず、プロセス配置装置１００は、図２Ｃに示すように、ネットワーク領域をａｒｅａ１０とａｒｅａ２０とに分割する。また、プロセス配置装置１００は、図２Ｄに示すように、プロセスグループをｇｒｐ１０とｇｒｐ２０とに分割する。そして、プロセス配置装置１００は、生成したｇｒｐ１０をａｒｅａ１０に対応付け、生成したｇｒｐ２０をａｒｅａ２０に対応付ける。
【００２７】
続いて、プロセス配置装置１００は、図２Ｅに示すように、図２Ｃに示すネットワーク領域ａｒｅａ１０をａｒｅａ１１とａｒｅａ１２とに分割する。また、プロセス配置装置１００は、図２Ｆに示すように、図２Ｃに示すプロセスグループｇｒｐ１０をｇｒｐ１１とｇｒｐ１２とに分割する。そして、プロセス配置装置１００は、生成したｇｒｐ１１をａｒｅａ１１に対応付け、生成したｇｒｐ１２をａｒｅａ１２に対応付ける。なお、図２Ｅは、図２Ａに示すネットワーク領域を２回分割して生成するネットワーク領域の一例を示す図であり、図２Ｆは、図２Ｂに示すプロセスを２回分割して生成するプロセスグループの一例を示す図である。
【００２８】
また、プロセス配置装置１００は、図２Ｇに示すように、図２Ｃに示すネットワーク領域ａｒｅａ２０をａｒｅａ２１とａｒｅａ２２とに分割する。また、プロセス配置装置１００は、図２Ｈに示すように、図２Ｃに示すプロセスグループｇｒｐ２０をｇｒｐ２１とｇｒｐ２２とに分割する。そして、プロセス配置装置１００は、生成したｇｒｐ２１をａｒｅａ２１に対応付け、生成したｇｒｐ２２をａｒｅａ２２に対応付ける。なお、図２Ｇは、図２Ａに示すネットワーク領域を３回分割して生成するネットワーク領域の一例を示す図であり、図２Ｈは、図２Ｂに示すプロセスを３回分割して生成するプロセスグループの一例を示す図である。
【００２９】
プロセス配置装置１００は、ネットワーク領域及びプロセスグループを所定の回数分割した場合、プロセスグループに属する各プロセスを対応付けられたネットワーク領域に属する各ノードに配置する。そして、プロセス配置装置１００は、各ノードに配置したプロセスの配置が最適化されているか否かを判定する。例えば、プロセス配置装置１００は、プロセスの配置を相対的に評価する評価値を算出し、算出した評価値が所定の閾値を下回ったか否かを判定する。
【００３０】
ここで、プロセス配置装置１００は、算出した評価値が所定の閾値を下回ったと判定した場合、プロセスの配置が最適化されていると判定する。一方、プロセス配置装置１００は、算出した評価値が所定の閾値を下回っていないと判定した場合、プロセスグループに対応付けられたネットワーク領域に属する各ノードに新たな組み合わせでプロセスを配置し、評価値を算出する。
【００３１】
［実施例１に係るプロセス配置装置の構成］
次に、図３を用いて、実施例１に係るプロセス配置装置１００の構成を説明する。図３は、実施例１に係るプロセス配置装置の構成を示すブロック図である。実施例１に係るプロセス配置装置１００は、入力部１０１と出力部１０２と通信制御Ｉ／Ｆ部１０３と記憶部１１０と制御部１２０とを有する。
【００３２】
入力部１０１は、例えば、キーボードやマウスなどであり、利用者から各種の設定や操作の入力を受付ける。出力部１０２は、例えば、モニタやディスプレイなどであり、各種の情報を出力する。
【００３３】
通信制御Ｉ／Ｆ部１０３は、少なくとも１つの通信ポートを有するインターフェースであり、他の装置との間でやり取りされる情報を制御する。例えば、通信制御Ｉ／Ｆ部１０３は、各ノードにプロセスを配置する。
【００３４】
記憶部１１０は、例えば、半導体メモリ素子などの記憶装置であり、ノード配置テーブル１１１、分割ルールテーブル１１２を有する。
【００３５】
ノード配置テーブル１１１は、メッシュ状またはトーラス状に接続されたノードそれぞれの位置情報を記憶する。図４を用いて、ノード配置テーブル１１１の一例を説明する。図４は、ノード配置テーブル１１１の一例を示す図である。例えば、ノード配置テーブル１１１は、図４に示すように、「ノードＩＤ」と「Ｘ座標」と「Ｙ座標」とを対応付けて記憶する。
【００３６】
ここで、ノード配置テーブル１１１として記憶される「ノードＩＤ」は、ノードの識別子を示し、例えば、「１０」、「１１」、「１２」などが格納される。なお、説明の便宜上、「ノードＩＤ」に格納される値と、図１に示す各ノードに付した符号とが対応するものとして説明する。
【００３７】
また、「Ｘ座標」は、各ノードの位置情報を二次元座標で表現した場合のＸ座標を示し、例えば、「０」、「１」、「２」などが格納される。また、「Ｙ座標」は、各ノードの位置情報を二次元座標で表現した場合のＹ座標を示し、例えば、「０」、「１」、「２」などが格納される。なお、「Ｘ座標」及び「Ｙ座標」は、図１に示したノード２２を二次元座標における原点（０、０）とするものとして説明する。
【００３８】
また、ノード配置テーブル１１１として記憶される「ノードＩＤ」と「Ｘ座標」と「Ｙ座標」とは、利用者によって予め設定された値が格納される。
【００３９】
具体的には、図３に示す例の場合、ノード配置テーブル１１１は、ノード１４が座標（０、２）に位置し、ノード１７が座標（３、２）に位置することを示す。同様に、ノード配置テーブル１１１は、ノード１５が座標（１、２）に位置し、ノード１１が座標（１、３）に位置することを示す。
【００４０】
分割ルールテーブル１１２は、各ネットワーク領域について、分割後に新しく割り振られるネットワーク領域の識別子及び分割後のネットワーク領域と隣接するネットワーク領域の識別子を記憶する。
【００４１】
図５を用いて、分割ルールテーブル１１２の一例を説明する。図５は、分割ルールテーブルの一例を示す図である。例えば、分割ルールテーブル１１２は、図５に示すように、「分割前の領域ＩＤ」と「分割後の領域ＩＤ」と「隣接する領域ＩＤ」とを対応付けて記憶する。
【００４２】
ここで、分割ルールテーブル１１２として記憶される「分割前の領域ＩＤ」は、分割前のネットワーク領域の識別子を示し、例えば、「１１」、「１２」、「２１」などが格納される。
【００４３】
また、分割ルールテーブル１１２として記憶される「分割後の領域ＩＤ」は、分割後のネットワーク領域の識別子を示し、例えば、「１１ａ」、「１１ｂ」、「１２ａ」などが格納される。
【００４４】
また、分割ルールテーブル１１２として記憶される「隣接する領域ＩＤ」は、分割後のネットワーク領域と隣接するネットワーク領域の識別子を示し、例えば、「１１ｂ、２１ａ」、「１１ａ、１２ａ、２１ｂ」、「１１ｂ、１２ｂ、２２ａ」などが格納される。
【００４５】
具体的には、図５に示す例の場合、分割ルールテーブル１１２は、ＩＤが「１１」で識別されるネットワーク領域を分割してＩＤが「１１ａ」で識別されるネットワーク領域とＩＤが「１１ｂ」で識別されるネットワーク領域とを生成することを示す。そして、分割ルールテーブル１１２は、分割後に生成するＩＤが「１１ａ」で識別されるネットワーク領域が、ＩＤが「１１ｂ」で識別されるネットワーク領域とＩＤが「２１ａ」で識別されるネットワーク領域と隣接することを示す。また、分割ルールテーブル１１２は、分割後に生成するＩＤが「１１ｂ」で識別されるネットワーク領域が、ＩＤが「１１ａ」で識別されるネットワーク領域とＩＤが「１２ａ」で識別されるネットワーク領域とＩＤが「２１ｂ」で識別されるネットワーク領域と隣接することを示す。
【００４６】
制御部１２０は、分割軸決定部１２１と分割ルール設定部１２２とネットワーク領域分割部１２３とプロセスグループ分割部１２４とプロセスグループ配置部１２５とプロセス配置部１２６と評価値判定部１２７とを有する。例えば、制御部１２０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路、又は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路で実現される。
【００４７】
分割軸決定部１２１は、ネットワーク領域をどの軸で分割するのかを決定する。例えば、分割軸決定部１２１は、各軸方向の中でその軸方向に沿って整列するノー度数がもっとも大きい軸を決定する。例えば、２次元座標で表されるメッシュ上のネットワークの場合には、Ｘ軸又はＹ軸のうちから分割する軸を決定することができる。
【００４８】
分割ルール設定部１２２は、分割軸決定部１２１によって決定された軸でネットワーク領域を分割した場合に生成する各ネットワーク領域の識別子と、分割後に生成する各ネットワーク領域と隣接するネットワーク領域の識別子とを設定する。
【００４９】
図６Ａ及び図６Ｂを用いて分割ルール設定部１２２の動作を説明する。図６Ａは、分割前のネットワーク領域の一例を示す図であり、図６Ｂは、図６Ａに示すネットワーク領域を分割して生成するネットワーク領域の一例を示す図である。
【００５０】
図６Ａに示すように、ノード１０〜ノード２５を有するネットワーク領域は、ＩＤが「１１」、「１２」、「２１」、「２２」で識別されるネットワーク領域に分割されている。図６Ａに示すように、ＩＤが「１１」で識別されるネットワーク領域には、ノード１０、ノード１１、ノード１４、ノード１５が含まれる。また、ＩＤが「１２」で識別されるネットワーク領域には、ノード１２、ノード１３、ノード１６、ノード１７が含まれる。
【００５１】
同様に、図６Ａに示すように、ＩＤが「２１」で識別されるネットワーク領域には、ノード１８、ノード１９、ノード２２、ノード２３が含まれる。また、ＩＤが「２２」で識別されるネットワーク領域には、ノード２０、ノード２１、ノード２４、ノード２５が含まれる。
【００５２】
図６Ｂに示すように、ノード１０〜ノード２５を有するネットワーク領域は、ＩＤが「１１ａ」、「１１ｂ」、「１２ａ」、「１２ｂ」、「２１ａ」、「２１ｂ」、「２２ａ」、「２２ｂ」で識別されるネットワーク領域に分割されている。図６Ｂに示すように、ＩＤが「１１ａ」で識別されるネットワーク領域には、ノード１０、ノード１４が含まれる。また、ＩＤが「１１ｂ」で識別されるネットワーク領域には、ノード１１、ノード１５が含まれる。また、図６Ｂに示すように、ＩＤが「１２ａ」で識別されるネットワーク領域には、ノード１２、ノード１６が含まれる。また、ＩＤが「１２ｂ」で識別されるネットワーク領域には、ノード１３、ノード１７が含まれる。
【００５３】
同様に、図６Ｂに示すように、ＩＤが「２１ａ」で識別されるネットワーク領域には、ノード１８、ノード２２が含まれる。また、ＩＤが「２１ｂ」で識別されるネットワーク領域には、ノード１９、ノード２３が含まれる。また、図６Ｂに示すように、ＩＤが「２２ａ」で識別されるネットワーク領域には、ノード２０、ノード２４が含まれる。また、ＩＤが「２２ｂ」で識別されるネットワーク領域には、ノード２１、ノード２５が含まれる。
【００５４】
分割ルール設定部１２２は、図６Ａに示すように、ＩＤが「１１」で識別されるネットワーク領域を分割してＩＤが「１１ａ」と「１１ｂ」で識別されるネットワーク領域を生成した場合、以下の処理を実行する。すなわち、分割ルール設定部１２２は、分割ルールテーブル１１２の「分割前の領域ＩＤ」に「１１」、「分割後の領域ＩＤ」に「１１ａ」、「１１ｂ」を格納する。また、分割ルール設定部１２２は、分割後に生成するＩＤが「１１ａ」で識別されるネットワーク領域と隣接するネットワーク領域として、ＩＤが「１１ｂ」、「２１ａ」で識別されるネットワーク領域を特定する。そして、分割ルール設定部１２２は、分割ルールテーブル１１２の「分割後の領域ＩＤ」が「１１ａ」に対応する「隣接する領域ＩＤ」に「１１ｂ」、「２１ａ」を格納する。同様に、分割ルール設定部１２２は、分割後に生成するＩＤが「１１ｂ」で識別されるネットワーク領域と隣接するネットワーク領域として、ＩＤが「１１ａ」、「１２ａ」、「２２ａ」で識別されるネットワーク領域を特定する。そして、分割ルール設定部１２２は、分割ルールテーブル１１２の「分割後の領域ＩＤ」が「１１ｂ」に対応する「隣接する領域ＩＤ」に「１１ａ」、「１２ａ」、「２２ａ」を格納する。
【００５５】
ネットワーク領域分割部１２３は、分割軸決定部１２１によって決定された軸に基づいて、ネットワーク領域を分割する。
【００５６】
例えば、ネットワーク領域分割部１２３は、ネットワーク領域の数を特定し、特定したネットワーク領域に含まれるノードを選択する。そして、ネットワーク領域分割部１２３は、選択したノードの座標をノード配置テーブル１１１から特定し、特定した座標とネットワーク領域の分割軸方向に整列するノードの数を半分にした値とを比較する。
【００５７】
ここで、ネットワーク領域分割部１２３は、特定した座標が分割軸方向に整列するノードの数を半分にした値よりも小さい場合、選択したノードを第１のエリアであるａｒｅａ０に追加する。一方、ネットワーク領域分割部１２３は、特定した座標が分割軸方向のサイズを半分にした値よりも小さくない場合、選択したノードを第２のエリアであるａｒｅａ１に追加する。
【００５８】
図６Ａに示すＩＤが「１１」で識別されるネットワークを分割する場合、ネットワーク領域分割部１２３は、ノード１０及びノード１４を第１のエリアであるａｒｅａ０に追加し、図６Ｂに示すＩＤが「１１ａ」で識別されるネットワーク領域を生成する。また、図６Ａに示すＩＤが「１１」で識別されるネットワークを分割する場合、ネットワーク領域分割部１２３は、ノード１１及びノード１５を第２のエリアであるａｒｅａ１に追加し、図６Ｂに示すＩＤが「１１ｂ」で識別されるネットワーク領域を生成する。
【００５９】
プロセスグループ分割部１２４は、ネットワーク領域分割部１２３によるネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを分割する。
【００６０】
例えば、プロセスグループ分割部１２４は、サブグループを生成できるか否かを判定する。ここで、サブグループとは、分割して生成したプロセスグループが配置されるネットワーク領域が、分割対象であるプロセスグループが配置されるネットワーク領域と隣接する場合に、分割して生成したプロセスグループの集合をサブグループと定義する。
【００６１】
プロセスグループ分割部１２４は、サブグループを生成できないと判定した場合、例えば、ＭＥＴＩＳなどのグラフ分割ツールを用いてプロセスグループを分割する。一方、プロセスグループ分割部１２４は、サブグループを生成できると判定した場合、生成したサブグループに含まれるプロセスを一つのプロセスとしてまとめて、分割対象であるプロセスグループに含める。そして、プロセスグループ分割部１２４は、ＭＥＴＩＳなどのグラフ分割ツールを用いて、分割対象であるプロセスグループをネットワーク領域の分割結果に基づいて分割する。
【００６２】
図７Ａから図７Ｅを用いて、プロセスグループ分割部１２４によるサブグループを生成できる場合のプロセスグループを分割する動作を説明する。図７Ａは、分割前のプロセスグループの一例を示す図であり、図７Ｂは、図７Ａに示すプロセスグループを３回分割して生成したプロセスグループの一例を示す図である。図７Ｃは、サブグループを生成した一例を示す図であり、図７Ｄは、生成したサブグループを分割対象であるプロセスグループにまとめた一例を示す図であり、図７Ｅは、図７Ｄに示すプロセスグループを分割した一例を示す図である。
【００６３】
プロセスグループ分割部１２４は、図７Ａに示す、ｇｒｐ１１、ｇｒｐ１２、ｇｒｐ２１、ｇｒｐ２２を含んだプロセスグループを分割して、図７Ｂに示すプロセスグループを生成する。図７Ｂに示すプロセスグループは、分割済みのグループとして、ｇｒｐ１１ａ、ｇｒｐ１１ｂ、ｇｒｐ１２ａ、ｇｒｐ１２ｂ、ｇｒｐ２１ａ、ｇｒｐ２１ｂを含んでいる。なお、分割済みのグループは、Ｇｒｐに登録されるものとする。
【００６４】
図７Ｃでは、プロセスグループ分割部１２４は、サブグループを選択する。プロセスグループ分割部１２４は、図５に示す分割ルールテーブル１１２から、ｇｒｐ２２の分割後のグループＩＤを２２ａ及び２２ｂであると判定する。そして、プロセスグループ分割部１２４は、ＩＤが「２２ａ」で識別されるネットワーク領域と隣接しているネットワーク領域はＩＤが「１２ａ」で識別されるネットワーク領域とＩＤが「２１ｂ」で識別されるネットワーク領域であると特定する。また、プロセスグループ分割部１２４は、ＩＤが「２２ｂ」で識別されるネットワーク領域と隣接しているネットワーク領域はＩＤが「１２ｂ」で識別されるネットワーク領域であると特定する。
【００６５】
このことから、ＩＤが「２２ａ」で識別されるネットワーク領域と隣接するサブグループをＳｕｂＧｒｐ０とした場合、プロセスグループ分割部１２４は、プロセスグループｇｒｐ１２ａとｇｒｐ２１ｂをＳｕｂＧｒｐ０として選択する。また、ＩＤが「２１ｂ」で識別されるネットワーク領域と隣接するサブグループをＳｕｂＧｒｐ１とした場合、プロセスグループ分割部１２４は、プロセスグループｇｒｐ１２ｂをＳｕｂＧｒｐ１として選択する。そして、ｇｒｐ１２ａ、ｇｒｐ２１ｂ、ｇｒｐ１２ｂはいずれもすでにＳｕｂＧｒｐに登録されているので、プロセスグループ分割部１２４は、ｇｒｐ１２ａとｇｒｐ２１ｂとをＳｕｂＧｒｐ０、ｇｒｐ１２ｂをＳｕｂＧｒｐ１として生成する。
【００６６】
図７Ｄでは、プロセスグループ分割部１２４は、ＳｕｂＧｒｐ０とＳｕｂＧｒｐ１とをそれぞれ一つのプロセスとしてまとめ、新しいｇｒｐを生成する。ＳｕｂＧｒｐ０にはｇｒｐ１２ａとｇｒｐ２１ｂに含まれる４個のプロセスが存在するが、プロセスグループ分割部１２４は、これらを一つのプロセスｐ４としてまとめる。プロセスｐ４と他のプロセスとの通信は、ｇｒｐ１２ａ及びｇｒｐ２１ｂ内のプロセスが行なっている通信をあわせたものである。プロセスグループ分割部１２４は、ＳｕｂＧｒｐ１も同様に一つのプロセスｐ５にまとめている。プロセスグループ分割部１２４は、ｇｒｐ２２にプロセスｐ４とプロセスｐ５をあわせたものを新しいプロセスグループとして生成する。
【００６７】
図７Ｅは、図７Ｄで生成したプロセスグループを２分割する。プロセスグループ分割部１２４は、２分割したプロセスグループのうち、プロセスｐ４が含まれているプロセスグループをｇｒｐ２２ａ、プロセスｐ５が含まれているプロセスグループをｇｒｐ２２ｂとする。プロセスグループ分割部１２４は、生成したプロセスグループｇｒｐ２２ａ及びｇｒｐ２２ｂをＧｒｐに登録する。ここで、プロセスグループ分割部１２４は、ｇｒｐ２２ａからプロセスｐ４を削除するとともに、ｇｒｐ２２ｂからプロセスｐ５を削除してＧｒｐに登録する。
【００６８】
プロセスグループ配置部１２５は、プロセスグループ分割部１２４による分割により生成されたプロセスグループそれぞれをネットワーク領域分割部によって分割されて生成した隣接するネットワーク領域に配置する。
【００６９】
例えば、プロセスグループ配置部１２５は、図７Ｂに示すｇｒｐ１１ａを図６Ｂに示すＩＤが「１１ａ」で識別されるネットワーク領域に配置し、図７Ｂに示すｇｒｐ１１ｂを図６Ｂに示すＩＤが「１１ｂ」で識別されるネットワーク領域に配置する。同様に、プロセスグループ配置部１２５は、図７Ｂに示すｇｒｐ２１ａを図６Ｂに示すＩＤが「２１ａ」で識別されるネットワーク領域に配置し、図７Ｂに示すｇｒｐ２１ｂを図６Ｂに示すＩＤが「２１ｂ」で識別されるネットワーク領域に配置する。
【００７０】
プロセス配置部１２６は、プロセスグループ配置部１２５によってネットワーク領域に配置されたプロセスグループに属するプロセスそれぞれをネットワーク領域に属するノードに配置する。例えば、プロセス配置部１２６は、図７Ｂに示すｇｒｐ１１ａのプロセスの一方を図６Ｂに示すノード１０に配置し、図７Ｂに示すｇｒｐ１１ａのプロセスの他方をノード１４に配置する。同様に、プロセス配置部１２６は、図７Ｂに示すｇｒｐ２１ａのプロセスの一方を図６Ｂに示すノード１８に配置し、図７Ｂに示すｇｒｐ２１ａのプロセスの他方をノード２２に配置する。
【００７１】
評価値判定部１２７は、プロセス配置部１２６によってノードに配置されたプロセスの配置が最適化されているか否かを判定する。例えば、評価値判定部１２７は、以下の式（Ａ）を用いてプロセスの配置を評価する評価値Ｆを算出する。
【００７２】
【数１】
2012243224.tif 000003
【００７３】
式（Ａ）において、｛ｈｏｐ（ｎｏｄｅ（ｉ）、ｎｏｄｅ（ｊ））｝は、通信元プロセス（ｎｏｄｅ（ｉ）が実行するプロセス）と通信先プロセス（ｎｏｄｅ（ｊ）が実行するプロセス）との間の通信ホップ数を示し、ｓｉｚｅ（ｉ、ｊ）は、通信元プロセスと通信先プロセスとの間の通信量を示す。すなわち、評価値Ｆは、すべての通信元プロセスと通信先プロセスとの組み合わせに対して、通信ホップ数と通信量とを乗じた値の総計を示す。この式（Ａ）によれば、大量の通信を行うプロセス同士ほど通信ホップ数が少なくなるように配置した場合に、評価値Ｆの値が小さくなる。
【００７４】
そして、評価値判定部１２７は、算出した評価値が所定の閾値を下回ったか否かを判定することでプロセスの配置が最適化されているか否かを判定する。ここで、評価値判定部１２７は、算出した評価値が所定の閾値を下回ったと判定した場合、プロセスの配置が最適化されていると判定する。この場合、評価値判定部１２７は、プロセスの配置が最適化されていることを出力部１０２に出力するようにしてもよい。
【００７５】
一方、評価値判定部１２７は、評価値が所定の閾値を下回っていないと判定した場合、プロセスの配置が最適化されていないと判定する。そして、評価値判定部１２７は、評価値が所定の閾値を下回っていないことをプロセス配置部１２６に通知する。この結果、プロセス配置部１２６は、プロセスグループが割当られたネットワーク領域に属する各ノードに新たな組み合わせでプロセスを配置する。
【００７６】
［実施例１に係るプロセス配置装置による処理の処理手順］
次に図８から図１０を用いて、プロセス配置装置による処理の処理手順を説明する。ここでは、図８を用いてプロセス配置装置によるプロセス配置処理を説明し、図９を用いてプロセス配置装置によるネットワーク領域分割処理を説明し、図１０を用いて、プロセス配置装置によるプロセスグループ分割処理を説明する。
【００７７】
（プロセス配置処理）
図８は、プロセス配置装置によるプロセス配置処理の処理手順を示すフローチャートである。例えば、プロセス配置装置は、利用者からプロセスの配置を受付けたことを契機に処理を実行する。図８に示すように、プロセス配置装置１００は、分割軸を決定し（ステップＳ１０１）、分割ルールを決定する（ステップＳ１０２）。
【００７８】
プロセス配置装置１００は、ネットワーク領域分割処理を実行し（ステップＳ１０３）、プロセスグループ分割処理を実行する（ステップＳ１０４）。なお、ステップＳ１０３及びステップＳ１０４の処理の詳細は後述する。そして、プロセス配置装置１００は、分割結果を取得する（ステップＳ１０５）。
【００７９】
プロセス配置装置１００は、最大分割数に到達したか否かを判定する（ステップＳ１０６）。ここで、プロセス配置装置１００は、最大分割数に到達したと判定した場合（ステップＳ１０６、Ｙｅｓ）、プロセスの初期配置を決定する（ステップＳ１０７）。一方、プロセス配置装置１００は、最大分割数に到達していないと判定した場合（ステップＳ１０６、Ｎｏ）、ステップＳ１０１に移行する。
【００８０】
プロセス配置装置１００は、ステップＳ１０７の処理でプロセスの初期配置を決定した後、プロセス配置の評価値を算出し（ステップＳ１０８）、算出した評価値が所定の閾値を下回ったか否かを判定する（ステップＳ１０９）。そして、プロセス配置装置１００は、評価値が所定の閾値を下回っていないと判定した場合（ステップＳ１０９、Ｎｏ）、配置されたネットワーク領域内でプロセスを再配置し（ステップＳ１１０）、ステップＳ１０８に移行する。一方、プロセス配置装置１００は、評価値が所定の閾値を下回ったと判定した場合（ステップＳ１０９、Ｙｅｓ）、処理を終了する。
【００８１】
（ネットワーク領域分割処理）
図９は、プロセス配置装置によるネットワーク領域分割処理の処理手順を示すフローチャートである。なお、この処理は、図８に示すステップＳ１０３の処理に対応する。
【００８２】
プロセス配置装置１００は、ネットワーク領域の数を特定し（ステップＳ２０１）、特定したネットワーク領域の中のノードを選択する（ステップＳ２０２）。そして、プロセス配置装置１００は、選択したノードの座標を特定し（ステップＳ２０３）、ネットワーク領域内の分割軸方向のサイズを取得する（ステップＳ２０４）。
【００８３】
続いて、プロセス配置装置１００は、ノードの座標が分割軸の半分よりも小さいか否かを判定する（ステップＳ２０５）。ここで、プロセス配置装置１００は、ノードの座標が分割軸の半分よりも小さいと判定した場合（ステップＳ２０５、Ｙｅｓ）、選択したノードをａｒｅａ０に追加する（ステップＳ２０６）。一方、プロセス配置装置１００は、ノードの座標が分割軸の半分よりも小さくないと判定した場合（ステップＳ２０５、Ｎｏ）、選択したノードをａｒｅａ１に追加する（ステップＳ２０７）。
【００８４】
例えば、プロセス配置装置１００は、図６Ａに示すＩＤが「１１」で識別されるネットワークを分割する場合、ノード１０及びノード１４を第１のエリアであるａｒｅａ０に追加し、図６Ｂに示すＩＤが「１１ａ」で識別されるネットワーク領域を生成する。また、プロセス配置装置１００は、図６Ａに示すＩＤが「１１」で識別されるネットワークを分割する場合、ノード１１及びノード１５を第２のエリアであるａｒｅａ１に追加し、図６Ｂに示すＩＤが「１１ｂ」で識別されるネットワーク領域を生成する。
【００８５】
その後、プロセス配置装置１００は、すべてのノードについて分割を実行したか否かを判定する（ステップＳ２０８）。ここで、プロセス配置装置１００は、すべてのノードについて分割を実行していないと判定した場合（ステップＳ２０８、Ｎｏ）、ステップＳ２０２に移行する。一方、プロセス配置装置１００は、すべてのノードについて分割を実行したと判定した場合（ステップＳ２０８、Ｙｅｓ）、分割したネットワーク領域に新しく領域番号を割り振る（ステップＳ２０９）。
【００８６】
続いて、プロセス配置装置１００は、すべてのネットワーク領域について分割を実行したか否かを判定する（ステップＳ２１０）。ここで、プロセス配置装置１００は、すべてのネットワーク領域について分割を実行していないと判定した場合（ステップＳ２１０、Ｎｏ）、ステップＳ２０１に移行する。一方、プロセス配置装置１００は、すべてのネットワーク領域について分割を実行したと判定した場合（ステップＳ２１０、Ｙｅｓ）処理を終了する。
【００８７】
（プロセスグループ分割処理）
図１０は、プロセス配置装置によるプロセスグループ分割処理の処理手順を示すフローチャートである。なお、この処理は、図８に示すステップＳ１０４の処理に対応する。
【００８８】
プロセス配置装置１００は、プロセスグループに登録されているプロセスの数を特定し（ステップＳ３０１）、サブグループＳｕｂＧｒｐ０、ＳｕｂＧｒｐ１を生成する（ステップＳ３０２）。そして、プロセス配置装置１００は、分割対象であるプロセスグループにＳｕｂＧｒｐ０、ＳｕｂＧｒｐ１をセットする（ステップＳ３０３）。
【００８９】
続いて、プロセス配置装置１００は、分割対象であるプロセスグループを分割し、新しくプロセスグループを割り振り登録する（ステップＳ３０４）。そして、プロセス配置装置１００は、すべてのプロセスグループについて分割を実行したか否かを判定する（ステップＳ３０５）。
【００９０】
ここで、プロセス配置装置１００は、すべてのプロセスグループについて分割を実行したと判定した場合（ステップＳ３０５、Ｙｅｓ）、処理を終了する。一方、プロセス配置装置１００は、すべてのプロセスグループについて分割を実行していないと判定した場合（ステップＳ３０５、Ｎｏ）、ステップＳ３０１に移行する。
【００９１】
［実施例１の効果］
上述してきたように、実施例１では、プロセス配置装置１００は、分割したプロセスグループを分割したネットワーク領域にまとめて配置するとともに、プロセス配置の評価を行なう。このため、プロセス配置装置１００は、従来技術のように、後で配置されるプロセスに対するノードの選択の余地が小さくなることを防ぐことができる。この結果、プロセス配置装置１００は、通信処理時間が十分短いプロセス配置を求めることができる。
【００９２】
また、プロセス配置装置１００によって、Ｎ個のプロセスをｍ個ずつのプロセスグループに分割する組み合わせ総数は、Ｎ／ｍ（ｍ！）になる。これは従来の技術を用いて、Ｎ個のプロセスをｍ個ずつのプロセスグループに分割してノードに配置する組み合わせ総数、ＮＰｍ＋Ｎ−ｍＰｍ＋・・・＋ｍＰｍよりも小さな値となる。すなわち、プロセス配置装置１００は、最適なプロセス配置を従来の技術よりもより容易に見つけることができる。
【実施例２】
【００９３】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例２では、本発明に含まれる他の実施例について説明する。
【００９４】
（システム構成等）
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【００９５】
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、プロセス配置装置１００では、分割軸決定部１２１と分割ルール設定部１２２とが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９６】
（プログラム）
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【００９７】
図１１は、プロセス配置プログラムを実行するコンピュータを示す図である。図１１に示すように、コンピュータ３００は、利用者からデータや各種設定などを受け付ける入力装置３１０と、コンピュータの状況などを通知する出力装置３２０とを有する。また、コンピュータ３００は、他の装置とデータを送受信するネットワークインターフェース３３０と媒体読取装置３４０とＨＤＤ（Hard  Disk  Drive）３５０とＲＡＭ(Random  Access  Memory)３６０とＣＰＵ３７０とバス３８０とを有する。そして、各装置３１０〜３７０それぞれは、バス３８０に接続される。
【００９８】
ここで、図１１に示すように、ＨＤＤ３５０には、図３に示した、ネットワーク領域分割部１２３とプロセスグループ分割部１２４とプロセスグループ配置部１２５と同様の機能を発揮するプロセス配置プログラム３５１が予め記憶されている。また、媒体読取装置３４０は、プロセス配置プログラム３５１を実現するための各種データを記憶する。そして、ＣＰＵ３７０は、プロセス配置プログラム３５１をＨＤＤ３５０から読み出して、プロセス配置プロセス３７１として実行する。すなわち、プロセス配置プロセス３７１は、図３に示した、ネットワーク領域分割部１２３とプロセスグループ分割部１２４とプロセスグループ配置部１２５と同様の動作を実行する。
【００９９】
ところで、上記したプロセス配置プログラム３５１は、必ずしもＨＤＤ３５０に記憶させておく必要はない。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータ３００の外に備えられるＨＤＤなどの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ３００に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１００】
すなわち、このプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記憶されるものである。そして、コンピュータ３００は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータ３００によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１０１】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０２】
（付記１）互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置装置において、
前記複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割するネットワーク分割部と、
前記ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割するプロセスグループ分割部と、
前記分割プロセスグループを前記複数の分割ネットワークのいずれかにに配置するプロセスグループ配置部と、
を有することを特徴とするプロセス配置装置。
【０１０３】
（付記２）前記プロセスグループ配置部は、
前記分割プロセスグループを、互いに隣接する分割ネットワーク領域にそれぞれ配置することを特徴とする付記１に記載のプロセス配置装置。
【０１０４】
（付記３）前記プロセスグループ分割部は、分割プロセスグループが配置される分割ネットワーク領域が、これから分割を行なうプロセスグループが配置される分割ネットワーク領域と隣接する場合に、前記分割プロセスグループを、前記これから分割を行なうプロセスグループに含めてから、前記ネットワーク領域の分割結果に基づいて、前記プロセスグループを分割することを特徴とする付記１又は２に記載のプロセス配置装置。
【０１０５】
（付記４）ネットワーク領域をどの軸で分割するかを決定する分割軸決定部を更に有し、
前記ネットワーク領域分割部は、前記分割軸決定部によって決定された軸に基づいて、ネットワーク領域を分割することを特徴とする付記１〜３のいずれか１つに記載のプロセス配置装置。
【０１０６】
（付記５）前記分割軸決定部によって決定された軸で前記ネットワーク領域を分割した場合に生成する各ネットワーク領域の識別子と、前記分割後に生成する各ネットワーク領域と隣接するネットワーク領域の識別子とを設定する設定部を更に有することを特徴とする付記４に記載のプロセス配置装置。
【０１０７】
（付記６）前記プロセス配置装置はさらに、
前記プロセスグループ配置部が分割ネットワーク領域に配置したプロセスグループに属するプロセスそれぞれを、前記分割ネットワーク領域に含まれるノードのいずれかに配置するプロセス配置部を有することを特徴とする付記１〜５のいずれか１つに記載のプロセス配置装置。
【０１０８】
（付記７）前記プロセス配置装置はさらに、
前記プロセス配置部が配置したプロセスの配置を、プロセスが配置されたノード間の距離と通信量に基づいて評価する評価値を算出し、前記評価値が所定の閾値を超えたか否かを判定する評価値判定部を有し、
前記プロセス配置部は、
前記評価値判定部が算出した評価値が所定の閾値を超えた場合、前記分割された分割プロセスグループを、前記複数の分割ネットワークに、新たな分割プロセスグループと分割ネットワークの組合せにより再配置することを特徴とする付記１〜６のいずれか１つに記載のプロセス配置装置。
【０１０９】
（付記８）互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置方法において、
コンピュータが、
前記複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割し、
前記ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割し、
前記分割された分割プロセスグループを前記分割された複数の分割ネットワークに配置する
ことを特徴とするプロセス配置方法。
【０１１０】
（付記９）前記分割プロセスグループを配置する処理は、
前記分割プロセスグループを、互いに隣接する分割ネットワーク領域にそれぞれ配置することを特徴とする付記８に記載のプロセス配置方法。
【０１１１】
（付記１０）前記プロセスグループを分割する処理は、分割プロセスグループが配置される分割ネットワーク領域が、これから分割を行なうプロセスグループが配置される分割ネットワーク領域と隣接する場合に、前記分割プロセスグループを、前記これから分割を行なうプロセスグループに含めてから、前記ネットワーク領域の分割結果に基づいて、前記プロセスグループを分割することを特徴とする付記８又は９に記載のプロセス配置方法。
【０１１２】
（付記１１）コンピュータが、
ネットワーク領域をどの軸で分割するかを決定する処理を更に実行し、
前記ネットワーク領域を分割する処理は、前記分割する軸を決定する処理によって決定された軸に基づいて、ネットワーク領域を分割することを特徴とする付記８〜１０のいずれか１つに記載のプロセス配置方法。
【０１１３】
（付記１２）コンピュータが、前記分割する軸を決定する処理によって決定された軸で前記ネットワーク領域を分割した場合に生成する各ネットワーク領域の識別子と、前記分割後に生成する各ネットワーク領域と隣接するネットワーク領域の識別子とを設定する処理を更に実行することを特徴とする付記１１に記載のプロセス配置方法。
【０１１４】
（付記１３）コンピュータが、前記分割プロセスグループを配置する処理によって分割ネットワーク領域に配置したプロセスグループに属するプロセスそれぞれを、前記分割ネットワーク領域に含まれるノードのいずれかに配置する処理を更に実行することを特徴とする付記８〜１２のいずれか１つに記載のプロセス配置方法。
【０１１５】
（付記１４）コンピュータが、
前記プロセスを配置する処理によって配置されたプロセスの配置を、プロセスが配置されたノード間の距離と通信量に基づいて評価する評価値を算出し、前記評価値が所定の閾値を超えたか否かを判定する処理を更に実行し、
前記プロセスを配置する処理は、前記評価値を判定する処理によって算出した評価値が所定の閾値を超えた場合、前記分割された分割プロセスグループを、前記複数の分割ネットワークに、新たな分割プロセスグループと分割ネットワークの組合せにより再配置することを特徴とする付記８〜１３のいずれか１つに記載のプロセス配置方法。
【０１１６】
（付記１５）互いにネットワークを介して接続された複数のノードにプロセスを配置するプロセス配置プログラムにおいて、
コンピュータに、
前記複数のノードを含むネットワーク領域を複数の分割ネットワーク領域に分割させ、
前記ネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを複数の分割プロセスグループに分割させ、
前記分割された分割プロセスグループを前記分割された複数の分割ネットワークに配置させる
ことを特徴とするプロセス配置プログラム。
【０１１７】
（付記１６）前記分割プロセスグループを配置する処理は、
前記分割プロセスグループを、互いに隣接する分割ネットワーク領域にそれぞれ配置することを特徴とする付記１５に記載のプロセス配置プログラム。
【０１１８】
（付記１７）前記プロセスグループを分割する処理は、分割プロセスグループが配置される分割ネットワーク領域が、これから分割を行なうプロセスグループが配置される分割ネットワーク領域と隣接する場合に、前記分割プロセスグループを、前記これから分割を行なうプロセスグループに含めてから、前記ネットワーク領域の分割結果に基づいて、前記プロセスグループを分割することを特徴とする付記１５又は１６に記載のプロセス配置プログラム。
【０１１９】
（付記１８）コンピュータに、
ネットワーク領域をどの軸で分割するかを決定する処理を更に実行させ、
前記ネットワーク領域を分割する処理は、前記分割する軸を決定する処理によって決定された軸に基づいて、ネットワーク領域を分割することを特徴とする付記１５〜１７のいずれか１つに記載のプロセス配置プログラム。
【０１２０】
（付記１９）コンピュータに、前記分割する軸を決定する処理によって決定された軸で前記ネットワーク領域を分割した場合に生成する各ネットワーク領域の識別子と、前記分割後に生成する各ネットワーク領域と隣接するネットワーク領域の識別子とを設定する処理を更に実行させることを特徴とする付記１８に記載のプロセス配置プログラム。
【０１２１】
（付記２０）コンピュータに、前記分割プロセスグループを配置する処理によって分割ネットワーク領域に配置したプロセスグループに属するプロセスそれぞれを、前記分割ネットワーク領域に含まれるノードのいずれかに配置する処理を更に実行させることを特徴とする付記１５〜１９のいずれか１つに記載のプロセス配置プログラム。
【０１２２】
（付記２１）コンピュータに、
前記プロセスを配置する処理によって配置されたプロセスの配置を、プロセスが配置されたノード間の距離と通信量に基づいて評価する評価値を算出し、前記評価値が所定の閾値を超えたか否かを判定する処理を更に実行させ、
前記プロセスを配置する処理は、前記評価値を判定する処理によって算出した評価値が所定の閾値を超えた場合、前記分割された分割プロセスグループを、前記複数の分割ネットワークに、新たな分割プロセスグループと分割ネットワークの組合せにより再配置することを特徴とする付記１５〜２０のいずれか１つに記載のプロセス配置プログラム。
【符号の説明】
【０１２３】
１  コンピュータシステム
１０〜２５  ノード
１００  プロセス配置装置
１０１  入力部
１０２  出力部
１０３  通信制御Ｉ／Ｆ部
１１０  記憶部
１１１  ノード配置テーブル
１１２  分割ルールテーブル
１２０  制御部
１２１  分割軸決定部
１２２  分割ルール設定部
１２３  ネットワーク領域分割部
１２４  プロセスグループ分割部
１２５  プロセスグループ配置部
１２６  プロセス配置部
１２７  評価値判定部
３００  コンピュータ
３１０  入力装置
３２０  出力装置
３３０  ネットワークインターフェース
３４０  媒体読取装置
３５０  ＨＤＤ
３５１  プロセス配置プログラム
３６０  ＲＡＭ
３７０  ＣＰＵ
３７１  プロセス配置プロセス
３８０  バス
【図１】
2012243224.tif 000004
【図２Ａ】
2012243224.tif 000005
【図２Ｂ】
2012243224.tif 000006
【図２Ｃ】
2012243224.tif 000007
【図２Ｄ】
2012243224.tif 000008
【図２Ｅ】
2012243224.tif 000009
【図２Ｆ】
2012243224.tif 000010
【図２Ｇ】
2012243224.tif 000011
【図２Ｈ】
2012243224.tif 000012
【図３】
2012243224.tif 000013
【図４】
2012243224.tif 000014
【図５】
2012243224.tif 000015
【図６Ａ】
2012243224.tif 000016
【図６Ｂ】
2012243224.tif 000017
【図７Ａ】
2012243224.tif 000018
【図７Ｂ】
2012243224.tif 000019
【図７Ｃ】
2012243224.tif 000020
【図７Ｄ】
2012243224.tif 000021
【図７Ｅ】
2012243224.tif 000022
【図８】
2012243224.tif 000023
【図９】
2012243224.tif 000024
【図１０】
2012243224.tif 000025
【図１１】
2012243224.tif 000026
【図１２Ａ】
2012243224.tif 000027
【図１２Ｂ】
2012243224.tif 000028
【図１２Ｃ】
2012243224.tif 000029
【図１２Ｄ】
2012243224.tif 000030
【図１２Ｅ】
2012243224.tif 000031
【図１２Ｆ】
2012243224.tif 000032
【図１３Ａ】
2012243224.tif 000033
【図１３Ｂ】
2012243224.tif 000034