(57)【要約】【課題】計算資源の使用効率の向上に寄与すること。【解決手段】ジョブ抽出プログラムは、複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部を参照して、前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定し、各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する、処理をコンピュータに実行させる。【選択図】図５
2015064664.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部を参照して、
前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定し、
各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する、
処理をコンピュータに実行させるジョブ抽出プログラム。
【請求項２】
各ジョブの投入者の識別情報を記憶した記憶部を参照して、前記抽出する処理によって抽出されたジョブの投入者の識別情報を出力する処理を前記コンピュータに実行させる請求項１記載のジョブ抽出プログラム。
【請求項３】
複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部と、
前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定する特定部と、
各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する抽出部と、
を有することを特徴とするジョブ抽出装置。
【請求項４】
複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部を参照して、
前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定し、
各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する、
処理をコンピュータが実行するジョブ抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ抽出プログラム、ジョブ抽出装置、及びジョブ抽出方法に関する。
【背景技術】
【０００２】
ＰＣクラスタを保有する計算センタ等において、多数のユーザによって投入される計算ジョブ（以下、単に「ジョブ」という。）の実行順序は、ジョブスケジューラと呼ばれる管理ソフトによって管理される。基本的に、ジョブの実行順序は、ＦＩＦＯ（First-In First-Out）方式に基づいて決定される。
【０００３】
図１は、ＦＩＦＯ方式に基づくジョブの実行順序を説明するための図である。図１において、縦軸は時間、横軸はＣＰＵ（計算資源）を示す。すなわち、各ジョブを表現する矩形の水平方向の幅によって、各ジョブが使用するＣＰＵ数が表現されている。具体的には、ジョブａは、１つのＣＰＵを使用し、ジョブｂは、４つのＣＰＵを並列的に使用し、ジョブｃは３つのＣＰＵを並列的に使用し、ジョブｄは、２つのＣＰＵを並列的に使用する。また、当該矩形の垂直方向の高さによって、各ジョブの開始から終了までに要する時間（以下、「実行時間」という。）が示されている。更に、当該矩形の位置によって、各ジョブの開始時刻及び終了時刻が示されている。
【０００４】
図１では、ジョブａ、ジョブｂ、ジョブｃ、及びジョブｄの順番で、ジョブが投入されている。したがって、ＦＩＦＯ方式では、ジョブａ、ジョブｂ、ジョブｃ、及びジョブｄの順番で、ジョブが実行される。
【０００５】
ここで、ジョブａの実行中において、３つのＣＰＵは使用されていない。これらのＣＰＵを有効活用することができれば、ＣＰＵの使用効率を向上させることができる。或るジョブの実行中に使用されていないＣＰＵの使用効率を向上させるための方法として、バックフィルが有る。
【０００６】
図２は、バックフィルを説明するための図である。図２の見方は、図１と同じである。また、図２において、ジョブの投入順も、図１と同じである。
【０００７】
図２では、ジョブａと並行して、ジョブｃが投入と同時に実行されている。但し、ジョブｂの開始時刻は遅延していない。その結果、ジョブａ〜ジョブｄの全てのジョブの実行に要する時間が短縮されている。すなわち、バックフィルとは、現在空いているＣＰＵを使用して実行可能なジョブ（「ジョブｃ」という。）よりも実行順序が前での待機中のジョブ（「ジョブｂ」という。）が存在する状況において、ジョブｂの実行開始に遅延が生じなければ、ジョブｃを先に実行させる（ジョブの追い越しを実行する）というスケジューリング方式をいう。
【０００８】
バックフィルの有効性は、ジョブの投入時にユーザによって入力される予測値（以下、「予想実行時間」という。）の精度に依存する。バックフィルでは、予想実行時間に基づいて、ジョブの追い越しの可否が判定されるからである。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−５８５１８号公報
【特許文献２】特開２０１２−７３６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、予想実行時間が、実際の実行時間に対して大きくずれてしまうジョブが投入されることがある。斯かるずれが発生する原因の一例として、ジョブによっては、予想実行時間の算出が非常に困難であることが挙げられる。また、ジョブの予想実行時間の算出のためのスキル不足しているユーザの存在が挙げられる。更に、ジョブの予想実行時間の精度の向上に対して意識が低いユーザの存在が挙げられる。いずれの場合においても、ジョブの予想実行時間には、安全を見込んで、実際の実行時間より長い値が予想実行時間として指定される傾向が有る。
【００１１】
精度が低く、実際の実行時間よりも長い予想実行時間が指定されると、本来であれば、バックフィルによって、他のジョブを追い越すことができたジョブに対して、バックフィルを適用することが困難となってしまう。このようなジョブの存在は、計算センタ全体における計算資源の使用効率を低下させてしまうことになる。
【００１２】
そこで、一側面では、計算資源の使用効率の向上に寄与することを目的とする。
【課題を解決するための手段】
【００１３】
一つの案では、ジョブ抽出プログラムは、複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部を参照して、前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定し、各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する、処理をコンピュータに実行させる。
【発明の効果】
【００１４】
一態様によれば、計算資源の使用効率の向上に寄与することができる。
【図面の簡単な説明】
【００１５】
【図１】ＦＩＦＯ方式に基づくジョブの実行順序を説明するための図である。
【図２】バックフィルを説明するための図である。
【図３】本発明の実施の形態における計算センタの構成例を示す図である。
【図４】本発明の実施の形態におけるジョブ管理装置のハードウェア構成例を示す図である。
【図５】本発明の実施の形態におけるジョブ管理装置の機能構成例を示す図である。
【図６】ジョブの投入時においてジョブ管理装置が実行する処理手順の一例を説明するためのフローチャートである。
【図７】ジョブ投入情報の構成例を示す図である。
【図８】ジョブ実績情報の構成例を示す図である。
【図９】ジョブの終了時においてジョブ管理装置が実行する処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて本発明の実施の形態を説明する。図３は、本発明の実施の形態における計算センタの構成例を示す図である。図３において、計算センタ１は、１以上のユーザ端末２０、ジョブ管理装置１０、及び計算資源３０−１〜３０−ｎ等の複数の計算資源を含む。以下、計算資源３０−１〜３０−ｎのそれぞれを区別しない場合、「計算資源３０」という。
【００１７】
各ユーザ端末２０とジョブ管理装置１０とは、ＬＡＮ（Local Area Network）等のネットワークを介して接続されている。ジョブ管理装置１０と各計算資源３０とは、ＬＡＮ等のネットワークを介して接続されている。また、計算資源３０同士も、ネットワークを介して接続されている。
【００１８】
ユーザ端末２０は、計算センタ１のユーザが、ジョブの投入等に利用するＰＣ（Personal Computer）等の端末である。スマートフォン、タブレット型端末、携帯電話等が、ユーザ端末２０として利用されてもよい。本実施の形態において、ジョブとは、ユーザからの指示に応じて１以上の計算資源３０を使用して実行される計算処理をいう。計算センタ１においては、複数種類のジョブの実行が可能であってよい。
【００１９】
各計算資源３０は、例えば、並列スーパコンピュータやコンピュータ・クラスタ等を構成する。図中において例示されている各計算資源３０は、必ずしも一台のコンピュータでなくてもよく、相互結合網で結合された複数のコンピュータであってもよい。また、各計算資源３０は、一つ又は複数のＣＰＵ若しくはプロセッサコアであってもよい。本実施の形態では、説明の便宜上、計算資源３０は、一つのプロセッサコアを含む一つのＣＰＵであるとする。マルチコアプロセッサを含むＣＰＵを有する計算資源３０が有る場合、以降の説明において、ＣＰＵに関する個数は、プロセッサコアに関する個数に置き換えられればよい。
【００２０】
ジョブ管理装置１０は、各ユーザ端末２０から受信されるジョブの実行要求に応じ、ジョブの実行順序の決定や、計算資源３０に対するジョブの割り当て（ジョブのディスパッチ）等を行うコンピュータである。
【００２１】
図４は、本発明の実施の形態におけるジョブ管理装置のハードウェア構成例を示す図である。図４のジョブ管理装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００２２】
ジョブ管理装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってジョブ管理装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２４】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００２５】
図５は、本発明の実施の形態におけるジョブ管理装置の機能構成例を示す図である。図５において、ジョブ管理装置１０は、ジョブ受付部１１、スケジュール部１２、ディスパッチ部１３、終了通知受信部１４、阻害候補特定部１５、阻害ジョブ抽出部１６、及び阻害ジョブ出力部１７等を有する。これら各部は、ジョブ管理装置１０にインストールされたプログラムが、ＣＰＵ１０４に実行させる処理により実現される。ジョブ管理装置１０は、また、ジョブキュー１１１及びジョブ実績情報記憶部１１２等を利用する。ジョブキュー１１１及びジョブ実績情報記憶部１１２は、メモリ装置１０３、補助記憶装置１０２、又はジョブ管理装置１０にネットワークを介して接続される記憶装置等を用いて実現可能である。
【００２６】
ジョブ受付部１１は、ユーザによって投入されたジョブの実行要求を、ユーザ端末２０より受信する。スケジュール部１２は、実行要求に係るジョブの実行順序を決定し、当該実行順序に従って、当該ジョブの投入時に指定された情報（以下、「ジョブ投入情報」という。）を、ジョブキュー１１１に記憶する。ジョブキュー１１１は、待機中のジョブのジョブ投入情報を、ジョブの実行順に記憶する。待機中のジョブとは、実行中のジョブにより計算資源３０を割り当てることのできないジョブである。なお、スケジュール部１２は、基本的に、ＦＩＦＯ（First-In First-Out）方式に基づいて、ジョブの実行順序を決定する。すなわち、ジョブの実行順序は、基本的に、ジョブの投入順に一致する。但し、バックフィルを適用可能なジョブについては、バックフィルが適用される。バックフィルが適用されたジョブは、ＦＩＦＯ方式に基づく実行順序において当該ジョブより前であるジョブを追い越すことができる。
【００２７】
ディスパッチ部１３は、ジョブキュー１１１に記憶されている順序で、ジョブを計算資源３０にディスパッチする（割り当てる）。ジョブのディスパッチによって、当該ジョブは開始されることになる。終了通知受信部１４は、ジョブの終了を示す通知を計算資源３０から受信する。
【００２８】
阻害候補特定部１５は、実行されたジョブの中から、バックフィルの活用の機会を阻害したジョブ（以下、「阻害ジョブ」という。）の候補を特定する。すなわち、阻害ジョブとは、結果的にはバックフィルを適用可能であったにも拘わらず、バックフィルが適用されなかったジョブをいう。バックフィルが適用されなかった原因として、ユーザによって指定された予想実行時間が過剰に見積もられていたことが挙げられる。
【００２９】
例えば、阻害候補特定部１５は、実行されたジョブの中から、阻害ジョブに該当し得ないジョブを除去することにより、阻害ジョブの候補を特定する。なお、阻害ジョブの候補は、阻害ジョブである可能性の有るジョブをいう。換言すれば、阻害ジョブの候補は、必ずしも、阻害ジョブであるとは限らない。阻害ジョブ抽出部１６は、阻害ジョブの候補の中で所定の条件を満たすジョブを、阻害ジョブとして抽出する。所定の条件は、阻害ジョブを特定するための条件である。阻害ジョブ出力部１７は、阻害ジョブに関する情報を出力する。
【００３０】
ジョブ実績情報記憶部１１２は、実行されたジョブに関する実績情報等（以下、「ジョブ実績情報」という。）を記憶する。ジョブ実績情報は、阻害候補特定部１５及び阻害ジョブ抽出部１６によって、阻害ジョブの候補の特定又は阻害ジョブの抽出等に利用される。
【００３１】
以下、ジョブ管理装置１０が実行する処理手順について説明する。図６は、ジョブの投入時においてジョブ管理装置が実行する処理手順の一例を説明するためのフローチャートである。
【００３２】
いずれかのユーザ端末２０において、ユーザによってジョブ投入情報が入力されると、当該ユーザ端末２０は、当該ジョブ投入情報を、ジョブ管理装置１０に送信する。ステップＳ１０１において、ジョブ受付部１１は、当該ジョブ投入情報を受信する。なお、ユーザによるジョブ投入情報の入力は、ユーザによるジョブの投入操作に相当する。入力されたジョブ投入情報に係るジョブを、以下「対象ジョブ」という。
【００３３】
図７は、ジョブ投入情報の構成例を示す図である。図７において、ジョブ投入情報は、ジョブＩＤ、ジョブ名、ユーザ名、実行プログラム名、使用リソース数、及び予想実行時間等の項目を含む。
【００３４】
ジョブＩＤは、ジョブごとの識別情報である。ジョブ名は、ユーザが各ジョブに対して任意に付加可能な、ジョブの識別名である。ユーザ名は、ジョブの投入元のユーザの識別名である。実行プログラム名は、計算資源３０に対象ジョブを実行させるプログラムの識別名である。使用リソース数は、対象ジョブが並列的に使用する計算資源３０の数である。予想実行時間は、対象ジョブの実行時間の予測値である。
【００３５】
ジョブ名、ユーザ名、実行プログラム名、使用リソース数、及び予想実行時間は、ジョブの投入時において、ユーザ端末２０に対してユーザによって入力される。例えば、予想実行時間は、対象ジョブの構造やユーザの経験等に基づいて指定される。一方、ジョブＩＤは、ユーザ端末２０から受信されるジョブ投入情報に含まれていなくてもよい。例えば、ジョブ受付部１１によって、ジョブＩＤが生成され、対象ジョブのジョブ投入情報に付加されてもよい。また、ユーザ名は、例えば、ユーザのログイン時において入力された値であってもよい。
【００３６】
ジョブ受付部１１は、また、ジョブ実績情報記憶部１１２に対して、対象ジョブに対応するレコードを追加し、当該レコード（ジョブ実績情報）を構成する項目のうち、ジョブ投入情報の受信時点において確定する項目の値を記憶する。
【００３７】
図８は、ジョブ実績情報の構成例を示す図である。図８において、ジョブ実績情報は、ジョブＩＤ、ジョブ名、ユーザ名、使用リソース数、投入時刻、ジョブ投入時リソース使用率、開始時刻、終了時刻、実行時間、待ち時間、バックフィル適用有無、及び待機中の最大空き時間等の項目を含む。
【００３８】
ジョブＩＤ、ジョブ名、ユーザ名、及び使用リソース数の意味は、ジョブ投入情報に含まれる同名の項目と同じである。投入時刻は、ジョブが投入された時刻、すなわち、ジョブ投入情報が受信された時刻である。ジョブ投入時リソース使用率は、ジョブ投入情報が受信された時刻における、計算資源３０の使用率である。例えば、計算センタ１に１００個の計算資源３０が有り、そのうちの６０個が使用中である場合、計算資源３０の使用率は、６０％となる。
【００３９】
開始時刻は、ジョブが開始された時刻である。終了時刻は、ジョブが終了した時刻である。実行時間は、ジョブが開始されてから終了するまでに要した時間、すなわち、ジョブの開始時刻から終了時刻までの経過時間である。待ち時間は、ジョブが投入されてから開始されるまで、すなわち、投入時刻から開始時刻までの経過時間である。待ち時間は、ジョブの投入時において、当該ジョブの使用リソース数分の、使用されていない（使用中でない）計算資源３０が無い場合に発生する。バックフィル適用有無は、ジョブに対するバックフィルの適用の実績の有無である。待機中の最大空き時間は、ジョブの待機中（待ち時間中）に、当該ジョブの使用リソース数以上の計算資源３０が使用されていない状態が継続した時間の中で、最大の時間である。
【００４０】
ジョブ投入情報の受信時においては、ジョブＩＤ、ジョブ名、ユーザ名、及び使用リソース数に、ジョブ投入情報と同じ値が記憶される。また、投入時刻に、ジョブ投入情報の受信時刻が記憶される。ジョブ投入時リソース使用率に、ジョブ投入情報の受信時における計算資源３０の使用率が記憶される。なお、計算資源３０の使用率は、公知の技術によって、ジョブ管理装置１０が把握可能である。
【００４１】
なお、開始時刻、終了時刻、及び実行時間のうちいずれか一つは、ジョブ実績情報に含まれなくてもよい。いずれか一つがジョブ実績情報に含まれなくても、ジョブの開始時期及び実行時間を特定可能であるからである。同様に、投入時刻、開始時刻、及び待ち時間のうちいずれか一つは、ジョブ実績情報に含まれなくてもよい。いずれか一つがジョブ実績情報に含まれなくても、ジョブの投入時期及び待ち時間を特定可能であるからである。
【００４２】
続いて、スケジュール部１２は、対象ジョブについてスケジューリング処理を実行して、対象ジョブの実行順序を決定する（Ｓ１０２）。当該スケジューリング処理は、公知のジョブスケジューラ等によって行われる処理と同様でよい。例えば、対象ジョブの実行順序は、ＦＩＦＯ方式で決定される。また、対象ジョブに対してバックフィルを適用可能であれば、バックフィルが適用された場合の実行順序が、対象ジョブに付与される。
【００４３】
なお、バックフィルの適用の可否の判定は、公知のバックフィルによるスケジューリング方法を用いて行われればよい。例えば、現在の計算資源３０の使用状況、ジョブキュー１１１に記憶されている各ジョブ投入情報の使用リソース数及び予想実行時間、並びに対象ジョブのジョブ投入情報の使用リソース数及び予想実行時間等に基づいて、バックフィルの適用の可否が判定されてもよい。
【００４４】
続いて、スケジュール部１２は、ジョブキュー１１１において、スケジューリング処理によって対象ジョブに付与された実行順序に対応する位置に、対象ジョブのジョブ投入情報を記憶する（Ｓ１０３）。例えば、対象ジョブにバックフィルが適用されない場合、当該ジョブ投入情報は、ジョブキュー１１１の末尾に追加される。また、スケジュール部１２は、対象ジョブのジョブ実績情報のバックフィル適用有無に対して、バックフィルが適用されなかったことを示す「無し」を記憶する。一方、対象ジョブにバックフィルが適用される場合、対象ジョブのジョブ投入情報は、ジョブキュー１１１において、バックフィルを適用した場合の実行順序に対応した位置に追加される。また、スケジュール部１２は、対象ジョブのジョブ実績情報のバックフィル適用有無に対して、バックフィルが適用されたことを示す「有り」を記憶する。
【００４５】
一方、ディスパッチ部１３は、例えば、ジョブキュー１１１の先頭に記憶されているジョブ投入情報の使用リソース数分の計算資源３０の空きが発生すると、当該ジョブ投入情報に係るジョブを、空いている（使用されていない）計算資源３０に割り当てる。その結果、当該ジョブが開始される。この際、ディスパッチ部１３は、対象ジョブのジョブ実績情報（図８）を構成する項目のうち、ジョブの開始時に確定する項目の値を記憶する。具体的には、開始時刻に、現在時刻が記憶される。待ち時間に、投入時刻から開始時刻までの経過時間が記憶される。待機中の最大空き時間に、対象ジョブの待ち時間中（投入時刻から開始時刻までの間）において、対象ジョブの使用リソース数以上の計算資源３０が使用されていない状態が継続した時間の中で、最大の時間が記憶される。
【００４６】
なお、対象ジョブの待ち時間中における、対象ジョブの使用リソース数以上の計算資源３０が使用されていない状態の継続時間は、対象ジョブの待ち時間中において使用されていない計算資源３０の数の時系列の遷移を示す情報に基づいて特定可能である。対象ジョブの待ち時間中において使用されていない計算資源３０の数の時系列の遷移を示す情報は、対象ジョブより開始時刻が前である各ジョブ実績情報の開始時刻、実行時間、及び使用リソース数に基づいて導出可能である。
【００４７】
続いて、ジョブの終了時に実行される処理手順について説明する。図９は、ジョブの終了時においてジョブ管理装置が実行する処理手順の一例を説明するためのフローチャートである。
【００４８】
計算資源３０を使用して実行されていた或るジョブ（以下、「対象ジョブ」という。）が終了すると、当該計算資源３０から、終了したジョブのジョブＩＤが、ジョブ管理装置１０に通知される。ステップＳ２０１において、終了通知受信部１４は、計算資源３０から通知された、終了したジョブのジョブＩＤを受信する。続いて、終了通知受信部１４は、対象ジョブのジョブ実績情報（図８）を構成する項目のうち、ジョブの終了時に確定する項目の値を記憶する（Ｓ２０２）。
【００４９】
具体的には、終了時刻に、終了通知が受信された時刻が記憶される。実行時間に、開始時刻から終了時刻までの経過時間が記憶される。
【００５０】
続いて、阻害候補特定部１５は、対象ジョブが待ち時間を要したか否かを判定する（Ｓ２０３）。具体的には、対象ジョブのジョブ実績情報の待ち時間の値が０であるか否かが判定される。待ち時間が０である場合（Ｓ２０３でＮｏ）、対象ジョブは、阻害ジョブの候補から除外される。待ち時間が０でない場合（Ｓ２０３でＹｅｓ）、対象ジョブが阻害ジョブで有る蓋然性は否定されないため、ステップＳ２０４に進む。
【００５１】
すなわち、待ち時間が無く、投入後、直ちに実行されたジョブは、バックフィルの活用の機会を阻害しようがないため、阻害ジョブの候補から除外されるのである。なお、ジョブの投入からジョブの開始まで、オーバーヘッド等によって所定時間が要される場合には、待ち時間を要したか否かは、待ち時間が、当該所定時間を超えるか否かによって判定されてもよい。すなわち、待ち時間とは、オーバーヘッド等に要される時間ではなく、他のジョブによる計算資源３０の使用によって、当該ジョブが開始できない状態の継続時間をいう。
【００５２】
ステップＳ２０４において、阻害候補特定部１５は、対象ジョブにバックフィルが適用されなかったか否かを判定する。対象ジョブにバックフィルが適用された場合（Ｓ２０４でＮｏ）、対象ジョブは、阻害ジョブの候補から除外される。対象ジョブにバックフィルが適用されなかった場合（Ｓ２０４でＹｅｓ）、対象ジョブが阻害ジョブで有る蓋然性は否定されないため、ステップＳ２０５に進む。この場合、対象ジョブは、阻害ジョブの候補として特定される。なお、対象ジョブに対するバックフィルの適用の有無は、対象ジョブのジョブ実績情報（図８）のバックフィル適用有無を参照することにより行われてもよい。または、対象ジョブより投入時刻が前である全てのジョブの開始時刻よりも対象ジョブの開始時刻の方が後であれば、対象ジョブにはバックフィルが適用されていないと判定されてもよい。換言すれば、対象ジョブより投入時刻が前であるいずれかのジョブの開始時刻よりも、対象ジョブの開始時刻の方が先であれば、対象ジョブにはバックフィルが適用されたと判定されてもよい。
【００５３】
ステップＳ２０５において、阻害ジョブ抽出部１６は、対象ジョブのジョブ実績情報の待機中の最大空き時間と、当該ジョブ実績情報の実行時間とを比較する。待機中の最大空き時間が、実行時間未満であれば（Ｓ２０５でＮｏ）、阻害ジョブ抽出部１６は、対象ジョブが阻害ジョブでないと判定する。
【００５４】
一方、待機中の最大空き時間が、実行時間以上であれば（Ｓ２０５でＹｅｓ）、阻害ジョブ抽出部１６は、対象ジョブが阻害ジョブであると判定する。すなわち、対象ジョブによる実際の使用数以上の計算資源３０が使用されない状態が、対象ジョブの待ち時間中に継続したにも拘わらず、対象ジョブにはバックフィルが適用されていないからである。
【００５５】
対象ジョブが阻害ジョブであると判定された場合（Ｓ２０５でＹｅｓ）、阻害ジョブ出力部１７は、例えば、対象ジョブのジョブ実績情報を出力する（Ｓ２０６）。但し、当該ジョブ実績情報を構成する項目のうち、ユーザ名のみが出力されてもよいし、ユーザ名及びジョブ名が出力されてもよい。また、出力形態は、当該ユーザ名に係るユーザのユーザ端末２０への通知であってもよいし、計算センタ１の管理者のユーザ端末２０への通知であってもよい。ユーザに通知される場合、ユーザは、自らのジョブによって、バックフィルが活用される機会が阻害されたことを認識することができる。その結果、当該ユーザが、以降においてジョブの予想実行時間の精度を上げることに対する意識を高めることを期待することができる。また、管理者に通知される場合、管理者は、バックフィルが活用される機会を阻害したジョブを投入したユーザ（ジョブの投入者）に対して、予想実行時間の精度を上げるよう、指導することができる。その結果、阻害ジョブが発生する可能性が低下し、計算資源３０の使用効率が向上することを期待することができる。
【００５６】
上述したように、本実施の形態によれば、バックフィルが活用される機会を阻害した阻害ジョブを抽出し、当該阻害ジョブに関する情報を、ユーザ又は管理者に通知することができる。したがって、ユーザに対して、バックフィルの有効性が依存する予想実行時間の精度の向上に対する意識の向上を期待することができる。その結果、バックフィルが活用される機会を増加させ、ひいては、計算資源３０の使用効率が向上することに寄与することができる。
【００５７】
なお、本実施の形態では、ジョブの終了時に、当該ジョブが阻害ジョブであるか否かが判定される例について説明したが、ジョブ実績情報記憶部１１２に記憶された各ジョブ実績情報について、図９のステップＳ２０３以降がバッチ的に実行されてもよい。
【００５８】
なお、本実施の形態において、ジョブ実績情報記憶部１１２は、記憶部の一例である。阻害候補特定部１５は、特定部の一例である。阻害ジョブ抽出部１６は、抽出部の一例である。阻害ジョブ出力部１７は、出力部の一例である。ジョブ管理装置１０は、ジョブ抽出装置の一例である。ユーザ名は、ジョブの投入者の識別情報の一例である。
【００５９】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６０】
以上の説明に関し、更に以下の項を開示する。
（付記１）
複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部を参照して、
前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定し、
各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する、
処理をコンピュータに実行させるジョブ抽出プログラム。
（付記２）
各ジョブの投入者の識別情報を記憶した記憶部を参照して、前記抽出する処理によって抽出されたジョブの投入者の識別情報を出力する処理を前記コンピュータに実行させる付記１記載のジョブ抽出プログラム。
（付記３）
複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部と、
前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定する特定部と、
各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する抽出部と、
を有することを特徴とするジョブ抽出装置。
（付記４）
各ジョブの投入者の識別情報を記憶した記憶部を参照して、前記抽出する処理によって抽出されたジョブの投入者の識別情報を出力する出力部を有することを特徴とする付記３記載のジョブ抽出装置。
（付記５）
複数の計算資源のうちのいずれかを使用して実行された各ジョブについて、投入時期、開始時期、実行時間、及び計算資源の使用数、を示す情報を記憶した記憶部を参照して、
前記各ジョブの中から、ジョブの投入時期から開始時期までに待ち時間を要し、かつ、前記ジョブより投入時期が前である他のジョブより開始時期が後である第一のジョブを特定し、
各ジョブの投入時期、開始時期、実行時間、及び計算資源の使用数に基づいて導出される、使用されていない計算資源の数の時系列の遷移を示す情報に基づいて、前記第一のジョブの中から、ジョブの待ち時間中に、前記ジョブの計算資源の使用数以上の計算資源が使用されていない状態が前記ジョブの実行時間以上継続したジョブを抽出する、
処理をコンピュータが実行するジョブ抽出方法。
（付記６）
各ジョブの投入者の識別情報を記憶した記憶部を参照して、前記抽出する処理によって抽出されたジョブの投入者の識別情報を出力する処理を前記コンピュータが実行する付記５記載のジョブ抽出方法。
【符号の説明】
【００６１】
１            計算センタ
１０          ジョブ管理装置
１１          ジョブ受付部
１２          スケジュール部
１３          ディスパッチ部
１４          終了通知受信部
１５          阻害候補特定部
１６          阻害ジョブ抽出部
１７          阻害ジョブ出力部
２０          ユーザ端末
３０          計算資源
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１１１        ジョブキュー
１１２        ジョブ実績情報記憶部
Ｂ            バス
【図１】
2015064664.tif 000003
【図２】
2015064664.tif 000004
【図３】
2015064664.tif 000005
【図４】
2015064664.tif 000006
【図５】
2015064664.tif 000007
【図６】
2015064664.tif 000008
【図７】
2015064664.tif 000009
【図８】
2015064664.tif 000010
【図９】
2015064664.tif 000011