(57)【要約】【課題】緊急ジョブの実行のために実行中ジョブをスワップアウトした際に生じる余剰資源を有効に利用すること。【解決手段】未来割り当てが行われた緊急ジョブを実行するためにスワップアウト処理を行う際に、資源割当部２７が、緊急ジョブに計算機資源を仮割り当てし、ジョブ管理テーブル２１及び割当管理テーブル２２に仮割り当て情報を設定する。また、資源割当部２７は、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順に仮割り当て情報に基づいてジョブのスケジューリングを行う。【選択図】図３
2015148909.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算ノードと前記複数の計算ノードを制御する管理ノードとを有する並列計算機システムにおいて、
前記管理ノードは、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行う実行スケジュール部と、
前記実行スケジュール部により行われたジョブのスケジューリングに基づいてジョブの実行を制御する実行制御部と
を有することを特徴とする並列計算機システム。
【請求項２】
前記実行スケジュール部は、仮割り当てした緊急ジョブのスケジューリングを行う場合に、計算ノードに設定した前記仮割り当て状態を解除してスケジューリングを行うことを特徴とする請求項１記載の並列計算機システム。
【請求項３】
前記実行スケジュール部は、再スケジュールの際に、仮割り当てしたジョブのスケジュールは変更しないことを特徴とする請求項１又は２記載の並列計算機システム。
【請求項４】
前記実行スケジュール部は、再スケジュールの際に、仮割り当てしたジョブについても再度スケジューリングを行うことを特徴とする請求項１又は２記載の並列計算機システム。
【請求項５】
複数の計算ノードと前記複数の計算ノードを制御する管理ノードとを有する並列計算機システムの制御方法において、
前記管理ノードが、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行い、
行ったジョブのスケジューリングに基づいてジョブの実行を制御する
ことを特徴とする並列計算機システムの制御方法。
【請求項６】
複数の計算ノードを制御する管理ノードの制御プログラムにおいて、
前記管理ノードに、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行い、
行ったスケジューリングに基づいてジョブの実行を制御する
処理を実行させることを特徴とする管理ノードの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラムに関する。
【背景技術】
【０００２】
複数の計算ノードでジョブを実行する並列計算機システムのジョブスケジューラは、実行の優先順位が高く、緊急に実行を行う必要がある緊急ジョブに割り当てる空き計算ノードの数が不十分な場合に、一般のジョブをスワップアウトすることにより緊急ジョブに優先的に計算ノードを割り当てる。
【０００３】
図１４は、スワップアウトを説明するための図である。図１４において、横軸は時間を示し、Ｎｏｗは現時点を示す。縦軸は資源を示す。ここで、「資源」とは計算機資源であり、並列計算機の計算ノードである。図１４に示すように、ジョブＡとジョブＢの実行中に緊急ジョブが投入されると、ジョブスケジューラは、緊急ジョブに資源を割り当てるため、ジョブＡとジョブＢをスワップアウトする。
【０００４】
また、緊急ジョブの要求する計算機資源の数よりスワップアウト対象の実行中ジョブの計算機資源の数が大きいと、スワップアウト時に余剰資源が生じる。ジョブスケジューラは、余剰資源を効率的に使用するため、後続のジョブへの余剰資源の割り当てを可能とする。ただし、無条件に割り当てを許可すると、割り当て対象のジョブの実行時間が長い場合に、スワップアウト済みのジョブのスワップインが遅延する可能性があるため、ジョブスケジューラは、遅延しない範囲で終了するジョブのみの割り当てを許可する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平２−２５７３３７号公報
【特許文献２】特開２００９−７５９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ジョブスケジューラは余剰資源を有効に利用できないという問題がある。図１５は、余剰資源の割り当てを説明するための図である。図１５において、ｐ1は、図１４における現在時点すなわち緊急ジョブが投入された時点を示す。Ｎｏｗは、緊急ジョブの実行を開始する時点を示す。ｐ1からＮｏｗまでは、実行中のジョブのスワップアウトに要する時間である。ｔ1は、スワップアウトされたジョブがスワップインされる時点を示す。矢印９は、余剰資源が使用可能な時間を示す。
【０００７】
図１５に示すように、ｐ1からＮｏｗまでは、余剰資源は利用されない。しかしながら、スワップアウトに要する時間は、ジョブが使用するメモリ量などに依存するため、ジョブによって異なる。したがって、ジョブＢのスワップアウトに要する時間がジョブＡのスワップアウトに要する時間より短く、Ｎｏｗで示す時間よりも早く余剰資源が利用可能になっても、全部のジョブのスワップアウトが完了するまでは、余剰資源は利用されない。
【０００８】
本発明は、１つの側面では、スワップアウト時に生じる余剰資源を有効に利用する並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する並列計算機システムは、１つの態様において、複数の計算ノードと前記複数の計算ノードを制御する管理ノードとを有する。前記管理ノードは、実行スケジュール部と実行制御部とを有する。前記実行スケジュール部は、計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とする。そして、前記実行スケジュール部は、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定する。また、前記実行スケジュール部は、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行う。また、実行制御部は、前記実行スケジュール部により行われたジョブのスケジューリングに基づいてジョブの実行を制御する。
【発明の効果】
【００１０】
１実施態様によれば、スワップアウト時に生じる余剰資源を有効に利用することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係る並列計算機システムの構成を示す図である。
【図２】図２は、ジョブ管理ノードの機能構成を示す図である。
【図３】図３は、ジョブスケジューラの機能構成を示す図である。
【図４】図４は、管理テーブルの一例を示す図である。
【図５】図５は、仮割り当てが行われた時の管理テーブルの状態を示す図である。
【図６】図６は、ジョブＢのスワップアウト完了時点の管理テーブルの状態を示す図である。
【図７】図７は、後続ジョブＣが割り当てられた時点の管理テーブルの状態を示す図である。
【図８】図８は、ジョブＡのスワップアウトが完了した時点の管理テーブルの状態を示す図である。
【図９】図９は、ジョブスケジューラによるスケジューリング処理のフローを示すフローチャートである。
【図１０】図１０は、管理テーブル初期化部による割当管理テーブル初期化処理のフローを示すフローチャートである。
【図１１】図１１は、資源割当部による資源割当処理のフローを示すフローチャートである。
【図１２】図１２は、割当結果設定部による割当結果設定処理のフローを示すフローチャートである。
【図１３】図１３は、実施例に係るジョブ管理プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１４】図１４は、スワップアウトを説明するための図である。
【図１５】図１５は、余剰資源の割り当てを説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する並列計算機システム、並列計算機システムの制御方法及び管理ノードの制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１３】
まず、実施例に係る並列計算機システムの構成について説明する。図１は、実施例に係る並列計算機システムの構成を示す図である。図１に示すように、並列計算機システム４は、ログインノード１と、ジョブ管理ノード２と、複数の計算ノード３とを有する。
【００１４】
ログインノード１は、ユーザからジョブ実行依頼を受け付ける端末装置である。ここでは、１台のログインノード１のみを示すが、並列計算機システム４は、負荷分散のために複数のログインノード１を有してもよい。ジョブ管理ノード２は、実行依頼を受けたジョブの実行時刻及び割り当て資源をスケジューリングする。ここで、割り当て資源は計算ノード３である。
【００１５】
計算ノード３は、ＣＰＵ（Central  Processing  Unit）やメモリなどを有し、他の計算ノード３とともにジョブを並列で実行する。なお、図１では、計算ノード３が３次元ネットワークで接続される場合を示すが、一般に、計算ノード３は任意の次元のネットワークで接続される。
【００１６】
図２は、ジョブ管理ノード２の機能構成を示す図である。図２に示すように、ジョブ管理ノード２は、ジョブマネージャ１０と、ジョブスケジューラ２０と、資源管理部３０とを有する。
【００１７】
ジョブマネージャ１０は、ユーザから指定されたジョブを管理する。ジョブマネージャ１０は、ログインノード１とネットワークを介して通信を行う。ジョブスケジューラ２０は、計算機資源すなわち計算ノード３の空き状況を管理し、ジョブに割り当てる計算ノード３のスケジュールを決定する。資源管理部３０は、ジョブの計算ノード３への割り当ての実行を制御する。
【００１８】
次に、ジョブスケジューラ２０の機能構成について説明する。図３は、ジョブスケジューラ２０の機能構成を示す図である。図３に示すように、ジョブスケジューラ２０は、ジョブ管理テーブル２１と、割当管理テーブル２２と、割当前ジョブ管理テーブル２３と、実行待ジョブ管理テーブル２４と、実行中ジョブ管理テーブル２５とを有する。また、ジョブスケジューラ２０は、管理テーブル初期化部２６と、資源割当部２７と、割当結果設定部２８とを有する。
【００１９】
ジョブ管理テーブル２１は、ユーザから受け付けたジョブの情報を管理するためのテーブルであり、種別、優先度、要求資源、経過時間制限値、状態、仮割り当てフラグなどジョブについてスケジューリングに必要な情報を記憶する。
【００２０】
ここで、種別には、シリアルに実行されるジョブのうちの１つであることを示す「ステップジョブ」、ユーザと対話を行いながら実行されるジョブを示す「対話型ジョブ」、通常のジョブを示す「通常ジョブ」などがある。優先度は、ジョブの実行を優先的に行う程度を示す。緊急ジョブの優先度は最も高く設定される。
【００２１】
要求資源は、ジョブが要求する計算ノード３の次元及び数を示す。ジョブが要求する計算ノード３の次元が２である場合には、長方形を形成する計算ノード３が割り当てられ、ジョブが要求する計算ノード３の次元が３である場合には、直方体を形成する計算ノード３が割り当てられる。
【００２２】
経過時間制限値は、ジョブの実行時間の最大値を示す。実行時間が経過時間制限値を超えたジョブは、終了させられる。状態は、ジョブの実行状態を示す。状態には、計算ノード３が割り当てられる前の状態を示す「割当前」、計算ノード３が割り当てられて実行待ちの状態を示す「実行待」、実行中であることを示す「実行中」、スワップアウトされた状態であることを示す「スワップアウト中」などがある。仮割り当てフラグは、ジョブに計算ノード３が仮割り当てされた場合に設定される。なお、仮割り当てフラグの詳細については後述する。
【００２３】
割当管理テーブル２２は、計算ノード３へのジョブの割り当て状況を記録するテーブルである。並列計算機システム４では、計算ノード３が３次元ネットワークで接続されているので、割当管理テーブル２２も３次元となる。また、割当管理テーブル２２は、計算ノード３がジョブに仮割り当てされたことを示す仮割り当てフラグを有する。なお、割当管理テーブル２２が有する仮割り当てフラグの詳細についても後述する。
【００２４】
割当前ジョブ管理テーブル２３は、計算ノード３が割り当てられる前のジョブを記憶するテーブルであり、実行待ジョブ管理テーブル２４は、計算ノード３が割り当てられて実行待ちのジョブを記憶するテーブルである。実行中ジョブ管理テーブル２５は、実行中のジョブを記憶するテーブルである。割当前ジョブ管理テーブル２３と、実行待ジョブ管理テーブル２４と、実行中ジョブ管理テーブル２５は、ジョブの情報としてジョブ管理テーブル２１へのポインタを記憶する。
【００２５】
管理テーブル初期化部２６は、割当管理テーブル２２を初期化する。管理テーブル初期化部２６は、ジョブスケジューラ２０によってスケジュールが開始されるときと、計算機資源に変更があったときに起動される。ここで、計算機資源に変更があったときとは、ジョブが完了したときやスワップアウトが完了したときなど再スケジューリングが必要になったときである。すなわち、割当管理テーブル２２は、再スケジューリング時に初期化される。
【００２６】
資源割当部２７は、割当管理テーブル２２を検索してジョブに計算ノード３を割り当てる。資源割当部２７は、ジョブの優先度に基づいて計算ノード３の割り当てを行う。また、資源割当部２７は、緊急ジョブ、スワップイン待ちジョブ、その他の一般ジョブの順に計算ノード３を割り当てる。すなわち、スワップイン待ちジョブは、緊急ジョブがスケジュールされない限りスケジュールされない。また、一般ジョブは、緊急ジョブ及びスワップイン待ちジョブがスケジュールされない限りスケジュールされない。ただし、緊急ジョブに対して計算ノード３が仮割り当てされると、スワップイン待ちジョブや一般ジョブのスケジューリングが可能となる。
【００２７】
また、資源割当部２７は、ジョブ管理テーブル２１及び割当管理テーブル２２が有する仮割り当てフラグに基づいてジョブスケジューリングを行うが、仮割り当てフラグに基づくジョブスケジューリングの詳細については後述する。
【００２８】
割当結果設定部２８は、ジョブの割り当て結果に基づく設定処理を行う。具体的には、割当結果設定部２８は、ジョブの割り当て結果に基づいて、実行待ジョブ管理テーブル２４と実行中ジョブ管理テーブル２５の設定を行う。
【００２９】
なお、ジョブスケジューラ２０は、実行中ジョブ→未実行のジョブの順に計算ノード３の割り当てを行う。ジョブスケジューラ２０は、実行中ジョブを実行中ジョブ管理テーブル２５から取得し、未実行のジョブを割当前ジョブ管理テーブル２３から取得する。割り当て後の実行待ちジョブは、割当前ジョブ管理テーブル２３から実行待ジョブ管理テーブル２４に移され、実行が開始されたジョブは実行中ジョブ管理テーブル２５に移される。また、割当管理テーブル２２に割り当てされた計算ノード３のうち、実行中ジョブに割り当てられた計算ノード３は変更されないが、実行中でないジョブについては割り当てられた計算ノード３の変更が可能である。
【００３０】
次に、ジョブスケジューラ２０による計算ノード３の仮割り当てについて説明する。ジョブスケジューラ２０は、緊急ジョブに計算ノード３を割り当てる場合に、他の実行中ジョブによって計算ノード３に空きがないときは、スワップアウトを行う。そして、ジョブスケジューラ２０は、スワップアウトによって即時実行が可能となる緊急ジョブの割り当て予定計算ノード３をスワップアウト対象ジョブの決定時点で仮割り当てする。
【００３１】
ここで、ジョブスケジューラ２０は、仮割り当てにともなって、割当管理テーブル２２及びジョブ管理テーブル２１の仮割り当てフラグを設定する。そして、ジョブスケジューラ２０は、ジョブへの計算ノード３の割り当て処理において仮割り当てされている計算ノード３を以下のように扱う。
【００３２】
・仮割り当てを行ったジョブ以外に対しては、当該計算ノード３を割り当てない。
・仮割り当てを行ったジョブに対しては、仮割り当てされた計算ノード３を割り当てることができる。すなわち、ジョブスケジューラ２０は、仮割り当てされた計算ノード３を仮割り当てを行ったジョブに対し「割り当て済み」の状態に遷移することができる。
【００３３】
ただし、ジョブスケジューラ２０は、ある計算ノード３について仮割り当てを行ったジョブに対してその他の計算ノード３を割り当てることはできる。ジョブスケジューラ２０は、仮割り当てされた計算ノード３の割り当てを行った場合、仮割り当てを解除する。
【００３４】
また、ジョブスケジューラ２０は、仮割り当てで予約した計算ノード３については、まだスワップアウトされていない実行中ジョブの使用計算ノード３との重複割り当てを行うことができる。割り当てを行うためには既に割り当てが行われている計算ノード３が空かないといけないが、ジョブスケジューラ２０は、空いていない計算ノード３に対して重複して仮割り当てを行う。
【００３５】
そして、ジョブスケジューラ２０は、緊急ジョブのためにスワップアウトを行っている全てのジョブのスワップアウト処理が完了していなくてもスケジューリングを継続する。そして、ジョブスケジューラ２０は、割り当て済みでなく、仮割り当てもされていない計算ノード３を空き資源として、後続のジョブに割り当てる。
【００３６】
以下、図４〜図８を用いて仮割り当て及び仮割り当てに基づくジョブスケジュールについて説明する。図４は、管理テーブルの一例を示す図である。ここで、管理テーブルとは、ジョブ管理テーブル２１、割当管理テーブル２２、割当前ジョブ管理テーブル２３、実行待ジョブ管理テーブル２４及び実行中ジョブ管理テーブル２５の総称である。また、図４〜図８において、説明の便宜上計算ノード３は１次元に５個、計算機資源1〜計算機資源5として配置される。
【００３７】
図４に示すように、ジョブＡとジョブＢは、実行中であり、実行中ジョブ管理テーブル２５に登録される。ジョブＣは、割り当てされ実行待ちであり、実行待ジョブ管理テーブル２４に登録される。ジョブＤは、投入され割り当て処理待ちのジョブであり、割当前ジョブ管理テーブル２３に登録される。
【００３８】
資源割当部２７は、各計算ノード３について、ジョブの開始時刻とその実行経過時間制限値より算出された終了予定時刻までを使用中として割当管理テーブル２２に記録する。割当管理テーブル２２は、計算機資源量すなわち計算ノード３の数が変わる時点ごとに作成される。
【００３９】
なお、以下では、割当管理テーブル２２の各時点での割り当て状況を、タイムマップと呼ぶこととする。タイムマップにおいて、１６進数の「０１」すなわち「０ｘ０１」は、計算ノード３にジョブが割り当てられていることを示し、１６進数の「００」すなわち「０ｘ００」は、計算ノード３にジョブが割り当てられていないことを示す。
【００４０】
開始時刻とその実行経過時間制限値よりジョブＡが終了して計算機資源1及び計算機資源2を解放する予定時間はｔ2である。同様に、ジョブＢが計算機資源3〜計算機資源5を解放する予定時間はｔ1である。ジョブＣは、実行中ジョブによって現在は割り当てられないため、実行中ジョブが終了して計算機資源が解放される時刻以降で未来割り当て予約される。図４の例では、割り当てイメージに示すように、ジョブＣはｔ1からｔ3で割り当てられる。
【００４１】
現在時刻ＮｏｗにおいてはジョブＡとジョブＢは実行中であるため、Ｎｏｗのタイムマップでは、いずれの計算機資源も割り当て中であると設定される。Ｎｏｗの次の資源変更時刻はｔ1であり、ｔ1のタイムマップでは、ジョブＢが解放された状態が設定される。ｔ1の次の資源変更予定時刻ｔ2のタイムマップでは、ジョブＡも解放された状態が設定される。ジョブＣはその後の割り当てによってｔ1のタイムマップに追加され、ｔ3のタイムマップでジョブＣに割り当てられた資源が解放されるが、その間にｔ2のタイムマップが存在するため、ｔ2にもジョブＣに割り当てられた状態が設定される。
【００４２】
このように、計算機資源の空きはタイムマップで示される各時刻において「０ｘ００」となっている部分で管理される。ジョブＤに対する割り当ては、この空きを用いて行われる。
【００４３】
緊急ジョブが投入された場合、ジョブスケジューラ２０は、再スケジューリングを行い、緊急ジョブを最も最優先で割り当てできるように処理を行う。割当管理テーブル２２の現在時刻Ｎｏｗのタイムマップの計算機資源の空きが十分でなく、緊急ジョブが未来の割り当てとなるような場合には、ジョブスケジューラ２０は、緊急ジョブの要求計算機資源を確保するための処理を行う。すなわち、ジョブスケジューラ２０は、スワップアウトによる停止対象とする実行中のジョブを検索して決定し、スワップアウトを行う。
【００４４】
ジョブスケジューラ２０は、スワップアウトが完了して計算機資源が空いたという前提で緊急ジョブが割り当てされる予定の資源について仮割り当てを実施する。仮割り当ての資源確保は、現在時刻より緊急ジョブの実行経過時間制限値までの時刻にスワップアウト処理で必要とする所要時間を加算した時刻までである。図４で示す状況で緊急ジョブが投入された場合、割り当て予定となっていたジョブＣは、緊急ジョブの割り当て後に再度スケジューリングされる。
【００４５】
図５は、緊急ジョブ投入によってスワップアウト対象ジョブが決定され、仮割り当てが行われた時の管理テーブルの状態を示す図である。ジョブスケジューラ２０は、仮割り当てを実施した緊急ジョブについてジョブ管理テーブル２１の仮割り当てフラグ３１を「ＯＮ」に設定する。
【００４６】
仮割り当ては、他の割り当てとは異なり、スワップアウトが完了していない実行中ジョブとの重複した割り当てを可能とする。仮割り当ては現在時刻からの割り当てが前提であるため、ジョブスケジューラ２０は、割当管理テーブル２２の現在時刻Ｎｏｗのタイムマップから割り当て中表示を設定するが、仮割り当てにおいては通常の割り当てと区別がつくように別表示を設定する。ここでは、ジョブスケジューラ２０は、仮割り当て前の計算ノード３の割り当て状況と「０ｘ１０」で論理和をとる。これによって、重複した計算機資源の割り当て中表示は「０ｘ１１」となり、他の割り当てとの判別が可能となる。
【００４７】
ジョブスケジューラ２０は、緊急ジョブの割り当て時に、仮割り当てフラグ３１が設定されている場合には、当該ジョブへの計算機資源割り当て時に限り、自分自身の仮割り当てによって割り当てができないことのないように、仮割り当てした計算機資源を解除する。ジョブスケジューラ２０は、仮割り当て解除のために割当管理テーブル２２から「０ｘ００」を取り外すことで重複した計算機資源の割り当て中表示は残すことができる。仮割り当ての解除は緊急ジョブ単位に実施することで、ジョブスケジューラ２０は、複数の緊急ジョブの仮割り当てがある場合でも、他の緊急ジョブの仮割り当てを解除することはない。
【００４８】
ジョブスケジューラ２０は、空き資源の検索においては通常の検索と同様に割当管理テーブル２２の割り当て中表示が「０ｘ００」であることを判定すればよい。検索の結果、現在割り当てができれば、ジョブスケジューラ２０は、実行を開始するようにスケジューリングし、仮割り当てフラグ３１の設定を解除して、仮割り当て情報を解放する。一方、現在割り当てができなかった場合（未来割り当てとなった場合）、ジョブスケジューラ２０は、解除した仮割り当てを復元する。
【００４９】
ジョブスケジューラ２０は、割り当ての結果、緊急ジョブを割当前管理テーブル２３から実行待管理テーブル２４に移動するが、仮割り当てフラグ３１が設定されるジョブは実行を開始しないように制御する。これによって、ジョブスケジューラ２０は、仮割り当てを現在時刻Ｎｏｗから行っても、架空のジョブが実際の資源を使用して実行されることを防止する。この結果、計算機資源が仮割り当てされた緊急ジョブは、未実行であるため、実行待管理テーブル２４に保持される。
【００５０】
なお、ジョブスケジューラ２０は、仮割り当てされた緊急ジョブを再スケジューリングすることはないが、再スケジューリング処理が行われるたびに現在時刻Ｎｏｗより緊急ジョブを割り当てし直してもよい。この場合には、ジョブスケジューラ２０は、仮割り当ての資源確保に現在時刻より緊急ジョブの実行経過時間制限値までの時刻にスワップアウト処理で必要とする所要時間を加算する必要がない。しかし、ジョブスケジューラ２０は、再スケジューリング毎の時間経過とともに図５に示す緊急ジョブ終了時刻ｔ4を増やしていく必要がある。スワップアウト処理で必要とする所要時間を加算しｔ4の時刻を固定するほうが、スワップアウトによる余剰資源での実行可能時間をより大きくとることができ、後続のジョブのスケジューリングにおいて、割り当て可能な期間が増える。
【００５１】
仮割り当てが完了した後、ジョブスケジューラ２０は、ジョブＡ及びジョブＢのスワップアウトを開始する。ジョブスケジューラ２０は、この時点で緊急ジョブの割り当てを完了していないが、後続のジョブのスケジューリングを継続する。ジョブスケジューラ２０は、実行中ジョブを実行中管理テーブル２５より取得し、割当前管理テーブル２３及び実行待管理テーブル２４より緊急ジョブ（仮割り当て）、スワップイン待ちジョブ、通常ジョブの順にジョブを取得し、割当管理テーブル２２を再作成する。
【００５２】
図６は、ジョブＢのスワップアウト完了時点の管理テーブルの状態を示す図である。複数のジョブのスワップアウト処理は並行して処理されるが、スワップアウト完了はジョブの規模やメモリによって異なるため、全てのジョブのスワップアウトが同時に完了するわけではない。ジョブスケジューラ２０は、スワップアウト済みのジョブをスワップイン待ちジョブとして通常のジョブと同様に割り当てを行う。
【００５３】
ただし、スワップイン後に実行を再開したジョブが終了して計算機資源を解放する予定時刻は、スワップアウトまでに実行した時間を実行経過時間制限値から減算した値をもとに算出される。図６では、ジョブＢは、ｔ4に実行が再開され、ｔ5に実行が終了する予定である。
【００５４】
ジョブスケジューラ２０は、スワップイン待ちジョブに対しては、緊急ジョブ終了後に速やかにスワップインするために緊急ジョブの次に高い優先度で再割り当てを実施する。仮割り当てで緊急ジョブの実行資源が予約され、スワップイン待ちジョブの割り当て予定も設定されるため、その後、ジョブスケジューラ２０は、通常ジョブについて割り当てを行う。
【００５５】
図７は、図６に示した状態の後、後続ジョブのスケジューリングによって、後続ジョブＣが割り当てられた時点の管理テーブルの状態を示す図である。割り当てが完了したジョブＣは、実行待管理テーブル２４に設定されるが、現在時刻Ｎｏｗより開始のため実行開始され、実行中管理テーブル２５に移される。この後ジョブＤの割り当て処理が行われる。
【００５６】
仮にジョブＣの実行予定時間が（ｔ4−Ｎｏｗ）より大きい場合には、計算機資源5のＮｏｗからのジョブＣの割り当ては行われず、ｔ4以降の計算機資源で未来割り当てが行われる。スワップアウトによって発生している余剰計算機資源は、計算機資源5の現在時刻Ｎｏｗよりｔ4までの間であり、実行予定時間が（ｔ4−Ｎｏｗ）より小さいジョブのみ割り当てが可能である。本資源の範囲で実行されるジョブは、スワップイン待ちのジョブを遅延させることはない。緊急ジョブが実行を開始した後に、キャンセルなどで予定より早く緊急ジョブが終了した場合には、ジョブＣが実行中のためにジョブＢはスワップインできないが、当初のスワップイン予定を遅延させるものではない。
【００５７】
図８は、ジョブＡのスワップアウトが完了した時点の管理テーブルの状態を示す図である。ジョブＡは、スワップアウトによって実行中でなくなるため、スワップイン待ちとして実行待管理テーブル２３に設定される。
【００５８】
割当管理テーブル２２の再設定では、まず実行中ジョブＣと緊急ジョブＥの仮割り当てが設定される。その後緊急ジョブＥの割り当てのために、ジョブスケジューラ２０は、緊急ジョブＥの仮割り当てを解除する。解除の結果、計算機資源には緊急ジョブＥを割り当てできる空きがあるため、現在時刻Ｎｏｗより割り当てが行われ、仮割り当てフラグ３１の設定が解除され、緊急ジョブＥは実行待管理テーブル２４に設定される。ジョブスケジューラ２０は、当該緊急ジョブＥの割り当て結果の設定処理によって実行待管理テーブル２４から緊急ジョブＥを取り出して実行を開始する。
【００５９】
仮割り当てが決定した時刻ｐ1に対してジョブスワップ処理などにより緊急ジョブＥの割り当てが完了する現在時刻Ｎｏｗまでには時間を要することがある。従来処理においては、緊急ジョブＥの割り当てが完了するまでスワップアウトによる余剰資源である計算機資源5については、Ｎｏｗまでの間割り当てができないことになるが、本処理によってより早い時刻ｐ2から余剰資源としての利用が可能となる。
【００６０】
次に、ジョブスケジューラ２０によるスケジューリング処理のフローについて説明する。図９は、ジョブスケジューラ２０によるスケジューリング処理のフローを示すフローチャートである。図９に示すように、ジョブスケジューラ２０は、まず、ジョブ管理テーブル２１、割当前ジョブ管理テーブル２３、実行待ジョブ管理テーブル２４及び実行中ジョブ管理テーブル２５を初期化する（ステップＳ１）。
【００６１】
そして、ジョブスケジューラ２０は、計算機資源状態の情報を資源管理部３０からジョブマネージャ１０を介して取得し（ステップＳ２）、割当管理テーブル２２を初期化する割当管理テーブル初期化処理を行う（ステップＳ３）。
【００６２】
そして、ジョブスケジューラ２０は、ジョブ投入や計算機資源変更の通知を待つ（ステップＳ４）。ここで、計算機資源変更は、ジョブの実行が完了したとき、スワップアウトが完了したとき、計算ノード３が故障したとき、計算ノード３が故障から復帰したときなどに通知される。
【００６３】
そして、ジョブが投入されると（ステップＳ５、Ｙｅｓ）、ジョブスケジューラ２０は、投入されたジョブの情報をジョブ管理テーブル２１に追加し（ステップＳ６）、投入されたジョブを割当前ジョブ管理テーブル２３に追加する（ステップＳ７）。
【００６４】
また、計算機資源に変更があると（ステップＳ８、Ｙｅｓ）、ジョブスケジューラ２０は、割当管理テーブル初期化処理を実行する（ステップＳ９）。
【００６５】
そして、ジョブスケジューラ２０は、ジョブに資源割り当てを行う資源割当処理を実行し（ステップＳ１０）、ステップＳ４に戻って、ジョブ投入や計算機資源変更の通知を待つ。
【００６６】
このように、ジョブスケジューラ２０は、計算機資源に変更があると資源割当処理を実行することによって、計算機資源の状態に適したジョブスケジューリングを行うことができる。
【００６７】
次に、管理テーブル初期化部２６による割当管理テーブル初期化処理のフローについて説明する。図１０は、管理テーブル初期化部２６による割当管理テーブル初期化処理のフローを示すフローチャートである。
【００６８】
図１０に示すように、管理テーブル初期化部２６は、割当管理テーブル２２があれば解放し（ステップＳ２１）、実行中ジョブがあるか否かを判定する（ステップＳ２２）。その結果、実行中ジョブがある場合には、実行中ジョブを割当結果として割当管理テーブル２２に設定し（ステップＳ２３）、割当結果設定部２８に通知する（ステップＳ２４）。
【００６９】
そして、管理テーブル初期化部２６は、緊急ジョブがあり、かつ仮割り当てフラグ３１が設定されているか否かを判定し（ステップＳ２５）、緊急ジョブがあり、かつ仮割り当てフラグ３１が設定されている場合には、仮割当情報を割当管理テーブル２２に設定する（ステップＳ２６）。
【００７０】
そして、管理テーブル初期化部２６は、未実行ジョブを割当前ジョブ管理テーブル２３に設定する（ステップＳ２７）。ここで、管理テーブル初期化部２６は、スワップイン待ちジョブすなわちスワップアウトが完了したジョブも割当前ジョブ管理テーブル２３に設定する。
【００７１】
このように、管理テーブル初期化部２６は、仮割り当てされた緊急ジョブを割当管理テーブル２２に設定して再スケジューリングを行うので、仮割り当てされた緊急ジョブを繰り返し再スケジューリングすることを防ぐことができる。
【００７２】
次に、資源割当部２７による資源割当処理のフローについて説明する。図１１は、資源割当部２７による資源割当処理のフローを示すフローチャートである。図１１に示すように、資源割当部２７は、割当前ジョブ管理テーブル２３と実行待ジョブ管理テーブル２４を割当前ジョブ管理テーブル２３にまとめ、優先度に従ってジョブをソートする（ステップＳ４１）。ここで、緊急ジョブは最優先される。
【００７３】
そして、資源割当部２７は、割当前ジョブ管理テーブル２３の先頭から１つジョブを取り出し、取り出したジョブが緊急ジョブであり、かつ仮割り当てフラグが設定されているか否かを判定する（ステップＳ４２）。その結果、取り出したジョブが緊急ジョブであり、かつ仮割り当てフラグが設定されている場合には、資源割当部２７は、割当管理テーブル２２から当該緊急ジョブの仮割り当てを解除する（ステップＳ４３）。割当管理テーブル２２から当該緊急ジョブの仮割り当てを解除することによって、資源割当部２７は、緊急ジョブに仮割り当てされた計算機資源を当該緊急ジョブに割り当てることができる。
【００７４】
そして、資源割当部２７は、割当管理テーブル２２の空きを検索し（ステップＳ４４）、割り当てようとするジョブが緊急ジョブであり、かつ未来割り当てであるか否かを判定する（ステップＳ４５）。その結果、割り当てようとするジョブが緊急ジョブでないか、又は緊急ジョブの現在割り当てである場合には、資源割当部２７は、仮割り当てフラグ３１が設定されていればクリアする（ステップＳ４６）。その理由は、緊急ジョブの現在割り当てである場合には、緊急ジョブの実行が開始されるので、仮割り当ては不要となるためである。
【００７５】
そして、資源割当部２７は、検索結果に基づいて割当管理テーブル２２に割当情報を設定し（ステップＳ４７）、割当前ジョブ管理テーブル２３から当該ジョブを抜く（ステップＳ４８）。そして、資源割当部２７は、割当結果設定処理に通知し（ステップＳ４９）、未処理のジョブがあるか否かを判定する（ステップＳ５０）。その結果、未処理のジョブがある場合には、資源割当部２７は、次のジョブに計算機資源を割り当てるためステップＳ４２に戻り、未処理のジョブがない場合には、処理を終了する。
【００７６】
一方、割り当てようとするジョブが緊急ジョブであり、かつ未来割り当てである場合には、資源割当部２７は、仮割り当てフラグ３１が設定されているか否かを判定する（ステップＳ５１）。その結果、仮割り当てフラグ３１が設定されていない場合には、仮割り当てを行う場合であるので、資源割当部２７は、スワップアウト対象ジョブを検索する（ステップＳ５２）。そして、資源割当部２７は、スワップアウト対象ジョブがあるか否かを判定し（ステップＳ５３）、スワップアウト対象ジョブがない場合には、仮割り当てを行うことなく、ステップＳ４７へ移動する。
【００７７】
一方、スワップアウト対象ジョブがある場合には、仮割り当てを行う場合であるので、資源割当部２７は、仮割り当てフラグ３１を設定し（ステップＳ５４）、スワップアウト対象ジョブに対して、スワップアウト処理を行う（ステップＳ５５）。そして、資源割当部２７は、割当管理テーブル２２に仮割り当ての情報を設定し（ステップＳ５６）、ステップＳ４８へ移動する。
【００７８】
一方、仮割り当てフラグ３１が設定されている場合（ステップＳ５１、Ｙｅｓ）には、緊急ジョブに対して仮割り当てはすでに行われている場合であるので、ステップＳ５６に進む。
【００７９】
このように、資源割当部２７は、未来割り当ての緊急ジョブに対して仮割り当てを行うことによって、緊急ジョブが実行される前に、スワップアウトが終了した余剰資源に対して他のジョブを割り当てることができる。
【００８０】
次に、割当結果設定部２８による割当結果設定処理のフローについて説明する。図１２は、割当結果設定部２８による割当結果設定処理のフローを示すフローチャートである。図１２に示すように、割当結果設定部２８は、割当結果の通知及び実行開始時刻を待つ（ステップＳ６１）。ここで、実行開始時刻は、最も早く実行が開始されるジョブの開始時刻である。
【００８１】
そして、割当結果設定部２８は、割当結果の通知を受けたジョブが実行中ジョブであるか否かを判定し（ステップＳ６２）、実行中ジョブである場合には、通知を受けたジョブを実行中ジョブ管理テーブル２５に追加する（ステップＳ６３）。そして、割当結果設定部２８は、実行開始時刻となったジョブがあるか否かを判定し（ステップＳ６４）、実行開始時刻となったジョブがない場合には、ステップＳ６１に戻って、割当結果の通知及び実行開始時刻を待つ。
【００８２】
一方、実行開始時刻となったジョブがある場合には、割当結果設定部２８は、実行開始時刻となったジョブがスワップインジョブであるか否かを判定する（ステップＳ６８）。その結果、スワップインジョブでない場合には、割当結果設定部２８は、ジョブ実行開始処理を行い（ステップＳ６９）、実行を開始したジョブを実行待ジョブ管理テーブル２４から抜く（ステップＳ７０）。一方、スワップインジョブである場合には、割当結果設定部２８は、スワップイン処理を行い（ステップＳ７１）、スワップインしたジョブを実行待ジョブ管理テーブル２４から抜く（ステップＳ７０）。
【００８３】
また、割当結果の通知を受けたジョブが実行中ジョブでない場合（ステップＳ６２、Ｎｏ）には、割当結果設定部２８は、実行待ちジョブであるか否かを判定し（ステップＳ６５）、実行待ちジョブでない場合には、ステップＳ６４へ進む。一方、実行待ちジョブである場合には、割当結果設定部２８は、割当結果の通知を受けたジョブを実行待ジョブ管理テーブル２４に追加する（ステップＳ６６）。そして、割当結果設定部２８は、実行待ジョブ管理テーブル２４で最も早く実行予定のジョブを実行開始時刻待ちとして設定し（ステップＳ６７）、ステップＳ６４へ移動する。なお、割当結果設定部２８は、仮割り当てジョブは実行開始時刻待ちとして設定しない。
【００８４】
このように、ジョブの割当結果が通知されると、割当結果設定部２８が実行中ジョブ管理テーブル２５及び実行待ジョブ管理テーブル２４を更新することによって、ジョブスケジューラ２０はジョブの実行を管理することができる。
【００８５】
上述してきたように、実施例では、未来割り当てが行われた緊急ジョブを実行するためにスワップアウト処理を行う際に、資源割当部２７が、緊急ジョブに計算機資源を仮割り当てし、ジョブ管理テーブル２１及び割当管理テーブル２２に仮割り当て情報を設定する。したがって、資源割当部２７は、緊急ジョブの実行が開始される前に緊急ジョブ以外のジョブをスケジュールすることができ、実行中ジョブのスワップアウトにより生じる余剰資源を有効に利用することができる。
【００８６】
また、資源割当部２７は、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順に仮割り当て情報に基づいてジョブのスケジューリングを行う。したがって、資源割当部２７は、余剰資源を利用するジョブによるスワップイン待ちジョブの実行遅延を防ぐことができる。すなわち、ジョブスケジューラ２０は、スワップアウトされたジョブが使用していた計算機資源の中で緊急ジョブの割り当て余剰資源を後続のジョブに割り当てる場合、緊急ジョブの終了予定時刻の超過判断を行わなくてもスワップイン遅延防止を実現できる。また、スワップアウト済みジョブが使用していた計算機資源に対する緊急ジョブの管理も不要である。
【００８７】
また、実施例では、資源割当部２７は、仮割り当てした緊急ジョブのスケジューリングを行う場合に、仮割り当て情報の設定を解除してスケジューリングを行う。したがって、資源割当部２７は、仮割り当てされた計算機資源を仮割り当てした緊急ジョブに割り当てることができる。
【００８８】
また、実施例では、管理テーブル初期化部２６は、再スケジュールの際に、仮割り当てされた緊急ジョブのスケジュールは変更しないで割当管理テーブル２２に設定する。したがって、ジョブスケジューラ２０は、緊急ジョブの仮割り当てを効率良く行うことができる。
【００８９】
なお、実施例では、ジョブ管理ノード２について説明したが、ジョブ管理ノード２が有する構成をソフトウェアによって実現することで、同様の機能を有するジョブ管理プログラムを得ることができる。そこで、ジョブ管理プログラムを実行するコンピュータについて説明する。
【００９０】
図１３は、実施例に係るジョブ管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図１３に示すように、コンピュータ５は、メインメモリ４１と、ＣＰＵ４２と、ＬＡＮ（Local  Area  Network）インタフェース４３と、ＨＤＤ（Hard  Disk  Drive）４４とを有する。また、コンピュータ５は、スーパーＩＯ（Input  Output）４５と、ＤＶＩ（Digital  Visual  Interface）４６と、ＯＤＤ（Optical  Disk  Drive）４７とを有する。
【００９１】
メインメモリ４１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ４２は、メインメモリ４１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ４２は、メモリコントローラを有するチップセットを含む。
【００９２】
ＬＡＮインタフェース４３は、コンピュータ５をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ４４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ４５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ４６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ４７は、ＤＶＤの読み書きを行う装置である。
【００９３】
ＬＡＮインタフェース４３は、ＰＣＩエクスプレスによりＣＰＵ４２に接続され、ＨＤＤ４４及びＯＤＤ４７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ４２に接続される。スーパーＩＯ４５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ４２に接続される。
【００９４】
そして、コンピュータ５において実行されるジョブ管理プログラムは、ＤＶＤに記憶され、ＯＤＤ４７によってＤＶＤから読み出されてコンピュータ５にインストールされる。あるいは、ジョブ管理プログラムは、ＬＡＮインタフェース４３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ５にインストールされる。そして、インストールされたジョブ管理プログラムは、ＨＤＤ４４に記憶され、メインメモリ４１に読み出されてＣＰＵ４２によって実行される。
【００９５】
また、実施例では、計算ノード３が３次元又は１次元に配置される場合について説明したが、本発明はこれに限定されるものではなく、例えば計算ノード３が６次元に配置される場合など任意の次元に配置される場合にも同様に適用することができる。
【００９６】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）複数の計算ノードと前記複数の計算ノードを制御する管理ノードとを有する並列計算機システムにおいて、
前記管理ノードは、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行う実行スケジュール部と、
前記実行スケジュール部により行われたジョブのスケジューリングに基づいてジョブの実行を制御する実行制御部と
を有することを特徴とする並列計算機システム。
【００９８】
（付記２）前記実行スケジュール部は、仮割り当てした緊急ジョブのスケジューリングを行う場合に、計算ノードに設定した前記仮割り当て状態を解除してスケジューリングを行うことを特徴とする付記１記載の並列計算機システム。
【００９９】
（付記３）前記実行スケジュール部は、再スケジュールの際に、仮割り当てしたジョブのスケジュールは変更しないことを特徴とする付記１又は２記載の並列計算機システム。
【０１００】
（付記４）前記実行スケジュール部は、再スケジュールの際に、仮割り当てしたジョブについても再度スケジューリングを行うことを特徴とする付記１又は２記載の並列計算機システム。
【０１０１】
（付記５）複数の計算ノードと前記複数の計算ノードを制御する管理ノードとを有する並列計算機システムの制御方法において、
前記管理ノードが、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行い、
行ったジョブのスケジューリングに基づいてジョブの実行を制御する
ことを特徴とする並列計算機システムの制御方法。
【０１０２】
（付記６）複数の計算ノードを制御する管理ノードの制御プログラムにおいて、
前記管理ノードに、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行い、
行ったスケジューリングに基づいてジョブの実行を制御する
処理を実行させることを特徴とする管理ノードの制御プログラム。
【０１０３】
（付記７）複数の計算ノードを制御する制御プログラムを記憶したコンピュータ読み取り可能記憶媒体において、
コンピュータに、
計算ノードの空き待ちの緊急ジョブに計算ノードを割り当てるために実行中のジョブをスワップアウトする際に、緊急ジョブに計算ノードを仮割り当てして他のジョブのスケジューリングを可能とするとともに、仮割り当て状態であることを示す仮割当情報を前記緊急ジョブ及び仮割り当てした計算ノードに設定し、ジョブのスケジューリングを行う際に、緊急ジョブ、スワップイン待ちジョブ、その他のジョブの順序で前記仮割当情報に基づいてスケジューリングを行い、
行ったスケジューリングに基づいてジョブの実行を制御する
処理を実行させることを特徴とする制御プログラムを記憶したコンピュータ読み取り可能記憶媒体。
【符号の説明】
【０１０４】
１    ログインノード
２    ジョブ管理ノード
３    計算ノード
４    並列計算機システム
５    コンピュータ
９    矢印
１０    ジョブマネージャ
２０    ジョブスケジューラ
２１    ジョブ管理テーブル
２２    割当管理テーブル
２３    割当前ジョブ管理テーブル
２４    実行待ジョブ管理テーブル
２５    実行中ジョブ管理テーブル
２６    管理テーブル初期化部
２７    資源割当部
２８    割当結果設定部
３０    資源管理部
３１    仮割り当てフラグ
４１    メインメモリ
４２    ＣＰＵ
４３    ＬＡＮインタフェース
４４    ＨＤＤ
４５    スーパーＩＯ
４６    ＤＶＩ
４７    ＯＤＤ
【図１】
2015148909.tif 000003
【図２】
2015148909.tif 000004
【図３】
2015148909.tif 000005
【図４】
2015148909.tif 000006
【図５】
2015148909.tif 000007
【図６】
2015148909.tif 000008
【図７】
2015148909.tif 000009
【図８】
2015148909.tif 000010
【図９】
2015148909.tif 000011
【図１０】
2015148909.tif 000012
【図１１】
2015148909.tif 000013
【図１２】
2015148909.tif 000014
【図１３】
2015148909.tif 000015
【図１４】
2015148909.tif 000016
【図１５】
2015148909.tif 000017