JP2007179100A - ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体 - Google Patents

ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体 Download PDF

Info

Publication number
JP2007179100A
JP2007179100A JP2005373501A JP2005373501A JP2007179100A JP 2007179100 A JP2007179100 A JP 2007179100A JP 2005373501 A JP2005373501 A JP 2005373501A JP 2005373501 A JP2005373501 A JP 2005373501A JP 2007179100 A JP2007179100 A JP 2007179100A
Authority
JP
Japan
Prior art keywords
job
user
execution
server computer
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2005373501A
Other languages
English (en)
Inventor
Masahiro Furukawa
政宏 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2005373501A priority Critical patent/JP2007179100A/ja
Publication of JP2007179100A publication Critical patent/JP2007179100A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

【課題】 複数のユーザによって複数の計算機が共用された計算機システムにおいて、単一ユーザによる計算機独占を防ぎつつ、無駄に空いた計算機が発生しないようにジョブキューの管理および実行を制御する。
【解決手段】 複数のユーザによって複数の計算機が共用され、ジョブの投入順に計算機が割り当てられ、各ユーザに割り当てられる計算機の数に制限(ユーザジョブリミット)が設けられたジョブキューシステム10において、ジョブスケジューラ131は、空き状態の計算機がある場合に、ユーザジョブリミットを越えてジョブを実行させる。他のジョブが投入されたときには、当該ジョブの実行を中止させてデータおよび状態の複製を作成し、ジョブキューの先頭に戻す。
【選択図】 図2

Description

