(57)【特許請求の範囲】
【請求項１】
直接網で接続された複数のノードに実行させるジョブを管理する情報処理装置において、
実行中のジョブそれぞれを候補ジョブとし、ジョブを実行していない空きノードから選択された移動先ノードに前記候補ジョブを移動させるマイグレーションを実施することで、空きノードが連続する範囲を拡大できる場合、前記候補ジョブの前記移動先ノードへのマイグレーションをマイグレーション候補として特定する特定手段と、
前記マイグレーション候補が複数あるとき、複数の前記マイグレーション候補それぞれの、前記マイグレーション候補に示されるマイグレーションを実施する際の通信量と、該マイグレーションで移動する前記候補ジョブの実行に利用するノード数とに基づいて、複数の前記マイグレーション候補の中から実施対象のマイグレーション候補を決定する決定手段と、
を有する情報処理装置。
【請求項２】
前記決定手段は、前記マイグレーション候補に示されるマイグレーションで移動する前記候補ジョブを現在実行しているノードから前記移動先ノードまでの通信のホップ数と、前記候補ジョブが使用するメモリ量とに基づいて、前記通信量を算出する、
請求項１記載の情報処理装置。
【請求項３】
前記決定手段は、
複数の前記マイグレーション候補から、比較対象から除外されていない２つの前記マイグレーション候補を繰り返し抽出して、抽出された前記マイグレーション候補を含むマイグレーション候補対を生成し、
前記マイグレーション候補対に含まれる前記マイグレーション候補それぞれの前記通信量と前記ノード数とに基づいて、ジョブの移動に要する時間を比較する評価値を計算し、
生成された前記マイグレーション候補対ごとに、前記マイグレーション候補対に含まれる２つの前記マイグレーション候補のうち、前記評価値に基づいてジョブの移動に要する時間が他方より長いと評価できる前記マイグレーション候補を、比較対象から除外し、
比較対象から除外されずに最後に残った前記マイグレーション候補を、実施対象のマイグレーション候補に決定する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記決定手段は、
前記マイグレーション候補対に含まれる２つの前記マイグレーション候補それぞれのマイグレーションを実施する際の通信量を比較する第１の評価値を計算すると共に、該２つの前記マイグレーション候補それぞれの前記候補ジョブの実行に利用するノード数と、マイグレーションを実施する際の通信量とを比較する第２の評価値を計算し、
前記第１の評価値に基づいて、前記マイグレーション候補対に含まれる２つの前記マイグレーション候補のうち、ジョブの移動に要する時間が他方より短い前記マイグレーション候補を決定するための第１の評価を行い、前記第１の評価値が決定するための基準を満たさない場合は、前記第２の評価値に基づいて、ジョブの移動に要する時間が他方より短い前記マイグレーション候補を決定するための第２の評価を行う、
請求項３記載の情報処理装置。
【請求項５】
前記決定手段は、
前記マイグレーション候補対に含まれる第１のマイグレーション候補に示されるマイグレーションを実施する際の第１の通信量と、前記マイグレーション候補対に含まれる第２のマイグレーション候補に示されるマイグレーションを実施する際の第２の通信量とを求め、
前記第１のマイグレーション候補に示されるマイグレーションで移動する第１の候補ジョブの実行に利用する第１のノード数と、前記第２のマイグレーション候補に示されるマイグレーションで移動する第２の候補ジョブの実行に利用する第２のノード数とを求め、
前記第２の通信量を前記第１の通信量で除算した値である通信量係数を前記第１の評価値とし、
前記第２のノード数を前記第１のノード数で除算した値であるノード数係数と、前記通信量係数とを加算した加算値を前記第２の評価値とする、
請求項４記載の情報処理装置。
【請求項６】
前記実施対象のマイグレーション候補に基づいてマイグレーションを実施した場合における、前記候補ジョブの実行効率が低下する度合いを示す損失稼働率と、該マイグレーションを実施した場合における前記候補ジョブ以外のジョブの実行効率が向上する度合いを示す有効稼働率とを算出し、前記損失稼働率が前記有効稼働率より小さい場合には、前記実施対象のマイグレーション候補のマイグレーションの実施が有効であると判定する判定手段をさらに有する、
請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
直接網で接続された複数のノードに実行させるジョブを管理する情報処理装置が、
実行中のジョブそれぞれを候補ジョブとし、ジョブを実行していない空きノードから選択された移動先ノードに前記候補ジョブを移動させるマイグレーションを実施することで、空きノードが連続する範囲を拡大できる場合、前記候補ジョブの前記移動先ノードへのマイグレーションをマイグレーション候補として特定し、
前記マイグレーション候補が複数あるとき、複数の前記マイグレーション候補それぞれの、前記マイグレーション候補に示されるマイグレーションを実施する際の通信量と、該マイグレーションで移動する前記候補ジョブの実行に利用するノード数とに基づいて、複数の前記マイグレーション候補の中から実施対象のマイグレーション候補を決定する、
ジョブ管理方法。
【請求項８】
直接網で接続された複数のノードに実行させるジョブを情報処理装置に管理させるジョブ管理プログラムにおいて、
前記情報処理装置に、
実行中のジョブそれぞれを候補ジョブとし、ジョブを実行していない空きノードから選択された移動先ノードに前記候補ジョブを移動させるマイグレーションを実施することで、空きノードが連続する範囲を拡大できる場合、前記候補ジョブの前記移動先ノードへのマイグレーションをマイグレーション候補として特定し、
前記マイグレーション候補が複数あるとき、複数の前記マイグレーション候補それぞれの、前記マイグレーション候補に示されるマイグレーションを実施する際の通信量と、該マイグレーションで移動する前記候補ジョブの実行に利用するノード数とに基づいて、複数の前記マイグレーション候補の中から実施対象のマイグレーション候補を決定する、
処理を実行させるジョブ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ジョブ管理方法およびジョブ管理プログラムに関する。
【背景技術】
【０００２】
大規模ネットワークなどで稼働するコンピュータシステムでは、ジョブを実行して所定の業務を行う場合、ジョブを実行するためのスケジューリングを行って、ジョブを資源（ノード）に割り当てる。
【０００３】
一般的には、ジョブの実行に要する資源量（ノード数、ノードのメモリ量等）と、いつまでにジョブの実行を終了させるかという時間制限とにもとづいて、ジョブの割り当てが行われる。
【０００４】
ジョブ割り当てに関連する技術として、例えば、ノードに存在するエージェントに対して、頻繁に通信するエージェントを同一ノードに移動させる技術がある。
また例えば、使用中のノードを架空の熱源とし、熱源の周囲の空きノードの温度が最も低い空きノードを中心ノードとして、中心ノードから距離の近い空きノードを選択する技術がある。
【０００５】
さらに例えば、現在時刻と割り当て済みのジョブの開始予定時刻との間に亘って複数ノードの一部が空き状態の空き資源を探索し、探索した空き資源にジョブを割り当てる技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２９３７６１号公報
【特許文献２】特開２０１１−２２７７４７号公報
【特許文献３】特開２０１５−１９４９２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ジョブをノードへ割り当てる場合、例えば、割り当てるべきジョブの実行に要するノード数分の空きノードが探索される。ただし、空きノードと、他のジョブを実行中の使用ノードとが混在している状態（フラグメンテーション状態）では、ノード間の通信が確保できずに、その空きノードに対してジョブの割り当てができない可能性がある。
【０００８】
そこで、フラグメンテーション状態が生じる場合では、ジョブのマイグレーションを行って空きノードをまとめ、まとめた分領域が増えた空きノードに対してジョブを割り当てることが行われる。なお、マイグレーションとは、あるノードで実行されるジョブを他のノードで実行させる技術である。
【０００９】
しかし、マイグレーションを行っても、マイグレーションの処理自体に時間がかかると、結果的にシステム全体として稼働率が向上しない場合がある。
１つの側面では、本発明は、稼働率を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、直接網で接続された複数のノードに実行させるジョブを管理する情報処理装置が提供される。この情報処理装置は、特定手段と決定手段とを有する。特定手段は、実行中のジョブそれぞれを候補ジョブとし、ジョブを実行していない空きノードから選択された移動先ノードに候補ジョブを移動させるマイグレーションを実施することで、空きノードが連続する範囲を拡大できる場合、候補ジョブの移動先ノードへのマイグレーションをマイグレーション候補として特定する。決定手段は、マイグレーション候補が複数あるとき、複数のマイグレーション候補それぞれの、マイグレーション候補に示されるマイグレーションを実施する際の通信量と、該マイグレーションで移動する候補ジョブの実行に利用するノード数とに基づいて、複数の前記マイグレーション候補の中から実施対象のマイグレーション候補（Ｍ１）を決定する。
【発明の効果】
【００１１】
１側面によれば、稼働率の向上を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る情報処理装置の機能の一例を示す図である。
【図２】ジョブのスケジューリングを説明するための図である。
【図３】フラグメンテーション状態の一例を示す図である。
【図４】フラグメンテーション状態のときのジョブの割り当ての一例を示す図である。
【図５】マイグレーションの一例を示す図である。
【図６】マイグレーション後のジョブの割り当ての一例を示す図である。
【図７】第２の実施の形態に用いるジョブコントローラのハードウェアの一構成例を示す図である。
【図８】第２の実施の形態に用いるジョブコントローラの機能の一例を示すブロック図である。
【図９】タイムマップの一例を示す図である。
【図１０】マイグレーション最短時間候補を決定するまでの動作の一例を示すフローチャートである。
【図１１】フラグメンテーション状態のときのジョブ投入の一例を示す図である。
【図１２】複数のマイグレーション候補の一例を示す図である。
【図１３】マイグレーション後のジョブの実行の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
［第１の実施の形態］
第１の実施の形態について説明する。図１は、第１の実施の形態に係る情報処理装置の機能の一例を示す図である。情報処理装置１は、直接網で接続された複数のノードに実行させるジョブを管理する。直接網は、相互接続される複数のノードが、内蔵するルータによって直接接続されるネットワークである。直接網には、メッシュ結合、トーラス結合などのネットワークがある。
【００１４】
また情報処理装置１は、ノードで実行されているジョブを、現在実行しているノードとは異なるノードに移動するマイグレーションの機能を有する。また、情報処理装置１は、特定手段１ａ、決定手段１ｂ、および判定手段１ｃを備えている。特定手段１ａ、決定手段１ｂ、および判定手段１ｃは、例えば情報処理装置１内のプロセッサが、各要素に対応する処理が記述されたプログラムを実行することで実現する機能である。
【００１５】
特定手段１ａは、マイグレーション候補（Ｍ１、Ｍ２）を特定する。例えば特定手段１ａは、実行中のジョブそれぞれを候補ジョブとする。そして特定手段１ａは、ジョブを実行していない空きノードから選択された移動先ノードに候補ジョブを移動させるマイグレーションを実施することで、空きノードが連続する範囲を拡大できるか否かを判断する。範囲を拡大できる場合、特定手段１ａは、候補ジョブの移動先ノードへのマイグレーションをマイグレーション候補（Ｍ１、Ｍ２）として特定する。１つの移動ジョブに対して、移動先ノードが異なる複数のマイグレーション候補（Ｍ１、Ｍ２）が存在する場合もある。
【００１６】
なお、特定手段１ａは、空きノードが連続する範囲が、新規に実行するジョブを実行できるまで拡大できたときに、候補ジョブの移動先ノードへのマイグレーションをマイグレーション候補（Ｍ１、Ｍ２）として特定してもよい。例えばトーラスネットワーク上でジョブをノードに割り当てる場合、ジョブを実行するノード間の通信が効率的に行われるように割り当てが行われる。複数のノードで並列実行される並列ジョブの場合、隣接するノード群で実行される。２次元のトーラスネットワークであれば、ジョブは、長方形の領域内の各ノードで実行される。３次元のトーラスネットワークであれば、ジョブは、直方体の領域内の各ノードで実行される。すなわち、特定手段１ａは、現在実行しているジョブのマイグレーションにより、新たに実行するジョブを実行するノード数分の空きノードを包含する長方形または直方体の領域が確保できるときに、そのマイグレーションをマイグレーション候補（Ｍ１、Ｍ２）とする。
【００１７】
決定手段１ｂは、マイグレーション候補（Ｍ１、Ｍ２）が複数あるとき、複数のマイグレーション候補（Ｍ１、Ｍ２）の中から、マイグレーションに要する時間が最短のマイグレーション候補を、実施対象のマイグレーション候補として決定する。例えば決定手段１ｂは、複数のマイグレーション候補（Ｍ１、Ｍ２）それぞれについて、マイグレーション候補（Ｍ１、Ｍ２）に示されるマイグレーションを実施する際の通信量と、マイグレーションで移動する候補ジョブの実行に利用するノード数とを計算する。そして決定手段１ｂは、マイグレーション候補ごとの通信量とノード数とに基づいて、実施対象のマイグレーション候補（Ｍ１）を決定する。
【００１８】
例えば決定手段１ｂは、複数の前記マイグレーション候補から、比較対象から除外されていない２つのマイグレーション候補を繰り返し抽出して、抽出されたマイグレーション候補を含むマイグレーション候補対を生成する。次に、決定手段１ｂは、マイグレーション候補対に含まれるマイグレーション候補それぞれの通信量とノード数とに基づいて、ジョブの移動に要する時間を比較する評価値を計算する。評価値は、例えば、通信量の比とノード数の比との和である。決定手段１ｂは、生成されたマイグレーション候補対ごとに、マイグレーション候補対に含まれる２つの前記マイグレーション候補のうち、評価値に基づいてジョブの移動に要する時間が他方より長いと評価できるマイグレーション候補を、比較対象から除外する。そして決定手段１ｂは、比較対象から除外されずに最後に残ったマイグレーション候補を、実施対象のマイグレーション候補（Ｍ１）に決定する。
【００１９】
判定手段１ｃは、実施対象のマイグレーション候補に示されたマイグレーションを実施した場合の有効性を判定する。例えば判定手段１ｃは、実施対象のマイグレーション候補（Ｍ１）に基づいてマイグレーションを実施した場合における損失稼働率と有効稼働率とを算出する。損失稼働率は、候補ジョブの実行効率が低下する度合いを示す値である。有効稼動率は、マイグレーションを実施した場合における候補ジョブ以外のジョブの実行効率が向上する度合いを示す値である。そして判定手段１ｃは、損失稼働率が有効稼働率より小さい場合には、実施対象のマイグレーション候補のマイグレーションの実施が有効であると判定する。
【００２０】
以下、図１に示す具体例を用いて動作の流れを説明する。
〔ステップＳ１〕時刻Ｔ０以前から、ジョブＡ、Ｂ、Ｃがそれぞれノードに割り当てられて、ジョブＡ、Ｂ、Ｃが実行されている。また、ジョブＡ、Ｂ、Ｃが割り当てられていない空きノードｎ１、ｎ２が散在している。この状態で、時刻Ｔ０において、ジョブＤを投入する場合に、ジョブＡをマイグレーションするものとする。
【００２１】
この場合、特定手段１ａは、空きノードｎ１へのマイグレーションであるマイグレーション候補Ｍ１と、空きノードｎ２へのマイグレーションであるマイグレーション候補Ｍ２とを特定する。
【００２２】
〔ステップＳ２〕決定手段１ｂでは、マイグレーション候補Ｍ１、Ｍ２の内のどちらが、マイグレーションにかかる時間が最短なものかを、評価値にもとづき評価する。この例では、マイグレーション候補Ｍ１の方がマイグレーション候補Ｍ２よりもマイグレーションにかかる時間が短いとすれば、マイグレーション候補Ｍ１を、実施対象のマイグレーション候補に決定する。
【００２３】
〔ステップＳ３〕判定手段１ｃでは、決定手段１ｂで決定されたマイグレーション最短時間候補によるマイグレーションを実際に行った場合に、稼働率が向上するか否かの実施の有効性を判定する。
【００２４】
ここで、ジョブＡを空きノードｎ１へマイグレーションして、新たにできた領域の空きノードｎ３にジョブＤを投入して実行する場合を状態ｓｔ１とする。またマイグレーションを実施せずに、十分な空きノードが確保できるのを待ってジョブＤを投入して実行する場合を状態ｓｔ２とする。判定手段１ｃは、状態ｓｔ１が、状態ｓｔ２よりも稼動率が向上するかどうかにより、状態ｓｔ１が稼働率の向上に有効であるか否かを判定する。この例では、マイグレーション最短時間候補Ｍ１によるマイグレーションの実施が稼働率を向上させると判定したとする。
【００２５】
〔ステップＳ４〕ジョブＡは、マイグレーション候補Ｍ１によって空きノードｎ１へマイグレーションされ、その結果生成された空きノードｎ３に対してジョブＤが投入される。
【００２６】
なお、マイグレーション最短時間候補Ｍ１によるマイグレーションの実施が稼働率を向上させるものでないと、判定手段１ｃで判定された場合は、例えば、状態ｓｔ２のように、ジョブＡのマイグレーションを実施せずに、ジョブＤは、ジョブＣの終了予定時刻Ｔ１から実行される。
【００２７】
このように、情報処理装置１は、マイグレーション候補の中から、評価値にもとづき、マイグレーションにかかる時間が最短の候補を決定し、決定した候補のマイグレーションの実施の有効性を判定する。これにより、マイグレーションにかかる時間が最短で、実施に有効なマイグレーションのみを行うことになるので、稼働率の向上を図ることが可能になる。
【００２８】
なお図１の例では、マイグレーション候補が２つしか示されていないが、３つ以上のマイグレーション候補が存在する場合もある。その場合、決定手段１ｂは、例えば複数のマイグレーション候補から、比較対象から除外されていない２つのマイグレーション候補を繰り返し抽出して、抽出されたマイグレーション候補を含むマイグレーション候補対を生成する。次に決定手段１ｂは、マイグレーション候補対に含まれるマイグレーション候補それぞれの通信量と前記ノード数とに基づいて、ジョブの移動に要する時間を比較する評価値を計算する。次に決定手段１ｂは、生成されたマイグレーション候補対ごとに、マイグレーション候補対に含まれる２つのマイグレーション候補のうち、評価値に基づいてジョブの移動に要する時間が他方より長いと評価できるマイグレーション候補を、比較対象から除外する。そして決定手段１ｂは、比較対象から除外されずに最後に残ったマイグレーション候補を、実施対象のマイグレーション候補Ｍ１に決定する。これにより、多数のマイグレーション候補が存在する場合でも、実施対象のマイグレーション候補を容易に決定できる。
【００２９】
［第２の実施の形態］
次に第２の実施の形態について説明する。第２の実施の形態は、複数ノードが存在するネットワーク、例えば、トーラスネットワークやメッシュネットワーク等でジョブをスケジューリングする際に、マイグレーションを効率的に行って、マイグレーションに要する時間の短縮化を図るものである。
【００３０】
なお、トーラスネットワークとは、トーラス（円環）構造に沿ってノードを相互に接続させたネットワークであり、２次元または３次元のトポロジで形成される。
図２は、ジョブのスケジューリングを説明するための図である。ジョブのスケジューリングを行うジョブコントローラは、資源量と経過時間制限にもとづいて、ジョブを資源に対して割り当てる。
【００３１】
〔動作１〕ジョブコントローラは、ジョブを実行するために空いている資源量を探索する。例えば、ジョブコントローラは、ジョブを実行するための資源量が管理されているデータベースを参照して、投入されたジョブのための空き資源量を探索する。
【００３２】
〔動作２〕ジョブコントローラは、現在動作中のジョブの終了予定時刻を認識する。そして、ジョブコントローラは、認識した終了予定時刻から、投入されたジョブの実行を開始して終了するまでに経過する時間制限分の空き資源量を確保する。
【００３３】
図２に示す例において、ジョブＡ、Ｂが動作しているときにジョブＣが投入された際、ジョブコントローラは、ジョブＣを実行するための資源量が空いている領域を探索する。
また、ジョブコントローラは、ジョブＡの終了予定時刻が時刻Ｔ１であることを認識し、時刻Ｔ１からジョブＣを実行して時刻Ｔ２に終了するまでの経過時間制限分の資源量を確保（使用）するものとする。
【００３４】
なお、ジョブＣの資源量は、１つのノードでジョブＣが実行可能ならば、１つのノードとしてよいし、複数のノードでジョブＣを実行するならば、複数のノードがジョブＣの資源量に対応する。
【００３５】
ここで、ネットワーク上でジョブをノードに割り当てる際は、例えば、割り当てるべきジョブの実行に要するノード数分の空きノードが探索される。しかし、空きノードと、使用中ノードとが混在するフラグメンテーション状態が生じると、ノード間の通信が確保できず、その空きノードに対してジョブの割り当てができない可能性がある。
【００３６】
図３は、フラグメンテーション状態の一例を示す図である。一定の資源量に対してジョブを割り当てて実行する場合、ジョブが割り当てられなかった資源が散在する場合があり、この現象はフラグメンテーション（断片化）と呼ばれる。
【００３７】
図３の例では、現時刻Ｔ０において、ジョブＡ、Ｂ、Ｃがそれぞれノードに割り当てられて動作を開始しているが、ジョブＡ、Ｂ、Ｃが割り当てられていない空きノード（空きノードｎ１、ｎ２とする）が散在しており、フラグメンテーション状態が生じている。
【００３８】
図４は、フラグメンテーション状態のときのジョブの割り当ての一例を示す図である。フラグメンテーション状態のときに、ジョブＥを実行するものとし、個々の空きノードｎ１、ｎ２の各資源量は、ジョブＥを実行するには不足しているものとする。
【００３９】
この場合、空きノードｎ１にジョブＥを割り当てることができず、空きノードｎ２にジョブＥを割り当てることもできない。
よって、図３のフラグメンテーション状態のままでジョブＥを最も早く実行するには、図４に示すように、ジョブＣの終了予定時刻である時刻Ｔ１以降に割り当て可能なノードを使用して、ジョブＥを実行することになる。
【００４０】
このように、フラグメンテーション状態では、散在している空きノードにジョブを割り当てられない可能性がある。また、空きノードにジョブを割り当てられないと、当該ジョブの実行開始時間が遅くなってしまう。
【００４１】
そこで、このようなフラグメンテーション状態の解決策としては、ジョブのマイグレーションを行い、空きノードをまとめることが考えられる。
図５は、マイグレーションの一例を示す図である。状態ｓｔ１１では、ジョブＡを実行しているノードから、空いているノードｎ１へジョブＡを移動するマイグレーションが行われている。また、状態ｓｔ１２では、マイグレーションを行うことによって、新たな空きノードｎ３が生成されている。
【００４２】
図６は、マイグレーション後のジョブの割り当ての一例を示す図である。図５に示すようなマイグレーションを行うことにより、移動先のノードｎ１でジョブＡを実行させることができ、また、ジョブＥの実行に要する資源量を有する空きノードｎ３が確保できている。したがって、ジョブＥを空きノードｎ３に割り当てることができるので、時刻Ｔ１よりも早い時刻Ｔ０からジョブＥを実行することが可能になる。
【００４３】
このように、マイグレーションを行うことによって、フラグメンテーション状態で散在した空きノードをまとめ、まとめた分領域が増えた空きノードに対してジョブを割り当てることができる。
【００４４】
しかし、従来のマイグレーションは、複数の空きノードの内のどの空きノードに対して、ジョブを移動させるかといったマイグレーションの候補を決定する処理を含めて、マイグレーション自体に時間を要していた。このため、トータルとして稼働率が向上しない可能性があり、または稼働率が下がってしまう可能性もある。
【００４５】
したがって、第２の実施の形態では、マイグレーションにかかる時間を適切に評価し、マイグレーションにかかる時間が最短の候補を決定し、決定した候補のマイグレーションの実施の有効性を判定する。これによりマイグレーションに要する時間を短縮化して、稼働率の向上を可能にするものである。
【００４６】
図７は、第２の実施の形態に用いるジョブコントローラのハードウェアの一構成例を示す図である。ジョブコントローラ１０は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。
【００４７】
プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１の機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４８】
メモリ１０２は、ジョブコントローラ１０の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４９】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００５０】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、ジョブコントローラ１０の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
【００５１】
グラフィック処理装置１０４には、モニタ２０１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２０１の画面に表示させる。モニタ２０１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５２】
入力インタフェース１０５には、キーボード２０２とマウス２０３とが接続されている。入力インタフェース１０５は、キーボード２０２やマウス２０３から送られてくる信号をプロセッサ１０１に送信する。
【００５３】
なお、マウス２０３はポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５４】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２０４に記録されたデータの読み取りを行う。光ディスク２０４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２０４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Re Writable）などがある。
【００５５】
機器接続インタフェース１０７は、ジョブコントローラ１０に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２０５やメモリリーダライタ２０６を接続することができる。メモリ装置２０５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２０６は、メモリカード２０７へのデータの書き込み、またはメモリカード２０７からのデータの読み出しを行う装置である。メモリカード２０７は、カード型の記録媒体である。
【００５６】
ネットワークインタフェース１０８は、ネットワーク１１０に接続されている。ネットワークインタフェース１０８は、ネットワーク１１０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５７】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した情報処理装置１も、図７に示したジョブコントローラ１０と同様のハードウェアにより実現することができる。
【００５８】
ジョブコントローラ１０は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。ジョブコントローラ１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００５９】
例えば、ジョブコントローラ１０に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。またジョブコントローラ１０に実行させるプログラムを、光ディスク２０４、メモリ装置２０５、メモリカード２０７などの可搬型記録媒体に記録しておくこともできる。
【００６０】
可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００６１】
図８は、第２の実施の形態に用いるジョブコントローラの機能の一例を示すブロック図である。ジョブコントローラ１０は、マイグレーション候補選択部１１、通信量算出部１２、係数算出部１３、マイグレーション最短時間候補決定部１４、マイグレーション判定部１５およびメモリ１６を備える。
【００６２】
これらの各構成部の機能は、図７に示したプロセッサ１０１によって実行される。メモリ１６は、図７に示したメモリ１０２およびＨＤＤ１０３に対応する。なお、各構成部を論理回路等によってハードウェア回路で構成することもできる。
【００６３】
また、図１に示した特定手段１ａおよび決定手段１ｂの機能は、マイグレーション候補選択部１１、通信量算出部１２、係数算出部１３およびマイグレーション最短時間候補決定部１４で実現され、図１に示した判定手段１ｃの機能は、マイグレーション判定部１５で実現される。
【００６４】
マイグレーション候補選択部１１は、フラグメンテーション状態が生じた場合などに、ジョブのマイグレーション候補を選択する。通信量算出部１１は、選択されたマイグレーション候補のジョブをマイグレーションしたときに発生する通信量を算出する。
【００６５】
係数算出部１３は、マイグレーション候補の通信量の比率を通信量の係数として算出する。また、係数算出部１３は、マイグレーション候補でジョブが利用するノード数の比率をノード数の係数として算出する。
【００６６】
マイグレーション最短時間候補決定部１４は、通信量の係数、または通信量の係数とノード数の係数とを加算した値にもとづいて、複数のマイグレーション候補の中から、マイグレーションにかかる時間が最も短いマイグレーション最短時間候補を決定する。
【００６７】
マイグレーション判定部１５は、マイグレーション最短時間候補決定部１４で決定されたマイグレーション最短時間候補でマイグレーションを行った際に、稼働率が実際に向上するか否かを判定する。
【００６８】
メモリ１６は、各構成部で利用される各種のパラメータや、ジョブコントローラ１０の全体制御に使用される情報などを格納する。また、メモリ１６は、ジョブを実行するためのＣＰＵの性能（動作周波数）およびメモリ制限値（ジョブの実行で使用されるメモリ容量の制限値）などをジョブ毎に保持している。さらに、メモリ１６には、以下に示すようなタイムマップが保持されている。
【００６９】
図９は、タイムマップの一例を示す図である。タイムマップｍ１は、時刻毎にジョブがどのノードに割り当てられるかの情報が示されるものである。この例では、時刻Ｔ０では、ノードＮ１にジョブＡが割り当てられ、ノードＮ２にジョブＢが割り当てられ、ノードＮ３にジョブＣが割り当てられて、ノードＮ１〜Ｎ３でジョブＡ〜Ｃの実行が開始される状態が示される。
【００７０】
また、時刻Ｔ１では、ノードＮ１に割り当てられていたジョブＡの実行が終了し、ノードＮ２にジョブＢが割り当てられ、ノードＮ３にジョブＣが割り当てられて実行中である状態が示される。
【００７１】
さらに、時刻Ｔ２では、ノードＮ２に割り当てられていたジョブＢの実行が終了し、ノードＮ３にジョブＣが割り当てられて実行中である状態が示される。
さらにまた、時刻Ｔ３では、ノードＮ３に割り当てられていたジョブＣの実行が終了する状態が示される。
【００７２】
このように、時刻毎にジョブがどのノードに割り当てられるかの情報がタイムマップｍ１で記憶し管理されることで、ジョブの割り当て情報を容易に認識することができる。また、実行されるジョブＡ、Ｂ、ＣそれぞれのＣＰＵの性能およびメモリ制限値についてもタイムマップｍ１から取得することが可能である。
【００７３】
次にジョブコントローラ１０において、複数のマイグレーション候補の中から、マイグレーションにかかる時間が最短の候補を決定するまでの動作について詳しく説明する。
〔通信量算出処理〕
最初に、通信量算出処理について説明する。マイグレーションを行う場合、ジョブを空きノードへ移動するが、マイグレーションによる移動に伴って、ジョブのデータ分の通信量が発生する。
【００７４】
したがって、あるマイグレーション候補（マイグレーション候補Ｍａとする）が選択されたとき、通信量算出部１２は、マイグレーション候補Ｍａによる移動を実行する際に発生する通信量（マイグレーション候補Ｍａの通信量）を算出する。
【００７５】
この場合、通信量算出部１２は、マイグレーション候補Ｍａのジョブ単位の通信量をまず算出する。ジョブ単位の通信量は、以下の式（１）で算出される。
（ジョブ単位の通信量）＝（通信ホップ数）×（メモリ量）・・・（１）
なお、式（１）中の通信ホップ数は、マイグレーション対象のジョブの移動元から移動先に存在するノードのホップ数である。
【００７６】
メモリ１６は、どのノードにどのジョブが割り当てられているかの情報を保持しているため、通信量算出部１２は、保持されている情報にもとづき、割り当てられたジョブの場所（座標）から即時に通信ホップ数を計算可能である。
【００７７】
例えば、３次元座標の場合の通信ホップ数は、以下の式（２）で算出することができる。
（通信ホップ数）＝（移動先のノードのｘ座標−移動元のノードのｘ座標）＋（移動先のノードのｙ座標−移動元のノードのｙ座標）＋（移動先のノードのｚ座標−移動元のノードのｚ座標）・・・（２）
一方、式（１）中のメモリ量は、ジョブを実行する際にどこまでメモリを使用してよいかのメモリ制限値に該当する。
【００７８】
ここで、ジョブの実行に要するメモリ使用量を取得しようとすると、ジョブが実際動作しているノードで現在の利用量を取得しなくてはならないため時間がかかる。そのため、メモリ容量の制限値を利用する。
【００７９】
ジョブコントローラ１０では、ノードに搭載されたメモリの容量範囲でジョブを割り当てるが、そのジョブがどこまで容量を使用してよいかという、メモリ制限値がメモリ１６に保持されている。したがって、通信量算出部１２は、通信量算出に利用されるメモリ制限値、すなわちメモリ量は、即時に取得することができる。
【００８０】
上記のようにして、通信量算出部１２は、式（１）でジョブ単位の通信量を算出する。その後、通信量算出部１２は、マイグレーション候補Ｍａに含まれるマイグレーション対象すべてのジョブ単位の通信量の合計を算出し、その合計結果をマイグレーション候補Ｍａの通信量とする。
【００８１】
なお、２つのマイグレーション候補の通信量を比較した場合、通信量が大きい分、通信経路を圧迫することになるので、通信量が小さいマイグレーション候補の方が時間短縮に有利となる。したがって、時間短縮の点から、通信ホップ数が小さい方が望ましく、また、ジョブの実行に要するメモリ量が小さい方が望ましい。
【００８２】
〔係数算出処理〕
次に係数算出処理について説明する。係数算出部１３は、マイグレーション候補Ｍａの通信量と、マイグレーション候補Ｍａの比較対象になるマイグレーション候補（マイグレーション候補Ｍｂとする）の通信量との比率（通信量の係数）を算出する。
【００８３】
なお、マイグレーション候補Ｍａの通信量は第１の通信量、マイグレーション候補Ｍｂの通信量は第２の通信量に対応する。通信量の係数は、以下の式（３）で算出される。
（通信量の係数）＝（マイグレーション候補Ｍｂの通信量）／（マイグレーション候補Ｍａの通信量）・・・（３）
また、係数算出部１３は、マイグレーション候補Ｍａでジョブが利用するノード数と、マイグレーション候補Ｍｂでジョブが利用するノード数との比率（ノード数の係数）を算出する。
【００８４】
なお、マイグレーション候補Ｍａでジョブが利用するノード数は第１のノード数、マイグレーション候補Ｍｂでジョブが利用するノード数は第２のノード数に対応する。ノード数の係数は、以下の式（４）で算出される。
【００８５】
（ノード数の係数）＝（マイグレーション候補Ｍｂでジョブが利用するノード数）／（マイグレーション候補Ｍａでジョブが利用するノード数）・・・（４）
マイグレーション候補でジョブが利用するノード数は、ジョブコントローラ１０がジョブ割り当ての際に、どのノードにどれだけのジョブを割り当てられるかの情報をメモリ１６上に保持させている。このため、係数算出部１３は、ノード数の係数算出を行う場合、ノード数を即時に取得することができる。なお、ノード数が多いほど、マイグレーションに時間がかかることになる。
【００８６】
〔マイグレーション最短時間候補決定処理〕
次にマイグレーション最短時間候補の決定処理について説明する。マイグレーションの処理時間に影響が最も大きいのは通信量である。したがって、マイグレーション最短時間候補決定部１４では、２つのマイグレーション候補に対して、どちらのマイグレーション候補が時間短縮に有利なのか、まず通信量の係数にもとづいて比較を行う。
【００８７】
そして、通信量の係数だけの比較によって、時間短縮に有利なマイグレーション最短時間候補を決定できない場合には、さらにノード数の係数を加味して判断するようにする。この場合、具体的には、マイグレーション最短時間候補決定部１４は、通信量の係数とノード数の係数とを加算した最終評価値を算出し、この最終評価値と所定値とを比較してマイグレーション最短時間候補を決定する。なお、最終評価値の算出式は、以下の式（５）となる。
【００８８】
（最終評価値）＝（通信量の係数）＋（ノード数の係数）＝｛（マイグレーション候補Ｍｂの通信量）／（マイグレーション候補Ｍａの通信量）｝＋｛（マイグレーション候補Ｍｂでジョブが利用するノード数）／（マイグレーション候補Ｍａでジョブが利用するノード数）｝・・・式（５）
図１０は、マイグレーション最短時間候補を決定するまでの動作の一例を示すフローチャートである。
【００８９】
〔ステップＳ１１〕マイグレーション候補選択部１１は、マイグレーション候補Ｍａを選択する。
〔ステップＳ１２〕マイグレーション候補選択部１１は、マイグレーション候補Ｍａの比較対象となるマイグレーション候補Ｍｂを選択する。マイグレーション候補Ｍａとマイグレーション候補Ｍｂとが、比較対象となるマイグレーション候補対を構成する。なお、以前に選択され比較対象から除外されたマイグレーション候補は、ステップＳ１２では選択されない。
【００９０】
〔ステップＳ１３〕通信量算出部１２は、選択されたマイグレーション候補の通信量を上記の式（１）にもとづいて算出する。
〔ステップＳ１４〕係数算出部１３は、式（３）にもとづいて通信量の係数を算出し、式（４）にもとづいて、ノード数の係数を算出する。
【００９１】
〔ステップＳ１５〕マイグレーション最短時間候補決定部１４は、通信量の係数（第１の評価値）と所定範囲とを比較する（第１の評価）。通信量の係数が所定範囲以下（例えば、０．９以下）の場合は、マイグレーション候補Ｍｂは以後の比較対象から除外され、処理がステップＳ１６に進められる。通信量の係数が所定範囲以上（例えば、１．１以上）の場合は、マイグレーション候補Ｍｂは以後の比較対象から除外され、処理がステップＳ１９に進められる。また、通信量の係数が所定範囲以内（例えば、０．９＜通信量の係数＜１．１）にある場合は、処理がステップＳ１７に進められる。
【００９２】
〔ステップＳ１６〕マイグレーション最短時間候補決定部１４は、通信量の係数が所定範囲以下の場合、マイグレーション候補Ｍｂをマイグレーション候補Ｍａにする仮設定を行う。
【００９３】
〔ステップＳ１７〕マイグレーション最短時間候補決定部１４は、通信量の係数が所定範囲以内にある場合は、最終評価値を式（５）にもとづき算出する。
〔ステップＳ１８〕マイグレーション最短時間候補決定部１４は、最終評価値（第２の評価値）と所定値とを比較する（第２の評価）。最終評価値が所定値未満（例えば、２未満）の場合は、処理がステップＳ１６に進められ、最終評価値が所定値以上（例えば、２以上）の場合は、処理がステップＳ１９に進められる。
【００９４】
〔ステップＳ１９〕マイグレーション最短時間候補決定部１４は、他のマイグレーション候補があるか否かを判断し、他のマイグレーション候補がある場合は、処理がステップＳ１２へ進められる。また、他のマイグレーション候補が無い場合は、処理がステップＳ２０へ進められる。
【００９５】
〔ステップＳ２０〕マイグレーション最短時間候補決定部１４は、マイグレーション候補Ｍａをマイグレーション最短時間候補として決定する。
上記のように、マイグレーション最短時間候補決定部１４は、最初に、通信量のパラメータを含む第１の評価値（通信ノードの係数）にもとづいて、マイグレーション最短時間候補を決定するための第１の評価を行う。
【００９６】
このとき、第１の評価値がマイグレーション最短時間候補を決定するための基準を満たさないとする（第１の評価値が所定範囲内に含まれない）。この場合、マイグレーション最短時間候補決定部１４は、ノード数のパラメータおよび通信量のパラメータを含む第２の評価値（最終評価値）にもとづいて、マイグレーション最短時間候補を決定するための第２の評価を行う。
【００９７】
これにより、複数のマイグレーション候補の中から、マイグレーションにかかる時間が最短のマイグレーション最短時間候補を効率よくかつ高速に決定することが可能になる。
〔マイグレーション判定処理〕
次にマイグレーション判定処理について説明する。マイグレーション判定部１５では、上記のようにして決定されたマイグレーション最短時間候補を用いてマイグレーションを実施した際に、実際に稼働率が向上するか否かを判定する。
【００９８】
稼働率の向上が見込まれると判断された場合には、決定されたマイグレーション最短時間候補によるマイグレーションが実施される。また、稼働率の向上が見込まれないと判断された場合には、マイグレーション最短時間候補によるマイグレーションは実施されない。
【００９９】
マイグレーション判定部１５は、マイグレーション最短時間候補によるマイグレーションを実行した際に、そのマイグレーションにより損失する稼働率（損失稼働率）を以下の式（６）にもとづき算出する。
【０１００】
（損失稼働率）＝（マイグレーションにかかる時間）×（ノード数）・・・式（６）
なお、マイグレーションにかかる時間は、以下の式（７）から求められる。
（マイグレーションにかかる時間）＝（ファイルにジョブデータを書き込む時間）×（メモリ使用量）／（バンド幅）・・・式（７）
式（７）中のファイルにジョブデータを書き込む時間は、マイグレーションによって移動すべきジョブデータをファイルに書き込むための処理時間であり固定値である。また、メモリ使用量は、マイグレーション対象のノードのメモリ使用量である。バンド幅は、マイグレーション対象のノードと接続する通信路のバンド幅である。
【０１０１】
また、マイグレーション判定部１５は、式（６）で算出した損失稼働率が、マイグレーションにより有効活用できる稼働率（有効稼働率）より小さいと判断した場合には、マイグレーションが稼働率向上に有効であると判断する。なお、有効稼働率は、以下の式（８）で算出される。
【０１０２】
（有効稼働率）＝｛（マイグレーションを行わなかった場合の実行予定時刻）−（マイグレーションを行った場合の実行予定時刻）｝×ノード数・・・（８）
このように、マイグレーション判定部１５は、マイグレーション最短時間候補でマイグレーションを行った際の損失稼働率と有効稼働率とを算出し、損失稼働率が有効稼働率より小さい場合は、マイグレーション最短時間候補のマイグレーションの実施が有効であると判定する。
【０１０３】
ここで、フラグメンテーション状態のときに、投入されたジョブを実行する際には、マイグレーションを行わずに、現在実行中のジョブの終了予定時刻から投入ジョブを実行した方が、マイグレーションを行って実行するよりも稼働率が向上する可能性もある。
【０１０４】
したがって、マイグレーション判定部１５では、このような状況にも対処できるように、マイグレーション最短時間候補の実施の有効性を判定する。これにより、稼働率が最も向上するジョブの割り当てを行うことが可能になる。
【０１０５】
次にマイグレーション最短時間候補の決定および判定を行って、マイグレーションによるジョブ割り当てを実行するまでの流れを図１１〜図１３を用いて説明する。
図１１は、フラグメンテーション状態のときのジョブ投入の一例を示す図である。図１１の例では、現時刻Ｔ０において、ジョブＡ、Ｂ、Ｃがそれぞれノードに割り当てられて動作を開始している。また、ジョブＡ、Ｂ、Ｃが割り当てられていない空きノードが散在しており、フラグメンテーション状態が生じている。
【０１０６】
ジョブＡ、Ｂ、Ｃが実行中のシステムに対して、ジョブＤを投入される。現在の空き状態では、ジョブＤの開始時刻は時刻Ｔ１となり、現時刻Ｔ０から即時に実行することができない。したがって、ジョブコントローラ１０は、マイグレーションにより稼働率向上が行えるかどうかの評価を行う。
【０１０７】
図１２は、複数のマイグレーション候補の一例を示す図である。ジョブＡの空きノードｎ１へのマイグレーションをマイグレーション候補Ｍａ１とし、ジョブＡの空きノードｎ２へのマイグレーションをマイグレーション候補Ｍｂ１とする。
【０１０８】
ジョブコントローラ１０は、ジョブＡがマイグレーション候補Ｍａ１によって移動した場合の通信量と、ジョブＡがマイグレーション候補Ｍｂ１によって移動した場合の通信量とから通信量の係数を求めて評価する。
【０１０９】
この例では、マイグレーション候補Ｍｂ１よりもマイグレーション候補Ｍａ１の通信量が十分に低いものであるとして、ジョブコントローラ１０は、マイグレーション候補Ｍａ１をマイグレーション最短時間候補と決定する。
【０１１０】
図１３は、マイグレーション後のジョブの実行の一例を示す図である。ジョブコントローラ１０は、決定したマイグレーション候補Ｍａ１により稼働率が向上するか判定する。この例では、マイグレーション候補Ｍａ１によるジョブＡのマイグレーションにかかる時間の方が、時刻Ｔ１まで待ってジョブＤを実行する待ち時間よりも短く、マイグレーションを行った方が、稼働率が向上すると判断したとする。
【０１１１】
したがって、ジョブコントローラ１０は、ジョブＡをマイグレーション候補Ｍａ１で移動し、マイグレーション候補Ｍａ１で生成された空きノードにジョブＤを割り当ててジョブＤを実行する。
【０１１２】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１１３】
１  情報処理装置
１ａ  特定手段
１ｂ  決定手段
１ｃ  判定手段
Ａ、Ｂ、Ｃ、Ｄ  ジョブ
Ｍ１、Ｍ２  マイグレーション候補
ｎ１、ｎ２、ｎ３  空きノード
Ｔ０、Ｔ１、Ｔ２、Ｔ３  時刻
【図１】
0006666553.tif 000002
【図２】
0006666553.tif 000003
【図３】
0006666553.tif 000004
【図４】
0006666553.tif 000005
【図５】
0006666553.tif 000006
【図６】
0006666553.tif 000007
【図７】
0006666553.tif 000008
【図８】
0006666553.tif 000009
【図９】
0006666553.tif 000010
【図１０】
0006666553.tif 000011
【図１１】
0006666553.tif 000012
【図１２】
0006666553.tif 000013
【図１３】
0006666553.tif 000014