(57)【要約】【課題】複数の計算機クラスタがネットワーク接続された計算機システムにおいて、計算機システム内に余剰リソースが存在する限り、全てのプロセス処理を継続させられるようにすることを目的とする。【解決手段】計算機クラスタ２ａの移行プロセス決定部１１１Ｂは、クラスタ内でパイプライン処理が制限時間内に完了しなかった場合、パイプライン処理を実行する計算機群をクラスタ内で変更する。計算機クラスタ２ａにパイプライン処理を制限時間内に実行できる計算機群が無い場合、計算機クラスタ２ｂおよび計算機クラスタ２ｃの移行プロセス決定部１１１Ｂは、そのパイプライン処理を制限時間内に実行できる計算機群がクラスタ内に有るか判定する。当該計算機群がクラスタ内に有る場合、当該計算機群を有するクラスタの移行プロセス決定部１１１Ｂは当該パイプライン処理を当該計算機群に移行させる。【選択図】図６
2010282533.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機で構成されるクラスタを複数有し、一つのクラスタ内の一部の計算機群により特定処理を実行する計算機システムであって、
前記特定処理が制限時間内に完了しなかった場合、前記特定処理を実行した計算機群を実行計算機群として含む実行クラスタが、前記特定処理を制限時間内に完了する実行可能計算機群を含むかＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて判定する実行クラスタ判定部と、
前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含むと判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群から前記実行クラスタの前記実行可能計算機群に変更するクラスタ内計算機群変更部と、
前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含まないと判定された場合、前記実行可能計算機群を含む実行可能クラスタが有るかＣＰＵを用いて判定する実行可能クラスタ判定部と、
前記実行可能クラスタ判定部により実行可能クラスタが有ると判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群から前記実行可能クラスタの前記実行可能計算機群に変更するクラスタ間計算機群変更部と
をそれぞれ所定の計算機に備えたことを特徴とする計算機システム。
【請求項２】
前記計算機システムは、さらに、
複数の所定時間それぞれの時間内におけるＣＰＵ空き時間をクラスタ毎に管理するクラスタ空き時間管理部を所定の計算機に備え、
前記実行可能クラスタ判定部は、前記クラスタ空き時間管理部により管理される各クラスタのＣＰＵ空き時間に基づいて、前記特定処理に要するＣＰＵ使用時間以上のＣＰＵ空き時間を前記特定処理の処理周期内に有するクラスタから先に前記実行可能クラスタであるか判定する
ことを特徴とする請求項１記載の計算機システム。
【請求項３】
各クラスタは、複数の単位処理から成る特定処理の所定の単位処理を実行する特定計算機と前記特定計算機以外の通常計算機とを有し、
前記クラスタ空き時間管理部は、各クラスタのＣＰＵ空き時間を特定計算機のＣＰＵ空き時間と通常計算機のＣＰＵ空き時間とに分けて管理し、
前記実行可能クラスタ判定部は、前記特定処理の処理周期における特定計算機のＣＰＵ空き時間が、前記所定の単位処理に要するＣＰＵ使用時間以上であるクラスタから先に前記実行可能クラスタであるか判定する
ことを特徴とする請求項２記載の計算機システム。
【請求項４】
前記実行クラスタは、複数の特定処理を実行し、
前記計算機システムは、さらに、
前記実行可能クラスタ判定部により実行可能クラスタが無いと判定された場合、前記実行クラスタにより実行される複数の特定処理のうち制限時間内に完了しなかった時間超過特定処理以外の特定処理であって前記実行クラスタにより実行されなければ前記時間超過特定処理が制限時間内に完了する非実行特定処理が有るかＣＰＵを用いて判定する非実行特定処理判定部を所定の計算機に備え、
前記実行可能クラスタ判定部は、前記非実行特定処理判定部により前記非実行特定処理が有ると判定された場合、前記非実行特定処理を制限時間内に完了する非実行特定処理クラスタが有るか判定し、
前記クラスタ間計算機群変更部は、前記実行可能クラスタ判定部により非実行特定処理クラスタが有ると判定された場合、前記非実行特定処理を実行させるクラスタを前記実行クラスタから前記非実行特定処理クラスタに変更する
ことを特徴とする請求項１〜請求項３いずれかに記載の計算機システム。
【請求項５】
前記計算機システムは、さらに、
前記実行可能クラスタ判定部により実行可能クラスタが無いと判定された場合、複数の単位処理から成る前記特定処理の単位処理であって前記実行クラスタにより実行されなければ前記特定処理が制限時間内に完了する非実行単位処理が有るかＣＰＵを用いて判定する非実行単位処理判定部を所定の計算機に備え、
前記実行可能クラスタ判定部は、前記非実行単位処理判定部により前記非実行単位処理が有ると判定された場合、前記非実行単位処理を制限時間内に完了する非実行単位処理クラスタが有るか判定し、
前記クラスタ間計算機群変更部は、前記実行可能クラスタ判定部により非実行単位処理クラスタが有ると判定された場合、前記非実行単位処理を実行させるクラスタを前記実行クラスタから前記非実行単位処理クラスタに変更する
ことを特徴とする請求項１〜請求項４いずれかに記載の計算機システム。
【請求項６】
複数の計算機で構成されるクラスタを複数有し、一つのクラスタ内の一部の計算機群により特定処理を実行する計算機システムであって、実行クラスタ判定部とクラスタ内計算機群変更部と実行可能クラスタ判定部とクラスタ間計算機群変更部とをそれぞれ所定の計算機に備える計算機システムにおいて、
前記実行クラスタ判定部が、前記特定処理が制限時間内に完了しなかった場合、前記特定処理を実行した計算機群を実行計算機群として含む実行クラスタが、前記特定処理を制限時間内に完了する実行可能計算機群を含むかＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて判定し、
前記クラスタ内計算機群変更部が、前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含むと判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群から前記実行クラスタの前記実行可能計算機群に変更し、
前記実行可能クラスタ判定部が、前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含まないと判定された場合、前記実行可能計算機群を含む実行可能クラスタが有るかＣＰＵを用いて判定し、
前記クラスタ間計算機群変更部が、前記実行可能クラスタ判定部により実行可能クラスタが有ると判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群から前記実行可能クラスタの前記実行可能計算機群に変更する
ことを特徴とする計算機リソース制御方法。
【請求項７】
請求項６記載の計算機リソース制御方法をコンピュータに実行させる計算機リソース制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、各計算機クラスタで所定のパイプライン処理を実行する計算機システム、計算機リソース制御方法および計算機リソース制御プログラムに関するものである。
【背景技術】
【０００２】
従来の計算機リソース制御方法は、複数台の計算機を接続して複数のプロセスを連携処理する計算機システムにおいて、各プロセスに必要なリソース量と各計算機の余剰リソース量とを考慮し、各プロセスを処理させる計算機を決定する（特許文献１）。例えば、プロセスの処理量の増加や計算機の故障などによりプロセスに必要なリソース量を所定の計算機に確保できなくなった場合、プロセスに必要なリソース量を保持する他の計算機にそのプロセスを移行させる。これにより、プロセスのデッドラインミスの発生を防ぐ。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１２３２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の計算機リソース制御方法では、複数の計算機クラスタがネットワーク接続された計算機システムのリソースを有効的に制御することができない。例えば、計算機故障によりある計算機クラスタ内のリソースが不足した場合、全てのプロセス処理を継続させることができない。
【０００５】
本発明は、例えば、複数の計算機クラスタがネットワーク接続された計算機システムにおいて、計算機システム内に余剰リソースが存在する限り、全てのプロセス処理を継続させられるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の計算機システムは、
複数の計算機で構成されるクラスタを複数有し、一つのクラスタ内の一部の計算機群により特定処理を実行する計算機システムであって、
前記特定処理が制限時間内に完了しなかった場合、前記特定処理を実行した計算機群を実行計算機群として含む実行クラスタが、前記特定処理を制限時間内に完了する実行可能計算機群を含むかＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて判定する実行クラスタ判定部と、
前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含むと判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群から前記実行クラスタの前記実行可能計算機群に変更するクラスタ内計算機群変更部と、
前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含まないと判定された場合、前記実行可能計算機群を含む実行可能クラスタが有るかＣＰＵを用いて判定する実行可能クラスタ判定部と、
前記実行可能クラスタ判定部により実行可能クラスタが有ると判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群から前記実行可能クラスタの前記実行可能計算機群に変更するクラスタ間計算機群変更部と
をそれぞれ所定の計算機に備える。 
【発明の効果】
【０００７】
本発明によれば、例えば、複数の計算機クラスタがネットワーク接続された計算機システムにおいて、計算機システム内に余剰リソースが存在する限り、全てのプロセス処理（特定処理）を継続させることができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における計算機システム１の構成図。
【図２】実施の形態１におけるパイプライン処理を示す図。
【図３】実施の形態１におけるパイプライン処理を示す図。
【図４】実施の形態１における計算機リソース制御システム１００の機能構成図。
【図５】実施の形態１におけるプロセス構成定義部１１２Ａに記憶されるプロセス定義テーブル１９１およびパイプライン処理定義テーブル１９２を示す図。
【図６】実施の形態１における計算機リソース制御システム１００の機能配置の一例を示す図。
【図７】実施の形態１における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）の概要図。
【図８】実施の形態１における計算機Ａの空きＣＰＵ時間ＥＡを示す図。
【図９】実施の形態１における計算機リソース制御システム１００の計算機負荷収集処理（処理時間・ＣＰＵ時間）の概要図。
【図１０】実施の形態１におけるパイプライン処理の制限時間の超過を示す図。
【図１１】実施の形態１における計算機リソース制御システム１００の計算機リソース制御方法を示すフローチャート。
【図１２】実施の形態１におけるプロセス再配置処理（Ｓ１００）の概要図。
【図１３】実施の形態１におけるプロセス再配置処理（Ｓ１００）の概要図。
【図１４】実施の形態１におけるプロセス再配置処理（Ｓ１００）の概要図。
【図１５】実施の形態１における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）のフローチャート。
【図１６】実施の形態１におけるクラスタ間プロセス移行処理（Ｓ１２０）のフローチャート。
【図１７】実施の形態１におけるクラスタ間プロセス起動・停止処理（Ｓ１３０）のフローチャート。
【図１８】実施の形態１における計算機リソース制御システム１００の計算機のハードウェア資源の一例を示す図。
【図１９】実施の形態２における計算機負荷テーブル１９３を示す図。
【図２０】実施の形態２におけるクラスタ負荷テーブル１９４を示す図。
【図２１】実施の形態２における計算機負荷テーブル１９３とクラスタ負荷テーブル１９４との関係図。
【図２２】実施の形態２における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）の概要図。
【図２３】実施の形態２における計算機リソース制御システム１００の計算機リソース制御方法を示すフローチャート。
【図２４】実施の形態２におけるクラスタ間プロセス移行処理（Ｓ１２０）のフローチャート。
【図２５】実施の形態３における計算機負荷テーブル演算計算機負荷テーブル１９３Ａおよび計算機負荷テーブル中継計算機負荷テーブル１９３Ｂを示す図。
【図２６】実施の形態３におけるクラスタ負荷テーブルクラスタ上演算計算機負荷テーブル１９４Ａおよびクラスタ負荷テーブルクラスタ上中継計算機負荷テーブル１９４Ｂを示す図。
【図２７】実施の形態３における各計算機負荷テーブルと各クラスタ負荷テーブルとの関係図。
【図２８】実施の形態３における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）の概要図。
【図２９】実施の形態３における計算機リソース制御システム１００の計算機リソース制御方法を示すフローチャート。
【図３０】実施の形態３におけるクラスタ間プロセス移行処理（Ｓ１２０）のフローチャート。
【図３１】実施の形態４における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）のフローチャート。
【図３２】実施の形態４における他プロセス移行処理（Ｓ２００）のフローチャート。
【図３３】実施の形態４における移行パイプライン調査処理（Ｓ３００）のフローチャート。
【図３４】実施の形態５における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）のフローチャート。
【図３５】実施の形態５におけるパイプライン分割移行処理（Ｓ４００）のフローチャート。
【図３６】実施の形態５におけるパイプライン分割処理（Ｓ４１０）のフローチャート。
【図３７】実施の形態５におけるパイプライン分割処理（Ｓ４１０）の概要図。
【発明を実施するための形態】
【０００９】
実施の形態１．
複数の計算機で構成されるクラスタを複数有し、クラスタ内の計算機群で所定のパイプライン処理を実行する計算機システムの計算機リソース制御方法について説明する。
【００１０】
図１は、実施の形態１における計算機システム１の構成図である。
実施の形態１における計算機システム１の構成について、図１に基づいて以下に説明する。
【００１１】
計算機システム１は複数の計算機クラスタ（２ａ、２ｂ）を有し、各計算機クラスタは複数台の計算機を有する。
【００１２】
各計算機クラスタが有する複数台の計算機には、他の計算機クラスタと通信できる中継計算機（５ａ、５ｂ）と他の計算機クラスタと通信できない演算計算機（６ａ−１〜４、６ｂ−１〜４）とが含まれる。中継計算機と演算計算機とは、一つの計算機クラスタ内に１台だけ有っても複数台有っても構わない。
【００１３】
各計算機クラスタの中継計算機はネットワーク３に接続し、ネットワーク３を介して他の計算機クラスタの中継計算機と通信を行う。
各中継計算機および演算計算機は、計算機クラスタ内のネットワーク（４ａ、４ｂ）に接続し、計算機クラスタ内で互いに通信を行う。
【００１４】
例えば、中継計算機５ａは計算機クラスタ２ａ内の各演算計算機（６ａ−１〜４）および計算機クラスタ２ｂの中継計算機５ｂと通信し、演算計算機６ａ−１は計算機クラスタ２ａ内の各計算機（５ａ、６ａ−２〜４）と通信する。
【００１５】
特定の計算機（中継計算機）だけに他の計算機クラスタと通信する機能を与えることにより、計算機クラスタ内でだけ使用したい秘密情報が漏えいすることを防ぐことができる。
【００１６】
図２および図３は、実施の形態１におけるパイプライン処理を示す図である。
各計算機クラスタにより実行されるパイプライン処理について、図２および図３に基づいて以下に説明する。
【００１７】
図２に示すように、パイプライン処理（８ａ、８ｂ）は、複数のプロセス（７ａ−１〜４、７ｂ−１〜４）から成り、複数のプロセスの実行順序が決まっている。一つのパイプライン処理を構成する複数のプロセスは、一つの計算機クラスタ内で実行される。
プロセスとは、パイプライン処理を構成する一部の処理または当該処理を実行する実行部である。
各プロセスは、処理したデータを次のプロセスに渡すことにより、連携して動作する。
【００１８】
例えば、パイプライン処理８ａは４つのプロセス（７ａ−１〜４）で構成され、プロセス７ａ−１、プロセス７ａ−２、プロセス７ａ−３、プロセス７ａ−４の順で実行される。
【００１９】
パイプライン処理の始めのプロセスおよび終わりのプロセスは、計算機クラスタ間でデータを受け渡す場合があるため、中継計算機により実行される。
例えば、計算機クラスタ２ａの中継計算機５ａ−２はパイプライン処理８ａの末尾（終わり、最終）のプロセス７ａ−４を実行し、プロセス７ａ−４で処理したデータを計算機クラスタ２ｂの中継計算機５ｂ−１に送信する。中継計算機５ｂ−１はデータを受信し、パイプライン処理８ｂの先頭（始め、最初）のプロセス７ｂ−１を実行して受信データを処理する。
【００２０】
始めのプロセスおよび終わりのプロセス以外の中間のプロセスは、演算計算機または中継計算機により実行される。
【００２１】
演算計算機および中継計算機は、一つのパイプライン処理内の２つ以上のプロセスを実行しても構わない。つまり、Ｘ個のプロセスで構成されるパイプライン処理をＸ台より少ない計算機で実行しても構わない。
【００２２】
図３（１）は、分岐しないパイプライン処理を示している。
パイプライン処理は、図３（２）に示すように、あるプロセスから複数のプロセスに枝分かれする場合がある。この場合、分岐先のプロセス群を一つのパイプライン処理として扱う。
例えば、プロセス７ｃ−１〜プロセス７ｃ−４およびプロセス７ｃ−４に続くプロセスがパイプライン処理８ｃを構成し、プロセス７ｃ−２から枝分かれしたプロセス７ｄ−１、プロセス７ｄ−２およびプロセス７ｄ−２に続くプロセスがパイプライン処理８ｄを構成する。
【００２３】
各計算機クラスタは、計算機クラスタ毎に決められた１つまたは複数のパイプライン処理を実行する。
各計算機（中継計算機、演算計算機）には、実行するプロセスが割り当てられる。
各プロセス（またはパイプライン処理）には優先度が決められ、各計算機は割り当てられた複数のプロセスを優先度順に実行する。
【００２４】
以下、各パイプライン処理の優先度は処理対象のデータが発生する周期（以下、「処理周期」という）の短い順に高いものとする。つまり、最も処理周期が短いパイプライン処理のプロセスが最も優先度の高いプロセスであり、最も処理周期が長いパイプライン処理のプロセスが最も優先度の低いプロセスである。
【００２５】
通常、各パイプライン処理および各プロセスに要する処理時間はほぼ一定である。しかし、データ量の増減などによって計算機の負荷が増減した場合、各パイプライン処理および各プロセスに要する処理時間は変動する。
【００２６】
図４は、実施の形態１における計算機リソース制御システム１００の機能構成図である。
実施の形態１における計算機リソース制御システム１００の機能構成について、図４に基づいて以下に説明する。
【００２７】
計算機リソース制御システム１００は、各計算機（演算計算機、中継計算機）に計算機負荷監視部１０１と資源割当部１０２とを備える。
【００２８】
計算機負荷監視部１０１は、計算機内で動作する各プロセスから処理開始および処理終了の通知を受け、各プロセスの処理開始時刻、処理終了時刻およびＣＰＵ時間とを特定し、計算機の空きＣＰＵ時間を算出する。
ＣＰＵ時間とは、処理時間（処理開始時刻から処理終了時刻までの時間）のうちＣＰＵを使用した時間である。
空きＣＰＵ時間とは、単位時間のうちＣＰＵが使用されなかった時間である。
【００２９】
資源割当部１０２は、プロセスの起動および停止を行う。
【００３０】
計算機リソース制御システム１００は、クラスタ（計算機クラスタ、以下同様）毎に、クラスタ内のいずれか一台の計算機に処理時間収集部１１１Ａとプロセス構成定義部１１２Ａとを備える。各図において、処理時間収集部１１１Ａとプロセス構成定義部１１２Ａとの左下に斜線マークを記す。
【００３１】
処理時間収集部１１１Ａは、クラスタ内の各計算機の計算機負荷監視部１０１により特定される各プロセスの処理開始時刻および処理終了時刻に基づいて、クラスタ内で実行される各パイプライン処理の処理時間を算出する。そして、処理時間収集部１１１Ａは、各パイプライン処理の処理時間が制限時間を超過していないか判定する。
【００３２】
プロセス構成定義部１１２Ａは、クラスタ内で実行される各パイプライン処理の情報を記憶して管理する。
【００３３】
図５は、実施の形態１におけるプロセス構成定義部１１２Ａに記憶されるプロセス定義テーブル１９１およびパイプライン処理定義テーブル１９２を示す図である。
実施の形態１におけるプロセス構成定義部１１２Ａに記憶されるプロセス定義テーブル１９１およびパイプライン処理定義テーブル１９２について、図５に基づいて以下に説明する。
【００３４】
パイプライン処理定義テーブル１９２には、クラスタ内で実行される各パイプライン処理の「パイプライン処理名」「プロセス数」「制限時間」および「処理周期」が予め設定される。
「パイプライン処理名」は、各パイプライン処理の識別名を示す。図５の説明において、「パイプライン処理名」で識別されるパイプライン処理を「当該パイプライン処理」という。
「プロセス数」は、当該パイプライン処理を構成するプロセスの数を示す。
「制限時間」は、当該パイプライン処理に要する処理時間の上限を示す。処理周期と同じであってもよい。
「処理周期」は、当該パイプライン処理が実行される時間間隔、すなわち、当該パイプライン処理の対象データが発生する時間間隔を示す。
【００３５】
プロセス定義テーブル１９１には、各パイプライン処理を構成する各プロセスの「プロセス名」「パイプライン処理名」「処理順序」および「定常時処理時間」が予め設定されている。
「プロセス名」は、各プロセスの識別名を示す。図５の説明において、「プロセス名」で識別されるプロセスを「当該プロセス」という。
「パイプライン処理名」は、当該プロセスが属するパイプライン処理の識別名を示す。
「処理順序」は、パイプライン処理内での当該プロセスの実行順序を示す。
「定常時処理時間」は、当該プロセスに要する通常の処理時間の設計値または実測値を示す。
【００３６】
図４に戻り、計算機リソース制御システム１００の機能構成の説明を続ける。
【００３７】
計算機リソース制御システム１００は、クラスタ毎に、クラスタ内のいずれか一台の中継計算機に移行プロセス決定部１１１Ｂとクラスタ負荷収集部１１２Ｂとを備える。各図において、移行プロセス決定部１１１Ｂ（実行クラスタ判定部、クラスタ内計算機群変更部、非実行特定処理判定部、非実行単位処理判定部の一例）とクラスタ負荷収集部１１２Ｂとの右下に斜線マークを記す。
【００３８】
移行プロセス決定部１１１Ｂは、パイプライン処理（特定処理の一例）が制限時間内に完了しなかった場合、当該パイプライン処理を制限時間内に完了できる実行可能計算機群がクラスタ内に有るかＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて判定する。
移行プロセス決定部１１１Ｂは、実行可能計算機群がクラスタ内に有ると判定した場合、当該パイプライン処理を実行させる計算機群をその実行可能計算機群に変更する。
【００３９】
クラスタ負荷収集部１１２Ｂは、クラスタ内の各計算機の計算機負荷監視部１０１により算出される各計算機の空きＣＰＵ時間に基づいて、クラスタの空きＣＰＵ時間を算出する。
【００４０】
計算機リソース制御システム１００は、システム内のいずれか一台の中継計算機に移行クラスタ決定部１２１（実行可能クラスタ判定部、クラスタ間計算機群変更部の一例）とシステム構成管理部１２２（クラスタ空き時間管理部の一例）とを備える。各図において、移行クラスタ決定部１２１とシステム構成管理部１２２との右下に墨付きマークを記す。
【００４１】
移行クラスタ決定部１２１は、移行プロセス決定部１１１Ｂにより実行可能計算機群が当該クラスタ内に無いと判定された場合、システム内に実行可能計算機群を持つ実行可能クラスタが有るかＣＰＵを用いて判定する。
移行クラスタ決定部１２１は、実行可能クラスタが有ると判定した場合、制限時間を超過した当該パイプライン処理を実行させる計算機群を実行可能クラスタの実行可能計算機群に変更する。
【００４２】
システム構成管理部１２２は、各クラスタのクラスタ負荷収集部１１２Ｂにより算出された各クラスタの空きＣＰＵ時間を記憶して管理する。
【００４３】
図６は、実施の形態１における計算機リソース制御システム１００の機能配置の一例を示す図である。
図６に示すように、計算機負荷監視部１０１と資源割当部１０２とは全ての計算機に備わる。処理時間収集部１１１Ａとプロセス構成定義部１１２Ａとはクラスタ毎（２ａ、２ｂ、２ｃ）に一台の計算機（６ａ−３、６ｂ−２、６ｃ−２）に備わる。移行プロセス決定部１１１Ｂとクラスタ負荷収集部１１２Ｂとはクラスタ毎に一台の中継計算機（５ａ、５ｂ、５ｃ）に備わる。移行クラスタ決定部１２１はシステム内の一台の中継計算機（５ｂ）に備わる。システム構成管理部１２２はシステム内の一台の中継計算機（５ｃ）に備わる。
【００４４】
次に、計算機リソース制御システム１００の処理として、定期的に実行される「計算機負荷収集処理」と、パイプライン処理の時間超過が発生したときに実行される「プロセス再配置処理」とについて説明する。
【００４５】
まず、各計算機の空きＣＰＵ時間、各パイプライン処理に要した処理時間、各プロセスに要したＣＰＵ時間などの負荷情報を収集する計算機負荷収集処理について説明する。
【００４６】
図７は、実施の形態１における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）の概要図である。
各計算機の空きＣＰＵ時間を管理する計算機負荷収集処理について、図７に基づいて以下に説明する。
【００４７】
（１）各計算機の計算機負荷監視部１０１は、単位時間における自計算機の空きＣＰＵ時間を算出する。
例えば、計算機負荷監視部１０１は、自計算機で動作する各プロセス（ｍ−ｎ、ｋ−ｌ、ｘ−ｙ）について単位時間におけるＣＰＵ時間を算出し、単位時間から各プロセスのＣＰＵ時間を引いた時間を自計算機の空きＣＰＵ時間として算出する。Ｌｉｎｕｘ（登録商標）であれば、各プロセスのＣＰＵ時間は、／ｐｒｏｃファイルシステム以下に記録される。
【００４８】
以下、計算機内で最も優先度が低いプロセスの「処理周期」を当該計算機の空きＣＰＵ時間の「単位時間」とする。また、パイプライン処理の「処理周期」を当該パイプライン処理に属する各プロセスの「処理周期」とする。
【００４９】
図８は、実施の形態１における計算機Ａの空きＣＰＵ時間ＥＡを示す図である。
図８において、３つのプロセス（ｍ−ｎ、ｋ−ｌ、ｘ−ｙ）が計算機Ａで動作し、３つのプロセスの優先度はプロセスｍ−ｎ、プロセスｋ−ｌ、プロセスｘ−ｙの順で高いものとする。「プロセスａ−ｂ」は、パイプライン処理ａのｂ番目のプロセスを意味する。各プロセスのＣＰＵ時間を太線で示す。
計算機Ａの空きＣＰＵ時間ＥＡは、計算機Ａで動作する３つのプロセス（ｍ−ｎ、ｋ−ｌ、ｘ−ｙ）のうち優先度が最も低いプロセスｘ−ｙの処理周期（単位時間）内でいずれのプロセスにもＣＰＵを使用されなかった時間（ＥＡ１、ＥＡ２）の合計時間に相当する。
【００５０】
計算機Ａで動作するＮ個のプロセスを優先度の高い順にプロセス１、プロセス２、・・・、プロセスＮとした場合（優先度：プロセス１＞プロセス２＞・・・＞プロセスＮ）、計算機Ａの空きＣＰＵ時間ＥＡは、以下の式（１）で求められる。
式（１）において、「ＣＸ」はプロセスＸの処理周期を示し、「ＰＸ」はプロセスＸのＣＰＵ時間を示す。
【００５１】
【数１】
2010282533.tif 000003
【００５２】
図７に戻り、計算機負荷収集処理（空きＣＰＵ時間）の説明を続ける。
【００５３】
（２）各計算機の計算機負荷監視部１０１は、自計算機が属するクラスタのクラスタ負荷収集部１１２Ｂに自計算機の空きＣＰＵ時間を通知する。
【００５４】
（３）各クラスタのクラスタ負荷収集部１１２Ｂは、自クラスタの各計算機の計算機負荷監視部１０１から通知された各計算機の空きＣＰＵ時間に基づいて、自クラスタの空きＣＰＵ時間を算出する。
クラスタの空きＣＰＵ時間とは、所定時間における各計算機の空きＣＰＵ時間の合計時間である。
【００５５】
（４）各クラスタのクラスタ負荷収集部１１２Ｂは、自クラスタの空きＣＰＵ時間をシステムのシステム構成管理部１２２に通知する。
【００５６】
（５）システムのシステム構成管理部１２２は、各クラスタのクラスタ負荷収集部１１２Ｂから通知された各クラスタの空きＣＰＵ時間を管理する。
【００５７】
図９は、実施の形態１における計算機リソース制御システム１００の計算機負荷収集処理（処理時間・ＣＰＵ時間）の概要図である。
各パイプライン処理の処理時間および各プロセスのＣＰＵ時間を管理する計算機負荷収集処理について、図９に基づいて以下に説明する。
【００５８】
（１）各プロセスは、処理開始時と処理終了時に、自己が動作する計算機の計算機負荷監視部１０１に通知を出す。
【００５９】
図９では、プロセス７ａ−１〜４がパイプライン処理を構成している。プロセス７ａ−１は周期的に発生するデータを受信すると処理開始通知（データ受信通知）を計算機負荷監視部１０１に出力する。プロセス７ａ−１は受信データの処理を完了すると処理したデータを次のプロセス７ａ−２に送信すると共に処理終了通知（処理完了通知）を計算機負荷監視部１０１に出力する。その後、プロセス７ａ−２〜４は、前のプロセスからデータを受信すると処理開始通知を計算機負荷監視部１０１に出力し、受信データの処理を完了すると処理終了通知を計算機負荷監視部１０１に出力する。
【００６０】
（２）計算機負荷監視部１０１は、各プロセスの処理開始時刻、処理終了時刻およびＣＰＵ時間を自計算機が属するクラスタの処理時間収集部１１１Ａに通知する。
例えば、処理開始時刻は計算機負荷監視部１０１がプロセスから処理開始通知を受けた時刻であり、処理終了時刻は計算機負荷監視部１０１がプロセスから処理終了通知を受けた時刻である。ＣＰＵ時間は、処理開始時刻から処理終了時刻までの間に当該プロセスがＣＰＵを使用した時間である。
【００６１】
（３）各クラスタの処理時間収集部１１１Ａは、自クラスタの各計算機の計算機負荷監視部１０１から通知された各プロセスの処理開始時刻および処理終了時刻に基づいて、自クラスタで動作する各パイプライン処理の処理時間を算出する。
例えば、処理時間収集部１１１Ａは、パイプライン処理の先頭プロセスの処理開始時刻から最終プロセスの処理終了時刻までの時間を当該パイプライン処理の処理時間として算出する。各パイプライン処理のプロセスの処理順序はプロセス構成定義部１１２Ａで管理されている（図５参照）。
【００６２】
また、各クラスタの処理時間収集部１１１Ａは、自クラスタの各計算機の計算機負荷監視部１０１から通知された各プロセスのＣＰＵ時間を記録する。各プロセスのＣＰＵ時間は後述するプロセス再配置処理で用いられる。
【００６３】
（４）各クラスタの処理時間収集部１１１Ａは、算出した各パイプライン処理の処理時間に基づいて、制限時間を超過したパイプライン処理の有無を判定する。各パイプライン処理の制限時間はプロセス構成定義部１１２Ａで管理されている（図５参照）。
【００６４】
図１０は、実施の形態１におけるパイプライン処理の制限時間の超過を示す図である。
制限時間を超過したパイプライン処理とは、図１０に示すように、処理時間が制限時間より長いパイプライン処理のことである。
【００６５】
図１１は、実施の形態１における計算機リソース制御システム１００の計算機リソース制御方法を示すフローチャートである。
実施の形態１における計算機リソース制御システム１００の計算機リソース制御方法について、図１１に基づいて以下に説明する。
【００６６】
計算機リソース制御システム１００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【００６７】
ステップＳ１００１〜ステップＳ１００５は計算機負荷収集処理（空きＣＰＵ時間）（図７参照）に相当し、ステップＳ１０１１〜ステップＳ１０１４は計算機負荷収集処理（処理時間・ＣＰＵ時間）（図９参照）に相当する。
【００６８】
ステップＳ１００１において、各計算機の計算機負荷監視部１０１は、自計算機の空きＣＰＵ時間を定期的に算出する（図７（１））。
ステップＳ１００１の後、ステップＳ１００２に進む。
【００６９】
ステップＳ１００２において、各計算機の計算機負荷監視部１０１は、自計算機の空きＣＰＵ時間を自クラスタのクラスタ負荷収集部１１２Ｂに通知する（図７（２））。
ステップＳ１００２の後、ステップＳ１００３に進む。
【００７０】
ステップＳ１００３において、各クラスタのクラスタ負荷収集部１１２Ｂは、各計算機の計算機負荷監視部１０１から通知された各計算機の空きＣＰＵ時間に基づいて、自クラスタ全体の空きＣＰＵ時間を算出する（図７（３））。
ステップＳ１００３の後、ステップＳ１００４に進む。
【００７１】
ステップＳ１００４において、各クラスタのクラスタ負荷収集部１１２Ｂは、自クラスタ全体の空きＣＰＵ時間をシステムのシステム構成管理部１２２に通知する（図７（４））。
ステップＳ１００４の後、ステップＳ１００５に進む。
【００７２】
ステップＳ１００５において、システム構成管理部１２２は、各クラスタの空きＣＰＵ時間を記録して保持する（図７（５））。
ステップＳ１００５により、計算機負荷収集処理（空きＣＰＵ時間）は終了する。
【００７３】
ステップＳ１０１１において、各計算機の計算機負荷監視部１０１は、自計算機の各プロセスから処理開始通知および処理終了通知を受信する（図９（１））。
ステップＳ１０１１の後、ステップＳ１０１２に進む。
【００７４】
ステップＳ１０１２において、各計算機の計算機負荷監視部１０１は、各プロセスから受信した処理開始通知および処理終了通知に基づいて各プロセスの処理開始時刻および処理開始終了時刻を特定し、特定した処理開始時刻および処理終了時刻を自クラスタの処理時間収集部１１１Ａに通知する。また、各計算機の計算機負荷監視部１０１は、各プロセスのＣＰＵ時間を特定し、各プロセスのＣＰＵ時間を自クラスタの処理時間収集部１１１Ａに通知する。各プロセスのＣＰＵ時間は、後述するプロセス再配置処理（Ｓ１００）で使用される（図９（２））。
ステップＳ１０１２の後、ステップＳ１０１３に進む。
【００７５】
ステップＳ１０１３において、各クラスタの処理時間収集部１１１Ａは、各計算機の計算機負荷監視部１０１から通知された各プロセスの処理開始時刻および処理終了時刻に基づいて、自クラスタで動作する各パイプライン処理の処理時間を算出する。また、各クラスタの処理時間収集部１１１Ａは、各計算機の計算機負荷監視部１０１から通知された各プロセスのＣＰＵ時間を保持する（図９（３））。
ステップＳ１０１３の後、ステップＳ１０１４に進む。
【００７６】
ステップＳ１０１４において、各クラスタの処理時間収集部１１１Ａは、各パイプライン処理の処理時間に基づいて、制限時間を超過したパイプライン処理が有るか判定する（図９（４））。
ステップＳ１０１４の後、ステップＳ１０１５に進む。
【００７７】
ステップＳ１０１５において、制限時間を超過したパイプライン処理が有る場合（ＹＥＳ）、プロセス再配置処理（Ｓ１００）に進む。
制限時間を超過したパイプライン処理が無い場合（ＮＯ）、計算機負荷収集処理（処理時間・ＣＰＵ時間）は終了する。
【００７８】
計算機リソース制御方法は、繰り返し実行される。
【００７９】
次に、パイプライン処理の時間超過が発生したとき（図１１のＳ１０１５「ＹＥＳ」）に実行されるプロセス再配置処理（Ｓ１００）について説明する。
【００８０】
図１２、図１３および図１４は、実施の形態１におけるプロセス再配置処理（Ｓ１００）の概要図である。
実施の形態１におけるプロセス再配置処理（Ｓ１００）について、図１２〜図１４に基づいて以下に説明する。
【００８１】
（１）パイプライン処理の時間超過が発生したクラスタの処理時間収集部１１１Ａは、制限時間を超過したパイプライン処理を自クラスタの移行プロセス決定部１１１Ｂに通知する。
以下、制限時間を超過したパイプライン処理を「時間超過パイプライン」という。
【００８２】
（２）移行プロセス決定部１１１Ｂは、時間超過パイプラインを自クラスタに配置可能か調査する。「自クラスタに配置可能」とは、自クラスタで動作する全パイプライン処理（時間超過パイプラインを含む）を各パイプライン処理の制限時間内に完了するように、時間超過パイプラインを自クラスタに配置できることを意味する。
以下、時間超過パイプラインの各プロセスを「時間超過プロセス」という。
【００８３】
このとき、移行プロセス決定部１１１Ｂは、時間超過プロセス毎に、新たに時間超過プロセスを実行した場合に自計算機の全プロセス（時間超過プロセスを含む）を各プロセスが属するパイプライン処理の処理周期内に完了できる計算機（以下、「実行可能計算機」という）が有るか判定する。実行可能計算機が時間超過プロセス毎に有れば、時間超過パイプラインを自クラスタに配置可能である。
【００８４】
但し、時間超過パイプライン処理の先頭プロセスおよび最終プロセスの実行可能計算機は、自クラスタ内のいずれかの中継計算機でなければならない（図２参照）。
以下、時間超過パイプライン処理の先頭プロセスおよび最終プロセスを「時間超過中継プロセス」という。
【００８５】
移行プロセス決定部１１１Ｂは、時間超過中継プロセスの実行可能計算機（中継計算機）が有るか判定し、時間超過中継プロセスの実行可能計算機が有る場合にその他の時間超過プロセスについて実行可能計算機（中継計算機または演算計算機）が有るか判定する。
【００８６】
時間超過プロセスの実行可能計算機の条件式（２）および条件式（３）を以下に示す。条件式（２）および条件式（３）を満たす計算機が時間超過プロセスの実行可能計算機である。
【００８７】
【数２】
2010282533.tif 000004
【００８８】
条件式（２）および条件式（３）において、パイプライン処理の時間超過が発生したクラスタを「クラスタＡ」とする。クラスタＡに含まれるＬ台の計算機を計算機群ＫＡ＝｛ＫＡ＿１、・・・、ＫＡ＿Ｌ｝とし、計算機群ＫＡのうち中継計算機をＫＡ＿Ｒとする。計算機ＫＡ＿ｘ∈ＫＡで動作するＮ個のプロセスを優先度の低い順に並べたものを計算機プロセス群ＰＡ＿Ｘ＝｛ＰＡ＿ｘ＿１、・・・、ＰＡ＿ｘ＿Ｎ｝とする。時間超過パイプラインＱを構成するＭ個のプロセス（時間超過プロセス）を処理順に並べたものをＱ＝｛ｑ１、・・・、ｑＭ｝とする。時間超過プロセスｑｙ∈Ｑの優先度は計算機プロセスＰＡ＿ｘ＿ｉより高く、計算機プロセスＰＡ＿ｘ＿ｉ＋１より低いものとする。時間超過プロセスｑｙより優先度が低い計算機プロセスを「ＰＡ＿ｘ＿ｚ（１≦ｚ≦ｉ）」とする。プロセスＸの処理周期をＣ（Ｘ）とし、プロセスＸのＣＰＵ時間をＣＰＵ（Ｘ）とする。
【００８９】
プロセスＸの処理周期Ｃ（Ｘ）はプロセスＸが属するパイプライン処理の処理周期としてプロセス構成定義部１１２Ａで管理されている。プロセスＸのＣＰＵ時間は処理時間収集部１１１Ａで管理される。
【００９０】
条件式（２）を満たす計算機ＫＡ＿ｘは、時間超過プロセスｑｙおよび時間超過プロセスｑｙより優先度の高い各計算機プロセス（ＰＡ＿ｘ＿ｉ＋１、・・・、ＰＡ＿ｘ＿Ｎ）を各プロセスの処理周期内に完了可能な計算機である。
条件式（３）を満たす計算機ＫＡ＿ｘは、時間超過プロセスｑｙより優先度の低い各計算機プロセス（ＰＡ＿ｘ＿１、・・・、ＰＡ＿ｘ＿ｉ）を各プロセスの処理周期内に完了可能な計算機である。
したがって、条件式（２）および条件式（３）を満たす計算機ＫＡ＿ｘは、計算機プロセス群ＰＡ＿ｘおよび時間超過プロセスｑｙを各プロセスの処理周期内に完了可能な計算機（実行可能計算機）である。時間超過プロセスｑｙは条件式（２）および条件式（３）を満たす計算機ＫＡ＿ｘに配置可能である。
【００９１】
但し、時間超過プロセスｑ１および時間超過プロセスｑＭの対象は計算機群ＫＡのうち中継計算機ＫＡ＿Ｒだけである。その他の時間超過プロセス（ｑ２、・・・、ｑＭ−１）の対象は計算機群ＫＡに含まれる全ての計算機（ＫＡ＿１、・・・、ＫＡ＿Ｌ）である。
【００９２】
時間超過パイプラインＱの全プロセス（ｑ１、・・・、ｑＭ）についてクラスタＡの計算機群ＫＡに配置可能であれば、時間超過パイプラインＱはクラスタＡに配置可能である。
【００９３】
（３Ａ−１）時間超過パイプラインを自クラスタに配置可能な場合、移行プロセス決定部１１１Ｂは、各実行可能計算機の資源割当部１０２に当該時間超過プロセスの起動を指示し、時間超過プロセスが動作していた各計算機の資源割当部１０２に当該時間超過プロセスの停止を指示する。
【００９４】
（３Ａ−２）時間超過プロセスの起動を指示された各資源割当部１０２は当該時間超過プロセスを起動し、時間超過プロセスの停止を指示された各資源割当部１０２は当該時間超過プロセスを停止する。
【００９５】
（３Ｂ）時間超過パイプラインを自クラスタに配置可能でない場合、移行プロセス決定部１１１Ｂは、システムの移行クラスタ決定部１２１に時間超過パイプラインを通知する。次に、図１３に進む。
【００９６】
（４）移行クラスタ決定部１２１は、システム構成管理部１２２で管理される各クラスタの空きＣＰＵ時間に基づいて、時間超過パイプラインの配置先にするクラスタの候補を選択する。空きＣＰＵ時間をシステム構成管理部１２２に通知したクラスタは正常に動作しているクラスタである。
【００９７】
（５）移行クラスタ決定部１２１は、選択したクラスタの移行プロセス決定部１１１Ｂに時間超過パイプラインの配置を指示する。
【００９８】
（６）時間超過パイプラインの配置を指示された移行プロセス決定部１１１Ｂは、図１２（２）と同様に、自クラスタに時間超過パイプラインを配置可能か調査する。
上記式（２）および式（３）において、クラスタを表す添え字「Ａ」は、時間超過パイプラインの配置を指示された移行プロセス決定部１１１Ｂのクラスタを意味する。
【００９９】
（７）時間超過パイプラインを自クラスタに配置可能な場合、移行プロセス決定部１１１Ｂは、各実行可能計算機の資源割当部１０２に当該時間超過プロセスの起動を指示する。
【０１００】
（８）時間超過プロセスの起動を指示された各資源割当部１０２は、当該時間超過プロセスを起動する。次に、図１４に進む。
【０１０１】
（９）時間超過パイプラインを配置したクラスタ２ｂの移行プロセス決定部１１１Ｂは、時間超過パイプラインの配置終了を移行クラスタ決定部１２１に通知する。
【０１０２】
（１０）移行クラスタ決定部１２１は、時間超過パイプラインが発生したクラスタ２ａの移行プロセス決定部１１１Ｂに時間超過パイプラインの配置終了を通知する。
【０１０３】
（１１）時間超過パイプラインの配置終了を通知された移行プロセス決定部１１１Ｂは、時間超過プロセスが動作している各計算機の資源割当部１０２に時間超過プロセスの停止を指示する。
【０１０４】
（１２）時間超過プロセスの停止を指示された各資源割当部１０２は、当該時間超過プロセスを停止する。
【０１０５】
図１５は、実施の形態１における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）のフローチャートである。
実施の形態１における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）について、図１５に基づいて以下に説明する。
【０１０６】
プロセス再配置処理（Ｓ１００）は、パイプライン処理の制限時間の超過が発生したときに実行される。
【０１０７】
計算機リソース制御システム１００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【０１０８】
ステップＳ１０１において、処理時間収集部１１１Ａは、パイプライン処理の制限時間の超過が発生した場合、制限時間を超過したパイプライン処理（時間超過パイプライン）を移行プロセス決定部１１１Ｂに通知する。
ステップＳ１０１は図１２（１）に相当する。
ステップＳ１０１の後、ステップＳ１０２に進む。
【０１０９】
ステップＳ１０２において、移行プロセス決定部１１１Ｂは、前記式（２）および式（３）を用いて、時間超過パイプラインをクラスタ内に配置可能か調査する。クラスタ内で配置可能とは、クラスタ内で動作する全パイプライン処理（時間超過パイプラインを含む）を各パイプライン処理の制限時間内に完了するように、時間超過パイプラインをクラスタ内に配置できることを意味する。
ステップＳ１０２は図１２（２）に相当する。
ステップＳ１０２の後、ステップＳ１０３に進む。
【０１１０】
ステップＳ１０３において、時間超過パイプラインをクラスタ内に配置可能な場合（ＹＥＳ）、ステップＳ１１１に進む。
時間超過パイプラインをクラスタ内に配置可能でない場合（ＮＯ）、クラスタ間プロセス移行処理（Ｓ１２０）に進む。クラスタ間プロセス移行処理（Ｓ１２０）によりプロセス再配置処理（Ｓ１００）は終了する。
【０１１１】
ステップＳ１１１において、移行プロセス決定部１１１Ｂは、ステップＳ１０２の調査結果に基づいて、時間超過パイプラインのプロセス（時間超過プロセス）を新たに配置する各計算機（移行先計算機群）の資源割当部１０２に当該プロセスの起動を指示する。
さらに、移行プロセス決定部１１１Ｂは、時間超過プロセスが動作していた各計算機（移行元計算機群）の資源割当部１０２に当該時間超過プロセスの停止を指示する。
ステップＳ１１１は図１２（３Ａ−１）に相当する。
ステップＳ１１１の後、ステップＳ１１２に進む。
【０１１２】
ステップＳ１１２において、時間超過プロセスの起動を指示された各資源割当部１０２は当該時間超過プロセスを起動し、時間超過プロセスの停止を指示された各資源割当部１０２は当該時間超過プロセスを停止する。
ステップＳ１１２は図１２（３Ａ−２）に相当する。
ステップＳ１１２により、プロセス再配置処理（Ｓ１００）は終了する。
【０１１３】
図１６は、実施の形態１におけるクラスタ間プロセス移行処理（Ｓ１２０）のフローチャートである。
実施の形態１におけるクラスタ間プロセス移行処理（Ｓ１２０）について、図１６に基づいて以下に説明する。
【０１１４】
クラスタ間プロセス移行処理（Ｓ１２０）は、時間超過パイプラインをクラスタ内に配置可能でない場合に実行される。
【０１１５】
ステップＳ１２１において、移行プロセス決定部１１１Ｂは、移行クラスタ決定部１２１にクラスタ内に配置可能でない時間超過パイプラインを通知する。
ステップＳ１２１は図１２（３Ｂ）に相当する。
ステップＳ１２１の後、ステップＳ１２２に進む。
【０１１６】
ステップＳ１２２において、移行クラスタ決定部１２１は、時間超過パイプラインを通知したクラスタ以外のクラスタを一つ選択する。
例えば、移行クラスタ決定部１２１は、システム構成管理部１２２で管理される各クラスタの空きＣＰＵ時間に基づいて、空きＣＰＵ時間の多い順にクラスタを選択する。
ステップＳ１２２は図１３（４）に相当する。
ステップＳ１２２の後、ステップＳ１２３に進む。
【０１１７】
ステップＳ１２３において、移行クラスタ決定部１２１は、選択したクラスタの移行プロセス決定部１１１Ｂに時間超過パイプラインの配置を指示する。
ステップＳ１２３は図１３（５）に相当する。
ステップＳ１２３の後、ステップＳ１２４に進む。
【０１１８】
ステップＳ１２４において、時間超過パイプラインの配置を指示された移行プロセス決定部１１１Ｂは、ステップＳ１０２と同様に、時間超過パイプラインをクラスタ内に配置可能か調査する。
ステップＳ１２４は図１３（６）に相当する。
ステップＳ１２４の後、ステップＳ１２５に進む。
【０１１９】
ステップＳ１２５において、時間超過パイプラインをクラスタ内に配置可能な場合（ＹＥＳ）、クラスタ間プロセス起動・停止処理（Ｓ１３０）に進む。クラスタ間プロセス起動・停止処理（Ｓ１３０）により、クラスタ間プロセス移行処理（Ｓ１２０）は終了する。
時間超過パイプラインをクラスタ内に配置可能でない場合（ＮＯ）、ステップＳ１２６に進む。
【０１２０】
ステップＳ１２６において、未選択のクラスタが残っている場合（ＹＥＳ）、ステップＳ１２２に戻る。ステップＳ１２２において、移行クラスタ決定部１２１は、未選択のクラスタを一つ選択する。
未選択のクラスタが残っていない場合（ＮＯ）、クラスタ間プロセス移行処理（Ｓ１２０）は終了する。
【０１２１】
図１７は、実施の形態１におけるクラスタ間プロセス起動・停止処理（Ｓ１３０）のフローチャートである。
実施の形態１におけるクラスタ間プロセス起動・停止処理（Ｓ１３０）について、図１７に基づいて以下に説明する。
【０１２２】
クラスタ間プロセス起動・停止処理（Ｓ１３０）は、時間超過パイプラインを他のクラスタに配置するときに実行される。
【０１２３】
ステップＳ１３１において、時間超過パイプラインを配置可能なクラスタ（移行先クラスタ）の移行プロセス決定部１１１Ｂは、ステップＳ１２４の調査結果に基づいて、時間超過プロセスを新たに配置する各計算機（移行先計算機）の資源割当部１０２に当該時間超過プロセスの起動を指示する。
ステップＳ１３１は図１３（７）に相当する。
ステップＳ１３１の後、ステップＳ１３２に進む。
【０１２４】
ステップＳ１３２において、時間超過プロセスの起動を指示された各資源割当部１０２は当該時間超過プロセスを起動する。
ステップＳ１３２は図１３（８）に相当する。
【０１２５】
ステップＳ１３３において、移行先クラスタの移行プロセス決定部１１１Ｂは、時間超過プロセスの起動終了を移行クラスタ決定部１２１に通知する。
ステップＳ１３３は図１４（９）に相当する。
ステップＳ１３３の後、ステップＳ１３４に進む。
【０１２６】
ステップＳ１３４において、移行クラスタ決定部１２１は、時間超過パイプラインが動作していたクラスタ（移行元クラスタ）の移行プロセス決定部１１１Ｂに時間超過プロセスの停止を指示する。
ステップＳ１３４は図１４（１０）に相当する。
ステップＳ１３４の後、ステップＳ１３５に進む。
【０１２７】
ステップＳ１３５において、移行プロセス決定部１１１Ｂは、時間超過プロセスが動作していた各計算機（移行元計算機）の資源割当部１０２に当該時間超過プロセスの停止を指示する。
ステップＳ１３５は図１４（１１）に相当する。
ステップＳ１３５の後、ステップＳ１３６に進む。
【０１２８】
ステップＳ１３６において、時間超過プロセスの停止を指示された各資源割当部１０２は当該時間超過プロセスを停止する。
ステップＳ１３６は図１４（１２）に相当する。
ステップＳ１３６により、クラスタ間プロセス起動・停止処理（Ｓ１３０）は終了する。
【０１２９】
図１８は、実施の形態１における計算機リソース制御システム１００の計算機のハードウェア資源の一例を示す図である。
図１８において、計算機リソース制御システム１００の各計算機は、ＣＰＵ９１１（マイクロプロセッサ、マイクロコンピュータともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、ドライブ装置９０４、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。ドライブ装置９０４は、ＦＤ（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。その他に、表示装置、キーボード、マウス、プリンタ装置などと接続してもよい。
【０１３０】
通信ボード９１５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【０１３１】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、プログラム群９２３、ファイル群９２４が記憶されている。
【０１３２】
プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、ＣＰＵ９１１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１３３】
ファイル群９２４には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１３４】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【０１３５】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【０１３６】
実施の形態１において、例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００は、計算機システム１の計算機リソースを制御する。
計算機システム１は、１台以上の計算機がネットワークに接続された計算機クラスタが複数存在する。計算機クラスタ内に存在する、計算機システム１は、複数のネットワークカードを搭載した計算機が、クラスタ内ネットワーク、および他の複数のネットワークカードを搭載した計算機間でネットワーク接続することにより、各計算機クラスタがネットワーク結合される。さらに、計算機システム１は、各計算機クラスタ上の計算機群で複数のプロセスが連携または独立して動作する。各プロセスは、一定の時間周期で処理を行い、制限時間内に処理を完了することが求められる。
計算機リソース制御システム１００は、処理時間収集部１１１Ａ、計算機負荷監視部１０１、移行プロセス決定部１１１Ｂ、資源割当部１０２およびプロセス構成定義部１１２Ａを持つ。
処理時間収集部１１１Ａは、プロセスの処理時間を収集し、監視する。
計算機負荷監視部１０１は、計算機の空きＣＰＵ時間を監視する。
移行プロセス決定部１１１Ｂは、プロセスが制限時間内に処理を完了できない場合に、プロセスの再配置先を決定する。
資源割当部１０２は、プロセスの起動、停止を行う。
プロセス構成定義部１１２Ａは、システム内で動作するプロセスの種別、プロセスの処理順序や定常時の処理時間を保持する。
計算機リソース制御システム１００に以下の構成を付加することにより、十分な空きＣＰＵ時間を持つ他のクラスタの計算機へのプロセス群の再配置を可能とし、プロセス群の再配置後の計算機システム全体の処理時間の制限時間超過の発生を防止する。
・システム内に存在するクラスタの識別子を保持するシステム構成管理部１２２。
・クラスタ内の各計算機の空きＣＰＵ時間を収集するとともに、クラスタが動作している旨をシステム構成管理部に通知するクラスタ負荷収集部１１２Ｂ。
・クラスタ内でプロセスの再配置ができない場合に、プロセス群の再配置を行うクラスタを選択する移行クラスタ決定部１２１。
【０１３７】
あるクラスタ内の計算機故障や計算機ＣＰＵリソース不足によりパイプライン処理に制限時間超過が発生した場合、システム構成管理部１２２がシステム内にあるクラスタを管理し、移行クラスタ決定部１２１がシステム内に存在するクラスタをシステム構成管理部１２２に問い合わることにより任意の１つのクラスタを選択する。計算機リソース制御システム１００は、クラスタを構成する計算機に、制限時間超過を発生させたパイプライン処理を構成する全プロセスを全て移行させることを可能とする。これにより、クラスタ内の計算機リソース不足が発生しても、処理を他のクラスタの計算機で動作させて、システム全体の動作継続が可能となる。
【０１３８】
また例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００は、複数の計算機で構成されるクラスタを複数有し、一つのクラスタ内の一部の計算機群により特定処理（パイプライン処理）を実行する。
計算機リソース制御システム１００は、実行クラスタ判定部（移行プロセス決定部１１１Ｂ）、クラスタ内計算機群変更部（移行プロセス決定部１１１Ｂ）、実行可能クラスタ判定部（移行クラスタ決定部１２１）、クラスタ間計算機群変更部（移行クラスタ決定部１２１）をそれぞれ所定の計算機に備える。
実行クラスタ判定部は、前記特定処理が制限時間内に完了しなかった場合、前記特定処理（時間超過パイプライン）を実行した計算機群を実行計算機群として含む実行クラスタが、前記特定処理を制限時間内に完了する実行可能計算機群を含むかＣＰＵを用いて判定する。
クラスタ内計算機群変更部は、前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含むと判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群（移行元計算機群）から前記実行クラスタの前記実行可能計算機群（移行先計算機群）に変更する。
実行可能クラスタ判定部は、前記実行クラスタ判定部により前記実行クラスタが前記実行可能計算機群を含まないと判定された場合、前記実行可能計算機群を含む実行可能クラスタが有るかＣＰＵを用いて判定する。
クラスタ間計算機群変更部は、前記実行可能クラスタ判定部により実行可能クラスタが有ると判定された場合、前記特定処理を実行させる計算機群を前記実行クラスタの前記実行計算機群（移行元計算機群）から前記実行可能クラスタの前記実行可能計算機群（移行先計算機群）に変更する。
【０１３９】
実施の形態２．
時間超過パイプラインの制限時間内の空きＣＰＵ時間が時間超過パイプラインに要するＣＰＵ時間以上であるクラスタから先に、時間超過パイプラインを配置可能か調査する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【０１４０】
計算機システム１および計算機リソース制御システム１００の構成は、実施の形態１（図１〜図６参照）と同様である。
但し、各クラスタのクラスタ負荷収集部１１２Ｂは計算機負荷テーブル１９３を用いてクラスタ内の各計算機の空きＣＰＵ時間を管理し、システム構成管理部１２２はクラスタ負荷テーブル１９４を用いて各クラスタの空きＣＰＵ時間を管理する。
【０１４１】
図１９は、実施の形態２における計算機負荷テーブル１９３を示す図である。
実施の形態２におけるクラスタ負荷収集部１１２Ｂにより管理される計算機負荷テーブル１９３について、図１９に基づいて以下に説明する。
【０１４２】
計算機負荷テーブル１９３は、クラスタ負荷収集部１１２Ｂが動作する計算機のメモリ上に配置される。
【０１４３】
計算機負荷テーブル１９３には、「計算機名」「周期」および「空きＣＰＵ時間」が設定される。
「計算機名」は、クラスタ内の各計算機の識別名を示す。
「周期」は、計算機毎に複数の所定時間を示す。
「空きＣＰＵ時間」は、計算機毎に各周期における空きＣＰＵ時間を示す。
【０１４４】
「周期」に示される複数の所定時間は、クラスタ内の各計算機からクラスタ負荷収集部１１２Ｂに通知される空きＣＰＵ時間の単位時間である。単位時間とは、実施の形態１で述べたように、当該計算機で動作する複数のプロセスのうち優先度が最も低いプロセスの処理周期である。
【０１４５】
例えば、図１９において、「１００ミリ秒」は計算機５−１の単位時間であり、「２００ミリ秒」は計算機５−２の単位時間であり、「３００ミリ秒」は計算機５０３の単位時間である。
【０１４６】
つまり、図１９において、計算機負荷テーブル１９３に設定されている計算機５−１の１００ミリ秒あたりの空きＣＰＵ時間「１０ミリ秒」、計算機５−２の２００ミリ秒あたりの空きＣＰＵ時間「２０ミリ秒」および計算機５−３の３００ミリ秒あたりの空きＣＰＵ時間「５ミリ秒」は、各計算機（５−１〜３）からクラスタ負荷収集部１１２Ｂに通知された空きＣＰＵ時間である。
【０１４７】
それ以外の周期の空きＣＰＵ時間は、各計算機から通知される空きＣＰＵ時間に基づいて算出される。
【０１４８】
例えば、計算機５−１の２００ミリ秒あたりの空きＣＰＵ時間「２０ミリ秒」や計算機５−１の３００ミリ秒あたりの空きＣＰＵ時間「３０ミリ秒」は、計算機５−１から通知される１００ミリ秒あたりの空きＣＰＵ時間「１０ミリ秒」に基づいて算出される。
各周期の空きＣＰＵ時間の算出方法については後述する。
【０１４９】
クラスタ負荷収集部１１２Ｂは、各計算機の空きＣＰＵ時間の和を周期毎に求め、求めた各周期の空きＣＰＵ時間をクラスタの空きＣＰＵ時間としてシステム構成管理部１２２に通知する。
【０１５０】
例えば、図１９において、クラスタ負荷収集部１１２Ｂは、１００ミリ秒あたりの空きＣＰＵ時間「１０ミリ秒（＝１０ミリ秒＋０ミリ秒＋０ミリ秒）」、２００ミリ秒あたりの空きＣＰＵ時間「４５ミリ秒（＝２０ミリ秒＋２０ミリ秒＋５ミリ秒）」および３００ミリ秒あたりの空きＣＰＵ時間「５５ミリ秒（＝３０ミリ秒＋２０ミリ秒＋５ミリ秒）」をクラスタの空きＣＰＵ時間としてシステム構成管理部１２２に通知する。
【０１５１】
図２０は、実施の形態２におけるクラスタ負荷テーブル１９４を示す図である。
実施の形態２におけるシステム構成管理部１２２により管理されるクラスタ負荷テーブル１９４について、図２０に基づいて以下に説明する。
【０１５２】
クラスタ負荷テーブル１９４は、システム構成管理部１２２が動作する計算機のメモリ上に配置される。
【０１５３】
クラスタ負荷テーブル１９４には、「クラスタ名」「周期」および「空きＣＰＵ時間」が設定される。
「クラスタ名」は、各クラスタの識別名を示す。
「周期」は、クラスタ毎に複数の所定時間を示す。
「空きＣＰＵ時間」は、クラスタ毎に各周期における空きＣＰＵ時間を示す。
【０１５４】
「周期」に示される複数の所定時間は、当該クラスタのクラスタ負荷収集部１１２Ｂからシステム構成管理部１２２に通知される複数の空きＣＰＵ時間それぞれの周期である。
【０１５５】
「空きＣＰＵ時間」に示される各周期における空きＣＰＵ時間は、当該クラスタのクラスタ負荷収集部１１２Ｂからシステム構成管理部１２２に通知される各周期の空きＣＰＵ時間である。
【０１５６】
例えば、図２０は、クラスタ２−１のクラスタ負荷収集部１１２Ｂから１００ミリ秒あたりの空きＣＰＵ時間「１０ミリ秒」、２００ミリ秒あたりの空きＣＰＵ時間「４５ミリ秒」および３００ミリ秒あたりの空きＣＰＵ時間「５５ミリ秒」が通知されたことを示している。
【０１５７】
図２１は、実施の形態２における計算機負荷テーブル１９３とクラスタ負荷テーブル１９４との関係図である。
図２１に示すように、クラスタ負荷テーブル１９４には、各周期における空きＣＰＵ時間がクラスタ毎に設定される。クラスタ負荷テーブル１９４に設定される各周期における空きＣＰＵ時間は、当該周期における各計算機の空きＣＰＵ時間の和である。各計算機の空きＣＰＵ時間は各クラスタのクラスタ負荷収集部１１２Ｂにより計算機負荷テーブル１９３で管理される。
【０１５８】
例えば、クラスタ負荷テーブル１９４に設定されるクラスタ２−１の２００ミリ秒あたりの空きＣＰＵ時間「１４５ミリ秒」は、クラスタ２−１のクラスタ負荷収集部１１２Ｂにより管理される計算機負荷テーブル１９３に設定された各計算機（５−１〜３）の２００ミリ秒あたりの空きＣＰＵ時間「２０ミリ秒」「１１５ミリ秒」および「１０ミリ秒」の和である。
【０１５９】
図２２は、実施の形態２における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）の概要図である。
実施の形態２における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）について、図２２に基づいて以下に説明する。
【０１６０】
実施の形態２における計算機負荷収集処理（空きＣＰＵ時間）は、実施の形態１（図７参照）に対して、クラスタの空きＣＰＵ時間が各計算機の空きＣＰＵ時間の周期（単位時間）毎に算出される点が異なる。
【０１６１】
（１）各計算機の計算機負荷監視部１０１は、実施の形態１で説明したように、自計算機で最も優先度が低いプロセス（最低優先度プロセス）の処理周期における空きＣＰＵ時間を算出する。
【０１６２】
（２ｂ）各計算機の計算機負荷監視部１０１は、自計算機が属するクラスタのクラスタ負荷収集部１１２Ｂに自計算機の空きＣＰＵ時間と空きＣＰＵ時間の周期（最低優先度プロセスの処理周期）とを通知する。
【０１６３】
（３ｂ−１）各クラスタのクラスタ負荷収集部１１２Ｂは、自クラスタの各計算機の計算機負荷監視部１０１から通知された計算機の空きＣＰＵ時間および空きＣＰＵ時間の周期に基づいて、各空きＣＰＵ時間の周期における各計算機の空きＣＰＵ時間を算出する。クラスタ負荷収集部１１２Ｂは、算出した各空きＣＰＵ時間を計算機負荷テーブル１９３（図１９参照）に保持する。
【０１６４】
例えば、クラスタ負荷収集部１１２Ｂは、大きい周期から順に各計算機の空きＣＰＵ時間を算出する。
【０１６５】
計算機Ａの空きＣＰＵ時間ＸＡの周期がＣＡである場合、計算機Ｂの空きＣＰＵ時間の周期ＣＢにおける計算機Ａの空きＣＰＵ時間ＸＡＢは、以下の式（４）で求められる。
【０１６６】
【数３】
2010282533.tif 000005
【０１６７】
（３ｂ−２）各クラスタのクラスタ負荷収集部１１２Ｂは、計算機負荷テーブル１９３に保持する各計算機の周期毎の空きＣＰＵ時間に基づいて、自クラスタの周期毎の空きＣＰＵ時間を算出する。
クラスタの周期毎の空きＣＰＵ時間とは、各計算機の空きＣＰＵ時間を周期毎に合計して得られる時間である。
【０１６８】
（４ｂ）各クラスタのクラスタ負荷収集部１１２Ｂは、自クラスタの周期毎の空きＣＰＵ時間をシステムのシステム構成管理部１２２に通知する。
【０１６９】
（５ｂ）システムのシステム構成管理部１２２は、各クラスタのクラスタ負荷収集部１１２Ｂから通知された各クラスタの周期毎の空きＣＰＵ時間をクラスタ負荷テーブル１９４（図２０参照）を用いて管理する。
【０１７０】
図２３は、実施の形態２における計算機リソース制御システム１００の計算機リソース制御方法を示すフローチャートである。
実施の形態２における計算機リソース制御システム１００の計算機リソース制御方法について、図２３に基づいて以下に説明する。
【０１７１】
実施の形態２における計算機リソース制御システム１００の計算機リソース制御方法は、実施の形態１（図１１参照）に対して、クラスタの空きＣＰＵ時間が各計算機の空きＣＰＵ時間の周期毎に算出される点が異なる。
【０１７２】
ステップＳ１００１〜ステップＳ１００５ｂは計算機負荷収集処理（空きＣＰＵ時間）（図２２参照）に相当する。
【０１７３】
ステップＳ１００１において、各計算機の計算機負荷監視部１０１は、自計算機の空きＣＰＵ時間を定期的に算出する（図２２（１））。
【０１７４】
ステップＳ１００２ｂにおいて、各計算機の計算機負荷監視部１０１は、自計算機の空きＣＰＵ時間と空きＣＰＵ時間の周期とを自クラスタのクラスタ負荷収集部１１２Ｂに通知する（図２２（２ｂ））。
【０１７５】
ステップＳ１００３ｂ−１において、各クラスタのクラスタ負荷収集部１１２Ｂは、各計算機のクラスタ負荷収集部１１２Ｂから通知された計算機の空きＣＰＵ時間および空きＣＰＵ時間の周期に基づいて、各周期における各計算機の空きＣＰＵ時間を算出する。クラスタ負荷収集部１１２Ｂは、算出した各空きＣＰＵ時間を計算機負荷テーブル１９３に保持する（図２２（３ｂ−１））。
【０１７６】
ステップＳ１００３ｂ−２において、各クラスタのクラスタ負荷収集部１１２Ｂは、計算機負荷テーブル１９３に保持する各計算機の周期毎の空きＣＰＵ時間に基づいて、自クラスタの周期毎の空きＣＰＵ時間を算出する（図２２（３ｂ−２））。
【０１７７】
ステップＳ１００４ｂにおいて、各クラスタのクラスタ負荷収集部１１２Ｂは、自クラスタの周期毎の空きＣＰＵ時間をシステムのシステム構成管理部１２２に通知する（図２２（４ｂ））。
【０１７８】
ステップＳ１００５ｂにおいて、システム構成管理部１２２は、各クラスタの周期毎の空きＣＰＵ時間をクラスタ負荷テーブル１９４に保持する（図２２（５ｂ））。
【０１７９】
ステップＳ１０１１〜ステップＳ１０１５は、実施の形態１と同じである。
【０１８０】
ステップＳ１００のプロセス再配置処理は、実施の形態１（図１５参照）と同様である。
但し、クラスタ間プロセス移行処理（Ｓ１２０）が一部異なる。
【０１８１】
図２４は、実施の形態２におけるクラスタ間プロセス移行処理（Ｓ１２０）のフローチャートである。
実施の形態２におけるクラスタ間プロセス移行処理（Ｓ１２０）について、図２４に基づいて以下に説明する。
【０１８２】
実施の形態２におけるクラスタ間プロセス移行処理（Ｓ１２０）は、実施の形態１（図１６）のステップＳ１２１をステップＳ１２１ｂに変更し、ステップＳ１２２をステップＳ１２２ｂ−１〜ステップＳ１２２ｂ−４に変更したものである。
【０１８３】
ステップＳ１２１ｂにおいて、移行プロセス決定部１１１Ｂは、クラスタ内に配置可能でない時間超過パイプラインと時間超過パイプラインに要するＣＰＵ時間とを移行クラスタ決定部１２１に通知する。
時間超過パイプラインに要するＣＰＵ時間とは、時間超過パイプラインを構成する各プロセス（時間超過プロセス）のＣＰＵ時間の総和である。各時間超過プロセスのＣＰＵ時間は処理時間収集部１１１Ａで管理される。
ステップＳ１２１ｂの後、ステップＳ１２２ｂ−１に進む。
【０１８４】
ステップＳ１２２ｂ−１において、移行クラスタ決定部１２１は、時間超過パイプラインに要するＣＰＵ時間より大きい空きＣＰＵ時間を持つクラスタを第一条件クラスタとして特定する。
第一条件クラスタの空きＣＰＵ時間の周期は、時間超過パイプラインの処理周期より短い周期でも、長い周期（同じ周期を含む）でも構わない。
各クラスタの周期毎の空きＣＰＵ時間は、システム構成管理部１２２のクラスタ負荷テーブル１９４に保持される。
ステップＳ１２２ｂ−１の後、ステップＳ１２２ｂ−２に進む。
【０１８５】
ステップＳ１２２ｂ−２において、第一条件クラスタが有る場合（ＹＥＳ）、ステップＳ１２２ｂ−３に進む。
第一条件クラスタが無い場合（ＮＯ）、クラスタ間プロセス移行処理（Ｓ１２０）は終了する。
【０１８６】
ステップＳ１２２ｂ−３において、移行クラスタ決定部１２１は、各第一条件クラスタのうち時間超過パイプラインの処理周期より短い周期において時間超過パイプラインに要するＣＰＵ時間を持つクラスタを第二条件クラスタとして特定する。
ステップＳ１２２ｂ−３の後、ステップＳ１２２ｂ−４に進む。
【０１８７】
ステップＳ１２２ｂ−４において、移行クラスタ決定部１２１は、各第二条件クラスタを優先して各第一条件クラスタからクラスタを一つ選択する。
ステップＳ１２２ｂ−４の後、ステップＳ１２３に進む。
【０１８８】
ステップＳ１２３以降は、実施の形態１と同様である。
【０１８９】
移行クラスタ決定部１２１は選択したクラスタの移行プロセス決定部１１１Ｂに時間超過パイプラインの配置を指示し（Ｓ１２３）、移行プロセス決定部１１１Ｂは時間超過パイプラインをクラスタ内に配置可能か調査する（Ｓ１２４）。
時間超過パイプラインをクラスタ内に配置可能な場合（Ｓ１２５「ＹＥＳ」）、クラスタ間プロセス起動・停止処理（Ｓ１３０）が実行される。
時間超過パイプラインをクラスタ内に配置可能でない場合（Ｓ１２５「ＮＯ」）、未選択の第一条件クラスタが残っていれば（Ｓ１２６「ＹＥＳ」）、ステップＳ１２２ｂ−４に戻る。ステップＳ１２２ｂ−４において、移行クラスタ決定部１２１は、未選択の各第一条件クラスタからクラスタを一つ選択する。
未選択の第一条件クラスタが残っていなければ（Ｓ１２６「ＮＯ」）、クラスタ間プロセス移行処理（Ｓ１２０）は終了する。
【０１９０】
実施の形態２において、例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００に以下の特徴を加えることにより、より短時間でのプロセス群の再配置を実現可能とする。
・クラスタ負荷収集部１１２Ｂは、クラスタ内の各計算機の空きＣＰＵ時間を収集するとともに、空きリソースの総量をシステム構成管理部１２２に通知する。
・システム構成管理部１２２は、各クラスタ上にて動作するクラスタ負荷収集部１２２Ｂより各クラスタの空きＣＰＵ時間を収集する。
・移行クラスタ決定部１２１は、システム構成管理部１２２が持つ各クラスタの空きＣＰＵ時間が必要量以上であるクラスタをプロセス群の再配置候補とする。
【０１９１】
計算機リソース制御システム１００は、各クラスタの周期ごとの空きＣＰＵ時間を管理する。計算機リソース制御システム１００は、制限時間超過が起きたパイプライン処理を構成するプロセス群が動作できるだけの空きＣＰＵ時間を持つクラスタから順に、制限時間超過が起きたパイプライン処理を構成するプロセス群の再配置先として調査をする。これにより、より短時間で再配置先クラスタを決定することができる。
【０１９２】
また例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００は、複数の所定時間それぞれの時間内におけるＣＰＵ空き時間をクラスタ毎に管理するクラスタ空き時間管理部（システム構成管理部１２２）を所定の計算機に備える。
実行可能クラスタ判定部（移行クラスタ決定部１２１）は、前記クラスタ空き時間管理部により管理される各クラスタのＣＰＵ空き時間に基づいて、特定処理（時間超過パイプライン）に要するＣＰＵ使用時間以上のＣＰＵ空き時間を前記特定処理の処理周期内に有するクラスタから先に実行可能クラスタであるか判定する。
【０１９３】
実施の形態３．
時間超過パイプラインの制限時間における中継計算機のＣＰＵ空き時間が中継計算機により実行される時間超過プロセスに要するＣＰＵ時間以上であるクラスタから先に、時間超過パイプラインを配置可能か調査する形態について説明する。
以下、実施の形態２と異なる事項について主に説明する。説明を省略する事項は実施の形態２と同様である。
【０１９４】
図２５は、実施の形態３における演算計算機負荷テーブル１９３Ａおよび中継計算機負荷テーブル１９３Ｂを示す図である。
実施の形態３におけるクラスタ負荷収集部１１２Ｂにより管理される演算計算機負荷テーブル１９３Ａおよび中継計算機負荷テーブル１９３Ｂについて、図２５に基づいて以下に説明する。
【０１９５】
クラスタ負荷収集部１１２Ｂは、演算計算機負荷テーブル１９３Ａを用いてクラスタ内の各演算計算機の空きＣＰＵ時間を管理し、中継計算機負荷テーブル１９３Ｂを用いてクラスタ内の各中継計算機の空きＣＰＵ時間を管理する。
演算計算機負荷テーブル１９３Ａおよび中継計算機負荷テーブル１９３Ｂは、クラスタ負荷収集部１１２Ｂが動作する計算機のメモリ上に配置される。
【０１９６】
演算計算機負荷テーブル１９３Ａと中継計算機負荷テーブル１９３Ｂとは、実施の形態２で説明した計算機負荷テーブル１９３（図１９参照）を演算計算機用のテーブルと中継計算機用のテーブルとに分けたものである。
演算計算機負荷テーブル１９３Ａおよび中継計算機負荷テーブル１９３Ｂの構成および設定内容は、対象計算機が演算計算機または中継計算機であることを除いて、実施の形態２の計算機負荷テーブル１９３と同じである。
【０１９７】
図２６は、実施の形態３におけるクラスタ上演算計算機負荷テーブル１９４Ａおよびクラスタ上中継計算機負荷テーブル１９４Ｂを示す図である。
実施の形態３におけるシステム構成管理部１２２により管理されるクラスタ上演算計算機負荷テーブル１９４Ａおよびクラスタ上中継計算機負荷テーブル１９４Ｂについて、図２６に基づいて以下に説明する。
【０１９８】
システム構成管理部１２２は、クラスタ上演算計算機負荷テーブル１９４Ａを用いて各クラスタの演算計算機の空きＣＰＵ時間を管理し、クラスタ上中継計算機負荷テーブル１９４Ｂを用いて各クラスタの中継計算機の空きＣＰＵ時間を管理する。
クラスタ上演算計算機負荷テーブル１９４Ａおよびクラスタ上中継計算機負荷テーブル１９４Ｂは、システム構成管理部１２２が動作する計算機のメモリ上に配置される。
【０１９９】
クラスタ上演算計算機負荷テーブル１９４Ａとクラスタ上中継計算機負荷テーブル１９４Ｂとは、実施の形態２で説明したクラスタ負荷テーブル１９４（図２０参照）を演算計算機用のテーブルと中継計算機用のテーブルとに分けたものである。
クラスタ上演算計算機負荷テーブル１９４Ａおよびクラスタ上中継計算機負荷テーブル１９４Ｂの構成および設定内容は、対象計算機が演算計算機または中継計算機であることを除いて、実施の形態２のクラスタ負荷テーブル１９４と同じである。
【０２００】
図２７は、実施の形態３における各計算機負荷テーブルと各クラスタ負荷テーブルとの関係図である。
【０２０１】
図２７に示すように、クラスタ上演算計算機負荷テーブル１９４Ａには、各周期における演算計算機の空きＣＰＵ時間がクラスタ毎に設定される。クラスタ上演算計算機負荷テーブル１９４Ａに設定される各周期における空きＣＰＵ時間は、当該周期における各演算計算機の空きＣＰＵ時間の和である。各演算計算機の空きＣＰＵ時間は各クラスタのクラスタ負荷収集部１１２Ｂにより演算計算機負荷テーブル１９３Ａを用いて管理される。
【０２０２】
図２７に示すように、クラスタ上中継計算機負荷テーブル１９４Ｂには、各周期における中継計算機の空きＣＰＵ時間がクラスタ毎に設定される。クラスタ上中継計算機負荷テーブル１９４Ｂに設定される各周期における空きＣＰＵ時間は、当該周期における各中継計算機の空きＣＰＵ時間の和である。各中継計算機の空きＣＰＵ時間は各クラスタのクラスタ負荷収集部１１２Ｂにより中継計算機負荷テーブル１９３Ｂで管理される。
【０２０３】
図２８は、実施の形態３における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）の概要図である。
実施の形態３における計算機リソース制御システム１００の計算機負荷収集処理（空きＣＰＵ時間）について、図２８に基づいて以下に説明する。
【０２０４】
実施の形態３における計算機負荷収集処理（空きＣＰＵ時間）は、実施の形態２（図２２参照）に対して、クラスタの空きＣＰＵ時間が各演算計算機の空きＣＰＵ時間と各中継計算機の空きＣＰＵ時間とに分けて算出される点が異なる。
【０２０５】
（１）各計算機の計算機負荷監視部１０１は、実施の形態１で説明したように、自計算機で最も優先度が低いプロセス（最低優先度プロセス）の処理周期における空きＣＰＵ時間を算出する。
【０２０６】
（２ｂ）各計算機の計算機負荷監視部１０１は、実施の形態２で説明したように、自計算機が属するクラスタのクラスタ負荷収集部１１２Ｂに自計算機の空きＣＰＵ時間と空きＣＰＵ時間の周期（最低優先度プロセスの処理周期）とを通知する。
【０２０７】
（３ｃ−１）各クラスタのクラスタ負荷収集部１１２Ｂは、実施の形態２と同様に、自クラスタの各演算計算機の計算機負荷監視部１０１から通知された演算計算機の空きＣＰＵ時間および空きＣＰＵ時間の周期に基づいて、各周期における各演算計算機の空きＣＰＵ時間を算出する。クラスタ負荷収集部１１２Ｂは、算出した各空きＣＰＵ時間を演算計算機負荷テーブル１９３Ａ（図２５参照）に保持する。
さらに、各クラスタのクラスタ負荷収集部１１２Ｂは、実施の形態２と同様に、自クラスタの各中継計算機の計算機負荷監視部１０１から通知された中継計算機の空きＣＰＵ時間および空きＣＰＵ時間の周期に基づいて、各周期における各中継計算機の空きＣＰＵ時間を算出する。クラスタ負荷収集部１１２Ｂは、算出した各空きＣＰＵ時間を中継計算機負荷テーブル１９３Ｂ（図２５参照）に保持する。
【０２０８】
（３ｃ−２）各クラスタのクラスタ負荷収集部１１２Ｂは、実施の形態２と同様に、演算計算機負荷テーブル１９３Ａに保持する各演算計算機の周期毎の空きＣＰＵ時間に基づいて、演算計算機について自クラスタの周期毎の空きＣＰＵ時間を算出する。
さらに、各クラスタのクラスタ負荷収集部１１２Ｂは、実施の形態２と同様に、中継計算機負荷テーブル１９３Ｂに保持する各中継計算機の周期毎の空きＣＰＵ時間に基づいて、中継計算機について自クラスタの周期毎の空きＣＰＵ時間を算出する。
【０２０９】
（４ｃ）各クラスタのクラスタ負荷収集部１１２Ｂは、演算計算機と中継計算機とのそれぞれについて自クラスタの周期毎の空きＣＰＵ時間をシステムのシステム構成管理部１２２に通知する。
【０２１０】
（５ｃ）システムのシステム構成管理部１２２は、各クラスタのクラスタ負荷収集部１１２Ｂから演算計算機について通知された各クラスタの周期毎の空きＣＰＵ時間をクラスタ上演算計算機負荷テーブル１９４Ａ（図２６参照）を用いて管理する。
さらに、システムのシステム構成管理部１２２は、各クラスタのクラスタ負荷収集部１１２Ｂから中継計算機について通知された各クラスタの周期毎の空きＣＰＵ時間をクラスタ上中継計算機負荷テーブル１９４Ｂ（図２６参照）を用いて管理する。
【０２１１】
図２９は、実施の形態３における計算機リソース制御システム１００の計算機リソース制御方法を示すフローチャートである。
実施の形態３における計算機リソース制御システム１００の計算機リソース制御方法について、図２９に基づいて以下に説明する。
【０２１２】
実施の形態３における計算機リソース制御システム１００の計算機リソース制御方法は、実施の形態２（図２３参照）に対して、クラスタの空きＣＰＵ時間が演算計算機と中継計算機とに分けて算出される点が異なる。
【０２１３】
ステップＳ１００１〜ステップＳ１００５ｃは計算機負荷収集処理（空きＣＰＵ時間）（図２８参照）に相当する。
【０２１４】
ステップＳ１００１において、各計算機の計算機負荷監視部１０１は、自計算機の空きＣＰＵ時間を定期的に算出する（図２８（１））。
【０２１５】
ステップＳ１００２ｂにおいて、各計算機の計算機負荷監視部１０１は、自計算機の空きＣＰＵ時間と空きＣＰＵ時間の周期とを自クラスタのクラスタ負荷収集部１１２Ｂに通知する（図２８（２ｂ））。
【０２１６】
ステップＳ１００３ｃ−１において、各クラスタのクラスタ負荷収集部１１２Ｂは、各計算機のクラスタ負荷収集部１１２Ｂから通知された計算機の空きＣＰＵ時間および空きＣＰＵ時間の周期に基づいて、各周期における各演算計算機の空きＣＰＵ時間および各中継計算機の空きＣＰＵ時間を算出する。クラスタ負荷収集部１１２Ｂは、算出した各空きＣＰＵ時間を演算計算機負荷テーブル１９３Ａまたは中継計算機負荷テーブル１９３Ｂに保持する（図２８（３ｃ−１））。
【０２１７】
ステップＳ１００３ｃ−２において、各クラスタのクラスタ負荷収集部１１２Ｂは、演算計算機負荷テーブル１９３Ａに保持する各演算計算機の周期毎の空きＣＰＵ時間と中継計算機負荷テーブル１９３Ｂに保持する各中継計算機の周期毎の空きＣＰＵ時間とに基づいて、演算計算機と中継計算機とのそれぞれについて自クラスタの周期毎の空きＣＰＵ時間を算出する（図２８（３ｃ−２））。
【０２１８】
ステップＳ１００４ｃにおいて、各クラスタのクラスタ負荷収集部１１２Ｂは、演算計算機と中継計算機とのそれぞれについて自クラスタの周期毎の空きＣＰＵ時間をシステムのシステム構成管理部１２２に通知する（図２８（４ｃ））。
【０２１９】
ステップＳ１００５ｃにおいて、システム構成管理部１２２は、演算計算機と中継計算機とのそれぞれについて各クラスタの周期毎の空きＣＰＵ時間をクラスタ上演算計算機負荷テーブル１９４Ａまたはクラスタ上中継計算機負荷テーブル１９４Ｂに保持する（図２８（５ｃ））。
【０２２０】
ステップＳ１０１１〜ステップＳ１０１５は、実施の形態１と同じである。
【０２２１】
ステップＳ１００のプロセス再配置処理は、実施の形態２（図２４参照）と同様である。
但し、クラスタ間プロセス移行処理（Ｓ１２０）が一部異なる。
【０２２２】
図３０は、実施の形態３におけるクラスタ間プロセス移行処理（Ｓ１２０）のフローチャートである。
実施の形態３におけるクラスタ間プロセス移行処理（Ｓ１２０）について、図３０に基づいて以下に説明する。
【０２２３】
実施の形態３におけるクラスタ間プロセス移行処理（Ｓ１２０）は、実施の形態２（図２４参照）のステップＳ１２１ｂをステップＳ１２１ｃに変更し、ステップＳ１２２ｂ−１〜ステップＳ１２２ｂ−４をステップＳ１２２ｃ−１〜ステップＳ１２２ｃ−４に変更したものである。
【０２２４】
ステップＳ１２１ｃにおいて、移行プロセス決定部１１１Ｂは、クラスタ内に配置可能でない時間超過パイプラインと各中継計算機で動作する必要がある時間超過プロセス（時間超過中継プロセス）に要するＣＰＵ時間の総和とその他の時間超過プロセスに要するＣＰＵ時間の総和とを移行クラスタ決定部１２１に通知する。
時間超過中継プロセスとは、時間超過パイプラインを構成する各プロセスのうち先頭プロセスおよび最終プロセスのことである。
以下、時間超過中継プロセス以外の時間超過プロセスを「時間超過演算プロセス」という。
ステップＳ１２１ｃの後、ステップＳ１２２ｃ−１に進む。
【０２２５】
ステップＳ１２２ｃ−１において、移行クラスタ決定部１２１は、各時間超過中継プロセスに要するＣＰＵ時間の総和より大きい空きＣＰＵ時間を中継計算機に持ち、且つ、各時間超過演算プロセスに要するＣＰＵ時間の総和より大きい空きＣＰＵ時間を演算計算機に持つクラスタを第一条件クラスタとして特定する。
第一条件クラスタの空きＣＰＵ時間の周期は、時間超過パイプラインの処理周期より短い周期でも、長い周期（同じ周期を含む）でも構わない。
演算計算機と中継計算機とのそれぞれについて各クラスタの周期毎の空きＣＰＵ時間は、システム構成管理部１２２のクラスタ上演算計算機負荷テーブル１９４Ａまたはクラスタ上中継計算機負荷テーブル１９４Ｂに保持される。
ステップＳ１２２ｃ−１の後、ステップＳ１２２ｃ−２に進む。
【０２２６】
ステップＳ１２２ｃ−２において、第一条件クラスタが有る場合（ＹＥＳ）、ステップＳ１２２ｃ−３に進む。
第一条件クラスタが無い場合（ＮＯ）、クラスタ間プロセス移行処理（Ｓ１２０）は終了する。
【０２２７】
ステップＳ１２２ｃ−３において、移行クラスタ決定部１２１は、各第一条件クラスタのうち時間超過パイプラインの処理周期より短い周期において、特定の中継計算機と特定の演算計算機とを有するクラスタを第二条件クラスタとして特定する。
特定の中継計算機とは、各時間超過中継プロセスに要するＣＰＵ時間の総和より大きい空きＣＰＵ時間を持つ中継計算機のことである。
特定の演算計算機とは、各時間超過演算プロセスに要するＣＰＵ時間の総和より大きい空きＣＰＵ時間を持つ演算計算機のことである。
ステップＳ１２２ｃ−３の後、ステップＳ１２２ｃ−４に進む。
【０２２８】
ステップＳ１２２ｃ−４において、移行クラスタ決定部１２１は、第二条件クラスタおよび空きＣＰＵ時間の大きいクラスタを優先して各第一条件クラスタからクラスタを一つ選択する。
例えば、移行クラスタ決定部１２１は、未選択の各第二条件クラスタのうち演算計算機の空きＣＰＵが最も大きいクラスタを選択する。
ステップＳ１２２ｃ−４の後、ステップＳ１２３に進む。
【０２２９】
ステップＳ１２３以降は、実施の形態１と同様である。
【０２３０】
移行クラスタ決定部１２１は選択したクラスタの移行プロセス決定部１１１Ｂに時間超過パイプラインの配置を指示し（Ｓ１２３）、移行プロセス決定部１１１Ｂは時間超過パイプラインをクラスタ内に配置可能か調査する（Ｓ１２４）。
時間超過パイプラインをクラスタ内に配置可能な場合（Ｓ１２５「ＹＥＳ」）、クラスタ間プロセス起動・停止処理（Ｓ１３０）が実行される。
時間超過パイプラインをクラスタ内に配置可能でない場合（Ｓ１２５「ＮＯ」）、未選択の第一条件クラスタが残っていれば（Ｓ１２６「ＹＥＳ」）、ステップＳ１２２ｃ−４に戻る。ステップＳ１２２ｃ−４において、移行クラスタ決定部１２１は、未選択の各第一条件クラスタからクラスタを一つ選択する。
未選択の第一条件クラスタが残っていなければ（Ｓ１２６「ＮＯ」）、クラスタ間プロセス移行処理（Ｓ１２０）は終了する。
【０２３１】
実施の形態３において、例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００に以下の特徴を加えることにより、プロセス群の再配置の所要時間をより短縮可能とする。
・クラスタ負荷収集部１１２Ｂは、クラスタ内の各計算機の空きＣＰＵ時間を収集するとともに、クラスタ間でデータを中継する計算機の空きＣＰＵ時間の総量、前記計算機以外の計算機の空きＣＰＵ時間の総量を求め、それぞれをシステム構成管理部１２２に通知する。
・システム構成管理部１２２は、各クラスタ上で動作するクラスタ負荷収集部１１２Ｂより、各クラスタにおける、クラスタ間でデータを中継する計算機の空きＣＰＵ時間の総量、前記計算機以外の計算機の空きＣＰＵ時間の総量を収集し、保持する。
・移行クラスタ決定部１２１は、システム構成管理部１２２が持つ、クラスタ間でデータを中継する計算機の空きＣＰＵ時間が、プロセス群再配置に必要な空きＣＰＵ時間以上であるクラスタをプロセス群の再配置候補とする。
【０２３２】
計算機システム１は、パイプライン処理の両端のプロセスを中継計算機に配置する必要がある。そこで、計算機リソース制御システム１００は、各クラスタの中継計算機の空きＣＰＵ時間も保持し、中継計算機に十分な空きＣＰＵ時間があるクラスタからプロセス群の移行先として調査していく。これにより、中継計算機の負荷が高い場合において、より短時間で再配置先クラスタを決定することができる。
【０２３３】
また例えば、以下のような計算機リソース制御システム１００について説明した。
各クラスタは、複数の単位処理から成る特定処理の所定の単位処理（先頭プロセス、最終プロセス）を実行する特定計算機（中継計算機）と特定計算機以外の通常計算機（演算計算機）とを有する。
クラスタ空き時間管理部（システム構成管理部１２２）は、各クラスタのＣＰＵ空き時間を前記特定計算機のＣＰＵ空き時間と前記通常計算機のＣＰＵ空き時間とに分けて管理する。
実行可能クラスタ判定部（移行クラスタ決定部１２１）は、前記特定処理（時間超過パイプライン）の処理周期における特定計算機のＣＰＵ空き時間が、前記所定の単位処理に要するＣＰＵ使用時間以上であるクラスタから先に実行可能クラスタであるか判定する。
【０２３４】
実施の形態４．
時間超過パイプラインをいずれのクラスタにも配置できない場合、時間超過パイプライン以外のパイプライン処理を他のクラスタに配置して以後の時間超過を防ぐ形態について説明する。
以下、実施の形態１〜３と異なる事項について主に説明する。説明を省略する事項は実施の形態１〜３と同様である。
【０２３５】
図３１は、実施の形態４における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）のフローチャートである。
実施の形態４における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）について、図３１に基づいて以下に説明する。
【０２３６】
実施の形態４における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）は、実施の形態１（図１５参照）にステップＳ１０４および他プロセス移行処理（Ｓ２００）を加えたものである。
【０２３７】
ステップＳ１０４において、クラスタ間プロセス処理（Ｓ１２０）により時間超過パイプラインを他のクラスタに配置できた場合（ＹＥＳ）、プロセス再配置処理（Ｓ１００）は終了する。
クラスタ間プロセス処理（Ｓ１２０）により時間超過パイプラインを他のクラスタに配置できなかった場合（ＮＯ）、時間超過パイプライン以外のパイプライン処理を他のクラスタに配置する他プロセス移行処理（Ｓ２００）に進む。他プロセス移行処理（Ｓ２００）によりプロセス再配置処理（Ｓ１００）は終了する。
【０２３８】
図３２は、実施の形態４における他プロセス移行処理（Ｓ２００）のフローチャートである。
実施の形態４における他プロセス移行処理（Ｓ２００）について、図３２に基づいて以下に説明する。
【０２３９】
ステップＳ２０１において、移行クラスタ決定部１２１は、時間超過パイプライン以外のパイプライン処理を他のクラスタに配置するパイプライン処理として選択することを指示する。
以下、他のクラスタに配置するパイプライン処理を「移行パイプライン」という。
ステップＳ２０１の後、時間超過が解消する移行パイプラインの有無を調査する移行パイプライン調査処理（Ｓ３００）に進む。
【０２４０】
移行パイプライン調査処理（Ｓ３００）については後述する。
移行パイプライン調査処理（Ｓ３００）後、ステップＳ２０２に進む。
【０２４１】
ステップＳ２０２において、１つ以上の移行パイプライン（移行パイプライン群）が有る場合（ＹＥＳ）、ステップＳ２０３に進む。
移行パイプライン群が無い場合（ＮＯ）、他プロセス移行処理（Ｓ２００）は終了する。
【０２４２】
ステップＳ２０３において、移行クラスタ決定部１２１は、移行パイプライン群からパイプライン処理を１つ選択する。以下、ステップＳ２０３で選択されたパイプライン処理を「移行パイプライン」という。
ステップＳ２０３の後、ステップＳ２０４に進む。
【０２４３】
ステップＳ２０４において、移行クラスタ決定部１２１は、各クラスタの移行プロセス決定部１１１Ｂに移行パイプラインの配置を指示する。
ステップＳ２０４の後、ステップＳ２０５に進む。
【０２４４】
ステップＳ２０５において、各クラスタの移行プロセス決定部１１１Ｂは、時間超過パイプラインの配置調査（Ｓ１０２）と同様に、移行パイプラインをクラスタ内に配置可能か調査する。
ステップＳ２０５の後、ステップＳ２０６に進む。
【０２４５】
ステップＳ２０６において、移行パイプラインを他のクラスタに配置可能な場合（ＹＥＳ）、ステップＳ２０７に進む。
移行パイプラインを他のクラスタに配置可能でない場合（ＮＯ）、他プロセス移行処理（Ｓ２００）は終了する。
【０２４６】
ステップＳ２０４〜ステップＳ２０６は、ステップＳ１２２〜ステップＳ１２６（図１６参照）と同様に、クラスタを一つずつ選択し、選択したクラスタに移行パイプラインを配置可能か判定する処理であってもよい。
【０２４７】
ステップＳ２０７において、移行パイプライン群に未選択の移行パイプラインが残っている場合（ＹＥＳ）、ステップＳ２０３に戻る。ステップＳ２０３において、移行クラスタ決定部１２１は未選択の移行パイプラインを選択する。
未選択の移行パイプラインが残っていない場合（ＮＯ）、つまり、移行パイプライン群をシステム内に配置可能な場合、ステップＳ２０８に進む。
【０２４８】
ステップＳ２０８において、クラスタ間プロセス起動・停止処理（Ｓ１３０）と同様に、各移行パイプラインの各プロセス（移行プロセス）を配置する各計算機（移行先計算機）の資源割当部１０２は移行プロセスを起動し、移行プロセスが動作していた計算機（移行元計算機）の資源割当部１０２は移行プロセスを停止する。
ステップＳ２０８により他プロセス移行処理（Ｓ２００）は終了する。
【０２４９】
図３３は、実施の形態４における移行パイプライン調査処理（Ｓ３００）のフローチャートである。
実施の形態４における移行パイプライン調査処理（Ｓ３００）について、図３３に基づいて以下に説明する。
【０２５０】
ステップＳ３０１において、移行プロセス決定部１１１Ｂは、時間超過パイプラインを構成する各プロセスのうち処理時間が定常時処理時間より長かったプロセスを特定する。
各プロセスの定常時処理時間は、プロセス構成定義部１１２Ａにより管理される（図５参照）。
以下、ステップＳ３０１において特定された一つ以上のプロセスを「原因プロセス群」という。
【０２５１】
原因プロセス群を特定する理由は、少なくとも１つのプロセスの処理時間が長時間にわたっている場合にパイプライン処理の制限時間の超過が発生すると考えられるためである。時間超過パイプラインには原因プロセス群が含まれるものとする。
【０２５２】
ステップＳ３０１の後、ステップＳ３０２に進む。
【０２５３】
ステップＳ３０２において、移行プロセス決定部１１１Ｂは、定常時処理時間を超過した時間（処理超過時間）の長い順に原因プロセス群からプロセスを一つ選択する。
処理超過時間は、実際に要した処理時間の値から定常時処理時間の値を引いて得られる値である。
以下、ステップＳ３０２で選択されたプロセスを「原因プロセス」という。
【０２５４】
原因プロセスを処理超過時間の長い順に選択することにより、他のクラスタに配置する移行プロセスの数を少なくすることができる。
【０２５５】
ステップＳ３０２の後、ステップＳ３０３に進む。
【０２５６】
ステップＳ３０３において、移行プロセス決定部１１１Ｂは、原因プロセスを実行した計算機（時間超過計算機）で動作する各プロセスのうち原因プロセスより優先度が高いプロセスを特定する。
以下、ステップＳ３０３で特定された一つ以上のプロセスを「優先プロセス群」という。
【０２５７】
優先度が低い原因プロセスは優先度が高い優先プロセス群の完了後に実行されるため、優先プロセス群は原因プロセスが定常時処理時間を超過した原因である可能性がある。
【０２５８】
ステップＳ３０３の後、ステップＳ３０４に進む。
【０２５９】
ステップＳ３０４において、優先プロセス群が有る場合（ＹＥＳ）、ステップＳ３０５に進む。
優先プロセス群が無い場合（ＮＯ）、ステップＳ３１１に進む。
【０２６０】
ステップＳ３０５において、移行プロセス決定部１１１Ｂは、原因プロセスの処理周期（時間超過パイプラインの処理周期）におけるＣＰＵ時間（ＣＰＵの占有時間）の長い順に、優先プロセス群からプロセスを一つ選択する。以下、優先プロセス群に含まれる各プロセスを「優先プロセス」という。
【０２６１】
原因プロセスの処理周期におけるＣＰＵ時間が長い優先プロセスは、原因プロセスが定常時処理時間を超過した原因である可能性が高いプロセスである。
【０２６２】
原因プロセスの処理周期における優先プロセスのＣＰＵ時間Ｐは、以下の式（５）で求められる。
式（５）において、時間超過パイプラインの処理周期を「Ｃｘ」、優先プロセスの処理周期を「Ｃｙ」、優先プロセスの一回あたりのＣＰＵ時間を「Ｐｙ」とする。
【０２６３】
【数４】
2010282533.tif 000006
【０２６４】
ステップＳ３０５の後、ステップＳ３０６に進む。
【０２６５】
ステップＳ３０６において、移行プロセス決定部１１１Ｂは、ステップＳ３０５で選択した優先プロセスが属するパイプライン処理を移行パイプライン候補として記憶する。
ステップＳ３０６の後、ステップＳ３０７に進む。
【０２６６】
ステップＳ３０７において、移行プロセス決定部１１１Ｂは、各移行パイプライン候補を動作させなければ時間超過パイプラインの時間超過を解消できるか調査する。
【０２６７】
時間超過プロセスが動作する各計算機が以下の式（６）を満たせば、時間超過パイプラインの時間超過を解消できる。
【０２６８】
【数５】
2010282533.tif 000007
【０２６９】
式（６）において、各計算機で動作するＫ個のプロセスを計算機プロセス「ｑｊ（１≦ｊ≦Ｋ）」とする。計算機プロセスｑｊには各移行パイプライン候補を構成するプロセスは含まない。
計算機プロセスｑｊの制限時間を「Ｄ（ｑｊ）」、計算機プロセスｑｊのＣＰＵ時間を「ＣＰＵ（ｑｊ）」、計算機プロセスｑｊの周期をＣ（ｑｊ）とする。制限時間Ｄ（ｑｊ）はプロセスｑｊが属するパイプライン処理の制限時間に等しく、周期Ｃ（ｑｊ）はプロセスｑｊが属するパイプライン処理の周期に等しい。
時間超過パイプライン処理Ｐを構成するＮ個の時間超過プロセスを「Ｐｉ（１≦ｉ≦Ｎ）」、時間超過プロセスＰｉの処理時間をＥｘｅｃ（Ｐｉ）とする。
時間超過パイプラインの処理周期をＣ（Ｐ）、時間超過パイプラインの制限時間をＤ（Ｐ）、原因プロセスを「Ｐｂ」とする。
【０２７０】
ステップＳ３０７の後、ステップＳ３０８に進む。
【０２７１】
ステップＳ３０８において、時間超過パイプラインの時間超過を解消できる場合（ＹＥＳ）、ステップＳ３０９に進む。
時間超過パイプラインの時間超過を解消できない場合（ＮＯ）、ステップＳ３１０に進む。
【０２７２】
ステップＳ３０９において、移行プロセス決定部１１１Ｂは、各移行パイプライン候補を移行パイプライン群とする。
【０２７３】
ステップＳ３１０において、優先プロセス群に未選択のプロセスが残っている場合（ＹＥＳ）、ステップＳ３０５に戻る。ステップＳ３０５で移行プロセス決定部１１１Ｂは未選択の優先プロセスを選択する。
優先プロセス群に未選択のプロセスが残っていない場合（ＮＯ）、ステップＳ３１１に進む。
【０２７４】
ステップＳ３１１において、原因プロセス群に未選択のプロセスが残っている場合（ＹＥＳ）、ステップＳ３０２に戻る。ステップＳ３０２で移行プロセス決定部１１１Ｂは原因プロセス群から未選択のプロセスを原因プロセスとして選択する。
原因プロセス群に未選択のプロセスが残っていない場合（ＮＯ）、ステップＳ３１２に進む。
【０２７５】
ステップＳ３１２において、移行プロセス決定部１１１Ｂは、移行パイプライン群が無いと判定する。
ステップＳ３１２により、移行パイプライン調査処理（Ｓ３００）は終了する。
【０２７６】
実施の形態４において、例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００に以下の特徴を加えることにより、制限時間の超過を発生させた一連のプロセス群以外の一連のプロセス群を他クラスタに配置する。
・移行クラスタ決定部１２１は、制限時間を超過したプロセス群の他クラスタへの配置が不可能である場合、制限時間を超過したプロセス群が動作するクラスタにて動作する移行プロセス決定部１１１Ｂに対し、他のプロセス群を選択するよう指示する。
・移行プロセス決定部１１１Ｂは、制限時間を超過したプロセス群と同一計算機で動作しているプロセスおよび、そのプロセスと連携して動作するプロセスを他のクラスタに移行させた場合に、制限時間を超過したプロセス群の制限時間の超過が解消されるような、プロセス群を調査、抽出する。
・移行クラスタ決定部１２１は、移行プロセス決定部１１１Ｂが抽出したプロセス群の、他クラスタへの再配置を試行する。
【０２７７】
制限時間の超過が起きたパイプライン処理以外のパイプライン処理を他のクラスタに移行させることにより、制限時間の超過が発生してもシステム全体の処理継続の可能性をより高めることができる。
【０２７８】
また例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００は、非実行特定処理判定部（移行プロセス決定部１１１Ｂ）を所定の計算機に備える。
前記非実行特定処理判定部は、実行可能クラスタ判定部（移行クラスタ決定部１２１）により実行可能クラスタが無いと判定された場合、実行クラスタにより実行される複数の特定処理（パイプライン処理）のうち制限時間内に完了しなかった時間超過特定処理（時間超過パイプライン）以外の特定処理であって実行クラスタにより実行されなければ前記時間超過特定処理が制限時間内に完了する非実行特定処理（移行パイプライン）が有るかＣＰＵを用いて判定する。
実行可能クラスタ判定部（移行クラスタ決定部１２１）は、前記非実行特定処理判定部により非実行特定処理が有ると判定された場合、非実行特定処理を制限時間内に完了する非実行特定処理クラスタが有るか判定する。
クラスタ間計算機群変更部（移行クラスタ決定部１２１）は、前記実行可能クラスタ判定部により非実行特定処理クラスタが有ると判定された場合、非実行特定処理を実行させるクラスタを実行クラスタから非実行特定処理クラスタに変更する。
【０２７９】
実施の形態５．
時間超過パイプラインの一部のプロセスを他のクラスタに配置する形態について説明する。
以下、実施の形態１〜４と異なる事項について主に説明する。説明を省略する事項は実施の形態１〜４と同様である。
【０２８０】
図３４は、実施の形態５における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）のフローチャートである。
実施の形態５における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）について、図３４に基づいて以下に説明する。
【０２８１】
実施の形態５における計算機リソース制御システム１００のプロセス再配置処理（Ｓ１００）は、実施の形態１（図１５参照）のクラスタ間プロセス移行処理（Ｓ１２０）をパイプライン分割移行処理（Ｓ４００）に変更したものである。
【０２８２】
図３５は、実施の形態５におけるパイプライン分割移行処理（Ｓ４００）のフローチャートである。
実施の形態５におけるパイプライン分割移行処理（Ｓ４００）について、図３５に基づいて以下に説明する。
【０２８３】
ステップＳ４１０において、移行プロセス決定部１１１Ｂは、時間超過パイプラインの一部のプロセスを移行プロセス群として決定するパイプライン分割処理を実行する。
【０２８４】
パイプライン分割処理（Ｓ４１０）については後述する。
【０２８５】
移行プロセス群を他のクラスタに配置することにより、時間超過パイプラインの時間超過を解消することができる。
【０２８６】
ステップＳ４１０の後、ステップＳ４０１に進む。
【０２８７】
ステップＳ４０１において、移行プロセス決定部１１１Ｂは、移行プロセス群を移行クラスタ決定部１２１に通知する。
ステップＳ４０１の後、ステップＳ４０２に進む。
【０２８８】
ステップＳ４０２において、移行クラスタ決定部１２１は、各クラスタの移行プロセス決定部１１１Ｂに移行プロセス群の配置を指示する。
ステップＳ４０２の後、ステップＳ４０３に進む。
【０２８９】
ステップＳ４０３において、各クラスタの移行プロセス決定部１１１Ｂは、時間超過パイプラインの配置調査（Ｓ１０２）と同様に、移行プロセス群をクラスタ内に配置可能か調査する。
ステップＳ４０３の後、ステップＳ４０４に進む。
【０２９０】
ステップＳ４０４において、移行プロセス群を他のクラスタに配置可能な場合（ＹＥＳ）、ステップＳ４０５に進む。
移行プロセス群を他のクラスタに配置可能でない場合（ＮＯ）、パイプライン分割移行処理（Ｓ４００）は終了する。
【０２９１】
ステップＳ４０２〜ステップＳ４０４は、ステップＳ１２２〜ステップＳ１２６（図１６参照）と同様に、クラスタを一つずつ選択し、選択したクラスタに移行プロセス群を配置可能か判定する処理であってもよい。
【０２９２】
ステップＳ４０５において、クラスタ間プロセス起動・停止処理（Ｓ１３０）と同様に、各移行プロセス群の各プロセス（移行プロセス）を配置する各計算機（移行先計算機）の資源割当部１０２は移行プロセスを起動し、移行プロセスが動作していた計算機（移行元計算機）の資源割当部１０２は移行プロセスを停止する。
ステップＳ４０５によりパイプライン分割移行処理（Ｓ４００）は終了する。
【０２９３】
図３６は、実施の形態５におけるパイプライン分割処理（Ｓ４１０）のフローチャートである。
実施の形態５におけるパイプライン分割処理（Ｓ４１０）について、図３６に基づいて以下に説明する。
【０２９４】
ステップＳ４１１において、移行プロセス決定部１１１Ｂは、時間超過パイプラインから処理順にプロセスを１つ選択する。
以下、ステップＳ４１１で選択されたプロセスを「選択プロセス」という。
ステップＳ４１１の後、ステップＳ４１２に進む。
【０２９５】
ステップＳ４１２において、移行プロセス決定部１１１Ｂは、時間超過パイプラインの先頭プロセスから選択プロセスまでのプロセス群について、定常時処理時間と時間超過が発生したときに要した処理時間（超過時処理時間）との差を「処理時間差」として算出する。各プロセスの定常時処理時間は、プロセス構成定義部１１２Ａにより管理される（図５参照）。
以下、定常時処理時間から超過時処理時間を引いた時間を処理時間差とする。
【０２９６】
処理時間差は、以下の式（７）により求められる。
式（７）において、時間超過パイプライン内での選択プロセスの処理の順番を「Ｎ」、時間超過パイプラインのｉ番目のプロセスＰｉの定常時処理時間を「Ｓ（Ｐｉ）」、プロセスＰｉの超過時処理時間を「Ｅｘｅｃ（Ｐｉ）」とする。
【０２９７】
【数６】
2010282533.tif 000008
【０２９８】
ステップＳ４１２の後、ステップＳ４１３に進む。
【０２９９】
ステップＳ４１３において、処理時間差が負の値である場合、つまり、超過時処理時間が定常時処理時間を超えている場合（ＹＥＳ）、ステップＳ４１４に進む。
処理時間差が正の値である場合、つまり、超過時処理時間が定常時処理時間を超えていない場合（ＮＯ）、ステップＳ４１５に進む。
【０３００】
ステップＳ４１４において、移行プロセス決定部１１１Ｂは、選択プロセスの識別名を「原因プロセス名」として記憶する。
以下、原因プロセス名により識別されるプロセスを「原因プロセス」という。
ステップＳ４１４の後、ステップＳ４１６に進む。
【０３０１】
ステップＳ４１５において、移行プロセス決定部１１１Ｂは、各原因プロセス名を削除する。
ステップＳ４１５の後、ステップＳ４１６に進む。
【０３０２】
ステップＳ４１６において、時間超過パイプラインに未選択のプロセスが残っている場合（ＹＥＳ）、ステップＳ４１１に戻る。
時間超過パイプラインに未選択のプロセスが残っていない場合（ＮＯ）、ステップＳ４１７に進む。
【０３０３】
ステップＳ４１７において、移行プロセス決定部１１１Ｂは、各原因プロセスに基づいて移行プロセス群を決定する。
例えば、移行プロセス決定部１１１Ｂは、各原因プロセスのうち処理順が最も早いプロセス（先頭原因プロセス）から時間超過パイプラインの最終プロセスまでのプロセス群を移行プロセス群とする。
また例えば、移行プロセス決定部１１１Ｂは、時間超過パイプラインの先頭プロセスから先頭原因プロセスまでのプロセス群と、先頭原因プロセスから時間超過パイプラインの最終プロセスまでのプロセス群とのうち超過時処理時間が短い方のプロセス群を移行プロセス群とする。
ステップＳ４１７により、パイプライン分割処理（Ｓ４１０）は終了する。
【０３０４】
図３７は、実施の形態５におけるパイプライン分割処理（Ｓ４１０）の概要図である。
パイプライン分割処理（Ｓ４１０）で決定される移行プロセス群の具体例について、図３７に基づいて以下に説明する。
【０３０５】
時間超過パイプラインのうちプロセス７−２およびプロセス７−４で定常時処理時間より超過時処理時間の方が長くなるものとする。
【０３０６】
１番目のプロセス７−１は定常時の処理時間内に終了した。プロセス７−１では定常時処理時間が超過時処理時間より長く、プロセス７−１は時間超過の原因プロセスとして記憶されない。
２番目のプロセス７−２は長い処理時間を要した。プロセス７−２では超過時処理時間の方が長く、プロセス７−２は原因プロセスとして記憶される。
３番目のプロセス７−３は短時間で終了した。プロセス７−３では定常時処理時間の方が長く、プロセス７−３は原因プロセスとして記憶されない。また、プロセス７−３の終了時点では処理時間の超過が起きていないため、プロセス７−２は原因プロセスから削除される。
４番目のプロセス７−４は長い処理時間を要した。プロセス７−４では超過時処理時間の方が長く、プロセス７−４は原因プロセスとして記憶される。
５番目のプロセス７−５は時間超過パイプラインの最終プロセスであるため、プロセス７−５では超過時処理時間の方が長く、プロセス７−５は原因プロセスとして記憶される。
【０３０７】
したがって、プロセス７−４およびプロセス７−５が原因プロセスとして記憶される。
【０３０８】
例えば、原因プロセスとして記憶されたプロセス７−４およびプロセス７−５が移行プロセス群となる。
また例えば、プロセス７−１（先頭プロセス）〜プロセス７−４（先頭原因プロセス）とプロセス７−４（先頭原因プロセス）〜プロセス７−５（最終プロセス）とのうち、超過時処理時間の短い方が移行プロセス群となる。
【０３０９】
実施の形態５において、実施の形態２や実施の形態３のように、時間超過パイプラインの制限時間内に必要な空きＣＰＵ時間を有するクラスタから先に移行プロセス群を配置できるか判定してもよい。
また、実施の形態４のように、時間超過パイプラインを他のクラスタに配置できない場合に他のパイプライン処理（または、他のパイプライン処理の一部のプロセス）を移行プロセス群として他のクラスタに配置してもよい。
【０３１０】
実施の形態５において、例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００に以下の特徴を加えることにより、制限時間の超過を発生させた一連のプロセス群のうちの一部を他クラスタに配置することを可能とした。
・移行プロセス決定部１１１Ｂは、制限時間を超過した一連のプロセス群の中で、制限時間の超過が発生したクラスタで動作可能なプロセス群のみ前記のクラスタで動作させ、それ以外のプロセス群を他のクラスタに移行させるよう指示する。
【０３１１】
制限時間の超過が発生したパイプライン処理を分割することにより、他のクラスタに移行させるプロセス数を最小限に留めることができる。これにより、他のクラスタの空きＣＰＵ時間が少なくともシステム全体の動作継続が可能となる。さらに、プロセスの停止、起動の回数が削減されるため、パイプライン処理の移行に要する時間も削減可能となる。
【０３１２】
また例えば、以下のような計算機リソース制御システム１００について説明した。
計算機リソース制御システム１００は、非実行単位処理判定部（移行プロセス決定部１１１Ｂ）を所定の計算機に備える。
前記非実行単位処理判定部は、実行可能クラスタ判定部（移行クラスタ決定部１２１）により実行可能クラスタが無いと判定された場合、複数の単位処理（プロセス）から成る特定処理（時間超過パイプライン）の単位処理であって実行クラスタにより実行されなければ特定処理が制限時間内に完了する非実行単位処理（移行プロセス群）が有るかＣＰＵを用いて判定する。
前記実行可能クラスタ判定部は、非実行単位処理判定部により非実行単位処理が有ると判定された場合、非実行単位処理を制限時間内に完了する非実行単位処理クラスタが有るか判定する。
クラスタ間計算機群変更部（移行クラスタ決定部１２１）は、実行可能クラスタ判定部により非実行単位処理クラスタが有ると判定された場合、非実行単位処理を実行させるクラスタを実行クラスタから非実行単位処理クラスタに変更する。
【符号の説明】
【０３１３】
１  計算機システム、２  計算機クラスタ、３  ネットワーク、４  ネットワーク、５  中継計算機、６  演算計算機、７  プロセス、８  パイプライン処理、１００  計算機リソース制御システム、１０１  計算機負荷監視部、１０２  資源割当部、１１１Ａ  処理時間収集部、１１２Ａ  プロセス構成定義部、１１１Ｂ  移行プロセス決定部、１１２Ｂ  クラスタ負荷収集部、１２１  移行クラスタ決定部、１２２  システム構成管理部、１９１  プロセス定義テーブル、１９２  パイプライン処理定義テーブル、１９３  計算機負荷テーブル、１９３Ａ  演算計算機負荷テーブル、１９３Ｂ  中継計算機負荷テーブル、１９４  クラスタ負荷テーブル、１９４Ａ  クラスタ上演算計算機負荷テーブル、１９４Ｂ  クラスタ上中継計算機負荷テーブル、９０４  ドライブ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２３  プログラム群、９２４  ファイル群。
【図１】
2010282533.tif 000009
【図２】
2010282533.tif 000010
【図３】
2010282533.tif 000011
【図４】
2010282533.tif 000012
【図５】
2010282533.tif 000013
【図６】
2010282533.tif 000014
【図７】
2010282533.tif 000015
【図８】
2010282533.tif 000016
【図９】
2010282533.tif 000017
【図１０】
2010282533.tif 000018
【図１１】
2010282533.tif 000019
【図１２】
2010282533.tif 000020
【図１３】
2010282533.tif 000021
【図１４】
2010282533.tif 000022
【図１５】
2010282533.tif 000023
【図１６】
2010282533.tif 000024
【図１７】
2010282533.tif 000025
【図１８】
2010282533.tif 000026
【図１９】
2010282533.tif 000027
【図２０】
2010282533.tif 000028
【図２１】
2010282533.tif 000029
【図２２】
2010282533.tif 000030
【図２３】
2010282533.tif 000031
【図２４】
2010282533.tif 000032
【図２５】
2010282533.tif 000033
【図２６】
2010282533.tif 000034
【図２７】
2010282533.tif 000035
【図２８】
2010282533.tif 000036
【図２９】
2010282533.tif 000037
【図３０】
2010282533.tif 000038
【図３１】
2010282533.tif 000039
【図３２】
2010282533.tif 000040
【図３３】
2010282533.tif 000041
【図３４】
2010282533.tif 000042
【図３５】
2010282533.tif 000043
【図３６】
2010282533.tif 000044
【図３７】
2010282533.tif 000045