本発明は、例えばシミュレーションの計算処理などの各種ジョブに使用される資源がネットワークを介して複数の計算機に分散して配置されるシステムに対してジョブキューの管理および実行を制御するジョブキューシステムおよびこれを用いたジョブ管理方法、このジョブ管理方法の各ステップをコンピュータに実行させるための制御プログラム、この制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体に関する。
従来より、計算機システムを利用する形態としては、二つの形態が挙げられる。操作者が会話形式(対話形式)で操作することによって処理を進めていく会話型と、処理の途中で人の操作が必要とされないバッチ型である。会話型の処理方法は図面の作成などに用いられ、バッチ型の処理方法はシミュレーション計算などに用いられている。
一般に、バッチ型の処理(以下、ジョブと記す)方法には、多量の計算処理が必要とされ、計算資源(計算機)が多く消費される。
複数のユーザによって、複数の計算機を用いて、バッチ型のジョブを効率的に処理する手法として、ジョブキューシステムが知られている。このジョブキューシステムは、ネットワークに接続された複数の計算機によって構成され、ジョブを制御する機構を有している。このシステムに投入されたジョブは、まず、投入順にキュー(待ち行列)に並べられる。計算機に空きが生じると、キューの先頭にあるジョブから順に計算機に送られて処理される。これにより、複数の計算機を複数のユーザによって効率よく利用することができる。また、ジョブが投入時間順に実行されることによって、処理機会の公平性が得られている。
上記ジョブキューシステムを実現するソフトウェアとして、例えば非特許文献1および非特許文献2に開示されているような、いくつかのツールが市販されている。
以下に、図16を用いて、従来のジョブキューシステムの構成およびその動作について説明する。
図16に示すように、ジョブキューシステム40では、ジョブキュー41と、ジョブが実行される計算機42および43とが設けられており、ユーザAによってジョブキュー41にジョブ44〜46が投入されて、ジョブキュー41内で、投入されたジョブが右から順番に並べられ、この投入順に処理される。図16では、ジョブ44、ジョブ45およびジョブ46の順にジョブが投入された場合であり、最初に投入されたジョブ44が計算機42に送られて処理された時点を示している。
ここで、単純なジョブキューシステム40では、次に、ジョブ45が、空いた計算機43に送られて処理される。その結果、計算機がユーザAから投入されたジョブによって占有されてしまい、他のユーザからジョブが投入されても、ジョブが処理されない。
このように、単純なジョブキューシステムでは、一人のユーザから一度に多数のジョブが投入されると、計算機が独占されてしまい、他のユーザによるジョブ実行が妨げられてしまう。このため、各ユーザに対する処理機会の公平性が得られなくなるという問題がある。
このような問題を解決する方法として、非特許文献1のジョブ管理方法には、各ユーザに割り当てられる計算機の数に制限(ユーザジョブリミット)を設けて、単一ユーザによる計算機の独占を防ぐ方法が開示されている。
以下に、図16および図17を用いて、上記非特許文献1に開示されている従来のジョブキューシステムによる動作について説明する。なお、ここでは、ユーザAのユーザジョブリミットが”1”に設定されているものとする。
図16において、ユーザAからは3つのジョブ(ジョブ44、ジョブ45、ジョブ46)が順次投入されているが、ユーザジョブリミットに従って、1台の計算機42のみが割り当てられる。この結果、ジョブ45およびジョブ46はジョブキュー41によって実行待ち状態とされ、計算機43は、空き状態のままとなる。これにより、2つの計算機42,43が共にユーザAに独占されるのを防止することができる。
図16の状態で他のユーザBのジョブが投入された場合の動作を図17に示している。
図17には、ジョブキュー41と、ジョブが実行される計算機42および43と、ユーザAによってジョブキュー41に投入されて計算機42にて順次処理されるジョブ44〜46と、ユーザBによってジョブキュー41に投入されて計算機43にて処理されるジョブ57とが示されている。
このジョブキュー41では、投入されたジョブ44〜46が右から順番に並べられ、この投入順で計算機42にて処理される。このとき、他のユーザBからジョブキュー41にジョブ57が投入されると、ユーザジョブリミット”1”に従って、ジョブキュー41により実行待ち状態とされているユーザAのジョブ46およびジョブ45を飛び越して、空いている計算機43によってジョブ57の処理が実行される。これにより、ユーザ間の処理機会の公平性を得ることができる。
Platform Computing 社刊、Platform LSF 管理者 Version 6.0 June 2004 Sun Microsystems社刊、N1 Grid Engine 6 Administration Guide Part No: 817−5677−20
しかしながら、上記非特許文献1に開示されている従来のジョブ管理方法には、以下のような問題がある。
図16に示すように、あるユーザAがユーザジョブリミットに達している一方で、他のユーザBのジョブが空いていれば(例えばジョブ57がなければ)、計算機43に空き状態が生じる。この場合、ユーザジョブリミットに達したユーザAから投入された実行待ち状態のジョブ(例えばジョブ45,46)は、計算機42により順次処理されるから、次の計算機43が空いているにも関わらず、計算機43により実行されないため、そのユーザAから連続投入されたジョブ44〜46の処理完了が無駄に遅れてしまう。
本発明は、上記従来の問題を解決するもので、単一ユーザによる計算機独占を防ぎつつ、無駄に空いた計算機が発生しないようにジョブキューの管理および実行を制御して、連続投入されたジョブを効率的に処理することができるジョブキューシステムおよびこれを用いたジョブ管理方法、このジョブ管理方法の各ステップをコンピュータに実行させるための制御プログラム、この制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体を提供することを目的とする。
本発明のジョブキューシステムは、 複数のユーザから投入されたジョブを実行可能とする複数のサーバ計算機が、該ジョブの投入順に該サーバ計算機を割り当てて、各ユーザに割り当てられるサーバ計算機の数に制限がユーザジョブリミットとして加えられた状態で、ジョブキューの管理および実行を制御するジョブキューイングサーバ計算機に電気的に接続されたジョブキューシステムにおいて、該ジョブキューイングサーバ計算機は、空きのサーバ計算機がある場合に、該ユーザジョブリミットを越えて該空きのサーバ計算機にジョブを実行させ、他のユーザからジョブが投入されたときに、該空きのサーバ計算機がない場合に、該ユーザジョブリミットを越えて実行中のジョブの中からジョブの実行を中止させ、該中止させたサーバ計算機に該他のユーザから投入されたジョブを実行制御するジョブ制御手段を有するものであり、そのことにより上記目的が達成される。
また、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記中止させた時点のジョブ情報の複製を作成し、該中止させたジョブの実行を再開させるときに、該ジョブ情報の複製を作成した実行途中のチェックポイントから該ジョブ情報の複製を用いて該ジョブの実行を再開させるように制御する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記ジョブの実行前に前記ジョブ情報の複製を作成し、前記中止させたジョブの実行を再開させるときに、該ジョブの実行前のジョブ情報の複製を用いて該ジョブの実行を最初から再開させるように制御する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記中止させたジョブの実行を再開させるときに、前記ジョブ情報の複製を作成した実行途中のチェックポイントからのジョブの再開可否を判断し、該再開が可能である場合には該ジョブ情報の複製を用いて該チェックポイントからのジョブの実行を再開させ、該再開が可能でない場合にはジョブ実行前のジョブ情報の複製を用いて最初からジョブの実行を再開させるように制御する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記中止させたジョブを最初から再開させているかまたは再開させようとするときに、前記チェックポイントからジョブを再開させることが可能な他のサーバ計算機が空いた場合に、現在実行中のジョブの進捗状況と該チェックポイントでのジョブの進捗状況とを比較して、該現在実行中のジョブの進捗状況が該チェックポイントでのジョブの進捗状況よりも進んでいない場合に、該現在実行中のジョブを中止させて該他のサーバ計算機により該チェックポイントからのジョブの実行を再開させるように制御する。
さらに、好ましくは、本発明のジョブキューシステムにおいて、前記現在実行中のジョブの進捗状況が前記チェックポイントでのジョブの進捗状況よりも進んでいない場合に、後から開始された実行中のジョブから中止させるか、処理済みの計算量が最小であるジョブから中止させるかまたは、該処理が残った計算量が最大であるジョブから中止させる。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、中止ジョブのサーバタイプと再開先のサーバタイプとが適合するように前記チェックポイントからのジョブの再開可否を判定する第1ジョブ再開判定手段と、該第1ジョブ再開判定手段による判定結果がジョブ再開可能な場合に該再開先のサーバ計算機に該チェックポイントからのジョブ再開を指示し、該判定結果がジョブ再開不可能な場合に該再開先のサーバ計算機に最初からのジョブ再開を指示する第1ジョブ再開指示手段とを有する。
さらに、好ましくは、本発明のジョブキューシステムにおけるサーバタイプの適合判断はオペレーティングシステムが異なるか否かによって判断される。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、投入されたジョブを第1記憶部のジョブキューの最後尾に登録するジョブ登録手段と、登録されたジョブに対する「空き」状態のサーバ計算機を選択するサーバ選択手段と、選択されたサーバ計算機に、登録されたジョブの実行を指示する第1ジョブ実行指示手段とを有する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ登録手段によるジョブ登録時に前記第1記憶部のジョブ管理テーブルに登録ジョブの管理情報を記録させる第1ジョブ情報記録手段をされに有する。
さらに、好ましくは、本発明のジョブキューシステムにおける第1ジョブ情報記録手段は、ジョブ実行指示時に、前記第1記憶部のジョブ管理テーブルおよびサーバ管理テーブルの管理情報を更新すると共に、ジョブ実行前またはジョブ実行途中のジョブ情報を第2記憶部に保存させる。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記サーバ計算機に「空き」状態のものがない場合に、ユーザ毎に、「実行中」のジョブがいくつあるかを集計した集計結果がユーザジョブリミットを越えているユーザを検索するユーザジョブリミット超過ユーザ選択手段と、該ユーザジョブリミットを越えているユーザがあり、かつ当該ユーザの中に、前記ジョブキューの最後尾のジョブに対応した他のユーザがいない場合に、該ユーザジョブリミットを越えているユーザに対応するジョブから中止対象ジョブを選択する中止対象ジョブ選択手段と、選択された中止対象ジョブの実行を中止指示する第1ジョブ中止指示手段と、ジョブ中止指示した「空き」状態のサーバ計算機に、該ジョブキューの最後尾のジョブの実行を指示する第2ジョブ実行指示手段とを有する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記中止対象ジョブを選択時に、ジョブ管理テーブル上の該中止対象ジョブの管理情報を更新して該中止対象ジョブを前記ジョブキューの先頭位置に移動させると共に、該中止対象ジョブのその時点でのジョブ情報をチェックポイントとして複製して情報保存する第2ジョブ情報記録手段をさらに有する。
さらに、好ましくは、本発明のジョブキューシステムにおける第2ジョブ情報記録手段は、前記ユーザジョブリミットを越えているユーザがない場合、または、当該ユーザの中に前記ジョブキューの最後尾のジョブに対応するユーザがある場合に、前記ジョブ管理テーブル上の該ジョブキューの最後尾のジョブを「実行待ち」の状態として情報保持する。
さらに、好ましくは、本発明のジョブキューシステムにおける第2ジョブ情報記録手段は、前記ジョブ実行指示時に、前記ジョブ管理テーブルおよびサーバ管理テーブルの管理情報を更新すると共に、前記第2ジョブ実行指示手段によるジョブ実行前のジョブ情報を情報保存する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、サーバ計算機に空きができたときに、中止・実行中のジョブを検索する第1ジョブ検索手段と、検索された中止・実行中のジョブのうち、投入時間の最も早いジョブを選択するジョブ選択手段と、選択されたジョブの再開が可能かどうかを判定する第2ジョブ再開判定手段と、ジョブの再開が不可能な場合、または、ジョブの再開が可能な場合でかつ、現在のジョブの進捗状況が、該中止・実行中のジョブよりも進んでいる場合に、投入時間が次に早いジョブを選択して、該第2ジョブ再開判定手段を動作させるジョブ再開判定起動手段と、該中止・実行中のジョブの進捗状況が、該現在のジョブよりも進んでいる場合に、実行中のジョブを中止する第2ジョブ中止指示手段と、該空きサーバ計算機上で前記チェックポイントからジョブを再開するように実行指示する第2ジョブ再開指示手段とを有する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索手段と、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択手段と、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計手段と、該ジョブ集計手段による集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定手段と、当該ジョブのユーザがユーザジョブリミットを越えている場合に、次のジョブの集計処理に進む第1ジョブ集計起動手段と、当該ジョブのユーザがユーザジョブリミットを越えていない場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第3ジョブ実行指示手段とを有する。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ制御手段は、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索手段と、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択手段と、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計手段と、該ジョブ集計手段による集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定手段と、当該ジョブのユーザがユーザジョブリミットを越えていない場合に、次のジョブの集計処理に進む第2ジョブ集計起動手段と、当該ジョブのユーザがユーザジョブリミットを越えている場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第4ジョブ実行指示手段とを有する。
さらに、好ましくは、本発明のジョブキューシステムにおいて、複数のユーザによってジョブが投入される一または複数のクライアント計算機が設けられ、該クライアント計算機と前記サーバ計算機との間に前記ジョブキューイングサーバ計算機が設けられている。
さらに、好ましくは、本発明のジョブキューシステムにおいて、複数のサーバ計算機と、前記一または複数のクライアント計算機と、前記ジョブキューイングサーバ計算機とがネットワークにより相互に接続されている。
さらに、好ましくは、本発明のジョブキューシステムにおけるクライアント計算機は、ジョブ投入コマンドと、該ジョブ投入コマンドを管理するオペレーティングシステムとを有している。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブキューイングサーバ計算機は、前記クライアント計算機からのジョブ投入コマンドを受けて、ジョブを実行するタイミングとジョブを実行するサーバ計算機とを決定するジョブスケジューリング処理を行うジョブスケジューラと、該ジョブスケジューラを管理するオペレーティングシステムとを有している。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブキューイングサーバ計算機は、前記ジョブスケジューラによって参照および管理されるジョブ管理テーブル、ユーザ管理テーブル、サーバ管理テーブル、再開マトリックスおよびログファイルのうち少なくともいずれかを第1記憶部に記憶している。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブ管理テーブルは、ジョブ毎に一つの行が作成されて、該ジョブを一意に識別するためのジョブID、該ジョブを投入したユーザを一意に識別するためのユーザID、該ジョブが実行待ち/実行中/中止・実行待ち/中止・実行中のいずれであるかを示すジョブの状態、前記クライアント計算機からジョブが投入された時刻、前記サーバ計算機によってジョブの実行が開始された時刻、該ジョブが実行されたサーバ計算機の名前、該ジョブを実行する前に複製されたジョブ情報が退避されたディレクトリ名、該ジョブを中止時点から再開させるために作成されたジョブのデータおよび状態の複製が管理情報として保存されたディレクトリ名、該データおよび状態の複製が作成されたチェックポイントにおけるジョブの進捗状況、該チェックポイントが作成されたサーバ計算機のタイプが記録されており、これらは前記ジョブスケジューラがジョブを制御するために利用される。
さらに、好ましくは、本発明のジョブキューシステムにおけるジョブの進捗状況は、ジョブによる計算機の使用時間と、当該ジョブが実行されているサーバ計算機の性能を乗じた値によって求められる。
さらに、好ましくは、本発明のジョブキューシステムにおいて、前記投入されたジョブは、前記ジョブ管理テーブルの最終行として追加される。
さらに、好ましくは、本発明のジョブキューシステムにおけるユーザ管理テーブルは、前記ジョブを投入したユーザを一意に識別するためのユーザIDと前記ユーザジョブリミットとの対応が記録され、前記ジョブスケジューラが各ユーザのユーザジョブリミットを調べるために利用される。
さらに、好ましくは、本発明のジョブキューシステムにおけるサーバ管理テーブルは、前記サーバ計算機の性能およびタイプ、該サーバ計算機が空き/実行中のいずれであるかを示す状態が記録されて、前記ジョブスケジューラが各サーバ計算機の性能、タイプおよび状態を調べるために利用され、該サーバ計算機の状態は該ジョブスケジューラによって更新可能とされている。
さらに、好ましくは、本発明のジョブキューシステムにおける再開マトリックスは、各タイプのサーバ計算機上で作成されたチェックポイントが、どのタイプのサーバ計算機によって再開可能であるかが予めテーブル化されている。
さらに、好ましくは、本発明のジョブキューシステムにおけるログファイルは、前記サーバ計算機の実行が終了したジョブを一意に識別するためのジョブID、該ジョブを投入したユーザを一意に識別するためのユーザID、前記クライアント計算機から該ジョブが投入された時刻、該サーバ計算機によってジョブの実行が終了した時刻、および該ジョブが実行されたサーバ計算機の名前が記録され、これらが前記ジョブスケジューラによって更新可能とされている。
さらに、好ましくは、本発明のジョブキューシステムにおけるサーバ計算機は、前記ジョブスケジューラからの指示を受けて前記ジョブの実行、中止および再開を実施し、該ジョブの中止および終了を該ジョブスケジューラに通知するジョブ実行制御プログラムと、該ジョブ実行制御プログラムを管理するオペレーティングシステムとを有している。
さらに、好ましくは、本発明のジョブキューシステムにおいて、前記クライアント計算機、前記サーバ計算機および前記ジョブキューイングサーバ計算機からアクセス可能とされており、前記ジョブを実行するために必要な管理情報、該ジョブを実行する前に複製・退避されるジョブ情報、および該ジョブを中止したときに保存される該ジョブのデータおよび状態の複製を該管理情報として保存する外部記憶装置をさらに有している。
本発明のジョブ管理方法は、各ユーザに割り当てられる計算機の数に制限がユーザジョブリミットとして設けられた状態で、複数のユーザによって複数のサーバ計算機が共用されて、ジョブの投入順にサーバ計算機が割り当てられるジョブキューシステムによりジョブキューの管理および実行を制御するジョブ管理方法において、空きのサーバ計算機がある場合に、該ユーザジョブリミットを越えて該空きのサーバ計算機にジョブを実行させ、他のユーザからジョブが投入されたときに、該空きのサーバ計算機がない場合に、該ユーザジョブリミットを越えて実行中のジョブの中からジョブの実行を中止させ、該中止させたサーバ計算機に該他のユーザから投入されたジョブを実行制御するジョブ制御ステップを有するものであり、そのことにより上記目的が達成される。
また、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、前記中止させたジョブの実行を再開させるときに、前記ジョブ情報の複製を作成した実行途中のチェックポイントからのジョブの再開可否を判断し、該再開が可能である場合には該ジョブ情報の複製を用いて該チェックポイントからのジョブの実行を再開させ、該再開が可能でない場合にはジョブ実行前のジョブ情報の複製を用いて最初からジョブの実行を再開させる。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、前記中止させたジョブを最初から再開させているかまたは再開させようとするときに、前記チェックポイントからジョブを再開させることが可能な他のサーバ計算機が空いた場合に、現在実行中のジョブの進捗状況と該チェックポイントでのジョブの進捗状況とを比較して、該現在実行中のジョブの進捗状況が該チェックポイントでのジョブの進捗状況よりも進んでいない場合に、該現在実行中のジョブを中止させて該他のサーバ計算機により該チェックポイントからのジョブの実行を再開させる。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、中止ジョブのサーバタイプと再開先のサーバタイプとが適合するように前記チェックポイントからの再開可否を判定する第1ジョブ再開判定ステップと、該ジョブ再開判定ステップによる判定結果がジョブ再開可能な場合に該再開先のサーバ計算機に該チェックポイントからのジョブ再開を指示し、該判定結果がジョブ再開不可能な場合に該再開先のサーバ計算機に最初からのジョブ再開を指示する第1ジョブ再開指示ステップとを有する。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、投入されたジョブを第1記憶部のジョブキューの最後尾に登録するジョブ登録ステップと、登録されたジョブに対する「空き」状態のサーバ計算機を選択するサーバ選択ステップと、選択されたサーバ計算機に、登録されたジョブの実行を指示する。
さらに、好ましくは、本発明のジョブ管理方法において、前記ジョブ登録ステップによるジョブ登録時にジョブ管理テーブルに登録ジョブの管理情報を前記第1記憶部に記録するジョブ情報記録ステップをされに有する。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、前記ジョブキューイングサーバ計算機は、前記サーバ計算機に「空き」状態のものがない場合に、ユーザ毎に、「実行中」のジョブがいくつあるかを集計した集計結果がユーザジョブリミットを越えているユーザを検索するユーザジョブリミット超過ユーザ選択ステップと、該ユーザジョブリミットを越えているユーザがあり、かつ当該ユーザの中に、前記ジョブキューの最後尾のジョブに対応した他のユーザがいない場合に、該ユーザジョブリミットを越えているユーザに対応するジョブから中止対象ジョブを選択する中止対象ジョブ選択ステップと、選択された中止対象ジョブの実行を中止指示する第1ジョブ中止指示ステップと、ジョブ中止指示した「空き」状態のサーバ計算機に、該ジョブキューの最後尾のジョブの実行を指示する第2ジョブ実行指示ステップとを有する。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、前記中止対象ジョブを選択時に、ジョブ管理テーブル上の該中止対象ジョブの管理情報を更新して該中止対象ジョブを前記ジョブキューの先頭位置に移動させると共に、該中止対象ジョブのその時点でのジョブ情報をチェックポイントとして複製して情報保存する第2ジョブ情報記録ステップをさらに有する。
さらに、好ましくは、本発明のジョブ管理方法における第2ジョブ情報記録ステップは、前記ユーザジョブリミットを越えているユーザがない場合、または、当該ユーザの中に前記ジョブキューの最後尾のジョブに対応するユーザがある場合に、前記ジョブ管理テーブル上の該ジョブキューの最後尾のジョブを「実行待ち」の状態として情報保持する。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、サーバ計算機に空きができたときに、中止・実行中のジョブを検索する第1ジョブ検索ステップと、検索された中止・実行中のジョブのうち、投入時間の最も早いジョブを選択するジョブ選択ステップと、選択されたジョブの再開が可能かどうかを判定する第2ジョブ再開判定ステップと、ジョブの再開が不可能な場合、または、ジョブの再開が可能な場合でかつ、現在のジョブの進捗状況が、該中止・実行中のジョブよりも進んでいる場合に、投入時間が次に早いジョブを選択して、該第2ジョブ再開判定ステップを動作させるジョブ再開判定起動ステップと、該中止・実行中のジョブの進捗状況が、該現在のジョブよりも進んでいる場合に、実行中のジョブを中止する第2ジョブ中止指示ステップと、該空きサーバ計算機上で前記チェックポイントからジョブを再開するように実行指示する第2ジョブ再開指示ステップとを有する。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索ステップと、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択ステップと、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計ステップと、該ジョブ集計ステップによる集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定ステップと、当該ジョブのユーザがユーザジョブリミットを越えている場合に、次のジョブの集計処理に進む第1ジョブ集計起動ステップと、当該ジョブのユーザがユーザジョブリミットを越えていない場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第3ジョブ実行指示ステップとを有する。
さらに、好ましくは、本発明のジョブ管理方法におけるジョブ制御ステップは、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索ステップと、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択ステップと、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計ステップと、該ジョブ集計ステップによる集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定ステップと、当該ジョブのユーザがユーザジョブリミットを越えていない場合に、次のジョブの集計処理に進む第2ジョブ集計起動ステップと、当該ジョブのユーザがユーザジョブリミットを越えている場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第4ジョブ実行指示ステップとを有する。
本発明の制御プログラムは、本発明の上記ジョブ管理方法の各ステップをコンピュータに実行させるためのものであり、そのことにより上記目的が達成される。
本発明の可読記録媒体は、本発明の上記制御プログラムが記録されたコンピュータ読み取り可能なものであり、そのことにより上記目的が達成される。
上記構成により、以下に、本発明の作用について説明する。
本発明にあっては、複数のユーザによって複数の計算機が共用されて、ジョブの投入順に計算機が割り当てられ、各ユーザに割り当てられる計算機の数に制限(ユーザジョブリミット)が設けられたジョブキューシステムにおいて、空き状態の計算機がある場合に、ユーザジョブリミットを越えてジョブを実行させる。他のユーザからジョブが投入されたときには、この投入されたジョブの実行を中止させてデータおよび状態の複製を作成し、ジョブキューの先頭位置に戻して次の処理のために待機させる。
これにより、単一ユーザによる計算機の独占を防ぐと共に、計算機の無駄な空き状態を防ぐことが可能となる。さらに、データおよび状態の複製を作成した時点(チェックポイント)からジョブを再開させることが可能となる。
さらに、ジョブの実行前にデータの複製を作成することによって、中止されたジョブについて、チェックポイントから再開させることができない場合でも、ジョブを最初から再開させることが可能となる。
さらに、中止されたジョブの実行を再開させるときに、チェックポイントからの再開可否を判断して、可能であればチェックポイントからジョブを再開させ、可能でない場合には最初からジョブを再開させることが可能となる。
これにより、チェックポイントが作成された計算機と、チェックポイントからジョブを再開させようとする計算機のオペレーティングシステム(以下、OSと記す)が異なる等の原因によって、ジョブをチェックポイントから再開させることができない場合でも、空いている計算機を有効に活用することが可能となる。
さらに、一旦中止されたジョブを最初から再開させているときに、チェックポイントからジョブを再開させることが可能な他の計算機が空いた場合に、現在のジョブの進捗状況とチェックポイントでのジョブの進捗状況とを比較し、現在のジョブの進捗状況がチェックポイントでのジョブの進捗状況に及んでいない場合には、ジョブを中止させて他の計算機によりチェックポイントからジョブを再開させることが可能となる。
これにより、中止されたジョブについて、ジョブを最初から再開させた場合でも、進捗状況が進んでいる場合にはチェックポイントまで処理を進めることができ、ジョブをより短時間で終了させることが可能となる。
さらに、ジョブを中止させる場合に、後から開始されたジョブから中止させるか、または、処理済みの計算量が最小であるジョブから中止させることが可能となる。
これにより、ジョブを最初から再開させた場合に生じる、ジョブ中止による処理の損失を最小限に抑えることが可能となる。
以上により、本発明によれば、空きの計算機がある場合に、空きの計算機がある場合に、ユーザユーザジョブリミットを越えてその計算機にジョブを実行させ、他のユーザからジョブが投入されたときには、そのジョブの実行を中止させてデータおよび状態の複製を作成し、そのジョブをジョブキューの先頭に戻して次の処理のために待機させるようにしたため、単一のユーザにより計算機を独占させることなく、空き状態の計算機をも利用して、連続投入されたジョブをより短時間で完了させることができる。
以下に、複数のユーザによって共用される複数の計算機がネットワークを介して接続された計算機システムを、本発明のジョブ管理方法を用いたジョブキューシステムに適用した場合について、図面を参照しながら詳細に説明する。
図1は、本発明のジョブ管理方法が適用された計算機システムの構成例を説明するためのシステム構成図である。
図1において、本実施形態の計算機システム1は、複数のクライアント11と、複数のサーバ12と、1つのジョブキューイングサーバ13とがネットワーク14により相互に接続されている。
複数のクライアント11は、複数のユーザが各々ジョブを投入するための計算機(コンピュータ)である。
複数のサーバ12は、例えばシミュレーションの計算処理などの各種のジョブを実行するための計算機(コンピュータ)である。
ジョブキューイングサーバ13は、ジョブキューの管理および実行を制御するための計算機(コンピュータ)である。
外部記憶装置15は、クライアント11、サーバ12およびジョブキューイングサーバ13などのいくつかの計算機に接続されている。
上記構成により、クライアント11からのジョブ(処理)の投入順に、そのジョブを実行する計算機(サーバ12)が割り当てられ、各ユーザ毎に、割り当てられる計算機(サーバ12)の数に制限がユーザジョブリミットとして設けられたジョブキューシステム(ジョブ管理システム)により、ジョブキューの管理および実行が制御される。このジョブキューシステムについて図2を用いて説明する。
図2は、本発明の実施形態に係るジョブキューシステムの構成例を示すブロック図である。
図2に示すように、本実施形態のジョブキューシステム10では、クライアント11とサーバ12とがジョブキューイングサーバ13を介して接続されており、各々が外部記憶装置15と接続されている。なお、実際には、図1に示すように、複数のクライアント11と複数のサーバ12とジョブキューイングサーバ13とがネットワーク14により接続されている。
クライアント11は、ジョブ投入コマンド111と、このジョブ投入コマンド111を管理するオペレーティングシステム112とを有している。クライアント11では、ユーザによってジョブ投入コマンド111が実行されて、ジョブキューイングサーバ13に対してジョブが投入される。
サーバ12は、ジョブ実行制御プログラム121と、このジョブ実行制御プログラム121を管理するオペレーティングシステム122とを有している。
ジョブ実行制御プログラム121は、後述するジョブ制御手段としてのジョブスケジューラ131からの指示を受けて、ジョブの実行、ジョブの中止およびジョブの再開を制御する。また、ジョブ実行制御プログラム121は、ジョブの中止および終了をジョブスケジューラ131に通知する。
ジョブキューイングサーバ13は、ジョブスケジューラ131と、このジョブスケジューラ131を管理するオペレーティングシステム132と、このジョブスケジューラ131によって用いられるジョブ管理テーブル131a、ユーザ管理テーブル131b、サーバ管理テーブル131c、再開マトリックス131dおよびログファイル131eとを有している。
ジョブスケジューラ131は、ジョブを実行するタイミングとジョブを実行するサーバ12とを決定するジョブスケジューリング処理を行う。
外部記憶装置15は、記憶部151を有している。この記憶部151には、クライアント11、サーバ12およびジョブキューイングサーバ13からアクセスされ、ジョブを実行するために必要なデータ、ジョブを実行する前に複製・退避されるデータ、およびジョブを中止したときに保存されるジョブのデータおよび状態の複製(チェックポイント)などが保存される。
上記構成により、まず、クライアント11によってジョブ投入コマンド111が実行されると、ジョブキューイングサーバ13に、ジョブを実行するタイミングとジョブを実行するサーバ12とを決定するジョブスケジューリング処理が依頼される。
次に、このジョブキューイングサーバ13では、このジョブ投入コマンド111を受けて、ジョブスケジューラ131が動作する。即ち、このジョブスケジューラ131は、ジョブ管理テーブル131a、ユーザ管理テーブル131b、サーバ管理テーブル131c、再開マトリックス131dおよびログファイル131eを参照および管理しながら、ジョブのスケジューリング(実行タイミングとサーバ決定)が行われる。
その後、ジョブ実行制御プログラム121は、ジョブスケジューラ131からの指示を受けて、ジョブの実行、ジョブの中止および、ジョブの再開を制御する。また、ジョブ実行制御プログラム121は、ジョブの中止やジョブの終了をジョブスケジューラ131側に通知する。
図3は、図2の外部記憶装置15の記憶部151に保存された各データのディレクトリ構成例を示す図である。
図3に示すように、ジョブ1、ジョブ2、・・・のそれぞれを実行するために必要なデータは、ジョブ実行ディレクトリ(data)の各ジョブ用ディレクトリjob1、job2、・・・に保存されている。また、ジョブ1、ジョブ2、・・・のそれぞれを実行する前に複製・退避されるデータは、データ退避ディレクトリ(taihi)の各ジョブ用ディレクトリjob1、job2、・・・に保存されている。さらに、ジョブ1、ジョブ2、・・・のそれぞれを中止したときに保存されるジョブのデータおよび状態の複製(チェックポイント)は、チェックポイント保存ディレクトリ(cp)の各ジョブ用ディレクトリjob1、job2、・・・に保存されている。
次に、ジョブスケジューラ131によって用いられるジョブ管理テーブル131a、ユーザ管理テーブル131b、サーバ管理テーブル131c、再開マトリックス131dおよびログファイル131eの構成例については、図4〜図8を用いて詳細に説明する。
ジョブ管理テーブル131aは、図4に示すように、ジョブスケジューラ131がジョブを制御するために利用される。
ジョブ管理テーブル131aは、ジョブ毎に1つの行が作成されており、ジョブを一意に識別するためのジョブID、ジョブを投入したユーザを一意に識別するためのユーザID、ジョブが実行待ち/実行中/中止・実行待ち/中止・実行中のいずれであるかを示すジョブの状態(状態)、クライアント11からジョブが投入された時刻(投入時刻)、サーバ12によってジョブの実行が開始された時刻(開始時刻)、ジョブが実行されたサーバ12の名前(サーバ名)、ジョブを実行する前に複製されたデータが退避されたディレクトリ名(データ退避ディレクトリ名)、ジョブを中止時点から再開させるために作成されたジョブのデータおよび状態の複製が保存されたディレクトリ名(チェックポイント保存ディレクトリ名)、データおよび状態の複製が作成されたチェックポイントにおけるジョブの進捗状況(チェックポイントの進捗)、チェックポイントが作成されたサーバ12のタイプ(チェックポイントのサーバタイプ)が記録されている。
ジョブの進捗状況は、ジョブによるCPU使用時間と、当該ジョブが実行されているサーバ12の性能を乗じた値によって求められる。サーバ12の性能は、予め、単位時間当たりの処理量が計測され、あるサーバ12を基準とした相対値によって表されている。サーバ12の性能およびサーバタイプは、後述するサーバ管理テーブル131cに記録されている。
ジョブキューは、このジョブ管理テーブル131aによって制御される。ユーザから投入されたジョブは、ジョブ管理テーブル131aの最終行として各項目の情報が追加される。したがって、ジョブキューの待ち順番は、ジョブ管理テーブル131aの先頭行からの順となる。ただし、ジョブの状態が「実行中」または「中止・実行中」であるものは、実行待ちの順番に含まれない。
図4の例では、1行目に、ユーザ(user2)によって2005年8月30日10時25分20秒に投入されたジョブ(job1)が2005年8月30日10時25分25秒にサーバ12(server1)によって開始され、現在実行中であることが示されている。また、図4の2行目には、ユーザ(user1)によって2005年8月30日10時35分55秒に投入されたジョブ(job2)が2005年8月30日10時36分12秒にサーバ12(server2)によって開始され、現在実行中であることが示されている。さらに、図4の3行目には、ユーザ(user1)によって2005年8月30日10時35分59秒に投入されたジョブ(Job3)が2005年8月30日10時36分13秒にサーバ12(server3)によって開始され、現在、中止・実行待ちであることが示されている。さらに、図4の4行目には、ユーザ(user3)によって2005年8月30日11時28分14秒に投入されたジョブ(Job4)が2005年8月30日11時28分20秒にサーバ12(server3)によって開始され、現在実行中であることが示されている。これらの各ジョブ(Job1〜4)のうち、1番目、2番目および4番目に投入されたジョブ(Job1、Job2およびJob4)は、現在実行中のものであるため、実行待ちの順番に含まれない。
一方、図4の3行目には、ユーザ(user1)によって2005年8月30日10時35分59秒に投入されたジョブ(Job3)が2005年8月30日10時36分13秒に、空いていたサーバ12(server3)によって開始されたが、このジョブ(Job3)はユーザ(user3)のジョブ(Job4)が投入されたことによって中止され、実行待ち状態であることが示されている。また、ジョブ(Job3)を実行する前に複製されたデータが外部記憶装置15の記憶部151におけるディレクトリ(/taihi/job2)に退避され、ジョブ(Job3)を中止時点から再開させるために作成されたジョブのデータおよび状態の複製(チェックポイント)が外部記憶装置15の記憶部151におけるディレクトリ(/cp/job2)に保存されていることが示されている。さらに、チェックポイントにおけるジョブの進捗状況が3180、チェックポイントが作成されたサーバ12のタイプが「3」であることが示されている。
次に、ユーザ管理テーブル131bは、図5に示すように、ジョブを投入したユーザを一意に識別するためのユーザIDとユーザジョブリミットとの対応が記録されている。このユーザ管理テーブル131bは、ジョブスケジューラ131が各ユーザのユーザジョブリミットを調べるために利用される。
ここで、ユーザジョブリミットとは、各ユーザに割り当てられるサーバ12の数の制限に相当し、本発明のジョブキューシステム10において、他のユーザのジョブに割り込まれないで同時に実行可能なジョブの数となっている。
図5の例では、1行目と2行目のユーザ(user1とuser2)のユーザジョブリミットの値は「1」であり、3行目のユーザ(user3)のユーザジョブリミットの値は「2」である。
次に、サーバ管理テーブル131cは、図6に示すように、各サーバ12の性能、タイプ、サーバが空き/実行中のいずれかを示すサーバの状態が記録されている。このサーバ管理テーブル131cは、ジョブスケジューラ131が各サーバ12の性能、タイプおよび状態を調べるために利用される。また、サーバ12の状態はジョブスケジューラ131によって更新される。
サーバ12の性能は、予め、単位時間あたりの処理量が計測され、あるサーバ12を基準とした相対値として表されている。
また、サーバ12のタイプは、チェックポイントからのジョブ再開の可否に係わる項目により分類され、例えばオペレーティングシステム(OS)の違いなどが挙げられる。OSが異なると、プログラムを実行するための表現が異なるため、相互に同一プログラムを実行することができない場合が多い。この場合、チェックポイントが作成されたOSと異なるOSでは、チェックポイントからジョブを再開させることができない。ただし、OS間で互換性を保つものもあり、この場合にはチェックポイントが作成されたOSと異なるOSでも、チェックポイントからジョブを再開させることができる。本実施形態では、サーバ12のタイプをOSで分類しており、ここでは、タイプ1をOS1、2をOS2、3をOS3、4をOS4としている。
図6の例では、1行目に示すサーバserver_1の性能が1.0でタイプが2、状態がジョブを実行中であることが示されている。また、図6の2行目には、サーバserver_2の性能が1.4でタイプが3、状態がジョブを実行中であることが示されている。さらに、図6の3行目には、サーバserver_3の性能が0.8でタイプが1、状態がジョブを実行していない空き状態であることが示されている
次に、再開マトリックス131dは、図7に示すように、各タイプのサーバ12上で作成されたチェックポイントが、どのタイプのサーバ12によってジョブを再開可能であるかが予め調べられて表にされている。この表の各行にはジョブ中止元のサーバタイプが示され、各列にはジョブ再開先のサーバタイプが示されている。
図7の例では、1行目に、チェックポイントが作成されたジョブ中止元のサーバ12がサーバタイプ「1」のOS1である場合、当該チェックポイントからジョブを再開可能であるものは、タイプ「1」のOS1であるサーバ12であり、タイプ「2」のOS2や、タイプ「3」のOS3、タイプ「4」のOS4であるサーバ12では、当該チェックポイントからジョブを再開させることができないことが示されている。また、図7の2行目には、チェックポイントが作成されたジョブ中止元のサーバ12がサーバタイプ「2」のOS2である場合、当該チェックポイントからジョブを再開可能であるものは、タイプ「2」のOS2や、タイプ「3」のOS3、タイプ「4」のOS4であるサーバ12であり、タイプ「1」のOS1では、当該チェックポイントからジョブを再開させることができないことが示されている。さらに、図7の3行目には、チェックポイントが作成されたジョブ中止元のサーバ12がサーバタイプ「3」のOS3である場合、当該チェックポイントからジョブを再開可能であるものは、タイプ「3」のOS3やタイプ「4」のOS4であるサーバ12であり、タイプ「1」のOS1やタイプ「2」のOS2では、当該チェックポイントからジョブを再開させることができないことが示されている。さらに、図7の4行目には、チェックポイントが作成されたジョブ中止元のサーバ12がサーバタイプ「4」のOS4である場合、当該チェックポイントからジョブを再開可能であるものは、タイプ「3」のOS3やタイプ「4」のOS4であるサーバ12であり、タイプ「1」のOS1やタイプ「2」のOS2では、当該チェックポイントからジョブを再開させることができないことが示されている。
図8に示すように、ログファイル131eは、実行が終了されたジョブを一意に識別するためのジョブID、ジョブを投入したユーザを一意に識別するためのユーザID、クライアント11からジョブが投入された時刻(投入時刻)、サーバ12によってジョブの実行が終了された時刻(終了時刻)、およびジョブが実行されたサーバ12の名前(サーバ名)が記録されている。このログファイル131eは、ジョブスケジューラ131によって更新される。
図8の例では、1行目に、ユーザ(user2)によって2005年8月30日10時25分20秒に投入されたジョブ(job1)がサーバ12(server1)によって実行され、2005年8月30日10時25分25秒に終了されていることが示されている。また、図8の2行目には、ユーザ(user1)によって2005年8月30日10時35分55秒に投入されたジョブ(job2)がサーバ12(server2)によって実行され、まだ終了されていないことが示されている。さらに、図8の3行目には、ユーザ(user3)によって2005年8月30日11時28分14秒に投入されたジョブ(job3)がサーバ12(server2)によって実行され、2005年8月30日11時28分20秒に終了されていることが示されている。
以下に、本実施形態のジョブキューシステム10を用いたジョブ管理方法について説明する。
本実施形態のジョブ管理方法では、複数のユーザによって複数の計算機が共用されて、ジョブの投入順に計算機が割り当てられ、各ユーザに割り当てられる計算機の数に制限がユーザジョブリミットとして設けられており、空きの計算機がある場合に、ユーザジョブリミットを越えてジョブを実行させ、他のユーザのジョブが投入されたときに、ジョブの実行を中止させてデータおよび状態の複製(チェックポイント)を作成し、この中止したジョブをジョブキューの先頭位置に戻して次に待機させる。
ジョブを中止させる場合には、後から開始されたジョブから中止させるか、または、処理済みの計算量が最小であるジョブから中止させる。
さらに、ジョブの実行前にデータの複製を作成し、中止されたジョブの実行を再開させるときに、チェックポイントからの再開可否を判断し、可能であればチェックポイントからジョブを再開させ、可能でない場合にはジョブ実行前のデータの複製を用いて最初からジョブを再開させる。
さらに、一旦中止されたジョブを最初から再開させているときに、チェックポイントからジョブを再開させることが可能な他の計算機が空いた場合に、現在のジョブの進捗状況とチェックポイントでのジョブの進捗状況とを比較して、現在のジョブの進捗状況がチェックポイントでのジョブの進捗状況に及んでいない場合に、ジョブを中止させて、他の計算機によりチェックポイントからジョブを再開させる。
ここで、本実施形態のジョブキューシステム10を用いたジョブ管理方法について、次の(1)〜(8)により具体的に説明する。
ジョブの投入
まず、ジョブ投入時におけるジョブキューシステム10の動作について説明する。
図9は、図2のジョブキューシステム10のジョブ投入時の動作を示すフローチャートである。
図9に示すように、ジョブスケジューラ131によりステップS10でジョブ投入の有無が検出される。ジョブが投入された場合(YES)、ステップS11でこの投入されたジョブをジョブキューの最後尾に登録する。
この場合、図2のジョブキューシステム10において、ユーザがクライアント11上でジョブ投入コマンド111を実行することにより、クライアント11からジョブキューイングサーバ13にジョブが投入される。このジョブキューイングサーバ13に投入されたジョブは、ジョブキューイングサーバ13上のジョブスケジューラ131に引き渡され、ジョブキューの最後尾に並べられる。
さらに、ステップS12でジョブ管理テーブル131aに対して、この投入されたジョブの情報が記録される。
即ち、ジョブ管理テーブル131aには、図4に示すように、ジョブスケジューラ131によって、ジョブを一意に識別するためのジョブID、ジョブを投入したユーザのユーザID、ジョブの投入時刻、ジョブの状態が記録される。ジョブの状態は、「実行待ち」とされる。
(2)ジョブの実行開始
次に、ジョブの実行開始時におけるジョブキューシステム10の動作について説明する。
図9のステップS11でジョブキューの最後尾に、投入された新しいジョブが登録されると、ジョブスケジューラ131によって、ステップS20で、図6のサーバ管理テーブル131cが参照され、状態が「空き」のサーバ12が検索される。「空き」状態のサーバ12があれば、そのうち、図6のサーバ管理テーブル131cに記された「性能」の値が最大であるものが、ジョブの実行サーバ12として選択される。
ステップS21で「空き」状態のサーバ12が選択されたかどうかが判定される。「空き」状態のサーバ12が選択された場合(YES)には、ジョブスケジューラ131によって、ステップS22で、キューの最後尾に登録されたジョブが、選択された実行サーバ12に引き渡される。この引き渡されたジョブは、選択された実行サーバ12上でジョブの実行が開始される。
このジョブスケジューラ131では、ステップS23で、ジョブ管理テーブル131aおよびサーバ管理テーブル131cにジョブ情報を記録すると共に、図3に示す外部記憶装置15の記憶部151にジョブ実行前のデータを複製として保存する。
即ち、このジョブをサーバ12に引き渡して実行するときに、図3に示す外部記憶装置15の記憶部151のディレクトリ構造において、ジョブが起動されたディレクトリ以下にあるジョブ実行ディレクトリのデータが、データ退避ディレクトリに複製されて保存される(ジョブの実行前にデータを複製する)。また、図4のジョブ管理テーブル131aには、ジョブスケジューラ131によって、ジョブの実行開始時刻、ジョブが実行されるサーバ12の名前、データが退避されたディレクトリの名前が記録され、ジョブが実行されるサーバ12の状態が「実行中」に更新される。さらに、図6のサーバ管理テーブル131cは、ジョブスケジューラ131によって、ジョブが実行されるサーバ12の状態が「実行中」に更新される。
(3)ユーザジョブリミットによるジョブの中止と飛び越し
ユーザジョブリミットによるジョブの中止と飛び越し動作について説明する。
図10は、図2のジョブキューシステム10のユーザジョブリミットによるジョブの中止と飛び越し動作を示すフローチャートである。
図10に示すように、上記(2)の検索によって「空き」状態のサーバ12がない場合ステップS21;NO)、ジョブスケジューラ131によって、ステップS30で、図4のジョブ管理テーブル131aからユーザ毎に、状態が「実行中」のジョブがいくつあるかが集計される。
この集計結果は、ステップS31で、図5のユーザ管理テーブル131bから得られたユーザジョブリミットと比較されて、ユーザジョブリミットを越えているユーザがおるかどうかが検索される。ユーザジョブリミットを越えているユーザがない場合(ステップS31;NO)、または、ジョブキュー最後尾のジョブのユーザ自身がユーザジョブリミットを越えている場合(ステップS32;NO)に、ステップS33で、ジョブは、ジョブキューの最後尾に並べられたままで、「実行待ち」の状態とされる。
一方、ユーザジョブリミットを越えているユーザがあり(ステップS31;YES)、かつ、その中にジョブキュー最後尾のジョブのユーザが含まれない場合(ステップS32;YES)には、ステップS34でユーザジョブリミットを越えているユーザに対応するジョブから中止対象ジョブが選択される。
例えば、図5のユーザジョブリミットを越えているユーザのジョブのうち、図4に示す実行開始時刻が最近であるジョブ、即ち、後から開始されたジョブが検索され、中止対象ジョブとされる。または、ユーザジョブリミットを越えているユーザに対して、各ジョブの進捗状況が比較され、進捗が最も進んでいないジョブ、即ち、処理済みの計算量が最小であるジョブが中止対象ジョブとされてもよい。
各ジョブの進捗状況は、CPU使用時間と、当該ジョブが実行されているサーバ12の性能を乗じた値で計算される。サーバ12の性能は、予め、単位時間当たりの処理量が計測され、あるサーバ12を基準とした相対値で表される。このサーバ12の性能は、図6のサーバ管理テーブル131cに登録されている。
このように、ステップS34で中止対象ジョブを選択することにより、後で、ジョブをチェックポイントからではなく初めから再開させた場合に、中止による処理の損失を最小限に抑えることができる。
さらに、このジョブスケジューラ131では、ステップS35およびS36で、ジョブ管理テーブル131aにジョブ情報を更新して中止対照ジョブが先頭に移動すると共に、図3に示す外部記憶装置15の記憶部151に中止対照ジョブのデータを複製(チェックポイント)して保存、または、すでにチェックポイントがあればデータ更新する。
即ち、ステップS35で、図4のジョブ管理テーブル131aには、ジョブスケジューラ131によって、チェックポイントの保存ディレクトリ名、チェックポイントの進捗、チェックポイントが作成されたサーバ12のタイプ、ジョブの状態として「中止・実行待ち」が記録され、中止対象ジョブがジョブキューの先頭に並べられる。このようにして、図4のジョブ管理テーブル131aに記された当該ジョブの行が、テーブルの先頭位置に移動される。
また、ステップS36で、選択された中止対象ジョブのデータおよび状態の複製(チェックポイント)が、ジョブスケジューラ131によって作成されて、外部記憶装置15の記憶部151におけるチェックポイント保存ディレクトリに保存されて、次のステップS37でそのジョブは中止される。
また、ジョブスケジューラ131によって、図4のジョブ管理テーブル131aが調べられて、当該中止対象ジョブに対して既にチェックポイントがある場合には、当該中止対象ジョブの進捗状況と、ジョブ管理テーブル131aに記されたチェックポイントの進捗状況とが比較され、進捗状況がより進んでいる方が新たなチェックポイントとして保存される。ジョブの進捗は、CPU使用時間と、当該ジョブが実行されているサーバ12の性能を乗じた値によって計算される。
その後、ステップS38でジョブ注視した空きサーバ12にそのジョブを引き渡してジョブ実行させる。即ち、ジョブスケジューラ131によって、ジョブキューにおいて実行待ち状態とされている、ユーザジョブリミットを越えたユーザのジョブを飛び越して、キュー最後尾に登録されたジョブが、上記中止対象ジョブの中止処理によって空いたサーバ12に引渡され、そのジョブが実行される。
このとき、ステップS39で、ジョブ管理テーブル131aおよびサーバ管理テーブル131cにジョブ情報を更新すると共に、図3に示す外部記憶装置15の記憶部151にジョブ実行前のデータを複製として保存する。
即ち、ジョブスケジューラ131によって、図3に示す外部記憶装置15の記憶部151のディレクトリ構造において、ジョブが起動されたディレクトリ以下にあるジョブ実行ディレクトリのデータが、データ退避ディレクトリに複製されて保存される。また、図4のジョブ管理テーブル131aには、ジョブスケジューラ131によって、ジョブの実行開始時刻、ジョブが実行されるサーバ12の名前、データが退避されたディレクトリの名前が記録され、サーバ12の状態が「実行中」に更新される。さらに、図6のサーバ管理テーブル131cは、ジョブスケジューラ131によって、ジョブが実行されるサーバ12の状態が「実行中」に更新される。
これにより、ユーザジョブリミットを越えてジョブが実行されていたユーザによる計算機の独占を防いで、本来実行されるべき、ユーザジョブリミットを越えていないユーザのジョブを実行することができる。
(4)再開ジョブのチェックポイント有効利用
再開ジョブのチェックポイントを有効利用することについて説明する。
図11は、図2のジョブキューシステム10において、再開ジョブのチェックポイントを有効利用する動作を示すフローチャートである。
図11に示すように、ステップS40でサーバ12に空きができたとき(YES)に、ステップS41で図4のジョブ管理テーブル131aにおいて状態が「中止・実行中」となっているジョブがあるかどうかを検索する。この場合に、当該ジョブの全てのものに対して、投入時間の最も早いジョブから順に、以下の処理が行われる。
ステップS41で検索された中止・実行中のジョブのうち、ステップS42で投入時間の最も早いジョブが選択される。ステップS43でこの選択されたジョブの再開が可能かどうかが判定される。
即ち、ジョブスケジューラ131によって、図7の再開マトリックス131dが参照され、図4のジョブ管理テーブル131aに記されたチェックポイントが作成されたサーバ12(中止元)のサーバタイプと、空きサーバ12(再開先)のサーバタイプによって、チェックポイントからのジョブの再開可否が調べられる。
ジョブの再開が不可能である場合(ステップS43でNO)には、次のジョブの処理に移る。即ち、ステップS44で投入時間が次に早いジョブを選択して、ステップS43のジョブの再開可能性を判定する。
また、ジョブの再開が可能である場合(ステップS43でYES)には、ステップS45で、現在のジョブの進捗状況と、チェックポイントでのジョブの進捗状況とが比較される。現在のジョブの進捗状況の方が進んでいる場合(ステップS45でYES)には、次のジョブの処理に移る。即ち、ステップS44で投入時間が次に早いジョブを選択して、ステップS43のジョブの再開可能性を判定する。
一方、チェックポイントでのジョブの進捗状況の方が進んでいる場合(ステップS45でNO)には、ステップS46で実行中のジョブが中止処理され、ステップS47で空きサーバ12上でチェックポイントからジョブが再開される。この場合、ステップS48において、ジョブスケジューラ131によって、図4のジョブ管理テーブル131aに記録されたチェックポイント保存ディレクトリ名とジョブがサーバ12に引き渡され、ジョブ管理テーブル131aの開始時刻とサーバ名が更新される。また、ジョブスケジューラ131によって、図6のサーバ管理テーブル131cにおける当該サーバ12の状態が「実行中」に更新される。
また、ステップS48において、チェックポイント保存ディレクトリ名とジョブが引き渡された空きサーバ12では、外部記憶装置15の記憶部151におけるチェックポイント保存ディレクトリからジョブのデータおよび状態が復元され、ジョブの実行が再開される。
当該ジョブが実行されていたサーバ12は、新たに空き状態となる。
さらに、ステップS49で、上記再開ジョブ処理が終了したかどうかが判定され、再開ジョブ処理が終了するまでは、ステップS42〜S49の処理が繰り返される。ステップS49で上記再開ジョブ処理が終了した場合(YES)には、次に説明する図12の処理を行う。
これにより、一旦中止されたジョブについて、チェックポイントからではなく、初めから再開された場合でも、進捗状況に応じてチェックポイントまで処理を進めることが可能となり、ジョブをより短時間で終了することができる。
(5)サーバが空いたとき:ユーザジョブリミットに達していないユーザジョブの実行
サーバが空いたときに、ユーザジョブリミットに達していないユーザのジョブを実行する場合について、ジョブキーシステム10の動作を説明する。
図12は、図2のジョブキューシステム10において、ユーザジョブリミットに達しないユーザジョブを実行する場合の動作を示すフローチャートである。
図12に示すように、ステップS50で、サーバ12に空きができた場合(YES)に、上記(4)「再開ジョブのチェックポイント有効利用」の処理が完了した後(ステップS49でYES)、図4のジョブ管理テーブル131aにおいてサーバ12の状態が「実行待ち」または「中止・実行待ち」となっているジョブに対して、先頭位置から順に、空き状態のサーバ12がなくなるまで、以下の処理が行われる。
即ち、ステップS50でこの時点でサーバ12に空きがあるかどうかが判定されて、サーバ12に空きがある場合(YES)に、ステップS51で実行待ちまたは中止・実行待ちのジョブを検索する。その検索した実行待ちまたは中止・実行待ちのジョブのうち、ステップS52で先頭ジョブを選択する。
さらに、ジョブスケジューラ131によって、ステップS53で当該ジョブのユーザに対して、図4のジョブ管理テーブル131aから、状態が「実行中」のジョブがいくつあるかが集計され、ステップS54で、その集計結果が図5のユーザ管理テーブル131bから得られたユーザジョブリミットと比較されて、当該ジョブのユーザが図5のユーザジョブリミットに達しているか否かが調べられる。
当該ジョブのユーザがユーザジョブリミットに達している場合(ステップS54でYES)には、次のジョブの処理に進む。即ち、ステップS55で処理の順番が次に早いジョブを選択して、ステップS53の集計処理を行う。
一方、当該ジョブのユーザがユーザジョブリミットに達していない場合(ステップS54でNO)、ステップS56でジョブの実行がはじめてであるかどうかが調べられ、ジョブの実行がはじめての場合(YES)に、ステップS57でそのジョブの実行を行う。
即ち、当該ジョブが初めて実行されるものであり(ステップS56でYES)、図4のジョブ管理テーブル131aにおいて当該ジョブの状態が「実行待ち」である場合には、ジョブスケジューラ131によって、ジョブが実行サーバ12に引き渡される。引き渡されたジョブは、ステップS57でサーバ12上で実行が開始される。また、このとき、ステップS58で、ジョブスケジューラ131によって、ジョブがサーバ12に引き渡されるときに、図3に示す外部記憶装置15の記憶部151のディレクトリ構造において、ジョブが起動されたディレクトリ以下にあるジョブ実行ディレクトリのデータが、データ退避ディレクトリに複製されて保存される。さらに、図4のジョブ管理テーブル131aは、ジョブスケジューラ131によって、ジョブの実行開始時刻、ジョブが実行されるサーバ12の名前、データが退避されたディレクトリの名前が記録され、サーバの状態が「実行中」とされる。さらに、図6のサーバ管理テーブル131cでは、ジョブスケジューラ131によって、当該サーバ12の状態が「実行中」に更新される。
ステップS59で、上記ユーザジョブリミットに達しないユーザジョブ実行処理が完了したかどうかが判定される。この完了は、検索ジョブに対する処理が全て終了したかまたは空きサーバがなくなったかで判定される。上記ユーザジョブリミットに達しないユーザジョブ実行処理が完了していない場合(NO)にはステップS50の処理に戻り、上記ユーザジョブリミットに達しないユーザジョブ実行処理が完了した場合(YES)には後述する図13の(6)「ユーザジョブリミットを越えたユーザジョブ実行処理」が実施される。
また、当該ジョブが一度中止されたジョブであり(ステップS56でNO)、図4のジョブ管理テーブル131aにおいて当該ジョブの状態が「中止・実行待ち」である場合には、ジョブスケジューラ131によって、後述する図14の(7)「ジョブの再開処理」が実施される。
(6)サーバが空いたとき:ユーザジョブリミットを越えたユーザジョブの実行
サーバが空いたときに、ユーザジョブリミットを越えたユーザのジョブを実行する場合について、ジョブキーシステム10の動作を説明する。
図13は、図2のジョブキューシステム10において、ユーザジョブリミットに達したユーザジョブを実行する場合の動作を示すフローチャートである。
図13に示すように、上記(5)「サーバが空いた時:ユーザジョブリミットに達していないユーザジョブの実行の処理」が完了された後(ステップS59でYES)で、さらに空き状態のサーバ12がある場合(ステップS60でYES)、図4のジョブ管理テーブル21においてサーバ12の状態が「実行待ち」または「中止・実行待ち」となっているジョブに対して、先頭から順に、空き状態のサーバ12がなくなるまで、以下の処理が行われる。
即ち、ステップS60でこの時点でサーバ12に空きがあるかどうかが判定されて、サーバ12に空きがある場合(YES)に、ステップS61で実行待ちまたは中止・実行待ちのジョブを検索する。その検索した実行待ちまたは中止・実行待ちのジョブのうち、ステップS62で先頭ジョブを選択する。
さらに、ジョブスケジューラ131によって、ステップS63で当該ジョブのユーザに対して、図4のジョブ管理テーブル131aから、状態が「実行中」のジョブがいくつあるかが集計され、ステップS64で、その集計結果が図5のユーザ管理テーブル131bから得られたユーザジョブリミットと比較されて、当該ジョブのユーザが図5のユーザジョブリミットを越えているか否かが調べられる。
当該ジョブのユーザがユーザジョブリミットに達していない場合(ステップS64でNO)には、次のジョブの処理に進む。即ち、ステップS65で処理の順番が次に早いジョブを選択して、ステップS63の集計処理を行う。
一方、当該ジョブのユーザがユーザジョブリミットに達している場合(ステップS64でYES)、ステップS66でジョブの実行がはじめてであるかどうかが調べられ、ジョブの実行がはじめての場合(YES)に、ジョブスケジューラ131によって、ステップS67でそのジョブの実行を行う。
このようにして、当該ジョブが初めて実行されるものであり(ステップS66でYES)、図4のジョブ管理テーブル131aにおいて当該ジョブの状態が「実行待ち」である場合には、ジョブスケジューラ131によって、このジョブが実行サーバ12に引き渡される。 この引き渡されたジョブは、サーバ12上で実行が開始される。
また、ジョブスケジューラ131によって、ジョブがサーバ12に引き渡されるときに、ステップS68において、図3の外部記憶装置15の記憶部151のディレクトリ構造において、ジョブが起動されたディレクトリ以下にあるジョブ実行ディレクトリのデータが、データ退避ディレクトリに複製されて保存される。さらに、図4のジョブ管理テーブル131aは、ジョブスケジューラ131によって、ジョブの実行開始時刻、ジョブが実行されるサーバ12の名前、データが退避されたディレクトリの名前が記録され、サーバの状態が「実行中」とされる。さらに、図6のサーバ管理テーブル131cでは、ジョブスケジューラ131によって、当該サーバ12の状態が「実行中」に更新される。
当該ジョブが一度中止されたジョブであり(ステップS66でNO)、図4のジョブ管理テーブル131aにおいて当該ジョブの状態が「中止・実行待ち」である場合には、ジョブスケジューラ131によって、後述する(7)の「ジョブの再開処理」が実施されることになる。
また、ステップS69で、上記ユーザジョブリミットに達するユーザジョブ実行処理が完了したかどうかが判定される。この完了は、検索ジョブに対する処理が全て終了したかまたは空きサーバがなくなったかで判定される。上記ユーザジョブリミットに達するユーザジョブ実行処理が完了していない場合(NO)にはステップS60の処理に戻り、上記ユーザジョブリミットに達するユーザジョブ実行処理が完了した場合(YES)には後述する(7)「ジョブの再開処理」が実施されることになる。
これにより、従来技術ではユーザジョブリミットのために無駄に空いていた計算機をなくして、計算機資源を有効活用することによって、単一ユーザにより連続投入されたジョブをより短時間で終了することができる。
(7)ジョブの再開
ジョブ再開時におけるジョブキューシステム10の動作について説明する。
図14は、図2のジョブキューシステム10において、ジョブ再開処理および終了処理を実行する場合の動作を示すフローチャートである。
図4のジョブ管理テーブル131aにおいて、状態が「中止・実行待ち」となっているジョブを再開させる場合(ステップS66でNO)、ジョブスケジューラ131によって、図7の再開マトリックス131dが参照される。図14に示すように、ステップS70で図4のジョブ管理テーブル131aから調べられた中止ジョブのサーバタイプ(中止元)と、図6のサーバ管理テーブル131cから調べられたサーバ12のサーバタイプ(再開先)との組み合わせが互いに適合するように再開マトリックス131dに基づいて、チェックポイントの再開可否が調べられる。
チェックポイントからのジョブ再開が可能である場合(ステップS70でYES)には、ジョブスケジューラ131によって、ステップS71で図4のジョブ管理テーブル131aに記録されたチェックポイント保存ディレクトリ名とジョブがサーバ12に引き渡される。また、ジョブスケジューラ131によって、ステップS72で図4のジョブ管理テーブル131aにおける開始時刻とサーバ名が更新されて、状態が「中止・実行中」に更新される。さらに、ジョブスケジューラ131によって、図6のサーバ管理テーブル131cにおける当該サーバ12の状態が「実行中」に更新される。ステップS73で、チェックポイント保存ディレクトリ名とジョブを引き渡された再開先のサーバ12では、外部記憶装置15の記憶部151におけるチェックポイント保存ディレクトリからジョブのデータおよび状態が復元され、ジョブの実行が再開される。
一方、チェックポイントからのジョブ再開が不可能である場合(ステップS70でNO)には、ジョブスケジューラ131によって、図4のジョブ管理テーブル131aに記録された開始データ退避ディレクトリより、ステップS74で実行開始前のデータが外部記憶装置15の記憶部151における実行ディレクトリにコピー、復元され、ジョブがサーバ12に引き渡される。これによって、ステップS75で、再開先のサーバ12では、ジョブが最初から再開される。また、ステップS72で、ジョブスケジューラ131によって、図4のジョブ管理テーブル131aにおける開始時刻とサーバ名が更新され、状態が「中止・実行中」に更新される。さらに、ジョブスケジューラ131によって、図6のサーバ管理テーブル131cにおける当該サーバ12の状態が「実行中」に更新される。
これにより、チェックポイントが作成された計算機と、チェックポイントからジョブを再開しようとする計算機とで、オペレーティングシステム(OS)が異なることなどが原因で、ジョブをチェックポイントから再開させることができない場合でも、空き状態の計算機によってジョブを最初から実行することが可能となり、計算機を有効に活用することができる。
(8)ジョブの終了
ジョブ終了時におけるジョブキューシステム10の動作について説明する。
図14に示すように、ステップS73およびS75で、サーバ12上でジョブの再開実行が終了すると、ジョブ実行制御プログラム121によって、ジョブの終了がジョブスケジューラ131に通知される。このジョブ終了の通知の有無により、ステップS80で、サーバ12上でジョブが終了したか否かが判定される。
ジョブが終了した場合(ステップS80でYES)、ステップS81で、このジョブスケジューラ131によって、当該ジョブに関する情報が図4のジョブ管理テーブル131aより削除される。また、ジョブスケジューラ131によって、図8のログファイル131eに対して、当該ジョブに関する情報(ジョブID、ユーザID、投入時刻、終了時刻、実行サーバ12の名前)が記録される。さらに、図6のサーバ管理テーブル131cにおけるサーバの状態が「空き」に更新される。さらに、ジョブの開始時に作成されたデータの保存ディレクトリと、ジョブが中止された場合に作成されるチェックポイントのデータが保存されたディレクトリがあれば、外部記憶装置15の記憶部151から削除される。
以上により、本実施形態によれば、複数のユーザによって複数の計算機が共用されて、ジョブの投入順に計算機が割り当てられ、各ユーザに割り当てられる計算機の数に制限(ユーザジョブリミット)が設けられたジョブキューシステム10において、空き状態の計算機がある場合に、ユーザジョブリミットを越えてジョブを実行させ、他のユーザのジョブが投入されたときに、当該ジョブの実行を中止させてデータおよび状態の複製を作成し、ジョブキューの先頭位置に戻すことによって、単一ユーザによる計算機の独占を防ぐと共に、計算機の無駄な空き状態を防ぐことができる。また、データおよび状態の複製を作成した時点(チェックポイント)からジョブを再開させることができる。
また、ジョブの実行前にデータの複製を作成することによって、中止されたジョブについて、チェックポイントから再開させることができない場合でも、ジョブを最初から再開させることができる。
さらに、中止されたジョブの実行を再開させるときに、チェックポイントからの再開可否を判断して、可能であればチェックポイントからジョブを再開させ、可能でない場合には最初からジョブを再開させることによって、チェックポイントが作成された計算機と、チェックポイントからジョブを再開させようとする計算機のオペレーティングシステム(以下、OSと記す)が異なるなどの原因によって、ジョブをチェックポイントから再開させることができない場合でも、空いている計算機を有効に活用することができる。
さらに、一旦中止されたジョブを最初から再開させているときに、チェックポイントからジョブを再開させることが可能な他の計算機が空いた場合に、現在のジョブの進捗状況とチェックポイントでのジョブの進捗状況とを比較して、現在のジョブの進捗状況がチェックポイントでのジョブの進捗状況に及んでいない場合には、ジョブを中止させて他の計算機によりチェックポイントからジョブを再開させることによって、中止されたジョブについて、ジョブを最初から再開させた場合でも、進捗状況が進んでいる場合にはチェックポイントまで処理を進めることができ、ジョブをより短時間で終了させることができる。
さらに、ジョブを中止させる場合には、後から開始されたジョブから中止させるか、または、処理済みの計算量が最小であるジョブから中止させることによって、ジョブを最初から再開させた場合に生じる、ジョブ中止による処理の損失を最小限に抑えることができる。
したがって、本実施形態によれば、空きの計算機がある場合に、ユーザユーザジョブリミットを越えてその計算機にジョブを実行させ、他のユーザからジョブが投入されたときには、そのジョブの実行を中止させてデータおよび状態の複製を作成し、そのジョブをジョブキューの先頭に戻して次の処理のために待機させるようにしたため、単一のユーザにより計算機を独占させることなく、空き状態の計算機を利用して、連続投入されたジョブを短時間で完了させることができる。
なお、本実施形態では、特に説明しなかったが、本発明のジョブキューシステム10はハードウェアで構成することもできるし、ソフトウェアで構成することもできる。本発明のジョブキューシステム10をソフトウェアで構成する場合には、全体の制御を行うコンピュータ制御手段としてのCPU(中央演算処理装置)と、このジョブ管理方法の各処理ステップをコンピュータ(CPU)に実行させるための制御プログラムおよびそのデータが記録されたコンピュータ(CPU)読み出し可能な可読記録媒体(記憶手段)としてのROMと、このROMから本発明の制御プログラムやゲームプログラムが読み出され、ワークメモリとして働く記憶手段としてのRAMとを有している。本発明では、これらのCPUおよびRAMはジョブスケジューラ131内に設けられていてもよい。
この制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体としては、ハードディスク、光ディスク、磁気ディスクおよびICメモリなどで構成することができる。これは、携帯自在な光ディスク、磁気ディスクおよびICメモリなどであってもよい。また、この携帯自在な光ディスク、磁気ディスクおよびICメモリなどから本発明のジョブキューシステム10内のハードディスク、光ディスク、磁気ディスクおよびICメモリなどの記憶手段に制御プログラムがインストールされるように構成してもよいし、インターネットやイントラネット(サーバ装置)を介して、本発明のジョブキューシステム10内のハードディスク、光ディスク、磁気ディスクおよびICメモリなどの記憶手段に制御プログラムがインストールされるように構成してもよい。
例えばジョブキューシステム10の場合、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図14および図15に示すように、中止ジョブのサーバタイプと再開先のサーバタイプとが適合するようにチェックポイントからのジョブの再開可否を判定するジョブ再開判定手段13kと、このジョブ再開判定手段13kによる判定結果がジョブ再開可能な場合に再開先のサーバ計算機にチェックポイントからのジョブ再開を指示し、この判定結果がジョブ再開不可能な場合に再開先のサーバ計算機に最初からのジョブ再開を指示するジョブ再開指示手段13lとの各処理機能を実行する。
また、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図9および図15に示すように、投入されたジョブを第1記憶部のジョブキューの最後尾に登録するジョブ登録手段13aと、登録されたジョブに対する「空き」状態のサーバ計算機を選択するサーバ選択手段13bと、選択されたサーバ計算機に、登録されたジョブの実行を指示するジョブ実行指示手段13cとの各処理機能を実行する。
さらに、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図9および図15に示すように、ジョブ登録手段13aによるジョブ登録時に第1記憶部のジョブ管理テーブルに登録ジョブの管理情報を記録させるジョブ情報記録手段13dの処理機能を実行する。
さらに、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図10および図15に示すように、サーバ計算機に「空き」状態のものがない場合に、ユーザ毎に、「実行中」のジョブがいくつあるかを集計した集計結果がユーザジョブリミットを越えているユーザを検索するユーザジョブリミット超過ユーザ選択手段13eと、このユーザジョブリミットを越えているユーザがあり、かつ当該ユーザの中に、ジョブキューの最後尾のジョブに対応した他のユーザがいない場合に、ユーザジョブリミットを越えているユーザに対応するジョブから中止対象ジョブを選択する中止対象ジョブ選択手段13fと、選択された中止対象ジョブの実行を中止指示するジョブ中止指示手段13gと、ジョブ中止指示した「空き」状態のサーバ計算機に、ジョブキューの最後尾のジョブの実行を指示するジョブ実行指示手段13cとの各処理機能を実行する。
さらに、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図10および図15に示すように、中止対象ジョブを選択時に、ジョブ管理テーブル上の該中止対象ジョブの管理情報を更新して該中止対象ジョブをジョブキューの先頭位置に移動させると共に、中止対象ジョブのその時点でのジョブ情報をチェックポイントとして複製して情報保存するジョブ情報記録手段13dの処理機能を実行する。
さらに、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図11および図15に示すように、サーバ計算機に空きができたときに、中止・実行中のジョブを検索するジョブ検索手段13hと、検索された中止・実行中のジョブのうち、投入時間の最も早いジョブを選択するジョブ選択手段13iと、選択されたジョブの再開が可能かどうかを判定するジョブ再開判定手段13kと、ジョブの再開が不可能な場合、または、ジョブの再開が可能な場合でかつ、現在のジョブの進捗状況が、該中止・実行中のジョブよりも進んでいる場合に、投入時間が次に早いジョブを選択して、ジョブ再開判定手段13kを動作させるジョブ再開判定起動手段13jと、中止・実行中のジョブの進捗状況が、現在のジョブよりも進んでいる場合に、実行中のジョブを中止するジョブ中止指示手段13gと、空きサーバ計算機上でチェックポイントからジョブを再開するように実行指示するジョブ再開指示手段13lとの各処理機能を実行する。
さらに、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図12および図15に示すように、サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索するジョブ検索手段13hと、検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択手段13nと、選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計手段13pと、このジョブ集計手段13pによる集計結果がユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定手段13mと、当該ジョブのユーザがユーザジョブリミットを越えている場合に、次のジョブの集計処理に進むジョブ集計起動手段13qと、当該ジョブのユーザがユーザジョブリミットを越えていない場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示するジョブ実行指示手段13cとの各処理機能を実行する。
さらに、CPU(制御部)としてのジョブ制御手段(ジョブスケジューラ131)は、制御プログラムに基づいて、図13および図15に示すように、サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索するジョブ検索手段13hと、検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択手段13nと、選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計手段13pと、このジョブ集計手段13pによる集計結果がユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定手段13mと、当該ジョブのユーザがユーザジョブリミットを越えていない場合に、次のジョブの集計処理に進む第2ジョブ集計起動手段13qと、当該ジョブのユーザがユーザジョブリミットを越えている場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示するジョブ実行指示手段13cとの各処理機能を実行する。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
本発明は、例えばシミュレーションの計算処理などの各種ジョブに使用される資源がネットワークを介して複数の計算機に分散して配置されるシステムに対してジョブキューの管理および実行を制御するジョブキューシステムおよびこれを用いたジョブ管理方法、このジョブ管理方法の各ステップをコンピュータに実行させるための制御プログラム、この制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体の分野において、空きの計算機がある場合に、ユーザユーザジョブリミットを越えてその計算機にジョブを実行させ、他のユーザからジョブが投入されたときには、そのジョブの実行を中止させてデータおよび状態の複製を作成し、そのジョブをジョブキューの先頭に戻して次の処理のために待機させるようにしたため、単一のユーザにより計算機を独占させることなく、空き状態の計算機をも利用して、連続投入されたジョブをより短時間で完了させることができる。
本発明が適用される計算機システムの構成例を説明するためのシステム構成図である。 本発明の実施形態に係るジョブキューシステムの構成例を示すブロック図である。 図2の外部記憶装置の記憶部に保存された上記各データのディレクトリ構成例を示す図である。 図2のジョブ管理テーブルの一例を示す図である。 図2のユーザ管理テーブルの一例を示す図である。 図2のサーバ管理テーブルの一例を示す図である。 図2の再開マトリックスの一例を示す図である。 図2のログファイルの一例を示す図である。 図2のジョブキューシステムのジョブ投入時の動作を示すフローチャートである。 図2のジョブキューシステムのユーザジョブリミットによるジョブの中止と飛び越し動作を示すフローチャートである。 図2のジョブキューシステムにおいて、再開ジョブのチェックポイントを有効利用する動作を示すフローチャートである。 図2のジョブキューシステムにおいて、ユーザジョブリミットに達しないユーザジョブを実行する場合の動作を示すフローチャートである。 図2のジョブキューシステムにおいて、ユーザジョブリミットに達したユーザジョブを実行する場合の動作を示すフローチャートである。 図2のジョブキューシステムにおいて、ジョブ再開処理および終了処理を実行する場合の動作を示すフローチャートである。 図2のジョブスケジューラをソフトウェア構成にした場合の機能構成図である。 従来のジョブキューシステムの動作例を説明するための図である。 図16のジョブキューシステムの更なる動作例を説明するための図である。
符号の説明
11 クライアント
111 ジョブ投入コマンド
112、122、132 オペレーティングシステム
12 サーバ
121 ジョブ実行制御プログラム
13 ジョブキューイングサーバ
131 ジョブスケジューラ
131a ジョブ管理テーブル
131b ユーザ管理テーブル
131c サーバ管理テーブル
131d 再開マトリックス
131e ログファイル
14 ネットワーク
15 外部記憶装置
151 記憶部
13a ジョブ登録手段
13b サーバ選択手段
13c ジョブ実行指示手段
13d ジョブ情報記録手段
13e ユーザジョブリミット超過ユーザ選択手段
13f 中止対象ジョブ選択手段
13g ジョブ中止指示手段
13h ジョブ検索手段
13i ジョブ選択手段
13j ジョブ再開判定起動手段
13k ジョブ再開判定手段
13l ジョブ再開指示手段
13m ユーザジョブリミット超過判定手段
13n 先頭ジョブ選択手段
13p ジョブ集計手段
13q ジョブ集計起動手段

