(57)【要約】【課題】コストを抑えつつ、時間内に処理を終えることができるリソースの割当てを可能とする。【解決手段】仮想マシン２０は、２以上のリソースの割当量が変更可能に構成される。ジョブ実行制御手段１１は、仮想マシン２０に、入力データに対するジョブを実行させる。実行結果データ１５は、リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む。割当てリソース予測手段１２は、実行結果データ１５、入力データのデータ量、及び予定終了時刻に基づいて、予定終了時刻までにジョブが終わり、かつ、コストが最小となるリソースの割当量の組み合わせを予測する。ジョブ実行制御手段１１は、仮想マシン２０のリソースの割当量を、予測されたリソースの割当量の組み合わせに制御する。【選択図】図１
2020144510.tif 000002
【特許請求の範囲】
【請求項１】
２以上のリソースの割当量が変更可能に構成された仮想マシンに、入力データに対するジョブを実行させるジョブ実行制御手段と、
前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測する割当てリソース予測手段とを備え、
前記ジョブ実行制御手段は、前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御するジョブ制御システム。
【請求項２】
前記ジョブ実行制御手段は、前記ジョブの実行の処理時間を計測し、前記リソースの割当量の組み合わせと前記計測した処理時間とを対応付け、前記実行結果データとして実行結果データ記憶手段に記憶し、
前記割当てリソース予測手段は、前記実行結果データ記憶手段に記憶される実行結果データを用いて、前記リソースの割当量の組み合わせに対して、前記予定終了時刻までに前記ジョブが終わる組み合わせを探す請求項１に記載のジョブ制御システム。
【請求項３】
前記割当てリソース予測手段は、各リソースの割当量を最小とした組み合わせに対応する実行結果データを前記実行結果データ記憶手段から読み出し、該読み出した実行結果データに含まれる処理時間と、残りの入力データの量とに基づいて、前記仮想マシンのリソースの割当量を当該組み合わせとした場合に前記予定終了時刻までに前記ジョブが終わるか否かを判断する請求項２に記載のジョブ制御システム。
【請求項４】
前記割当てリソース予測手段は、前記仮想マシンのリソースの割当量を、各リソースの割当量を最小とした組み合わせとした場合に前記予定終了時刻までに前記ジョブが終わらないと判断した場合、二分探査を行い、時間内に処理が終わる前記リソースの割当量の組み合わせを発見し、該発見したリソースの割当量の組み合わせを暫定的な最小コストの組み合わせとして記録する請求項３に記載のジョブ制御システム。
【請求項５】
前記割当てリソース予測手段は、前記暫定的な最小コストの組み合わせとして記録したリソースの組み合わせに基づいて、１以上の前記リソースの割当量の組み合わせを確認対象の組み合わせとして決定し、該決定した確認対象の組み合わせのそれぞれについて前記予定終了時刻までに処理が終わるか否かを判断し、前記確認対象の組み合わせに前記予定終了時刻までに処理が終わるリソースの割当量の組み合わせが含まれる場合、該予定終了時刻までに処理が終わるリソースの割当量の組み合わせのうち前記コストが最小の組み合わせを特定し、該特定したリソースの組み合わせを前記暫定的な最小コストの組み合わせとして記録する請求項４に記載のジョブ制御システム。
【請求項６】
前記割当てリソース予測手段は、前記確認対象の組み合わせの決定、及び前記確認対象の組み合わせのそれぞれについての前記予定終了時刻までに処理が終わるか否かの判断を繰り返し実施し、初回の確認対象の組み合わせの決定では、前記暫定的な最小コストの組み合わせとして記録した前記リソースの割当量の組み合わせに基づいて前記確認対象の組み合わせを決定し、２回目以降の確認対象の組み合わせの決定では、前回の確認対象の組み合わせに基づいて前記確認対象の組み合わせとして決定する請求項５に記載のジョブ制御システム。
【請求項７】
前記割当てリソース予測手段は、前記初回の確認対象の組み合わせの決定では、前記暫定的な最小コストの組み合わせとして記録したリソースの割当量の組み合わせより、各リソースの割当量が１段階低い割当量となる１以上の組み合わせを前記確認対象の組み合わせとして決定し、２回目以降の確認対象の組み合わせの決定では、前記リソースの割当量が、前回の確認対象の組み合わせより、各リソースの割当量が１段階低い割当量、及び１段階高い割当量となる１以上の組み合わせを前記確認対象の組み合わせとして決定する請求項６に記載のジョブ制御システム。
【請求項８】
前記割当てリソース予測手段は、前記確認対象の組み合わせがなくなるまで、前記確認対象の組み合わせの決定、及び前記確認対象の組み合わせのそれぞれについての前記予定終了時刻までに処理が終わるか否かの判断を実施し、前記確認対象の組み合わせがなくなった場合、前記暫定的な最小コストの組み合わせとして記録されているリソースの割当量の組み合わせを、前記コストが最小となる前記リソースの割当量の組み合わせとする請求項６又は７に記載のジョブ制御システム。
【請求項９】
２以上のリソースの割当量が変更可能に構成された仮想マシンにおける前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記仮想マシンで実行されるジョブの対象となる入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測し、
前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御し、
前記仮想マシンに、前記入力データに対するジョブを実行させるジョブ制御方法。
【請求項１０】
２以上のリソースの割当量が変更可能に構成された仮想マシンにおける前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記仮想マシンで実行されるジョブの対象となる入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測し、
前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御し、
前記仮想マシンに、前記入力データに対するジョブを実行させるための処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ジョブ制御システム、方法、及びプログラムに関し、更に詳しくは、入力データに対するジョブの実行を制御するジョブ制御システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
一般的なバッチ処理の運用として、ジョブ管理システムなどを用いてスケジュールに基づいてバッチ処理を順次稼働していく方法が知られている。このようなバッチ処理の運用では、一定のリソースで処理を行うと、日々の入力データ量の違いなどに起因して、処理時間が変動する。バッチ処理の運用では、入力データ量に変動が生じても、必要となるリソースを確保して、予定終了時刻までに処理を終了させることが重要である。
【０００３】
関連技術として、特許文献１は、バッチ制御システムを開示する。特許文献１に記載のバッチ制御システムにおいて、監視部は、第１仮想計算機による第１バッチ処理の実行の際のリソース使用量と処理時間を監視し、最大リソース使用量と最大処理時間を取得する。予測部は、最大リソース使用量及び最大処理時間の傾向から、第１仮想計算機による第２バッチ処理の実行の際のリソース使用量と処理時間とを予測する。制御部は、予測されたリソース使用量と予測された処理時間とに応じて、第２バッチ処理の実行を制御する。
【０００４】
また、別の関連技術として、特許文献２は、ジョブ実行方法を開示する。特許文献２では、ネットワーク接続された複数のコンピュータを用いて、任意のタスク数に分割可能なジョブが実行される。特許文献２において、複数のコンピュータの中の１つのコンピュータは、ジョブのタスクを所定時間処理する。コンピュータは、所定時間におけるタスク処理の進捗率を算出し、進捗率及び所定時間に基づいて、１つのコンピュータでのタスク処理の完了時間を推定する。
【０００５】
コンピュータは、推定した完了時間がジョブの要求項目を満たすか否かを判定する。コンピュータは、例えばジョブのデッドライン時刻（実行終了希望時刻）までの残余時間が、推定した完了時間より長い場合、要求項目が満たされないと判定する。要求項目が満たされる場合、残りのタスクは１つのコンピュータを用いて実行される。要求項目が満たされる場合、タスクの一部を他のコンピュータに移動し、他のコンピュータで一部のタスクを実行させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１２９９８８号公報
【特許文献２】特開２００８−１２３２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、クラウドコンピューティングの利用が広まっており、バッチ処理についてもクラウド上で実施することが増えてきている。クラウドコンピューティング上でバッチ処理を実施する場合、リソースの割当量を増加させるほど、コストが掛かかる。このため、コストを抑えるために、リソースを必要な分だけ無駄なく割り当てることが重要である。
【０００８】
しかしながら、特許文献１は、物理サーバ上でのリソース管理を前提としている。特許文献１では、リソース使用率として、常に過去実績から導きだされる最高値又は平均値が予測値として利用される。バッチ処理は必ずしも処理時間が単純な増加傾向や減少傾向を示すとは限らず、バッチ処理の入力データ量は、日に応じてばらつきがあり得る。このため、日に応じて、必要となるリソース量が変動する場合がある。特許文献１に記載のシステムにおいて、例えば最高値を予測値としてスケール調整が行われると、入力データ量が少ない場合は無駄なコストがかかるという問題がある。また、平均値を予測値として利用した場合、入力データ量が多い場合に使用するリソース量が割り当てたリソース量を超え、予定終了時刻までに処理が終わらない問題がある。
【０００９】
特許文献２については、推定した完了時間がジョブの要求項目を満たす場合は、１つのコンピュータで残りの全タスクが実行される。この場合に、リソース量が、タスク数に対して過剰である場合があり得る。このため、バッチ処理においてデータ量が少ない場合には、リソースを必要な分だけ無駄なく割り当てることができず、コストを抑えることができない。
【００１０】
本開示は、上記事情に鑑み、コストを抑えつつ、時間内に処理を終えることができるジョブ制御システム、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本開示は、２以上のリソースの割当量が変更可能に構成された仮想マシンに、入力データに対するジョブを実行させるジョブ実行制御手段と、前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測する割当てリソース予測手段とを備え、前記ジョブ実行制御手段は、前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御するジョブ制御システムを提供する。
【００１２】
本開示は、２以上のリソースの割当量が変更可能に構成された仮想マシンにおける前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記仮想マシンで実行されるジョブの対象となる入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測し、前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御し、前記仮想マシンに、前記入力データに対するジョブを実行させるジョブ制御方法を提供する。
【００１３】
本開示は、２以上のリソースの割当量が変更可能に構成された仮想マシンにおける前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記仮想マシンで実行されるジョブの対象となる入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測し、前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御し、前記仮想マシンに、前記入力データに対するジョブを実行させるための処理をコンピュータに実行させるためのプログラムを提供する。
【発明の効果】
【００１４】
本開示に係るジョブ制御システム、方法、及びプログラムは、コストを抑えつつ、時間内に処理を終えるようにジョブを制御することができる。
【図面の簡単な説明】
【００１５】
【図１】本開示に係るジョブ制御システムの概略的に示すブロック図。
【図２】本開示の一実施形態に係るジョブ制御システムを含むシステム全体を示すブロック図。
【図３】対象リソースの設定可能値とコストとの例を示す図。
【図４】入力データの一例を示す図。
【図５】全体的な処理の流れを示すフローチャート。
【図６】割当てリソース量の予測の手順を示すフローチャート。
【図７】割当てリソース量の予測の手順を示すフローチャート。
【図８】二分探査におけるリソースの割当量の組み合わせの算出過程の例を示す図。
【図９】最小コストのリソースの割当量の組み合わせの算出過程を示す図。
【図１０】（ａ）〜（ｄ）は、最小コストのリソース割当量の組み合わせを探索する過程を示す模式図。
【図１１】情報処理装置構成例を示すブロック図。
【発明を実施するための形態】
【００１６】
本開示の実施の形態の説明に先立ち、本開示の概要を説明する。図１は、本開示に係るジョブ制御システムの概略的に示す。ジョブ制御システム１０は、ジョブ実行制御手段１１、及び割当てリソース予測手段１２を有する。ジョブ実行制御手段１１は、仮想マシン２０に、入力データに対するジョブを実行させる。仮想マシン２０は、２以上のリソース割当量が変更可能に構成される。仮想マシン２０において、コストは、リソースの割当量の組み合わせに基づいて定まる。
【００１７】
実行結果データ１５は、仮想マシン２０におけるリソースの割当量の組み合わせと所定単位量の入力データでの処理時間とを含む。割当てリソース予測手段１２は、実行結果データ１５、入力データのデータ量、及び予定終了時刻に基づいて、予定終了時刻までにジョブが終わり、かつ、コストが最小となるリソースの割当量の組み合わせを予測する。ジョブ実行制御手段１１は、仮想マシンのリソースの割当量を、予測されたリソースの割当量の組み合わせに制御する。
【００１８】
本実施形態では、実行結果データ１５は、リソースの割当量の組み合わせと所定単位量の入力データでの処理時間と含む。割当てリソース予測手段１２は、実行結果データ１５を参照することで、リソースの割当量の組み合わせごとに、入力データの処理にどれだけ時間が必要かを見積もることができる。割当てリソース予測手段１２は、予定終了時刻までに入力データの処理を終えることができるリソースの割当量の組み合わせのうち、コストが最小となる組み合わせを予測する。ジョブ実行制御手段１１は、仮想マシン２０のリソースの割当量を予測された組み合わせに制御し、入力データに対するジョブを実行させる。このようにすることで、クラウドコンピューティングなどを利用する場合などにおいて、仮想マシン２０に対する無駄がないリソース割り当てを実現でき、ジョブ実行のコストを抑えることができる。
【００１９】
以下、図面を参照して本開示の実施の形態を説明する。図２は、本開示の一実施形態に係るジョブ制御システムを含むシステム全体を示す。システム１００は、ジョブ制御システム１１０、及びジョブ実行システム１５０を有する。ジョブ制御システム１１０は、バッチ処理などのジョブの実行を制御する。ジョブ実行システム１５０は、ジョブプロセスの実行を行う。システム１００において、ジョブ制御システム１１０はマネージャとして構成され、ジョブ実行システム１５０はエージェントとして構成され得る。
【００２０】
ジョブ実行システム１５０は、入力データ１５１、ジョブプロセス１５２、及びＯＳ（Operating System）１５３を含む。ジョブ実行システム１５０は、仮想化基盤２００上の仮想マシンやコンテナとして構成される。仮想化基盤２００において、ジョブ実行システム１５０に割り当てられるリソースは、仮想化基盤１６０によって、ジョブ実行システム１５０の稼働中に変更可能に構成される。ジョブ実行システム１５０のコストは、各リソースの割当量に応じて定まる。ジョブ実行システム１５０は、図１の仮想マシン２０に対応する。
【００２１】
図３は、対象リソースの設定可能値とコストとの例を示す。ここでは、対象リソースとして、ＣＰＵ（Central Processing Unit）とディスクとを考える。ＣＰＵは、最低速（１）、低速（２）、通常（３）、高速（４）、及び最高速（５）の５段階でリソース割当てが可能であるとする。ＣＰＵのリソース割当て（設定値）が最高速（５）の場合のコストは最大の１００で、最低速（１）の場合のコストは最小値の１０であるとする。また、ディスクは、最低速（１）、低速（２）、通常（３）、高速（４）、及び最高速（５）の５段階でリソース割当てが可能であるとする。ディスクのリソース割当てが最高速（５）の場合のコストは最大の３０で、最低速（１）の場合のコストは最小の１０である。
【００２２】
例えば、ＣＰＵに対するリソース割当てが最高速（５）で、かつディスクに対するリソース割当てが最高速（５）である場合、コストは最大の１３０となる。一方、ＣＰＵに対するリソース割当てが最低速（１）で、かつディスクに対するリソース割当てが最低速（１）の場合、コストは最小の２０となる。ジョブの処理に要する時間は、ＣＰＵ及びディスクの設定値の組み合わせに応じて変化する。各リソースに対するリソースの割当てが最大の場合、コストは最も高いものの、処理を短時間で終えることができる。一方、各リソースに対するリソースの割当てが最小の場合、コストは最も低くできるものの、処理に要する時間が長くなる。
【００２３】
ジョブ実行システム１５０において、入力データ１５１はジョブプロセス１５２に与えられる。入力データ１５１は、レコード単位などで区切って処理することが可能データである。ジョブプロセス１５２は、レコード単位で入力データ１５１に対して所定の処理を実行する。レコード単位は、ジョブプロセス１５２が処理を実行する最小単位に対応する。ジョブ実行システム１５０において、一度に起動されるジョブプロセス１５２は、単一のジョブプロセスであるとする。
【００２４】
ジョブ制御システム１１０は、ジョブ定義データ記憶部１１１、入力データ確認部１１２、ジョブ実行制御部１１３、割当てリソース予測部１１４、及び実行結果データ記憶部１１５を有する。ジョブ制御システム１１０は、図１のジョブ制御システム１０に対応する。
【００２５】
ジョブ定義データ記憶部１１１は、ジョブに関する定義情報（ジョブ定義データ）を保存する。ジョブ定義データの内容の少なくとも一部は、ユーザにより事前に定義されている。ジョブ定義データは、例えば、実行するバッチ処理、入力データの情報、及び予定終了時刻を含む。ジョブ定義データは、更に、システム側で生成された、過去実績を検索するためのジョブの定義データのＩＤ、及び、最後に実行されてから実行するバッチ処理が変更されたか否かの情報を含む。
【００２６】
入力データの情報は、例えば、入力データ１５１の総量の確認コマンド、最後の処理データを元にした次回の最小単位の入力データの取得コマンド、及び、最後の処理データを元にした残り入力データの取得コマンドを含む。入力データの情報については、入力データに応じてコマンドが異なると予想されるため、ジョブ定義データにおいて、ユーザがそれぞれのコマンドを指定するものとする。
【００２７】
図４は、入力データの一例を示す。この例において、入力データは、「ｉｄ」、「名前」、「部門」、「性別」、及び「年齢」の各フィールドを有する。例として、図４に示されるようなＭｙＳＱＬのテーブルを入力データ１５１とした場合、ジョブ定義データにおいて、下記のようなＳＱＬコマンドが、入力データの情報として定義される。
入力データ総量の確認コマンドの例：
mysql -u user -p passwd db -e'SELECT COUNT(*) TABLE1'
最後の処理データを元にした次回の最小単位の入力データ取得コマンドの例：
mysql -u user -p passwd db -e'SELECT * FROM TABLE1 LIMIT 1 OFFSET <最後の処理データの番号>'
最後の処理データを元にした残り入力データの取得コマンドの例：
mysql -u user -p passwd db -e'SELECT * FROM TABLE1 OFFSET <最後の処理データの番号>'
【００２８】
図２に戻り、入力データ確認部１１２は、ジョブの入力データ１５１の総量を確認する。ジョブ実行制御部１１３は、ジョブプロセス１５２において実行されるジョブを制御する。また、ジョブ実行制御部１１３は、仮想化基盤１６０に対し、ジョブ実行システム１５０のリソース割当ての変更依頼などを行う。ジョブ実行制御部１１３は、図１のジョブ実行制御手段１１に対応する。
【００２９】
実行結果データ記憶部１１５は、各リソースの割当量、及び単位入力あたりの処理時間などの情報を含むジョブの実行結果（実行結果データ）を記憶する。割当てリソース予測部１１４は、ジョブ実行システム１５０への割当てリソース量を予測する。より詳細には、割当てリソース予測部１１４は、実行結果データ、入力データ１５１のデータ量、及び予定終了時刻に基づいて、予定終了時刻までに処理が終わり、かつ、コストが最小となるリソースの割当量の組み合わせを予測する。実行結果データ記憶部１１５に記憶される実行結果データは図１の実行結果データ１５に対応する。割当てリソース予測部１１４は、図１の割当てリソース予測手段１２に対応する。
【００３０】
実行結果データ記憶部１１５は、複数のリソースの割当量の組み合わせに対して、ジョブ実行システム１５０に最小単位の入力データに対するジョブを実行させた場合の実行結果データを記憶する。割当てリソース予測部１１４は、実行結果データ記憶部１１５に記憶される実行結果データを用いて、いくつかのリソースの割当量の組み合わせに対して、予定終了時刻までにジョブが終わるか否かを判断する。
【００３１】
割当てリソース予測部１１４は、該当するリソースの割当量の組み合わせに対応する実行結果データを実行結果データ記憶部１１５から読み出す。割当てリソース予測部１１４は、読み出した実行結果データに含まれる処理時間と、残りの入力データの量とに基づいて、処理の残り必要時間を計算する。割当てリソース予測部１１４は、必要時間と、予定終了時刻に基づいて定まる残り時間とを比較し、予定終了時刻までに処理が終わるか否かを判断する。割当てリソース予測部１１４は、予定終了時刻までに処理が終わるリソースの割当量の組み合わせのうち、コストが最小の組み合わせを予測する。ジョブ実行制御部１１３は、ジョブ実行システム１５０のリソースの割当量を、割当てリソース予測部１１４で予測されたリソースの割当量の組み合わせに制御する。
【００３２】
図５は、ジョブ制御システムにおける全体的な処理の流れ（ジョブ制御方法）を示す。ジョブ実行制御部１１３は、ジョブ定義データ記憶部１１１から、ジョブ定義データを読み込む（ステップＡ１）。ジョブ実行制御部１１３は、入力データ確認部１１２に、入力データ確認依頼を行う（ステップＡ２）。ジョブ実行制御部１１３は、ステップＡ２では、ジョブ定義データの入力データの情報に含まれる入力データの総量の確認コマンドを入力データ確認部１１２に渡す。入力データ確認部１１２は、受け取った確認コマンドを用いて入力データ１５１の総量の確認を行い、ジョブ実行制御部１１３に入力データ１５１の総量を返却する。
【００３３】
ジョブ実行制御部１１３は、割当てリソース予測部１１４に割当てリソースの予測を依頼する。割当てリソース予測部１１４は、割当てリソースを予測する（ステップＡ３）。割当てリソース予測部１１４は、最小コストで予定時刻までに処理を完了できるリソースの割当量の組み合わせを予測し、割当てリソースの予測結果（各リソースの割当量の組み合わせ）をジョブ実行制御部１１３に返却する。割当てリソース予測部１１４は、割当てリソースの予測において、ジョブ実行制御部１１３に実行結果データの取得を依頼する場合がある。そのとき、割当てリソース予測部１１４は、ジョブ実行システム１５０の各リソースの割当量の組み合わせを指定して、実行結果データの取得を依頼する。ステップＡ３における割当てリソース予測部１１４の詳細な動作については、後述する。
【００３４】
ジョブ実行制御部１１３は、割当てリソース予測部１１４から実行結果データの取得を依頼されたか否かを判断する（ステップＡ４）。ジョブ実行制御部１１３は、実行結果データの取得が依頼された場合、仮想化基盤１６０を通じて、ジョブ実行システム１５０の割当てリソースを変更する（ステップＡ５）。ジョブ実行制御部１１３は、ステップＡ５では、割当てリソース予測部１１４から指定された各リソースの割当量の組み合わせに、ジョブ実行システム１５０の割当てリソースを変更する。
【００３５】
ジョブ実行制御部１１３は、割当てリソース量の変更後、最小単位の入力データを入力としてジョブプロセス１５２に処理を実行させる（ステップＡ６）。ジョブ実行制御部１１３は、ステップＡ６では、ジョブ定義データの入力データの情報に含まれる、最後の処理データを元にした次回の最小単位の入力データ取得コマンドを用いて、ジョブプロセス１５２に最小単位のデータに対する処理を実行させる。
【００３６】
ジョブ実行制御部１１３は、ジョブプロセス１５２の実行が完了すると、実行結果データ記憶部１１５に、実行結果データを格納する（ステップＡ７）。ジョブ実行制御部１１３は、ステップＡ７では、ステップＡ５で変更した割当てリソースの組み合わせと、最小単位のデータの処理時間とを対応付け、それらを実行結果データとして実行結果データ記憶部１１５に格納する。その後、処理はステップＡ３に戻り、ジョブ実行制御部１１３は、割当てリソース予測部１１４に割当てリソースの予測を依頼する。
【００３７】
ジョブ実行制御部１１３は、ステップＡ４において、実行結果データの取得を依頼されていないと判断した場合、仮想化基盤１６０を通じて、ジョブ実行システム１５０の割当てリソースを変更する（ステップＡ８）。ジョブ実行制御部１１３は、ステップＡ８では、割当てリソース予測部１１４から返却されたリソースの割当量の組み合わせに、ジョブ実行システム１５０の割当てリソースを変更する。
【００３８】
ジョブ実行制御部１１３は、割当てリソース量の変更後、入力データ１５１の残りのデータを入力としてジョブプロセス１５２に処理を実行させる（ステップＡ９）。ジョブ実行制御部１１３は、ステップＡ９では、ジョブ定義データの入力データの情報に含まれる、最後の処理データを元にした残り入力データの取得コマンドを用いて、ジョブプロセス１５２に残りデータに対する処理を実行させる。
【００３９】
ジョブ実行制御部１１３は、ジョブプロセス１５２の実行が完了すると、実行結果データ記憶部１１５に、実行結果データを格納する（ステップＡ１０）。ジョブ実行制御部１１３は、ステップＡ１０では、ステップＡ８で変更した割当てリソースの組み合わせと、データの処理時間とを対応付け、それらを実行結果データとして実行結果データ記憶部１１５に格納する。以上が、ジョブ制御システムにおけるジョブ実行時の全体的な処理の流れとなる。
【００４０】
図６及び図７は、ステップＡ３における割当てリソース量の予測の手順を示す。割当てリソース予測部１１４は、ジョブ実行制御部１１３から受け取ったジョブ定義データのＩＤに基づいて、実行結果データ記憶部１１５から、実行結果データを読み込む（図６のステップＢ１）。だたし、このとき、ジョブ定義データの処理内容が最後に実行されたものから変更されている場合、実行結果データは利用できないものと判断して実行結果データを破棄する。
【００４１】
割当てリソース予測部１１４は、全てのリソースの割当量を最高値とした場合の情報が実行結果データとして存在するか否かを判断する（ステップＢ２）。割当てリソース予測部１１４は、ステップＢ２では、例えばＣＰＵを最高速（５）で動作させ、かつディスクを最高速（５）で動作させた場合の実行結果データが存在するか否かを判断する。この組み合わせは、処理時間が最も短い組み合わせである。
【００４２】
割当てリソース予測部１１４は、ステップＢ２で情報が存在しないと判断した場合、各リソースの割当量を最高値とした組み合わせをジョブ実行システム１５０に割り当てた場合の実行結果データの取得を、ジョブ実行制御部１１３に依頼する（ステップＢ３）。割当てリソース予測部１１４は、ステップＢ３では、ＣＰＵ及びディスクをそれぞれ最高速（５）としたリソースの割当量の組み合わせを指定し、実行結果データの取得をジョブ実行制御部１１３に依頼する。ジョブ実行制御部１１３は、図５のステップＡ５〜Ａ７を実行し、実行結果データを実行結果データ記憶部１１５に格納する。
【００４３】
割当てリソース予測部１１４は、実行結果データを取得した後、全てのリソースの割当量を最高値とした場合に、ジョブの処理を予定終了時刻までに完了できるか否かを判断する（ステップＢ４）。割当てリソース予測部１１４は、ステップＢ４では、全てのリソースの割当量を最高値とした場合の最小単位のデータの処理時間（最速処理時間）と残りの入力データ量から残り必要時間を算出し、現在時刻と予定終了時刻から残り時間を算出する。
残り必要時間＝最速処理時間×残りの入力データ量
残り時間＝予定終了時刻−現在時刻
【００４４】
割当てリソース予測部１１４は、残り時間と残り必要時間との差が０以上であるか否かに基づいて、ジョブの処理を予定終了時刻までに完了できるか否かを判断する。割当てリソース予測部１１４は、残り必要時間が残り時間を超えている場合、予定終了時刻までの完了は不可能と判断する。その場合、割当てリソース予測部１１４は、メールなどの通知手段を用いてアラームを上げる（ステップＢ５）。また、割当てリソース予測部１１４は、全てのリソースの割当量を最高値としたときの組み合わせをジョブ実行部に返却する（ステップＢ６）。
【００４５】
割当てリソース予測部１１４は、ステップＢ３でジョブの処理を予定終了時刻までに完了できると判断した場合、全てのリソースの割当量を最低値とした場合の情報が実行結果データ記憶部１１５に格納されているか否かを判断する（ステップＢ７）。割当てリソース予測部１１４は、ステップＢ６では、例えばＣＰＵを最低速（１）で動作させ、かつディスクを最低速（１）で動作させた場合の実行結果データが存在するか否かを判断する。この組み合わせは、処理時間が最も長い組み合わせである。
【００４６】
割当てリソース予測部１１４は、ステップＢ６で情報が存在しないと判断した場合、各リソースの割当量を最低値とした組み合わせをジョブ実行システム１５０に割り当てた場合の実行結果データの取得を、ジョブ実行制御部１１３に依頼する（ステップＢ８）。割当てリソース予測部１１４は、ステップＢ８では、ＣＰＵ及びディスクをそれぞれ最低速（１）としたリソースの割当量の組み合わせを指定し、実行結果データの取得をジョブ実行制御部１１３に依頼する。ジョブ実行制御部１１３は、図５のステップＡ５〜Ａ７を実行し、実行結果データを実行結果データ記憶部１１５に格納する。
【００４７】
割当てリソース予測部１１４は、実行結果データを取得した後、全てのリソースの割当量を最低値とした場合に、ジョブの処理を予定終了時刻までに完了できるか否かを判断する（ステップＢ９）。割当てリソース予測部１１４は、ステップＢ９では、全てのリソースの割当量を最低値とした場合の最小単位のデータの処理時間（最遅処理時間）と残りの入力データ量から残り必要時間を算出し、現在時刻と予定終了時刻から残り時間を算出する。
残り必要時間＝最遅処理時間×残りの入力データ量
残り時間＝予定終了時刻−現在時刻
【００４８】
割当てリソース予測部１１４は、残り時間と残り必要時間との差が０以上であるか否かに基づいて、ジョブの処理を予定終了時刻までに完了できるか否かを判断する。割当てリソース予測部１１４は、残り必要時間が残り時間を下回る場合は、予定終了時刻までに処理を完了できると判断する。その場合、最小コストで予定時刻までに処理を完了できるリソース割当量の組み合わせは、全てのリソースの割当量を最低値としたときの組み合わせである。従って、割当てリソース予測部１１４は、全てのリソースの割当量を最低値としたときの組み合わせをジョブ実行部に返却する（ステップＢ１０）。
【００４９】
割当てリソース予測部１１４は、ステップＢ９で予定終了時刻までに処理を完了できないと判断した場合、ジョブの処理を予定終了時刻までに完了できる各リソースの割当量の組み合わせを探索する（ステップＢ１１）。割当てリソース予測部１１４は、ステップＢ１０では、例えば二分探査を用いて、全てのリソースの割当量を中央値とした実行結果データを確認していき、ジョブの処理を予定終了時刻まで終えられる中で最もコストの低い割当量の組み合わせを探す。割当てリソース予測部１１４は、全てのリソースの割当量を中央値とした実行結果データが存在しない場合、その組み合わせが実際に割り当てられた場合の実行結果データの取得をジョブ実行制御部に依頼して実行結果データを取得する。
【００５０】
図８は、二分探査における各リソースの割当量の組み合わせの算出過程の例を示す。図８に示されるように、組み合わせ「最高値」に対応する、ＣＰＵ及びディスクをそれぞれ最高速（５）と設定した場合の処理時間が１０秒であるとする。また、その時点の残りデータ量が３３件であり、残り時間が１４９０秒であるとする。この場合、残り必要時間は３３０秒と計算され、残り必要時間は残り時間より短い。従って、ステップＢ４では、各リソースを最高値とした場合に、予定完了時刻までに処理を完了できると判断される。
【００５１】
一方、組み合わせ「最低値」に対応する、ＣＰＵ及びディスクをそれぞれ最低速（１）と設定した場合の処理時間が１２０秒であるとする。また、その時点の残りデータ量が３２件であり、残り時間が１３７０秒であるとする。この場合、残り必要時間は３８４０秒であると計算され、残り必要時間は残り時間より長い。従って、ステップＢ９では、各リソースを最低値とした場合に、予定完了時刻までに処理を完了できないと判断され、ステップＢ１１において二分探査が実施される。
【００５２】
割当てリソース予測部１１４は、ステップＢ１１では、まず、ＣＰＵ及びディスクの設定値が中央値である通常（３）に設定された場合の実行結果データが存在するか否かを調べる。割当てリソース予測部１１４は、ＣＰＵ及びディスクの設定値が通常（３）に設定された場合の実行結果データが存在しない場合、ＣＰＵ及びディスクの設定値が通常（３）に設定された場合の実行結果データの取得をジョブ実行制御部１１３に依頼する。ジョブ実行制御部１１３が、ＣＰＵ及びディスクの設定値を通常（３）に設定し、最小単位のデータに対する処理を実行されることで、実行結果データが実行結果データ記憶部１１５に格納される。
【００５３】
図８に示されるように、組み合わせ「中央値」に対応する、ＣＰＵ及びディスクをそれぞれ通常（３）に設定した場合の処理時間が３０秒であるとする。また、その時点での残りデータ量は３１件で、残り時間が１３４０秒であるとする。この場合、残り必要時間は９３０秒であると計算され、残り必要時間は残り時間よりも短い。従って、割当てリソース予測部１１４は、組み合わせ「中央値」では、予定終了時刻までに処理を完了することができると判断する。
【００５４】
割当てリソース予測部１１４は、組み合わせ「中央値」の場合に残り時間内に処理が終わると判断した場合、次に、「最低値」と「中央値」との中央値として、ＣＰＵ及びディスクをそれぞれ低速（２）にした場合の実行結果データが存在するかを確認する。図８に示されるように、組み合わせ「最低値と中央値との中央値」に対応する、ＣＰＵ及びディスクをそれぞれ低速（２）設定した場合の処理時間が５０秒であるとする。また、その時点での残りデータ量は３０件で、残り時間が１２９０秒であるとする。この場合、残り必要時間は１５００秒であると計算され、残り必要時間は残り時間よりも長い。従って、割当てリソース予測部１１４は、組み合わせ「最低値と中央値との中央値」では、予定終了時刻までに処理を完了できないと判断する。
【００５５】
図３を参照すると、ＣＰＵ及びディスクを通常（３）とした組み合わせと、ＣＰＵ及びディスクを低速（２）とした組み合わせとの中央値は、ＣＰＵ及びディスクのどちらのリソースにおいても存在しない。そのため、割当てリソース予測部１１４は、二分探査を終了し、ステップＢ１１において、ＣＰＵ及びディスクを通常（３）とした組み合わせが、予定終了時刻までに処理を完了できるリソースの組み合わせの中で、最もコストの低い組み合わせであると判断する。
【００５６】
図６に戻り、割当てリソース予測部１１４は、二分探査を用いて予定終了時刻まで処理を終えられる中で最もコストの低い割当量の組み合わせを見つけた後、その組み合わせを最小コストの組み合わせとして記録する（ステップＢ１２）。割当てリソース予測部１１４は、ステップＢ１２では、上記したように、ＣＰＵ及びディスクをそれぞれ通常（３）とした組み合わせが見つかった場合、その組み合わせを現状の最小コストの組み合わせ（暫定的な最小コストの組み合わせ）として記録する。
【００５７】
割当てリソース予測部１１４は、最小コストの組み合わせから、各リソースの割当量を１段階下げた組み合わせを確認する対象の組み合わせとして決定する（図７のステップＢ１３）。割当てリソース予測部１１４は、ステップＢ１３で決定した組み合わせについての実行結果データが、実行結果データ記憶部１１５に存在するか否かを判断する（ステップＢ１４）。割当てリソース予測部１１４は、ステップＢ１３では、例えばＣＰＵが低速（２）で、ディスクが通常（３）の組み合わせと、ＣＰＵが通常（３）で、ディスクが低速（２）の組み合わせを、確認する対象の組み合わせとして決定する。また、割当てリソース予測部１１４は、ステップＢ１４では、それら組み合わせの実行結果データが存在するか否かを判断する。
【００５８】
割当てリソース予測部１１４は、実行結果データが存在しないと判断した場合、実行結果データの取得が可能であるか否かを判断する（ステップＢ１５）。割当てリソース予測部１１４は、ステップＢ１５では、例えば下記計算式を用いてデータ取得に関する残り必要時間（データ取得残り必要時間）及び残り時間を計算し、残り必要時間と残り時間とを比較する。
残り必要時間＝最小コスト処理時間×（残りの入力データ−１）＋最遅処理時間
残り時間＝予定終了時刻−現在時刻
割当てリソース予測部１１４は、残り必要時間が残り時間を超える場合、実行結果データの取得は可能ではないと判断する。割当てリソース予測部１１４は、残り必要時間が残り時間以内の場合は、実行結果データの取得は可能と判断する。
【００５９】
例えば、図８に示されるように、二分探査による最小コストのリソースの割当量の組み合わせが見つかった時点で、残りデータ量が３０件、残り時間が１２９０秒であったとする。また、現状の最小コストの組み合わせが、ＣＰＵ及びディスクをそれぞれ通常（３）とした組み合わせであったとする。このとき、最小コストの処理時間は３０秒であり、組み合わせ「最低値」の処理時間（最遅処理時間）は１２０秒である。従って、残り必要時間は、３０×（３０−１）＋１２０＝９９０と計算される。この場合、残り時間はこのリ必要時間より長く、従って、割当てリソース予測部１１４は実行結果データの取得が可能であると判断する。
【００６０】
割当てリソース予測部１１４は、実行結果データの取得が可能と判断した場合、実行結果データが取得されていないリソースの割当て量の組み合わせについて、ジョブ実行制御部１１３に実行結果データの取得を依頼する（ステップＢ１６）。割当てリソース予測部１１４は、実行結果データの取得が可能ではないと判断した場合、実行結果データの取得依頼は行わず、記録された現状の最小コストの組み合わせが最小コストの組み合わせであるとみなす。その場合、割当てリソース予測部１１４は、ジョブ実行制御部１１３に最小コストとみなしたリソースの割当量の組み合わせをジョブ実行制御部１１３に返却する（ステップＢ２２）。
【００６１】
割当てリソース予測部１１４は、ステップＢ１４で実行結果データが存在すると判断した場合、又は実行結果データを取得した後、確認対象の各リソースの割当量の組み合わせの中に、残り時間内に処理が終わる組み合わせが存在するか否かを判断する（ステップＢ１７）。割当てリソース予測部１１４は、残り時間内に処理が終わる組み合わせがある場合、その組み合わせが、現状の最小コストの組み合わせより低コストであるか否かを判断する（ステップＢ１８）。割当てリソース予測部１１４は、ステップＢ１８で低コストであると判断した場合、現状の最小コストの組み合わせを更新する（ステップＢ１９）。割当てリソース予測部１１４は、ステップＢ１８で低コストではないと判断した場合、現状の最小コストの組み合わせの更新は実施しない。
【００６２】
図９は、最小コストの各リソースの割当量の組み合わせの算出過程を示す。割当てリソース予測部１１４は、例えば、スＣＰＵが低速（２）で、かつディスクが通常（３）の組み合わせと、ＣＰＵが通常（３）で、かつディスクが低速（２）の組み合わせについて、時間内に処理を終えることができるか否かを判断する。図９を参照すると、双方の組み合わせについて、残り必要時間は残り時間より短い。このため、割当てリソース予測部１１４は、ステップＢ１７では、処理を終えることができる組み合わせが存在すると判断する。
【００６３】
割当てリソース予測部１１４は、各組み合わせのコストと、ステップＢ１２で現状の最小コストとして記録されたＣＰＵ及びディスクをそれぞれ通常（３）とした組み合わせのコストとを比較する。図８を参照すると、ＣＰＵ及びディスクをそれぞれ通常（３）とした組み合わせのコストは「６０」である。また、図８を参照すると、ＣＰＵが通常（３）で、かつディスクが低速（２）の組み合わせのコストは「５５」であり、ＣＰＵが低速（２）で、かつディスクが通常（３）の組み合わせのコストは「４０」である。この場合、割当てリソース予測部１１４は、ステップＢ１９において、ＣＰＵが低速（２）で、かつディスクが通常（３）の組み合わせで、現状の最小コストの組み合わせを更新する。
【００６４】
割当てリソース予測部１１４は、確認した全てのリソースの割当量の組み合わせに基づいて、新たに実行結果データの確認をする対象の組み合わせを決定する（ステップＢ２０）。割当てリソース予測部１１４は、ステップＢ２０では、確認した全ての各リソースの割当量の組み合わせから、更に各リソースの割当量を１段階上げた組み合わせ、及び１段階下げた組み合わせについて、実行結果データの確認が必要かを判断する。割当てリソース予測部１１４は、実行結果データの確認が必要な組み合わせを、実行結果データの確認をする対象の組み合わせを決定する。
【００６５】
割当てリソース予測部１１４は、全ての組み合わせの確認を終了したか否かを判断する（ステップＢ２１）。割当てリソース予測部１１４は、ステップＢ２０において実行結果データの確認が必要と判断し、実行結果データの確認をする対象の組み合わせを決定した場合、全ての組み合わせの確認を終了していないと判断する。割当てリソース予測部１１４は、全ての組み合わせの確認が終了していないと判断した場合、ステップＢ１４に戻り、実行結果データが存在するか否かを判断する。
【００６６】
その後、割当てリソース予測部１１４は、ステップＢ１５〜Ｂ１７を経て、ステップＢ１８において、確認する組み合わせに、時間内に処理を終えることができ、かつコストが現状の最小コストの組み合わせより低い組み合わせが存在するか否かを判断する。割当てリソース予測部１１４は、時間内に処理を終えることができ、かつコストが現状の最小コストの組み合わせより低い組み合わせが存在する場合は、ステップＢ１９で現状の最小コストの組み合わせを更新する。割当てリソース予測部１１４は、ステップＢ２０において、新たに実行結果データの確認をする対象の組み合わせを決定する。割当てリソース予測部１１４は、ステップＢ１４からステップＢ２１を繰り返し実行することで、時間内に処理を終えることができる最小コストの組み合わせを探索する。割当てリソース予測部１１４は、ステップＢ２１で全ての組み合わせの確認を終了したと判断した場合、ステップＢ２２に進み、現状の最小コストとして記録されている組み合わせをジョブ実行制御部１１３に返却する。
【００６７】
図１０（ａ）〜（ｄ）は、最小コストのリソース割当量の組み合わせを探索する過程を示す。図１０（ａ）〜（ｄ）において、（Ｘ，Ｙ）は、ＣＰＵの設定値がＸであり、ディスクの設定値がＹである旨を示す。また、「●」は残り時間内に処理を終えることができ、かつコストが最小である組み合わせ（第１の種別の組み合わせ）であることを示す。「▲」は、残り時間内に処理を終えることはできるものの、コストが最小ではない組み合わせ（第２の種別の組み合わせ）であることを示す。「×」は、残り時間内に処理を終えることができない組み合わせ（第３の種別の組み合わせ）であることを示す。
【００６８】
図１０（ａ）は、１回目のループにおける最小コストのリソース割当量の組み合わせの探索を示す。上記で説明したように、ＣＰＵが低速（２）で、かつディスクが通常（３）の組み合わせと、ＣＰＵが通常（３）で、かつディスクが低速（２）の組み合わせは、時間内に処理を終えることができると判断される（図９を参照）。また、ＣＰＵが低速（２）で、かつディスクが通常（３）の組み合わせのコストは、ＣＰＵが通常（３）で、かつディスクが低速（２）の組み合わせのコストよりも低い。従って、割当てリソース予測部１１４は、１回目のループのステップＢ１９では、（２，３）を現状の最小コストの組み合わせとして記録する。
【００６９】
図１０（ｂ）は、各リソースの割当量を（３，２）及び（２，３）から１段階上下させた組み合わせを示す。割当てリソース予測部１１４は、ステップＢ２０において、時間内に処理を終えることができる組み合わせ（３，２）及び（２，３）から各リソースの割当量を１段階上下させた組み合わせを導出する。割当てリソース予測部１１４は、（３，２）及び（２，３）から各リソースの割当量を１段階上下させた組み合わせとして、（３，１）、（２，２）、（１，３）、（４，２）、及び（２，４）を導出する。なお、（３，３）は既に確認されているため、導出する組み合わせから除外される。
【００７０】
ここで、最小コストの組み合わせ（第１の種別の組み合わせ）、又はそれよりもコストが高い組み合わせ（第２の種別の組み合わせ）から各リソースの割当量を１段階上げた組み合わせは、最小コストよりもコストが高いことが明白である。このため、割当てリソース予測部１１４は、そのような組み合わせを確認する対象の組み合わせから除外する。
【００７１】
図１０（ｃ）は、ステップＢ２０で決定される確認対象の組み合わせを示す。例えば、（３，２）の組み合わせのコストは最小コストの組み合わせである（２，３）のコストよりも高い。従って、割当てリソース予測部１１４は、（３，２）よりリソース割当量を１段階上げた組み合わせである（４，２）を、確認対象の組み合わせから除外する。また、割当てリソース予測部１１４は、最小コストの組み合わせである（２，３）の組み合わせからリソースの割当量を１段階上げた組み合わせである（２，４）も、確認する対象の組み合わせから除外する。結果として、割当てリソース予測部１１４は、１回目のステップＢ２０では、（３，１）、（２，２）、及び（１，３）の各組み合わせを、確認する対象穂組み合わせとして決定する。
【００７２】
図１０（ｄ）は、２回目のループにおける最小コストのリソース割当量の組み合わせの探索を示す。割当てリソース予測部１１４は、２回目のループでは、（３，１）、（２，２）、及び（１，３）の各組み合わせについて残り必要時間を計算し、時間内に処理が終わるか否かを調べる。割当てリソース予測部１１４は、（２，２）及び（１，３）の組み合わせについては時間内に処理が終わらないと判断し、（３，１）の組み合わせについては時間内に処理が終わると判断したとする。その場合、割当てリソース予測部１１４は、ステップＢ１８において、（３，１）のコストと、現状の最小コストの組み合わせである（２，３）のコストとを比較する。この場合、（３，１）のコストは、（２，３）のコストよりも高いため、現状の最小コストの組み合わせは更新されない。
【００７３】
割当てリソース予測部１１４は、２回目のループのステップＢ２０において、（３，１）、（２，２）、及び（１，３）の各組み合わせから、確認する対象の組み合わせを決定する。このとき、生成元となる組み合わせに、時間内に処理が終わらない組み合わせ（第３の種別の組み合わせ）がある場合は、その組み合わせからリソースの割当量を１段階下げた組み合わせでは時間内に処理が終わらないことは明白である。従って、割当てリソース予測部１１４は、時間内に処理が終わらない組み合わせよりリソース割当量を１段階下げた組み合わせを、確認する対象の組み合わせから除外する。図１０（ｄ）の例では、（２，２）、及び（１，３）の各組み合わせでは時間内に処理が終わらないため、それら組み合わせからリソースの割当量を１段階下げた組み合わせは、確認する対象の組み合わせから除外される。
【００７４】
割当てリソース予測部１１４は、以降は、確認した全ての各リソース割当量の組み合わせから、各リソース割当量を１段階上げた組み合わせ、及び１段階下げた組み合わせについて、実行結果データの確認が必要かを判断し、実行結果データの確認を行っていく。割当てリソース予測部１１４は、時間内に処理が終わり、かつコストが現状の最小コストの組み合わせのコストよりも低い組み合わせがある場合、その組み合わせを現状の最小コストの組み合わせとして記録する。割当てリソース予測部１１４は、実行結果データの確認をする対象の組み合わせがなくなると、ステップＢ２１において、全ての組み合わせの確認が終了したと判断する。その場合、割当てリソース予測部１１４は、ステップＢ２２において、全ての組み合わせの確認が終了した終了した時点で記録されている最小コストの組み合わせを、ジョブ実行制御部１１３に返却する。
【００７５】
本実施形態では、ジョブ実行制御部１１３は、ジョブ実行時の処理時間を、ジョブ実行システム１５０のリソースの割当量の組み合わせと対応付け、実行結果データとして実行結果データ記憶部１１５に記憶する。割当てリソース予測部１１４は、実行結果データを用いて、最小のコストで予定終了時刻までに入力データ１５１に対する処理が終わるリソースの割当量の組み合わせを予測する。ジョブ実行制御部１１３は、ジョブ実行システム１５０の割当てリソース量を、割当てリソース予測部１１４が予測したリソースの割当量の組み合わせに制御する。このようにすることで、クラウドコンピューティングを利用して、入力データ１５１のデータ量が日々変化し得るバッチ処理などのジョブを行う場合に、最小コストと予測されるリソースの割当量の組み合わせでジョブを実施できる。
【００７６】
本実施形態において、割当てリソース予測部１１４は、コストが最小となるリソース割当量の組み合わせの予測に使用する実行結果データが実行結果データ記憶部１１５に記憶されていない場合、実行結果データの取得をジョブ実行制御部１１３に依頼する。ジョブ実行制御部１１３は、ジョブプロセス１５２に最小単位のデータを処理させて処理時間を計測し、実行結果データを実行結果データ記憶部１１５に記憶する。このようにすることで、割当てリソース予測部１１４は、コストが最小となるリソース割当量の組み合わせの予測に必要な実行結果データを参照することができる。割当てリソース予測部１１４は、実行結果データ記憶部１１５にある程度の実行結果データが集まった後は、ジョブの実行開始時点で、コストが最小となるリソース割当量の組み合わせを予測することができる。
【００７７】
なお、上記実施形態では、割当量が変更可能なリソースとして、ＣＰＵ及びディスクを考えたが、本開示はこれには限定されない。割当てリソース予測部１１４が割当量を予測するリソースは、バッチ処理の処理時間に影響を与えるリソースであり、かつ仮想化基盤１６０を用いて変更可能な他のリソースであってもよい。
【００７８】
また、上記実施形態では、割当てリソース予測部１１４は、「コスト」を比較することで、コストが最小となるリソースの割当量の組み合わせを予測する例を説明したが、本開示はこれには限定されない。割当てリソース予測部１１４は、コストに関連した何らかの指標値を用いて、コストが最小となるリソースの割当量の組み合わせを予測してもよい。例えば、指標値として、コストが小さいほど値が大きくなる指標値が用いられ得る。その場合、割当てリソース予測部１１４は、評価値が最大となるリソースの割当量の組み合わせを予測すればよい。
【００７９】
上記実施形態において、ジョブ制御システム１１０は、コンピュータ装置として構成され得る。図１１は、ジョブ制御システム１１０に用いられ得る情報処理装置（コンピュータ装置）の構成例を示す。情報処理装置５００は、制御部（ＣＰＵ）５１０、記憶部５２０、ＲＯＭ（Read Only Memory）５３０、ＲＡＭ（Random Access Memory）５４０、通信インタフェース（ＩＦ：Interface）５５０、及びユーザインタフェース５６０を有する。
【００８０】
通信インタフェース５５０は、有線通信手段又は無線通信手段などを介して、情報処理装置５００と通信ネットワークとを接続するためのインタフェースである。情報処理装置５００は、通信インタフェース５５０を介して、仮想化基盤２００（図２を参照）にアクセスできる。ユーザインタフェース５６０は、例えばディスプレイなどの表示部を含む。また、ユーザインタフェース５６０は、キーボード、マウス、及びタッチパネルなどの入力部を含む。
【００８１】
記憶部５２０は、各種のデータを保持できる補助記憶装置である。記憶部５２０は、必ずしも情報処理装置５００の一部である必要はなく、外部記憶装置であってもよいし、ネットワークを介して情報処理装置５００に接続されたクラウドストレージであってもよい。ＲＯＭ５３０は、不揮発性の記憶装置である。ＲＯＭ５３０には、例えば比較的容量が少ないフラッシュメモリなどの半導体記憶装置が用いられる。ＣＰＵ５１０が実行するプログラムは、記憶部５２０又はＲＯＭ５３０に格納され得る。
【００８２】
上記プログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、情報処理装置５００に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体を含む。非一時的なコンピュータ可読媒体の例は、例えばフレキシブルディスク、磁気テープ、又はハードディスクなどの磁気記録媒体、例えば光磁気ディスクなどの光磁気記録媒体、ＣＤ（compact disc）、又はＤＶＤ（digital versatile disk）などの光ディスク媒体、及び、マスクＲＯＭ、ＰＲＯＭ（programmable ROM）、ＥＰＲＯＭ（erasable PROM）、フラッシュＲＯＭ、又はＲＡＭなどの半導体メモリを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体を用いてコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバなどの有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８３】
ＲＡＭ５４０は、揮発性の記憶装置である。ＲＡＭ５４０には、ＤＲＡＭ（Dynamic Random Access Memory）又はＳＲＡＭ（Static Random Access Memory）などの各種半導体メモリデバイスが用いられる。ＲＡＭ５４０は、データなどを一時的に格納する内部バッファとして用いられ得る。ＣＰＵ５１０は、記憶部５２０又はＲＯＭ５３０に格納されたプログラムをＲＡＭ５４０に展開し、実行する。ＣＰＵ５１０がプログラムを実行することで、例えば入力データ確認部１１２、ジョブ実行制御部１１３、及び割当てリソース予測部１１４などの機能が実現される。
【００８４】
以上、本開示の実施形態を詳細に説明したが、本開示は、上記した実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲で上記実施形態に対して変更や修正を加えたものも、本開示に含まれる。
【００８５】
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００８６】
［付記１］
２以上のリソースの割当量が変更可能に構成された仮想マシンに、入力データに対するジョブを実行させるジョブ実行制御手段と、
前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測する割当てリソース予測手段とを備え、
前記ジョブ実行制御手段は、前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御するジョブ制御システム。
【００８７】
［付記２］
前記ジョブ実行制御手段は、前記ジョブの実行の処理時間を計測し、前記リソースの割当量の組み合わせと前記計測した処理時間とを対応付け、前記実行結果データとして実行結果データ記憶手段に記憶し、
前記割当てリソース予測手段は、前記実行結果データ記憶手段に記憶される実行結果データを用いて、前記リソースの割当量の組み合わせに対して、前記予定終了時刻までに前記ジョブが終わる組み合わせを探す付記１に記載のジョブ制御システム。
【００８８】
［付記３］
前記割当てリソース予測手段は、前記実行結果データを前記実行結果データ記憶手段から読み出し、該読み出した実行結果データに含まれる処理時間と、残りの入力データの量とに基づいて、前記仮想マシンのリソースの割当量を前記実行結果データのリソースの割当量の組み合わせとした場合の前記ジョブの残り必要時間を計算し、該残り必要時間と、前記予定終了時刻に基づいて定まる残り時間とを比較し、前記予定終了時刻までに前記ジョブが終わるか否かを判断する付記２に記載のジョブ制御システム。
【００８９】
［付記４］
前記割当てリソース予測手段は、各リソースの割当量を最小とした組み合わせに対応する実行結果データを前記実行結果データ記憶手段から読み出し、該読み出した実行結果データに含まれる処理時間と、残りの入力データの量とに基づいて、前記仮想マシンのリソースの割当量を当該組み合わせとした場合に前記予定終了時刻までに前記ジョブが終わるか否かを判断する付記２又は３に記載のジョブ制御システム。
【００９０】
［付記５］
前記割当てリソース予測手段は、前記実行結果データ記憶手段に、前記各リソースの割当量を最小とした組み合わせに対応する実行結果データが記憶されていない場合、前記ジョブ実行制御手段に実行結果データの取得を依頼し、
前記ジョブ実行制御手段は、前記実行結果データの取得を依頼された場合、前記仮想マシンのリソースの割当量を、前記各リソースの割当量を最小とした組み合わせに制御し、前記仮想マシンに前記所定単位の入力データに対するジョブを実行させて処理時間を計測し、前記実行結果データを生成して実行結果データ記憶手段に記憶する付記４に記載のジョブ制御システム。
【００９１】
［付記６］
前記割当てリソース予測手段は、前記仮想マシンのリソースの割当量を、各リソースの割当量を最小とした組み合わせとした場合に前記予定終了時刻までに前記ジョブが終わると判断した場合、当該組み合わせを、前記コストが最小となる前記リソースの割当量の組み合わせとする付記４又は５に記載のジョブ制御システム。
【００９２】
［付記７］
前記割当てリソース予測手段は、前記仮想マシンのリソースの割当量を、各リソースの割当量を最小とした組み合わせとした場合に前記予定終了時刻までに前記ジョブが終わらないと判断した場合、二分探査を行い、時間内に処理が終わる前記リソースの割当量の組み合わせを発見し、該発見したリソースの割当量の組み合わせを暫定的な最小コストの組み合わせとして記録する付記４から６何れか１つに記載のジョブ制御システム。
【００９３】
［付記８］
前記割当てリソース予測手段は、前記暫定的な最小コストの組み合わせとして記録したリソースの組み合わせに基づいて、１以上の前記リソースの割当量の組み合わせを確認対象の組み合わせとして決定し、該決定した確認対象の組み合わせのそれぞれについて前記予定終了時刻までに処理が終わるか否かを判断し、前記確認対象の組み合わせに前記予定終了時刻までに処理が終わるリソースの割当量の組み合わせが含まれる場合、該予定終了時刻までに処理が終わるリソースの割当量の組み合わせのうち前記コストが最小の組み合わせを特定し、該特定したリソースの組み合わせを前記暫定的な最小コストの組み合わせとして記録する付記７に記載のジョブ制御システム。
【００９４】
［付記９］
前記割当てリソース予測手段は、前記確認対象の組み合わせの決定、及び前記確認対象の組み合わせのそれぞれについての前記予定終了時刻までに処理が終わるか否かの判断を繰り返し実施し、初回の確認対象の組み合わせの決定では、前記暫定的な最小コストの組み合わせとして記録した前記リソースの割当量の組み合わせに基づいて前記確認対象の組み合わせを決定し、２回目以降の確認対象の組み合わせの決定では、前回の確認対象の組み合わせに基づいて前記確認対象の組み合わせとして決定する付記８に記載のジョブ制御システム。
【００９５】
［付記１０］
前記割当てリソース予測手段は、前記初回の確認対象の組み合わせの決定では、前記暫定的な最小コストの組み合わせとして記録したリソースの割当量の組み合わせより、各リソースの割当量が１段階低い割当量となる１以上の組み合わせを前記確認対象の組み合わせとして決定し、２回目以降の確認対象の組み合わせの決定では、前記リソースの割当量が、前回の確認対象の組み合わせより、各リソースの割当量が１段階低い割当量、及び１段階高い割当量となる１以上の組み合わせを前記確認対象の組み合わせとして決定する付記９に記載のジョブ制御システム。
【００９６】
［付記１１］
前記割当てリソース予測手段は、前記予定終了時刻までに処理が終わるか否かの判断では、前記確認対象の組み合わせのそれぞれが、前記予定終了時刻までに処理が終わり、かつ前記暫定的な最小コストの組み合わせとして特定される第１の種別の組み合わせ、前記予定終了時刻までに処理が終わり、かつ前記暫定的な最小コストの組み合わせとして特定される組み合わせより前記コストが大きい第２の種別の組み合わせ、又は、前記予定終了時刻までに処理が終わらない第３の種別の組み合わせの何れであるかを識別し、前記２回目以降の確認対象の組み合わせの決定では、各リソースの割当量が、前記第１の種別の組み合わせ及び前記第２の種別の組み合わせより１段階高い割当量となる組み合わせ、及び各リソースの割当量が、前記第３の種別の組み合わせより１段階低い割当量となる組み合わせを、前記確認対象の組み合わせから除外する付記１０に記載のジョブ制御システム。
【００９７】
［付記１２］
前記割当てリソース予測手段は、前記確認対象の組み合わせがなくなるまで、前記確認対象の組み合わせの決定、及び前記確認対象の組み合わせのそれぞれについての前記予定終了時刻までに処理が終わるか否かの判断を実施し、前記確認対象の組み合わせがなくなった場合、前記暫定的な最小コストの組み合わせとして記録されているリソースの割当量の組み合わせを、前記コストが最小となる前記リソースの割当量の組み合わせとする付記９から１１何れか１つに記載のジョブ制御システム。
【００９８】
［付記１３］
前記割当てリソース予測手段は、前記実行結果データ記憶手段に前記確認対象の組み合わせに対応する実行結果データが記憶されているか否かを判断し、記憶されていないと判断した場合、前記ジョブ実行制御手段に前記実行結果データの取得を依頼し、
前記ジョブ実行制御手段は、前記実行結果データの取得を依頼された場合、前記仮想マシンに前所定単位の入力データに対するジョブを実行させて処理時間を計測し、前記実行結果データを生成して実行結果データ記憶手段に記憶する付記８から１２何れか１つに記載のジョブ制御システム。
【００９９】
［付記１４］
前記割当てリソース予測手段は、前記実行結果データ記憶手段に前記確認対象の組み合わせに対応する実行結果データが記憶されていないと判断した場合、前記実行結果データの取得が可能か否かを判断し、前記実行結果データの取得が可能と判断した場合、前記ジョブ実行制御手段に前記実行結果データの取得を依頼し、前記実行結果データの取得が可能ではないと判断した場合、前記暫定的な最小コストの組み合わせとして記録されている前記リソースの割当量の組み合わせを、前記コストが最小となる前記リソースの割当量の組み合わせとする付記１３に記載のジョブ制御システム。
【０１００】
［付記１５］
２以上のリソースの割当量が変更可能に構成された仮想マシンにおける前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記仮想マシンで実行されるジョブの対象となる入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測し、
前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御し、
前記仮想マシンに、前記入力データに対するジョブを実行させるジョブ制御方法。
【０１０１】
［付記１６］
２以上のリソースの割当量が変更可能に構成された仮想マシンにおける前記リソースの割当量の組み合わせと所定単位の入力データでの処理時間とを含む実行結果データ、前記仮想マシンで実行されるジョブの対象となる入力データのデータ量、及び予定終了時刻に基づいて、前記予定終了時刻までに前記ジョブが終わり、かつ、前記リソースの割当量の組み合わせに基づいて定まるコストが最小となる前記リソースの割当量の組み合わせを予測し、
前記仮想マシンのリソースの割当量を前記予測されたリソースの割当量の組み合わせに制御し、
前記仮想マシンに、前記入力データに対するジョブを実行させるための処理をコンピュータに実行させるためのプログラム。
【符号の説明】
【０１０２】
１０：ジョブ制御システム
１１：ジョブ実行制御手段
１２：割当てリソース予測手段
１５：実行結果データ
２０：仮想マシン
１００：システム
１１０：ジョブ制御システム
１１１：ジョブ定義データ記憶部
１１２：入力データ確認部
１１３：ジョブ実行制御部
１１４：割当てリソース予測部
１１５：実行結果データ記憶部
１５０：ジョブ実行システム
１５１：入力データ
１５２：ジョブプロセス
１６０、２００：仮想化基盤
５００：情報処理装置
５１０：ＣＰＵ
５２０：記憶部
５３０：ＲＯＭ
５４０：ＲＡＭ
５５０：通信インタフェース
５６０：ユーザインタフェース 
【図１】
2020144510.tif 000003
【図２】
2020144510.tif 000004
【図３】
2020144510.tif 000005
【図４】
2020144510.tif 000006
【図５】
2020144510.tif 000007
【図６】
2020144510.tif 000008
【図７】
2020144510.tif 000009
【図８】
2020144510.tif 000010
【図９】
2020144510.tif 000011
【図１０】
2020144510.tif 000012
【図１１】
2020144510.tif 000013