(57)【要約】【課題】複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理する。【解決手段】並列処理管理装置３は、処理結果転送装置５から通知された各ジョブの記憶速度を処理装置数で除し、それぞれ１処理装置当たりの記憶速度を得る。さらに、この各記憶速度を当初の依頼速度と比較し、差が所定値より大きいなら、依頼速度に所定の値を加えて又は減じて、依頼速度を変更し、各処理装置４に対し、変更後の依頼速度で処理を依頼する。【選択図】図１
2009251875.tif 000002
【特許請求の範囲】
【請求項１】
複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理するジョブ実行システムであって、
ジョブ情報管理装置、ジョブ分割装置、並列処理管理装置、複数の処理装置、処理結果転送装置および処理結果記憶装置を備え、
前記ジョブ情報管理装置は、
各ジョブにつき、優先度と処理対象データを示す処理対象データ情報を含むジョブ情報が記憶されるジョブ情報記憶部を備え、
前記ジョブ分割装置は、各ジョブ情報をジョブ情報管理装置から受信するものであり、
使用される処理装置の数が記憶される処理装置数記憶部と、
処理対象データ情報に基づいて、使用される処理装置の数を算出し、処理装置数記憶部に記憶させる処理装置数算出部と、
各ジョブのそれぞれにつき、処理対象データ情報に対応する処理対象データを、処理装置数記憶部に記憶された数に分割し、分割で生じた各データ片を、対応する処理装置に割り当てるデータ分割部を備え、
前記並列処理管理装置は、各優先度と各データ片を示す情報をジョブ分割装置から通知されるものであり、
各データ片につき、対応する処理装置に対し処理を依頼するときの、単位時間当たりに依頼されるデータ単位数である１処理装置当たりの依頼速度を、対応するジョブの優先度に基づき算出するとともに、少なくとも１ジョブにつき、処理結果転送装置から通知される記憶速度を処理装置の数で除し、得られた１処理装置当たりの記憶速度が１処理装置当たりの当初の依頼速度より大きい場合、依頼速度を減少させ、小さい場合、依頼速度を増加させる依頼速度算出部と、
各データ片につき、対応する処理装置に処理を依頼するとともに依頼速度を、最も新しい依頼速度に等しくする処理依頼部とを備え、
前記処理装置は、
ジョブを実行して可能となった処理をデータ片に対して行い、処理結果を処理結果転送装置に送信するようになっており、
前記処理結果記憶装置は、
処理結果転送装置から送信された処理結果を記憶するようになっており、
前記処理結果転送装置は、
処理装置から送信された処理結果を処理結果記憶装置に転送するとともに、各ジョブにつき、処理結果が記憶されるときの、単位時間あたりに記憶されるデータ単位数である記憶速度を求め、並列処理管理装置に通知するようになっている
ことを特徴とするジョブ実行システム。
【請求項２】
前記処理結果転送装置は、
記憶速度をジョブ分割装置に通知するようになっており、
前記ジョブ分割装置の処理装置数算出部は、
通知された各記憶速度を処理装置数記憶部に記憶された数で除し、得られた１処理装置当たりの記憶速度の合計を求め、これが１処理装置当たりの依頼速度の合計よりも大きい場合、処理装置数記憶部に記憶された数を増加させ、小さい場合、処理装置数記憶部に記憶された数を減少させる
ことを特徴とする請求項１記載のジョブ実行システム。
【請求項３】
複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理するジョブ実行システムが行うジョブ実行方法であって、
ジョブ実行システムは、ジョブ情報管理装置、ジョブ分割装置、並列処理管理装置、複数の処理装置、処理結果転送装置および処理結果記憶装置を備え、ジョブ情報管理装置は、各ジョブにつき、優先度と処理対象データを示す処理対象データ情報を含むジョブ情報が記憶されるジョブ情報記憶部を備え、ジョブ分割装置は、使用される処理装置の数が記憶される処理装置数記憶部を備え、
ジョブ実行方法は、
前記ジョブ分割装置が、ジョブ管理装置から送信された各処理対象データ情報に基づいて、使用される処理装置の数を算出し、処理装置数記憶部に記憶させ、
前記ジョブ分割装置が、各ジョブのそれぞれにつき、処理対象データ情報に対応する処理対象データを、処理装置数記憶部に記憶された数に分割し、分割で生じた各データ片を、対応する処理装置に割り当て、各優先度と各データ片を示す情報を並列処理管理装置に通知し、
前記並列処理管理装置が、
各データ片につき、対応する処理装置に対し処理を依頼するときの、単位時間当たりに依頼されるデータ単位数である１処理装置当たりの依頼速度を、対応するジョブの優先度に基づき算出するとともに、少なくとも１ジョブにつき、処理結果転送装置から通知される記憶速度を処理装置の数で除し、得られた１処理装置当たりの記憶速度が１処理装置当たりの当初の依頼速度より大きい場合、依頼速度を減少させ、小さい場合、依頼速度を増加させ、
前記並列処理管理装置が、
各データ片につき、対応する処理装置に処理を依頼するとともに依頼速度を、最も新しい依頼速度に等しくし、
前記処理装置が、
ジョブを実行して可能となった処理をデータ片に対して行い、処理結果を処理結果転送装置に送信し、
前記処理結果記憶装置が、
処理結果転送装置から送信された処理結果を記憶し、
前記処理結果転送装置が、
処理装置から送信された処理結果を処理結果記憶装置に転送するとともに、各ジョブにつき、処理結果が記憶されるときの、単位時間あたりに記憶されるデータ単位数である記憶速度を求め、並列処理管理装置に通知する
ことを特徴とするジョブ実行方法。
【請求項４】
前記処理結果転送装置が、
記憶速度をジョブ分割装置に通知し、
前記ジョブ分割装置が、
通知された各記憶速度を処理装置数記憶部に記憶された数で除し、得られた１処理装置当たりの記憶速度の合計を求め、これが１処理装置当たりの依頼速度の合計よりも大きい場合、処理装置数記憶部に記憶された数を増加させ、小さい場合、処理装置数記憶部に記憶された数を減少させる
ことを特徴とする請求項３記載のジョブ実行方法。
【請求項５】
請求項１記載のジョブ実行システムにおけるジョブ分割装置であって、
各ジョブ情報をジョブ情報管理装置から受信するものであり、
使用される処理装置の数が記憶される処理装置数記憶部と、
処理対象データ情報に基づいて、使用される処理装置の数を算出し、処理装置数記憶部に記憶させる処理装置数算出部と、
各ジョブのそれぞれにつき、処理対象データ情報に対応する処理対象データを、処理装置数記憶部に記憶された数に分割し、分割で生じた各データ片を、対応する処理装置に割り当てるデータ分割部を備えることを特徴とするジョブ分割装置。
【請求項６】
請求項１記載のジョブ実行システムにおける並列処理管理装置であって、
各優先度と各データ片を示す情報をジョブ分割装置から通知されるものであり、
各データ片につき、対応する処理装置に対し処理を依頼するときの、単位時間当たりに依頼されるデータ単位数である１処理装置当たりの依頼速度を、対応するジョブの優先度に基づき算出するとともに、少なくとも１ジョブにつき、処理結果転送装置から通知される記憶速度を処理装置の数で除し、得られた１処理装置当たりの記憶速度が１処理装置当たりの当初の依頼速度より大きい場合、依頼速度を減少させ、小さい場合、依頼速度を増加させる依頼速度算出部と、
各データ片につき、対応する処理装置に処理を依頼するとともに依頼速度を、最も新しい依頼速度に等しくする処理依頼部とを備えることを特徴とする並列処理管理装置。
【請求項７】
請求項１記載のジョブ実行システムにおける処理結果転送装置であって、
処理装置から送信された処理結果を処理結果記憶装置に転送するとともに、各ジョブにつき、処理結果が記憶されるときの、単位時間あたりに記憶されるデータ単位数である記憶速度を求め、並列処理管理装置に通知するようになっていることを特徴とする処理結果転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理するジョブ実行システムに関するものである。
【背景技術】
【０００２】
分散処理は、処理結果を迅速に得るべく、処理を分散する技術であるが、ディスクまたはネットワーク帯域の輻輳や優先度を考慮していないものがある（特許文献１および２を参照）。
【０００３】
それを解決するための技術として以下のものがある。  
１つ目の技術では、帯域の制御を効率良く行って輻輳を回避し、かつクライアントが行う処理に応じてサーバ毎の帯域割り当てを行う。そのために、ディスクを共有する複数の計算機において、個々の計算機がアクセスを要求してきたクライアントの状態や属性からアクセスの優先度を決め、優先度の合計を他の計算機で算出された優先度の合計と比較し、入出力帯域の割り当てに従い、優先的なアクセスから実行する。
【０００４】
しかし、各計算機が自らの記憶領域内で優先度や帯域の計算を分散して行うため、全体の調整が共有ディスクを搭載している計算機上で実行される。そのため、その計算機に対するオーバーヘッド（負荷）が発生し、パフォーマンスを阻害する。また、単位時間当たりの優先度の積算によって相対優先度が決定されるが、クライアント別、リード／ライト、ファイル単位でしか優先度を設定できない。そのため、同一クライアントであっても別ジョブが実行される場合に対応できない。
【０００５】
２つ目の技術では、計算機の状況に応じた適切な帯域をそれぞれに計算機に割り当てる。ここでは、１つ以上のストレージ装置と多数のホスト計算機が接続される。その帯域制御方法では、各ホストの優先度を集中的に管理し、それぞれの通信を優先帯域または非優先帯域に振り分ける。
【０００６】
２つ目の技術は、ネットワーク上の帯域制御のみを適用対象としているが、課題意識としては、本発明と類似している。しかし、この従来技術には以下の問題がある。
【０００７】
すなわち、優先・非優先という２通りの優先度設定しかできず、スループットの段階的な制御ができない。２通りの優先度設定しかできないため、公平な分配ができない場合がある。例えば、それぞれ異なる優先度をもつ３個のジョブ（この従来技術であれば通信）に対して、３通りの異なる帯域を割り当てることはできない。
【特許文献１】特開平４−３１２１３１号公報
【特許文献２】特公平８−  ３３７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理するジョブ実行システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明のジョブ実行システムは、複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理するジョブ実行システムであって、ジョブ情報管理装置、ジョブ分割装置、並列処理管理装置、複数の処理装置、処理結果転送装置および処理結果記憶装置を備え、前記ジョブ情報管理装置は、各ジョブにつき、優先度と処理対象データを示す処理対象データ情報を含むジョブ情報が記憶されるジョブ情報記憶部を備え、前記ジョブ分割装置は、各ジョブ情報をジョブ情報管理装置から受信するものであり、使用される処理装置の数が記憶される処理装置数記憶部と、処理対象データ情報に基づいて、使用される処理装置の数を算出し、処理装置数記憶部に記憶させる処理装置数算出部と、各ジョブのそれぞれにつき、処理対象データ情報に対応する処理対象データを、処理装置数記憶部に記憶された数に分割し、分割で生じた各データ片を、対応する処理装置に割り当てるデータ分割部を備え、前記並列処理管理装置は、各優先度と各データ片を示す情報をジョブ分割装置から通知されるものであり、各データ片につき、対応する処理装置に対し処理を依頼するときの、単位時間当たりに依頼されるデータ単位数である１処理装置当たりの依頼速度を、対応するジョブの優先度に基づき算出するとともに、少なくとも１ジョブにつき、処理結果転送装置から通知される記憶速度を処理装置の数で除し、得られた１処理装置当たりの記憶速度が１処理装置当たりの当初の依頼速度より大きい場合、依頼速度を減少させ、小さい場合、依頼速度を増加させる依頼速度算出部と、各データ片につき、対応する処理装置に処理を依頼するとともに依頼速度を、最も新しい依頼速度に等しくする処理依頼部とを備え、前記処理装置は、ジョブを実行して可能となった処理をデータ片に対して行い、処理結果を処理結果転送装置に送信するようになっており、前記処理結果記憶装置は、処理結果転送装置から送信された処理結果を記憶するようになっており、前記処理結果転送装置は、処理装置から送信された処理結果を処理結果記憶装置に転送するとともに、各ジョブにつき、処理結果が記憶されるときの、単位時間あたりに記憶されるデータ単位数である記憶速度を求め、並列処理管理装置に通知するようになっていることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数のジョブをそれぞれ分割して処理し且つジョブを優先度に応じて処理することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面を参照して説明する。
【００１２】
図１は、本実施の形態に係るジョブ実行システムの構成を示す図である。  
ジョブ実行システムは、ジョブ情報管理装置１、ジョブ分割装置２、並列処理管理装置３、複数の処理装置４、処理結果転送装置５および処理結果記憶装置６とを備える。ジョブ情報管理装置１、ジョブ分割装置２および並列処理管理装置３は、例えば、それぞれ別のコンピュータ内にプロセス、スレッドなどとして構成される。または、各装置の内の２つ又は全てが１台のコンピュータ内に構成される。いずれにしても、各装置は、コンピュータのバスラインや通信ネットワークを介して通信可能である。また、並列処理管理装置３と各処理装置４、各処理装置４と処理結果転送装置５、処理結果転送装置５と処理結果記憶装置６は、通信ネットワークを介して通信可能である。
【００１３】
図２は、ジョブ情報管理装置１に設けられたジョブ情報記憶部１１と希望記憶速度記憶部１２を例示した図である。このような記憶部は、例えば、設定ファイルやレジストリやライブラリなどと称されるものである。
【００１４】
ジョブ情報記憶部１１には、実行すべき２ジョブの一方であるジョブＡの名前（以下、ジョブ名「ジョブＡ」という）、ジョブＡの開始時刻「９：００」、ジョブＡによる処理を優先する程度を示す優先度、ジョブＡによる処理で処理すべき処理対象データを示す処理対象データ情報１００Ａを含むジョブ情報２００Ａが記憶される。優先度は、優先する程度が高いほど高く設定される。ここでは、ジョブＡの優先度を「７」とする。
【００１５】
ジョブ情報記憶部１１には、実行すべき他方のジョブＢの名前（以下、ジョブ名「ジョブＢ」という）、ジョブＢの開始時刻「９：００」、ジョブＢについての優先度、ジョブＢについての処理対象データ情報１００Ｂを含むジョブ情報２００Ｂが記憶される。ここでは、ジョブＢの優先度を「３」とする。
【００１６】
処理対象データは、同一のビット数を有するデータ単位を複数備えたものである。データ単位は、例えば、１件分の処理で処理すべきデータである。例えば、処理対象データ情報は、先頭のデータ単位が記憶された場所のアドレスと最後のデータ単位が記憶された場所のアドレスとからなる。例えば、このようにアドレスを含むことで、処理対象データ情報は、処理対象データを構成するデータ単位数を示すようにもなっている。ここでは、処理対象データ情報１００Ａにより示されるデータ単位数を「１２０，０００」とし、処理対象データ情報１００Ｂにより示されるデータ単位数を「６０，０００」とする。  
希望記憶速度記憶部１２には、ジョブの処理結果が処理結果記憶装置６に記憶されるときの、単位時間あたりに記憶される単位データ数である希望記憶速度が記憶される。かかる単位データ数を多くしたいときは高い希望記憶速度が、少なくしたいときは低い希望記憶速度が、図示しない入力装置などから入力され、希望記憶速度記憶部１２に記憶される。
【００１７】
図３は、ジョブ分割装置２の概略構成を示すブロック図である。  
ジョブ分割装置２は、使用される処理装置４の数を算出する処理装置数算出部２１と、算出された処理装置の数が記憶される処理装置数記憶部２２、各処理対象データを処理装置の数に分割するデータ分割部２３とを有する。
【００１８】
図４は、並列処理管理装置３の概略構成を示すブロック図である。  
並列処理管理装置３は、各処理対象データの処理を処理装置４に依頼するときの、単位時間当たりに依頼されるデータ単位数である１処理装置当たりの依頼速度を算出する依頼速度算出部３１と、当初に算出された１処理装置当たりの依頼速度が記憶される当初依頼速度記憶部３２と、最も新しく算出された１処理装置当たりの依頼速度が記憶される最新依頼速度記憶部３３と、処理を処理装置４に依頼する処理依頼部３４を備える。
【００１９】
図５（ａ）は、当初依頼速度記憶部３２を例示する図である。  
当初依頼速度記憶部３２には、例えば、ジョブ名「ジョブＡ」、ジョブＡについて当初に算出される１処理装置当たりの依頼速度「７０」を含む情報が記憶される。当初依頼速度記憶部３２には、例えば、ジョブ名「ジョブＢ」、ジョブＢについて当初に算出される１処理装置当たりの依頼速度「３０」を含む情報が記憶される。
【００２０】
図５（ｂ）は、最新依頼速度記憶部３３を例示する図である。  
最新依頼速度記憶部３３には、例えば、ジョブ名「ジョブＡ」、ジョブＡについて最も新しく算出される１処理装置当たりの依頼速度「７５」を含む情報が記憶される。当初依頼速度記憶部には、例えば、ジョブ名「ジョブＢ」、ジョブＢについて最も新しく算出される１処理装置当たりの依頼速度「２５」を含む情報が記憶される。
【００２１】
（ジョブ実行システムによるジョブ実行方法）
図６および図７は、ジョブ実行システムが行うジョブ実行方法を示すシーケンス図である。  
ジョブ情報管理装置１は、希望記憶速度記憶部１２から希望記憶速度（以下、希望記憶速度を「１０００」とする）を読み出し、ジョブ情報記憶部１１からジョブ情報２００Ａ、２００Ｂを読み出し、希望記憶速度とジョブ情報２００Ａ、２００Ｂを含むジョブ開始命令をジョブ分割装置２に送信する（Ｓ１）。
【００２２】
ジョブ分割装置２の処理装置数算出部２１は、ジョブ情報２００Ａ、２００Ｂの各処理対象データ情報に基づいて、合計のデータ単位数「１８０，０００」を求め、これと、希望記憶速度「１０００」と、予め記憶した１処理装置当たりの処理の速度に基づいて、使用する処理装置４の数を求め、求めた数を処理装置数記憶部２２に記憶させる。以下、使用する処理装置の数を「１０」（処理装置数「１０」という）とする。
【００２３】
ジョブ分割装置２のデータ分割部２３は、並列処理管理装置３に対し、処理装置数「１０」とジョブ名「ジョブＡ」と「ジョブＢ」を通知し、１０台の処理装置４で各ジョブの並列処理が可能か否か問い合わせる（Ｓ３）。
【００２４】
並列処理管理装置３は、各処理装置４に各ジョブの処理を行えるか否かを問い合わせ、１０台以上の処理装置４から可能であることを示す応答（ＡＣＫ）が通知されると、その中の１０台に処理の予約を行うとともに、処理結果転送装置５に各ジョブＡ、Ｂの処理結果が格納されるキューを作成するように依頼し、ジョブ分割装置２に問い合わせの並列処理が可能であることを示す応答（ＡＣＫ）を通知する（Ｓ５）。処理結果転送装置５は、依頼された各ジョブＡ、Ｂのキューを作成する。
【００２５】
図８は、処理結果転送装置５におけるキューの使用方法を示す図である。  
ジョブＡのキューには、各処理装置４から送信されるジョブＡの処理結果が格納される。ジョブＢのキューには、各処理装置４から送信されるジョブＢの処理結果が格納される。各処理結果は、定期的にまたは送信可能となったなら処理結果記憶装置６に送信され格納される。
【００２６】
図６に戻る。  
ジョブ分割装置２のデータ分割部２３は、並列処理管理装置３からＡＣＫが通知されると、処理対象データ情報１００Ａに対応する処理対象データを処理装置数「１０」に分割する。分割で生じたものをデータ片１０１Ａ、１０２Ａ、…、１１０Ａという。データ片１０１Ａは処理対象データの先頭を含み、以下、先頭に近い順に、データ片１０２Ａ、…、１１０Ａという。データ分割部２３は、１０のデータ片を１０台の処理装置４に１づつ割り当てる。つまり、データ分割部２３は、各処理装置４に、データ単位数「１２，０００」を割り当てたことになる。
【００２７】
ジョブ分割装置２のデータ分割部２３は、同様に、処理対象データ情報１００Ｂに対応する処理対象データを処理装置「１０」に分割する。分割で生じたものをデータ片１０１Ｂ、１０２Ｂ、…、１１０Ｂという。データ片１０１Ｂは処理対象データの先頭を含み、以下、先頭に近い順に、データ片１０２Ｂ、…、１１０Ｂという。データ分割部２３は、１０のデータ片を１０台の処理装置４に１づつ割り当てる。つまり、データ分割部２３は、各処理装置４に、データ単位数「６，０００」を割り当てたことになる。
【００２８】
データ分割部２３は、各ジョブ名と優先度、各データ片１０１Ａ、…、１１０Ｂを示す情報を並列処理管理装置３に通知し、各ジョブ名のジョブにより各データ片を処理するように依頼する（Ｓ１１）。
【００２９】
並列処理管理装置３の依頼速度算出部３１は、各データ片１０１Ａ、…、１１０Ａの処理を、対応する処理装置４に依頼するときの、単位時間当たりに依頼されるデータ単位数である１処理装置当たりの依頼速度を算出する。ここでは、依頼速度算出部３１はまず、処理装置４の数と、予め記憶した１処理装置当たりの処理の速度とに基づいて、１０台の処理装置４に対する合計の依頼速度の標準値を算出する。ここでは、標準値を「１００」とする。そして、依頼速度算出部３１は、この標準値を優先度の合計「１０」で除し、これにジョブＡの優先度「７」を乗じ、その結果である値つまりジョブＡについての１台あたりの依頼速度「７０」を得て、当初依頼速度記憶部３２と最新依頼速度記憶部３３においてジョブ名「ジョブＡ」に対応づけて記憶させる。
【００３０】
並列処理管理装置３の依頼速度算出部３１は、同様に、データ片１０１Ｂ、…、１１０Ｂについての依頼速度を算出する。ここでは、標準値「１００」を優先度の合計「１０」で除し、これにジョブＢの優先度「３」を乗じて、その結果であるジョブＢについての１台あたりの依頼速度「３０」を得て、当初依頼速度記憶部３２と最新依頼速度記憶部３３においてジョブ名「ジョブＢ」に対応づけて記憶させる。
【００３１】
並列処理管理装置３の処理依頼部３４は、１０台の処理装置４に対し、最新依頼速度記憶部３３に記憶された依頼速度で処理を依頼し（Ｓ１３）、ジョブ分割装置２に処理の依頼を受け付けたことを示す応答（ＡＣＫ）を通知する（Ｓ１５）。
【００３２】
例えば、並列処理管理装置３の処理依頼部３４は、開始時刻「９：００」に、データ片１０１Ａの先頭を含むデータ単位数「７０」の部分を示す情報とジョブ名「ジョブＡ」を、対応する処理装置４に送信し、１秒後に、同じデータ片１０１Ａの残り部分の先頭を含むデータ単位数「７０」の部分を示す情報とジョブ名「ジョブＡ」を、同じ処理装置４に送信し、以降も、同様のことを行う。並列処理管理装置３は、他のデータ片についても同様のことを行う。
【００３３】
データ片１０１Ａの先頭を含むデータ単位数「７０」の部分を示す情報とジョブ名「ジョブＡ」を送信された処理装置４は、直ちに、ジョブ名「ジョブＡ」に対応するプログラムを実行し、そのデータ単位数「７０」の部分を示す情報から当該部分を取得し、これにジョブ名「ジョブＡ」に対応するプログラムを実行して可能となった処理を施し、これにより、処理結果を得る（Ｓ２１）。この処理装置４は、以降、１秒毎に情報が送信される度にデータ単位数「７０」の部分を取得し、それに同様の処理を行って、処理結果を得る（Ｓ２１）。また、他の処理装置４も同様のことを行う。なお、処理装置４は、処理結果に、対応するデータ単位数「７０」や「３０」の部分の処理対象データにおける順序とジョブ名を付与する。
【００３４】
これと並行して、各処理装置４は、各処理結果が得られると、これを直ちに処理結果転送装置５に送信する（Ｓ２３）。
【００３５】
処理結果転送装置５は、送信された各処理結果を、直ちに、付与されたジョブ名に対応するキューに格納する。このとき、処理結果転送装置５は、処理結果に付与された順序がキューの先頭から降順に並ぶようにする、つまり、整列させる。また、処理結果転送装置５は、処理結果がキューに格納されたなら、そのことを示す応答（ＡＣＫ）を処理装置４に送信する（Ｓ２５）。
【００３６】
これと並行して、処理結果転送装置５は、処理結果を定期的にまたは送信可能となったなら処理結果記憶装置６に送信する（Ｓ２７）。
【００３７】
処理結果記憶装置６は、ハードディスク装置、テープドライブ、フラッシュメモリなどに備えており、処理結果記憶装置６は、送信された各処理結果を、直ちに、付与されたジョブ名に対応する記憶領域に格納する。そして、各処理結果について、それを格納したことを示す応答（ＡＣＫ）を処理結果転送装置５に送信する（Ｓ２９）。
【００３８】
処理結果転送装置５は、こうした中、単位時間あたりに処理結果記憶装置６から受信したＡＣＫの数を基に、単位時間あたりに記憶されるデータ単位数である記憶速度を、各ジョブについて定期的に求め、並列処理管理装置３とジョブ分割装置２に通知する（Ｓ３１）。
【００３９】
例えば、ジョブＡについてのＡＣＫが１秒間に１０回なら、記憶速度は「７００」であり、すなわち、ジョブＡの依頼速度「７０」を１０台の処理装置４について合計した依頼速度「７００」に等しいが、処理結果１つあたりのデータ量が多い場合などは、それより低く、例えば、記憶速度は「６５０」などとなることがある。
【００４０】
一方、ジョブＢについてのＡＣＫが１秒間に１０回なら、記憶速度は「３００」で、ジョブＢの依頼速度「３０」を１０台の処理装置４について合計した依頼速度「３００」に等しいが、処理結果１つあたりのデータ量が少ない場合などは、それより高く、例えば、記憶速度は「３５０」などとなることがある。
【００４１】
並列処理管理装置３は、通知される記憶速度によっては依頼速度を変更するのだが、これについては後述する。
【００４２】
処理結果転送装置５は、各ジョブにつき、各データ片に対応するＡＣＫを全て受信する毎に、書き込み完了通知を並列処理管理装置３に送信し（Ｓ３３）、並列処理管理装置３は、各書き込み完了通知をジョブ分割装置２に送信する（Ｓ３５）。
【００４３】
ジョブ分割装置２は、各ジョブにつき、対応する書き込み完了通知を全て受信したら、ジョブ完了通知をジョブ情報管理装置１に送信する（Ｓ３９）。
【００４４】
図７に移る。  
処理結果転送装置５は、記憶速度が遅い場合は、処理結果を遅らせて送信するようになっており、そのため、処理結果が増えすぎてキューに格納できなくなることがある。その際は、そのことを示す応答（ＮＡＣＫ）を処理装置４に送信する（Ｓ２６）。
【００４５】
さて、並列処理管理装置３の依頼速度算出部３１は、ステップＳ３１の通知により、遅い記憶速度を認識し、依頼速度を変化させる。
【００４６】
依頼速度算出部３１は、例えば、ジョブＡ、Ｂの記憶速度「６５０」、「３５０」を処理装置数「１０」で除し、それぞれ１処理装置当たりの記憶速度「６５」、「３５」を得る。依頼速度算出部３１は、「６５」を当初依頼速度記憶部の依頼速度「７０」と比較し、差が予め記憶した値より大きいなら、この場合、後者が大きいので、依頼速度「７０」に予め記憶した値「５」を加えて依頼速度「７５」を得て、最新依頼速度記憶部３３にジョブ名「ジョブＡ」に対応づけて記憶された依頼速度を依頼速度「７５」に置き換える。また、依頼速度算出部３１は、「３５」を依頼速度「３０」と比較し、差が予め記憶した値より大きいなら、この場合、前者が大きいので、依頼速度「３０」から値「５」を減じて依頼速度「２５」を得て、最新依頼速度記憶部３３にジョブ名「ジョブＢ」に対応づけて記憶された依頼速度を依頼速度「２５」に置き換える。
【００４７】
並列処理管理装置３の処理依頼部３４は、１０台の処理装置４に対し、最新依頼速度記憶部３３に記憶された新たな依頼速度で処理を依頼する（Ｓ４１）。
【００４８】
これにより、ジョブＡについては、処理装置４から処理結果転送装置５に送信される、単位時間あたりの処理結果の数が多くなり、一方、ジョブＢについては、処理装置４から処理結果転送装置５に送信される、単位時間あたりの処理結果の数が少なくなる。
【００４９】
例えば、処理装置４がジョブＢの処理結果を送信したのにＮＡＣＫを受信し（Ｓ２６）、その処理結果を再送信する（Ｓ２６１）場合、処理装置４から処理結果転送装置５に送信される、単位時間あたりの処理結果の数が少なくなることで、例えば、処理装置４は、処理結果の再送信前に依頼を受け取ることなく、依頼は再送信のＡＣＫを受け取って（Ｓ２６２）から受け取ることとなる。この場合、処理結果転送装置５のキューには余裕ができ、処理装置４が当該依頼についての処理結果を処理結果転送装置５に送信すれば、処理結果転送装置５は処理結果をキューに格納することができるようになる。
【００５０】
ジョブＢについては、処理装置４から処理結果転送装置５送信される、単位時間あたりの処理結果の数を少なくしたことで、ジョブＡの記憶速度を高める余裕ができる。これを利用して、ジョブＡについては、処理装置４から処理結果転送装置５に送信される、単位時間あたりの処理結果の数を多くしたので、結果的に、ジョブＡの記憶速度を高めることができる。
【００５１】
処理結果転送装置５は、次に記憶速度を通知する場合は、例えば、上記の結果として、ジョブＡ、Ｂの記憶速度「７００」、「３００」を並列処理管理装置３とジョブ分割装置２に通知する（Ｓ３１）。
【００５２】
並列処理管理装置３の依頼速度算出部３１は、例えば、ジョブＡ、Ｂの記憶速度「７００」、「３００」を処理装置数「１０」で除し、それぞれ１処理装置当たりの記憶速度「７０」、「３０」を得る。依頼速度算出部３１は、「７０」と当初の依頼速度「７０」と比較し、差が予め記憶した値以下なら（この場合、差が０なので）、最新依頼速度記憶部３３の依頼速度「７５」を維持する。また、依頼速度算出部３１は、「３０」を当初の依頼速度「３０」と比較し、差が予め記憶した値以下なら（この場合、差が０なので）、最新依頼速度記憶部３３の依頼速度「３５」を維持する。
【００５３】
並列処理管理装置３の依頼速度算出部３１は、仮に、ジョブＡ、Ｂの記憶速度が「８００」、「２００」なら、それらを処理装置数「１０」で除し、それぞれ１処理装置当たりの記憶速度「８０」、「２０」を得る。依頼速度算出部３１は、「８０」と当初の依頼速度「７０」と比較し、差が予め記憶した値より大きいなら、この場合、前者が大きいので、依頼速度「７５」から値「５」の１／２を減じて依頼速度「７２．５」を得て、最新依頼速度記憶部３３にジョブ名「ジョブＡ」に対応づけて記憶された依頼速度を依頼速度「７２．５」に置き換える。また、依頼速度算出部３１は、「２０」を当初の依頼速度「３０」と比較し、差が予め記憶した値より大きいなら、この場合、後者が大きいので、依頼速度「３５」に値「５」の１／２を加えて依頼速度「２７．５」を得て、最新依頼速度記憶部３３にジョブ名「ジョブＢ」に対応づけて記憶された依頼速度を依頼速度「２７．５」に置き換える。
【００５４】
依頼速度算出部３１は、同様に、次回以降、依頼速度の変更が必要なら、加算する値または減算する値を前回の値の１／２にしていくことで、いずれかは、差が予め記憶した値以下となる。
【００５５】
このように、記憶速度が当初の依頼速度に応じたものとなるように、実際の依頼速度を必要ならば変更することにより、記憶速度を優先度に応じたものに、つまり、優先度が高い場合に記憶速度を高くし、一方、優先度が低い場合には記憶速度を低くすることができる。なお、記憶速度が優先度に応じたものになっているジョブについては、依頼速度を維持しておけばよく、各ジョブの依頼速度を変更する必要はない。
【００５６】
ここで、ジョブ分割装置２の処理装置数算出部２１について更に説明する。  
例えば、ジョブＡ、Ｂの記憶速度が「３５０」、「１５０」だった場合、どちらの記憶速度も低くできず、上記のように、一方を低くしてできた余裕により他方を高くすることができない。
【００５７】
かかる記憶速度は、ステップＳ３５でジョブ分割装置２に通知されるので、処理装置数算出部２１は、まず、これらを処理装置数「１０」で除し、それぞれ１処理装置当たりの記憶速度「３５」、「１５」を得る。そして、処理装置数算出部２１は、「３５」と「１５」を合計し、「５０」を得る。処理装置数算出部２１は、「５０」を標準値「１００」つまり依頼速度の合計と比較し、差が予め記憶した値より大きいなら、処理装置数記憶部２２に記憶された処理装置数「１０」に１００／５０＝２を乗じ、得た処理装置数「２０」を処理装置数記憶部２２に記憶させる。
【００５８】
これにより、実際に使用される処理装置の数が２０になり、ジョブＡ、Ｂの記憶速度が「７００」、「３５０」となることが期待できる。
【００５９】
一方、例えば、ジョブＡ、Ｂの記憶速度が「１４００」、「６００」だった場合、どちらの記憶速度も低くできるので、両方の依頼速度を低くしてもよいが、処理装置数算出部２１を使用する場合、処理装置数算出部２１は、まず、これらを処理装置数「１０」で除し、それぞれ１処理装置当たりの記憶速度「１４０」、「６０」を得る。そして、処理装置数算出部２１は、「１４０」と「６０」を合計し、「２０」を得る。処理装置数算出部２１は、「２００」を標準値「１００」と比較し、差が予め記憶した値より大きいなら、処理装置数記憶部２２に記憶された処理装置数「１０」に１００／２００＝０．５を乗じ、得た処理装置数「５」を処理装置数記憶部２２に記憶させる。
【００６０】
これにより、実際に使用される処理装置の数が５になり、ジョブＡ、Ｂの記憶速度が「７００」、「３５０」となることが期待できる。
【００６１】
このように、記憶速度が当初の依頼速度に応じたものとなるように、処理装置４の数を変更することにより、記憶速度を優先度に応じたものに、つまり、優先度が高い場合に記憶速度を高くし、一方、優先度が低い場合には記憶速度を低くすることができる。
【００６２】
（変形例）
なお、本発明は、本実施の形態に限るものでなく、適宜変更を加えて実施してもよい。  例えば、本実施の形態では、２つのジョブについて説明したが、３つ以上のジョブについてであっても、同様の構成により、本実施の形態と同様の効果を得ることができる。
【００６３】
また、本実施の形態では、記憶速度を処理装置の数で除して得た値と当初の依頼速度の大小に応じて依頼速度を変更したが、過去の一定期間における依頼速度および記憶速度を予測用のパラメータとして、カルマンフィルタを用いて、最適な依頼速度を予測し、その依頼速度に変更してもよい。また、かかる予測用のパラメータを用いて、統計解析を行ってもよい。
【図面の簡単な説明】
【００６４】
【図１】本実施の形態に係るジョブ実行システムの構成を示す図である。
【図２】ジョブ情報管理装置１のジョブ情報記憶部１１と希望記憶速度記憶部１２を例示した図である。
【図３】ジョブ分割装置２の概略構成を示すブロック図である。
【図４】並列処理管理装置３の概略構成を示すブロック図である。
【図５】当初依頼速度記憶部３２と最新依頼速度記憶部３３を例示する図である。
【図６】ジョブ実行システムが行うジョブ実行方法を示すシーケンス図である。
【図７】ジョブ実行システムが行うジョブ実行方法を示すシーケンス図である。
【図８】処理結果転送装置５におけるキューの使用方法を示す図である。
【符号の説明】
【００６５】
１…ジョブ情報管理装置
２…ジョブ分割装置
３…並列処理管理装置
４…処理装置
５…処理結果転送装置
６…処理結果記憶装置
１１…ジョブ情報記憶部
１２…希望記憶速度記憶部
２１…処理装置数算出部
２２…処理装置数記憶部
２３…データ分割部
３１…依頼速度算出部
３２…当初依頼速度記憶部
３３…最新依頼速度記憶部
３４…処理依頼部
【図１】
2009251875.tif 000003
【図２】
2009251875.tif 000004
【図３】
2009251875.tif 000005
【図４】
2009251875.tif 000006
【図５】
2009251875.tif 000007
【図６】
2009251875.tif 000008
【図７】
2009251875.tif 000009
【図８】
2009251875.tif 000010