Claims (46)

  1. 複数のユーザから投入されたジョブを実行可能とする複数のサーバ計算機が、該ジョブの投入順に該サーバ計算機を割り当てて、各ユーザに割り当てられるサーバ計算機の数に制限がユーザジョブリミットとして加えられた状態で、ジョブキューの管理および実行を制御するジョブキューイングサーバ計算機に電気的に接続されたジョブキューシステムにおいて、
    該ジョブキューイングサーバ計算機は、空きのサーバ計算機がある場合に、該ユーザジョブリミットを越えて該空きのサーバ計算機にジョブを実行させ、他のユーザからジョブが投入されたときに、該空きのサーバ計算機がない場合に、該ユーザジョブリミットを越えて実行中のジョブの中からジョブの実行を中止させ、該中止させたサーバ計算機に該他のユーザから投入されたジョブを実行制御するジョブ制御手段を有するジョブキューシステム。
  2. 前記ジョブ制御手段は、前記中止させた時点のジョブ情報の複製を作成し、該中止させたジョブの実行を再開させるときに、該ジョブ情報の複製を作成した実行途中のチェックポイントから該ジョブ情報の複製を用いて該ジョブの実行を再開させるように制御する請求項1に記載のジョブキューシステム。
  3. 前記ジョブ制御手段は、前記ジョブの実行前に前記ジョブ情報の複製を作成し、前記中止させたジョブの実行を再開させるときに、該ジョブの実行前のジョブ情報の複製を用いて該ジョブの実行を最初から再開させるように制御する請求項1に記載のジョブキューシステム。
  4. 前記ジョブ制御手段は、前記中止させたジョブの実行を再開させるときに、前記ジョブ情報の複製を作成した実行途中のチェックポイントからのジョブの再開可否を判断し、該再開が可能である場合には該ジョブ情報の複製を用いて該チェックポイントからのジョブの実行を再開させ、該再開が可能でない場合にはジョブ実行前のジョブ情報の複製を用いて最初からジョブの実行を再開させるように制御する請求項1に記載のジョブキューシステム。
  5. 前記ジョブ制御手段は、前記中止させたジョブを最初から再開させているかまたは再開させようとするときに、前記チェックポイントからジョブを再開させることが可能な他のサーバ計算機が空いた場合に、現在実行中のジョブの進捗状況と該チェックポイントでのジョブの進捗状況とを比較して、該現在実行中のジョブの進捗状況が該チェックポイントでのジョブの進捗状況よりも進んでいない場合に、該現在実行中のジョブを中止させて該他のサーバ計算機により該チェックポイントからのジョブの実行を再開させるように制御する請求項2または4に記載のジョブキューシステム。
  6. 前記現在実行中のジョブの進捗状況が前記チェックポイントでのジョブの進捗状況よりも進んでいない場合に、後から開始された実行中のジョブから中止させるか、処理済みの計算量が最小であるジョブから中止させるかまたは、該処理が残った計算量が最大であるジョブから中止させる請求項5に記載のジョブキューシステム。
  7. 前記ジョブ制御手段は、中止ジョブのサーバタイプと再開先のサーバタイプとが適合するように前記チェックポイントからのジョブの再開可否を判定する第1ジョブ再開判定手段と、該第1ジョブ再開判定手段による判定結果がジョブ再開可能な場合に該再開先のサーバ計算機に該チェックポイントからのジョブ再開を指示し、該判定結果がジョブ再開不可能な場合に該再開先のサーバ計算機に最初からのジョブ再開を指示する第1ジョブ再開指示手段とを有する請求項1または4に記載のジョブキューシステム。
  8. 前記サーバタイプの適合判断はオペレーティングシステムが異なるか否かによって判断される請求項7に記載のジョブキューシステム。
  9. 前記ジョブ制御手段は、投入されたジョブを第1記憶部のジョブキューの最後尾に登録するジョブ登録手段と、登録されたジョブに対する「空き」状態のサーバ計算機を選択するサーバ選択手段と、選択されたサーバ計算機に、登録されたジョブの実行を指示する第1ジョブ実行指示手段とを有する請求項1に記載のジョブキューシステム。
  10. 前記ジョブ登録手段によるジョブ登録時に前記第1記憶部のジョブ管理テーブルに登録ジョブの管理情報を記録させる第1ジョブ情報記録手段をされに有する請求項9に記載のジョブキューシステム。
  11. 前記第1ジョブ情報記録手段は、ジョブ実行指示時に、前記第1記憶部のジョブ管理テーブルおよびサーバ管理テーブルの管理情報を更新すると共に、ジョブ実行前またはジョブ実行途中のジョブ情報を第2記憶部に保存させる請求項10に記載のジョブキューシステム。
  12. 前記ジョブ制御手段は、前記サーバ計算機に「空き」状態のものがない場合に、ユーザ毎に、「実行中」のジョブがいくつあるかを集計した集計結果がユーザジョブリミットを越えているユーザを検索するユーザジョブリミット超過ユーザ選択手段と、該ユーザジョブリミットを越えているユーザがあり、かつ当該ユーザの中に、前記ジョブキューの最後尾のジョブに対応した他のユーザがいない場合に、該ユーザジョブリミットを越えているユーザに対応するジョブから中止対象ジョブを選択する中止対象ジョブ選択手段と、選択された中止対象ジョブの実行を中止指示する第1ジョブ中止指示手段と、ジョブ中止指示した「空き」状態のサーバ計算機に、該ジョブキューの最後尾のジョブの実行を指示する第2ジョブ実行指示手段とを有する請求項1または9に記載のジョブキューシステム。
  13. 前記ジョブ制御手段は、前記中止対象ジョブを選択時に、ジョブ管理テーブル上の該中止対象ジョブの管理情報を更新して該中止対象ジョブを前記ジョブキューの先頭位置に移動させると共に、該中止対象ジョブのその時点でのジョブ情報をチェックポイントとして複製して情報保存する第2ジョブ情報記録手段をさらに有する請求項12に記載のジョブキューシステム。
  14. 前記第2ジョブ情報記録手段は、前記ユーザジョブリミットを越えているユーザがない場合、または、当該ユーザの中に前記ジョブキューの最後尾のジョブに対応するユーザがある場合に、前記ジョブ管理テーブル上の該ジョブキューの最後尾のジョブを「実行待ち」の状態として情報保持する請求項13に記載のジョブキューシステム。
  15. 前記第2ジョブ情報記録手段は、前記ジョブ実行指示時に、前記ジョブ管理テーブルおよびサーバ管理テーブルの管理情報を更新すると共に、前記第2ジョブ実行指示手段によるジョブ実行前のジョブ情報を情報保存する請求項13に記載のジョブキューシステム。
  16. 前記ジョブ制御手段は、サーバ計算機に空きができたときに、中止・実行中のジョブを検索する第1ジョブ検索手段と、検索された中止・実行中のジョブのうち、投入時間の最も早いジョブを選択するジョブ選択手段と、選択されたジョブの再開が可能かどうかを判定する第2ジョブ再開判定手段と、ジョブの再開が不可能な場合、または、ジョブの再開が可能な場合でかつ、現在のジョブの進捗状況が、該中止・実行中のジョブよりも進んでいる場合に、投入時間が次に早いジョブを選択して、該第2ジョブ再開判定手段を動作させるジョブ再開判定起動手段と、該中止・実行中のジョブの進捗状況が、該現在のジョブよりも進んでいる場合に、実行中のジョブを中止する第2ジョブ中止指示手段と、該空きサーバ計算機上で前記チェックポイントからジョブを再開するように実行指示する第2ジョブ再開指示手段とを有する請求項1、5および9のいずれかに記載のジョブキューシステム。
  17. 前記ジョブ制御手段は、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索手段と、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択手段と、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計手段と、該ジョブ集計手段による集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定手段と、当該ジョブのユーザがユーザジョブリミットを越えている場合に、次のジョブの集計処理に進む第1ジョブ集計起動手段と、当該ジョブのユーザがユーザジョブリミットを越えていない場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第3ジョブ実行指示手段とを有する請求項1または9に記載のジョブキューシステム。
  18. 前記ジョブ制御手段は、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索手段と、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択手段と、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計手段と、該ジョブ集計手段による集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定手段と、当該ジョブのユーザがユーザジョブリミットを越えていない場合に、次のジョブの集計処理に進む第2ジョブ集計起動手段と、当該ジョブのユーザがユーザジョブリミットを越えている場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第4ジョブ実行指示手段とを有する請求項1または9に記載のジョブキューシステム。
  19. 複数のユーザによってジョブが投入される一または複数のクライアント計算機が設けられ、該クライアント計算機と前記サーバ計算機との間に前記ジョブキューイングサーバ計算機が設けられた請求項1に記載のジョブキューシステム。
  20. 前記複数のサーバ計算機と、前記一または複数のクライアント計算機と、前記ジョブキューイングサーバ計算機とがネットワークにより相互に接続されている請求項1または19に記載のジョブキューシステム。
  21. 前記クライアント計算機は、ジョブ投入コマンドと、該ジョブ投入コマンドを管理するオペレーティングシステムとを有している請求項19または20に記載のジョブキューシステム。
  22. 前記ジョブキューイングサーバ計算機は、前記クライアント計算機からのジョブ投入コマンドを受けて、ジョブを実行するタイミングとジョブを実行するサーバ計算機とを決定するジョブスケジューリング処理を行うジョブスケジューラと、該ジョブスケジューラを管理するオペレーティングシステムとを有している請求項19または20に記載のジョブキューシステム。
  23. 前記ジョブキューイングサーバ計算機は、前記ジョブスケジューラによって参照および管理されるジョブ管理テーブル、ユーザ管理テーブル、サーバ管理テーブル、再開マトリックスおよびログファイルのうち少なくともいずれかを第1記憶部に記憶している請求項22に記載のジョブキューシステム。
  24. 前記ジョブ管理テーブルは、ジョブ毎に一つの行が作成されて、該ジョブを一意に識別するためのジョブID、該ジョブを投入したユーザを一意に識別するためのユーザID、該ジョブが実行待ち/実行中/中止・実行待ち/中止・実行中のいずれであるかを示すジョブの状態、前記クライアント計算機からジョブが投入された時刻、前記サーバ計算機によってジョブの実行が開始された時刻、該ジョブが実行されたサーバ計算機の名前、該ジョブを実行する前に複製されたジョブ情報が退避されたディレクトリ名、該ジョブを中止時点から再開させるために作成されたジョブのデータおよび状態の複製が管理情報として保存されたディレクトリ名、該データおよび状態の複製が作成されたチェックポイントにおけるジョブの進捗状況、該チェックポイントが作成されたサーバ計算機のタイプが記録されており、これらは前記ジョブスケジューラがジョブを制御するために利用される請求項23に記載のジョブキューシステム。
  25. 前記ジョブの進捗状況は、ジョブによる計算機の使用時間と、当該ジョブが実行されているサーバ計算機の性能を乗じた値によって求められる請求項24に記載のジョブキューシステム。
  26. 前記投入されたジョブは、前記ジョブ管理テーブルの最終行として追加される請求項24に記載のジョブキューシステム。
  27. 前記ユーザ管理テーブルは、前記ジョブを投入したユーザを一意に識別するためのユーザIDと前記ユーザジョブリミットとの対応が記録され、前記ジョブスケジューラが各ユーザのユーザジョブリミットを調べるために利用される請求項23に記載のジョブキューシステム。
  28. 前記サーバ管理テーブルは、前記サーバ計算機の性能およびタイプ、該サーバ計算機が空き/実行中のいずれであるかを示す状態が記録されて、前記ジョブスケジューラが各サーバ計算機の性能、タイプおよび状態を調べるために利用され、該サーバ計算機の状態は該ジョブスケジューラによって更新可能とされている請求項23に記載のジョブキューシステム。
  29. 前記再開マトリックスは、各タイプのサーバ計算機上で作成されたチェックポイントが、どのタイプのサーバ計算機によって再開可能であるかが予めテーブル化されている請求項23に記載のジョブキューシステム。
  30. 前記ログファイルは、前記サーバ計算機の実行が終了したジョブを一意に識別するためのジョブID、該ジョブを投入したユーザを一意に識別するためのユーザID、前記クライアント計算機から該ジョブが投入された時刻、該サーバ計算機によってジョブの実行が終了した時刻、および該ジョブが実行されたサーバ計算機の名前が記録され、これらが前記ジョブスケジューラによって更新可能とされている請求項23に記載のジョブキューシステム。
  31. 前記サーバ計算機は、前記ジョブスケジューラからの指示を受けて前記ジョブの実行、中止および再開を実施し、該ジョブの中止および終了を該ジョブスケジューラに通知するジョブ実行制御プログラムと、該ジョブ実行制御プログラムを管理するオペレーティングシステムとを有している請求項22に記載のジョブキューシステム。
  32. 前記クライアント計算機、前記サーバ計算機および前記ジョブキューイングサーバ計算機からアクセス可能とされており、前記ジョブを実行するために必要な管理情報、該ジョブを実行する前に複製・退避されるジョブ情報、および該ジョブを中止したときに保存される該ジョブのデータおよび状態の複製を該管理情報として保存する外部記憶装置をさらに有している請求項19または20に記載のジョブキューシステム。
  33. 各ユーザに割り当てられる計算機の数に制限がユーザジョブリミットとして設けられた状態で、複数のユーザによって複数のサーバ計算機が共用されて、ジョブの投入順にサーバ計算機が割り当てられるジョブキューシステムによりジョブキューの管理および実行を制御するジョブ管理方法において、
    空きのサーバ計算機がある場合に、該ユーザジョブリミットを越えて該空きのサーバ計算機にジョブを実行させ、他のユーザからジョブが投入されたときに、該空きのサーバ計算機がない場合に、該ユーザジョブリミットを越えて実行中のジョブの中からジョブの実行を中止させ、該中止させたサーバ計算機に該他のユーザから投入されたジョブを実行制御するジョブ制御ステップを有するジョブ管理方法。
  34. 前記ジョブ制御ステップは、前記中止させたジョブの実行を再開させるときに、前記ジョブ情報の複製を作成した実行途中のチェックポイントからのジョブの再開可否を判断し、該再開が可能である場合には該ジョブ情報の複製を用いて該チェックポイントからのジョブの実行を再開させ、該再開が可能でない場合にはジョブ実行前のジョブ情報の複製を用いて最初からジョブの実行を再開させる請求項33に記載のジョブ管理方法。
  35. 前記ジョブ制御ステップは、前記中止させたジョブを最初から再開させているかまたは再開させようとするときに、前記チェックポイントからジョブを再開させることが可能な他のサーバ計算機が空いた場合に、現在実行中のジョブの進捗状況と該チェックポイントでのジョブの進捗状況とを比較して、該現在実行中のジョブの進捗状況が該チェックポイントでのジョブの進捗状況よりも進んでいない場合に、該現在実行中のジョブを中止させて該他のサーバ計算機により該チェックポイントからのジョブの実行を再開させる請求項34に記載のジョブ管理方法。
  36. 前記ジョブ制御ステップは、中止ジョブのサーバタイプと再開先のサーバタイプとが適合するように前記チェックポイントからの再開可否を判定する第1ジョブ再開判定ステップと、該ジョブ再開判定ステップによる判定結果がジョブ再開可能な場合に該再開先のサーバ計算機に該チェックポイントからのジョブ再開を指示し、該判定結果がジョブ再開不可能な場合に該再開先のサーバ計算機に最初からのジョブ再開を指示する第1ジョブ再開指示ステップとを有する請求項33または34に記載のジョブ管理方法。
  37. 前記ジョブ制御ステップは、投入されたジョブを第1記憶部のジョブキューの最後尾に登録するジョブ登録ステップと、登録されたジョブに対する「空き」状態のサーバ計算機を選択するサーバ選択ステップと、選択されたサーバ計算機に、登録されたジョブの実行を指示する第1ジョブ実行指示ステップとを有する請求項33に記載のジョブ管理方法。
  38. 前記ジョブ登録ステップによるジョブ登録時にジョブ管理テーブルに登録ジョブの管理情報を前記第1記憶部に記録するジョブ情報記録ステップをされに有する請求項37に記載のジョブ管理方法。
  39. 前記ジョブ制御ステップは、前記ジョブキューイングサーバ計算機は、前記サーバ計算機に「空き」状態のものがない場合に、ユーザ毎に、「実行中」のジョブがいくつあるかを集計した集計結果がユーザジョブリミットを越えているユーザを検索するユーザジョブリミット超過ユーザ選択ステップと、該ユーザジョブリミットを越えているユーザがあり、かつ当該ユーザの中に、前記ジョブキューの最後尾のジョブに対応した他のユーザがいない場合に、該ユーザジョブリミットを越えているユーザに対応するジョブから中止対象ジョブを選択する中止対象ジョブ選択ステップと、選択された中止対象ジョブの実行を中止指示する第1ジョブ中止指示ステップと、ジョブ中止指示した「空き」状態のサーバ計算機に、該ジョブキューの最後尾のジョブの実行を指示する第2ジョブ実行指示ステップとを有する請求項33または37に記載のジョブ管理方法。
  40. 前記ジョブ制御ステップは、前記中止対象ジョブを選択時に、ジョブ管理テーブル上の該中止対象ジョブの管理情報を更新して該中止対象ジョブを前記ジョブキューの先頭位置に移動させると共に、該中止対象ジョブのその時点でのジョブ情報をチェックポイントとして複製して情報保存する第2ジョブ情報記録ステップをさらに有する請求項39に記載のジョブ管理方法。
  41. 前記第2ジョブ情報記録ステップは、前記ユーザジョブリミットを越えているユーザがない場合、または、当該ユーザの中に前記ジョブキューの最後尾のジョブに対応するユーザがある場合に、前記ジョブ管理テーブル上の該ジョブキューの最後尾のジョブを「実行待ち」の状態として情報保持する請求項40に記載のジョブ管理方法。
  42. 前記ジョブ制御ステップは、サーバ計算機に空きができたときに、中止・実行中のジョブを検索する第1ジョブ検索ステップと、検索された中止・実行中のジョブのうち、投入時間の最も早いジョブを選択するジョブ選択ステップと、選択されたジョブの再開が可能かどうかを判定する第2ジョブ再開判定ステップと、ジョブの再開が不可能な場合、または、ジョブの再開が可能な場合でかつ、現在のジョブの進捗状況が、該中止・実行中のジョブよりも進んでいる場合に、投入時間が次に早いジョブを選択して、該第2ジョブ再開判定ステップを動作させるジョブ再開判定起動ステップと、該中止・実行中のジョブの進捗状況が、該現在のジョブよりも進んでいる場合に、実行中のジョブを中止する第2ジョブ中止指示ステップと、該空きサーバ計算機上で前記チェックポイントからジョブを再開するように実行指示する第2ジョブ再開指示ステップとを有する請求項33または37に記載のジョブ管理方法。
  43. 前記ジョブ制御ステップは、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索ステップと、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択ステップと、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計ステップと、該ジョブ集計ステップによる集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定ステップと、当該ジョブのユーザがユーザジョブリミットを越えている場合に、次のジョブの集計処理に進む第1ジョブ集計起動ステップと、当該ジョブのユーザがユーザジョブリミットを越えていない場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第3ジョブ実行指示ステップとを有する請求項33または37に記載のジョブ管理方法。
  44. 前記ジョブ制御ステップは、前記サーバ計算機に空きができた場合に、実行待ちまたは中止・実行待ちのジョブを検索する第2ジョブ検索ステップと、該検索した実行待ちまたは中止・実行待ちのジョブのうち先頭ジョブを選択する先頭ジョブ選択ステップと、該選択したジョブのユーザに対して実行中のジョブを集計するジョブ集計ステップと、該ジョブ集計ステップによる集計結果が前記ユーザジョブリミットを越えているか否かを判定するユーザジョブリミット超過判定ステップと、当該ジョブのユーザがユーザジョブリミットを越えていない場合に、次のジョブの集計処理に進む第2ジョブ集計起動ステップと、当該ジョブのユーザがユーザジョブリミットを越えている場合でかつ、当該ジョブの実行がはじめての場合に、当該ジョブの実行を空きサーバ計算機に指示する第4ジョブ実行指示ステップとを有する請求項33または37に記載のジョブ管理方法。
  45. 請求項33〜44のいずれかに記載のジョブ管理方法の各ステップをコンピュータに実行させるための制御プログラム。
  46. 請求項45に記載の制御プログラムが記録されたコンピュータ読み取り可能な可読記録媒体。
JP2005373501A 2005-12-26 2005-12-26 ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体 Withdrawn JP2007179100A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005373501A JP2007179100A (ja) 2005-12-26 2005-12-26 ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005373501A JP2007179100A (ja) 2005-12-26 2005-12-26 ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体

Publications (1)

Publication Number Publication Date
JP2007179100A true JP2007179100A (ja) 2007-07-12

Family

ID=38304262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005373501A Withdrawn JP2007179100A (ja) 2005-12-26 2005-12-26 ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体

Country Status (1)

Country Link
JP (1) JP2007179100A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011521354A (ja) * 2008-05-16 2011-07-21 マイクロソフト コーポレーション スケジューラにおけるタスクの局所的集合
JP2015075898A (ja) * 2013-10-08 2015-04-20 富士通株式会社 処理再開方法、処理再開プログラムおよび情報処理システム
US9519475B2 (en) 2013-06-17 2016-12-13 Canon Kabushiki Kaisha Information processing apparatus that performs update of software, control method therefor, and storage medium
CN112805965A (zh) * 2018-09-20 2021-05-14 苹果公司 用于端到端测量和性能数据流式传输的系统、方法及设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011521354A (ja) * 2008-05-16 2011-07-21 マイクロソフト コーポレーション スケジューラにおけるタスクの局所的集合
US8566830B2 (en) 2008-05-16 2013-10-22 Microsoft Corporation Local collections of tasks in a scheduler
US9519475B2 (en) 2013-06-17 2016-12-13 Canon Kabushiki Kaisha Information processing apparatus that performs update of software, control method therefor, and storage medium
JP2015075898A (ja) * 2013-10-08 2015-04-20 富士通株式会社 処理再開方法、処理再開プログラムおよび情報処理システム
US9571584B2 (en) 2013-10-08 2017-02-14 Fujitsu Limited Method for resuming process and information processing system
CN112805965A (zh) * 2018-09-20 2021-05-14 苹果公司 用于端到端测量和性能数据流式传输的系统、方法及设备

Similar Documents

Publication Publication Date Title
US11379272B2 (en) Autoscaling using file access or cache usage for cluster machines
US9876878B2 (en) Seamless cluster servicing
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
US8489739B2 (en) Method, computer system and management computer for managing performance of a storage network
US20070233837A1 (en) Job assigning device, job assigning method, and computer product
US20090083746A1 (en) Method for job management of computer system
JP5309263B2 (ja) 計算機システム及びその管理方法
WO2012056596A1 (ja) 計算機システム及び処理制御方法
JP2019008417A (ja) 情報処理装置、メモリ制御方法およびメモリ制御プログラム
JP2007249674A (ja) サーバシステム
JP2005309479A (ja) 電子配付物の配付制御システム及び方法
US10845997B2 (en) Job manager for deploying a bundled application
JP4813975B2 (ja) 無共有型データベースシステムの構成変更方法、管理サーバ及び無共有型データベースシステム
JP2007179100A (ja) ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体
JP2012123816A (ja) スケジューラ
US10599472B2 (en) Information processing apparatus, stage-out processing method and recording medium recording job management program
JP5294014B2 (ja) ファイル共有方法、計算機システム及びジョブスケジューラ
JP2011096110A (ja) ジョブネット制御プログラムおよびジョブネット制御装置
CN116881012A (zh) 一种容器应用垂直扩容方法、装置、设备及可读存储介质
US20080127194A1 (en) Job allocation program and job allocation method
JP2007141056A (ja) 情報処理システムおよびライセンス管理方法
JP4343056B2 (ja) ストレージ装置割当て方法ならびにそのための管理サーバおよびプログラム
US20050086430A1 (en) Method, system, and program for designating a storage group preference order
JP7098280B2 (ja) 情報処理システム、および制御方法
JP5240861B2 (ja) 制御装置、データ移行システム、データ移行方法およびプログラム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090303