(57)【要約】【課題】推定処理時間に基づいた手動操作により、自動スケジューリングの結果を適切に変更することを可能とするジョブスケジューリングシステムの提供。【解決手段】ジョブスケジューリングシステムは、１つ以上の処理ステージを含む１つ以上のジョブからなるジョブ群を入力ジョブとし、この入力ジョブを、複数のノードを有したデータ処理システムで処理するために、入力ジョブにおける各処理ステージのノードへの割り当てとしてのスケジューリングをなす。このようなシステムについて、スケジューリングのためのスケジューリング手段６０と各処理ステージの処理に要する時間を推定する処理時間推定サブシステム３０を設け、さらにスケジューリング手段によるスケジューリング結果を推定処理時間と相関させた表示要素にて表示画面上に表示し、その表示要素の表示画面上でのユーザによる手動操作にてスケジューリングの手動変更をできるようにしたジョブデータ表示・操作手段４０を設けるようにしている。【選択図】図１
2005148901.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の処理ステージを含む１つ以上のジョブからなるジョブ群を入力ジョブとし、この入力ジョブを、複数のノードを有したデータ処理システムで処理するために、前記入力ジョブにおける各処理ステージの前記ノードへの割り当てとしてのスケジューリングをなすジョブスケジューリングシステムにおいて、
前記スケジューリングを行うスケジューリング手段と前記各処理ステージの処理に要する時間を推定する処理時間推定サブシステムを備え、さらに前記スケジューリング手段によるスケジューリング結果を前記処理時間推定手段による推定処理時間と相関させた表示要素にて表示画面上に表示し、前記表示要素の前記表示画面上でのユーザによる手動操作にて前記スケジューリングの手動変更をできるようにしたジョブデータ表示・操作手段を備えていることを特徴とするジョブスケジューリングシステム。
【請求項２】
前記処理時間推定サブシステムは、実行済みのジョブに関してデータを登録するジョブ実行事例データベースを備えており、このジョブ実行事例データベースに登録のジョブ実行事例から前記入力ジョブに一致するかまたは類似性の高い事例を類似データとして検索し、この検索した類似データにおけるジョブの実処理時間に基づいて処理時間の推定をなせるようにされている請求項１に記載のジョブスケジューリングシステム。
【請求項３】
前記類似データにおける実処理時間に基づいた処理時間の推定は、前記入力ジョブの処理で実行されるプログラムの処理時間とこの処理時間に影響を与えるキーデータの値との相関における係数であるキーデータ係数を前記類似データに基づいて求め、そしてこのこのキーデータ係数から導いた補正係数を前記実処理時間に乗じることで推定処理時間を算出することでなされるようにされている請求項２に記載のジョブスケジューリングシステム。
【請求項４】
前記キーデータ係数について最大値と最小値を求め、これにより最大推定処理時間と最小推定処理時間を求めることができるようにされている請求項３に記載のジョブスケジューリングシステム。
【請求項５】
前記処理時間推定サブシステムは、前記データ処理システムにおける前記各ノードの性能差を前記処理時間の推定に反映できるようにされている請求項１〜請求項４のいずれか１項に記載のジョブスケジューリングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば科学技術計算や設計解析シミュレーションを行うデータ処理システムに係り、特に１つ以上の処理ステージを含む１つ以上のジョブからなる入力ジョブをデータ処理システムで処理するために、入力ジョブにおける各処理ステージをデータ処理システムにおける複数のノードへ割り当てるスケジューリングをなすジョブスケジューリングシステムに関する。
【背景技術】
【０００２】
科学技術計算や設計解析シミュレーションでは、１つ以上の処理ステージを含む１つ以上のジョブからなるジョブ群を入力ジョブとし処理することになる。このような入力ジョブの処理では、その各処理ステージをデータ処理システムにおける複数のノードへ割り当てるスケジューリングが重要となる。またジョブのスケジューリングにおいては、各ノードへ割り当てる処理ステージごとの処理時間を推定し、それに基づいたスケジューリングをなせるようにすると、より適切なスケジューリングが可能となる。
【０００３】
処理時間の推定については、例えば特許文献１に開示の例などが知られている。特許文献１に開示の技術では、データ処理における処理データ件数を含むＪＣＬ（ジョブ制御言語）と処理時間を履歴として保存しておき、データ件数と処理時間から1件あたりの処理時間を算出し、新たに投入されたＪＣＬより取り出したデータ件数に1件あたりの処理時間を乗ずることにより処理時間を推定するようにしている。
【０００４】
【特許文献１】特開２００２−２０２９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のようにデータ処理システムで複数のジョブからなるジョブ群を効率よく実行させるためにはスケジューリングが重要である。ただそのスケジューリングの自動化はそれほど進んでおらず、例えばジョブやその処理ステージの入力順にこれらを各ノードに割り当てるといったいわば機械的的なスケジューリング方式が主に用いられているのが現状である。このため、より適切なスケジューリングという点では必ずしも十分でない。
【０００６】
自動的なスケジューリングで適切なスケジューリングが必ずしも得られないとすると、それを人の柔軟な対応能力による手動操作で適宜変更することにより補完することが考えられるが、この手動操作による補完をより有効なものとするには、各処理ステージの処理に要する処理時間についての目安、つまり処理時間の推定が重要になる。
【０００７】
一般に、科学技術計算や設計解析シミュレーションなどでは、計算対象のモデル、解法、計算条件などにより処理内容が異なり、処理時間を推定することは必ずしも容易でない。解法に収束計算を含む場合の収束の度合いやプログラムとハードウエアの組み合わせによっても処理時間が異なることがある。また、これらの技術計算を計算サーバで行う場合には多種多様なプログラムが実行されることが多く、ある一つの方法が特定のプログラムに対しては高精度な推定を行えても、別のプログラムで同様な精度で推定できるとは限らない。このため、高精度に処理時間を推定するためにはプログラムごとにその特性を考慮しながら、推定方法を個別に検討しなければならない。しかし、ハードウエアやソフトウエアが急速に進化していく中では、個々のプログラムごとこのような推定方法を検討していくことはコスト面も含めて事実上不可能である。
【０００８】
本発明は以上のような従来の事情を背景になされたものであり、推定処理時間に基づいた手動操作により、自動スケジューリングの結果を適切に変更することを可能とするジョブスケジューリングシステムの提供を目的とし、また様々なハードウエアやソフトウエアの環境、それにこれらの急速な変化に対して柔軟に対応しながら、しかも高精度で処理時間の推定をなすことを可能とするジョブスケジューリングシステムの提供を目的としている。
【課題を解決するための手段】
【０００９】
上記目的のために本発明では、１つ以上の処理ステージを含む１つ以上のジョブからなるジョブ群を入力ジョブとし、この入力ジョブを、複数のノードを有したデータ処理システムで処理するために、前記入力ジョブにおける各処理ステージの前記ノードへの割り当てとしてのスケジューリングをなすジョブスケジューリングシステムにおいて、前記スケジューリングを行うスケジューリング手段と前記各処理ステージの処理に要する時間を推定する処理時間推定サブシステムを備え、さらに前記スケジューリング手段によるスケジューリング結果を前記処理時間推定手段による推定処理時間と相関させた表示要素にて表示画面上に表示し、前記表示要素の前記表示画面上でのユーザによる手動操作にて前記スケジューリングの手動変更をできるようにしたジョブデータ表示・操作手段を備えていることを特徴としている。
【００１０】
また本発明では、上記のようなジョブスケジューリングシステムについて、前記処理時間推定サブシステムに、実行済みのジョブに関してデータを登録するジョブ実行事例データベースを備えさせるものとし、このジョブ実行事例データベースに登録のジョブ実行事例から前記入力ジョブに一致するかまたは類似性の高い事例を類似データとして検索し、この検索した類似データにおけるジョブの実処理時間に基づいて処理時間の推定をなせるようにしている。
【００１１】
また本発明では、上記のようなジョブスケジューリングシステムについて、前記類似データにおける実処理時間に基づいた処理時間の推定は、前記入力ジョブの処理で実行されるプログラムの処理時間とこの処理時間に影響を与えるキーデータの値との相関における係数であるキーデータ係数を前記類似データに基づいて求め、そしてこのこのキーデータ係数から導いた補正係数を前記実処理時間に乗じることで推定処理時間を算出することでなされるようにしている。
【００１２】
また本発明では、上記のようなジョブスケジューリングシステムについて、前記キーデータ係数について最大値と最小値を求め、これにより最大推定処理時間と最小推定処理時間を求めることができるようにしている。
【００１３】
また本発明では、上記のようなジョブスケジューリングシステムについて、前記データ処理システムにおける前記各ノードの性能差を前記処理時間の推定に反映できるように、前記処理時間推定サブシステムを構成するようにしている。
【発明の効果】
【００１４】
本発明では、スケジューリング手段による自動スケジューリングの結果を推定処理時間と相関させた表示要素にて表示画面上に表示し、この表示要素の表示画面上でのユーザによる手動操作にてスケジューリングの手動変更をできるようにしている。このため本発明によれば、推定処理時間という情報を人の持つ柔軟な対応力において有効に活用することができ、より適切なスケジューリングを行えるようになる。
また本発明では、ジョブ実行事例データベースに登録のジョブ実行事例から入力ジョブに一致するかまたは類似性の高い事例を類似データとして検索し、この検索した類似データにおけるジョブの実処理時間に基づいて処理時間の推定をなすようにしている。このため本発明によれば、様々なハードウエアやソフトウエアの環境などに柔軟に対応しながら、しかも高精度で処理時間の推定をなすことが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下では本発明を実施する上で好ましい形態について説明する。図１に一実施形態によるジョブスケジューリングシステムの構成をブロック図にして示す。本実施形態は、１つ以上の処理ステージ（以下では適宜「ステージ」と称する）を有する１つ以上のジョブからなるジョブ群を一括処理することを想定している。ここで、処理ステージとは、ジョブないしプログラム実行の処理単位（ジョブ処理単位）をさし、少なくとも入力データの読込み、プログラムの実行および出力データの書出しを含んでなり、ジョブのスケジューリングにおける単位ともなる。また１つ以上の処理ステージからなるジョブでは、ある処理ステージの出力データのうち少なくとも一つは後続の処理ステージの入力データとなる。すなわち、このようにその入力データと出力データが依存関係をもつ一連の処理ステージのまとまりをジョブと呼ぶこととする。
【００１６】
本実施形態におけるジョブスケジューリングシステムは、ジョブ実行管理手段１、ジョブデータ指定ファイル２、ジョブ実行管理データベース３、ノード管理データベース４、システム設定ファイル５を含んでなる。またそのジョブ実行管理手段１は、何れもソフトウエア的に構成されるところのジョブデータ読込み手段１０、システムリソース管理手段２０、処理時間推定サブシステム３０、ジョブデータ表示・操作手段４０、実行手段５０、およびスケジューリング手段６０を含んでなる。
【００１７】
ジョブデータ指定ファイル２は、ユーザが実行させようとするジョブ群のプログラム名や入出力の各データファイル名を定義したファイルであり、ユーザが作成する。ジョブ実行管理データベース３は、ジョブ実行時の管理データを登録しておくためのものであり、ジョブデータ指定ファイル２に記述されたデータの他に、ジョブの実行に際し必要となるデータ、例えばジョブの実行を割り当てたノードの名称や実行時間などのデータが含まれる。ノード管理データベース４は、ジョブの処理を実行する際に使用するノードの状態などを管理するためのものである。システム設定ファイル５は、ジョブの実行に用いるハードウエアシステム（例えばＰＣクラスタシステムやグリッドコンピュティングシステムなど）の全ノードをそれぞれに付されている名称で定義したものであり、通常はハードウエアシステム全体について設定しておく。システム設定ファイル５の内容はジョブ実行管理手段１の内部に記述しておくことも可能であるが、本実施形態のように別ファイルとしてシステム設定ファイル５を用意しておくと、ジョブ実行管理手段１をハードウエアシステムから完全に独立させることができる。そしてこのことにより、ジョブ実行管理手段１を様々なハードウエアシステムで動作させる場合、ジョブ実行管理手段１は変更することなく、システム設定ファイル５を変更するだけでよく、本発明によるジョブスケジューリングシステムを移植する手間を大幅に少なくすることができる。
【００１８】
ここで、ノードとは、ジョブの実行に用いるハードウエアシステムにおけるＰＣ（パーソナルコンピュータ）、ワークステーション、サーバなど、ネットワーク上でデータ処理を行うことの可能な装置であり、管理者やユーザが個々に特定の名称をつけて管理・利用可能なコンピュータ機器ないしはその演算装置をさす。
【００１９】
以下ではジョブ実行管理手段１における各手段の具体的な内容を説明する。図２に、ジョブデータチェック手段１０の構成例をブロック図にして示す。ジョブデータチェック手段１０は、ジョブデータ指定ファイル２が与えるデータなどからジョブ実行管理データベース３を作成する機能を負っており、図２に見られるように、ジョブ番号設定１１、ステージ番号設定１２、プログラム名取出し１３、入力データファイル名取出し１４、出力データファイル名取出し１５、実行ノード名取出し１６、ベースディレクトリ名取出し１７、ジョブ実行管理データ登録１８の各部を含んでなる。これらのうち、ジョブ番号設定１１からベースディレクトリ名取出し１７までは、ジョブデータ指定ファイル２から該当のデータを読み込む。ジョブ実行管理データ登録１８は、読込んだデータをジョブ実行管理データベース３に登録する。またジョブ実行管理データ登録１８は、その際に実行管理のための関連データ、例えば処理時間の推定値や実際に処理に要した時間などを格納するためのデータ領域の初期化も行う。
【００２０】
図３にジョブデータ指定ファイル２の記述例を示す。キーワード「Job」とこれに続く数字でジョブ番号を指定する。次に「｛｝」で括ってステージの定義を行う。ジョブ番号の指定と同様、「stage」とこれに続く数字でステージ番号を指定する。キーワード「program」とこれに続くプログラム名称で実行すべきプログラムを定義する。同様に、「input」、「output」はそれぞれ入力データファイル、出力データファイルを定義する。キーワード「node」は、このステージを実行さるプロセッサ（ノード）が例えばプログラムに関するライセンスとの関係で規定されているといった場合に、そのプロセッサを指定するものである。これらの指定のいくつかはジョブデータチェック手段１０に自動的に行わせるようにすることが可能である。例えば、ジョブのブロックを読み込んだ順にジョブ番号を設定する機能や｛｝で括られたステージのブロックを読み込んだ順にステージ番号を設定する機能がその例である。そのようにした場合には、キーワード「Job」に続く数字やキーワード「stage」の行を省略するようにしてもよい。このような自動設定機能が多ければ多いほど、ユーザがジョブデータ指定ファイル２で指定するデータは少なくて済み、使い勝手を向上させることができる。
【００２１】
図４にシステムリソース管理手段２０の構成例を示す。システムリソース管理手段２０は、システムノード設定２１、ユーザ利用ノード設定２２、ノード状態チェック２３、およびノード管理データ登録２４の各部を含んでなる。システムノード設定２１は、ジョブの実行に用いることのできるハードウエアシステムの全体についてのリソース情報をシステム設定ファイル５から取り込む。ユーザ利用ノード設定２２は、ジョブの実行に使いたいノードに関する情報をユーザ設定ファイル２５から取り込む。ユーザ設定ファイル２５は、ハードウエアシステムの中で当該ユーザが占有することのできるノードを記述してあるファイルであり、その内容はシステム設定ファイル５に記述されている内容の部分集合でなければならない。ＰＣクラスタシステムやグリッドコンピュティングシステムなどのコンピュータシステムでは一般に複数のユーザの処理が同一リソースに集中するとターンアラウンドタイムが長くなるなどの弊害が発生する。そこで、ユーザ毎に占有することのできるノードを定め、それをユーザ設定ファイル２５に記述しておくようにすることでターンアラウンドタイムを最小にできるようにする。このように、システム設定ファイル５と別にユーザ設定ファイル２５を設けることにより、複数のユーザに共用されるハードウエアシステムの運用管理が柔軟になり、ユーザにも大きな利点をもたらすなどといった効果がある。なおユーザ設定ファイル２５は、ユーザは必要な場合にのみ定義するだけでもよいようにすることもできる。それには、ユーザ設定ファイル２５が定義されていない場合や有効な内容が記述されていない場合にシステム設定ファイル５で代用できるようにする機能を持たせておく。
【００２２】
図５はジョブ実行管理データベース３の内容例を示したものである。ここでは、イメージとして処理ステージ番号を横軸に、ジョブ番号を縦軸にとって並べた表３２の形式としている。表３２の各要素はそれぞれ、プログラム名３２１、状態コード３２２、入力ファイル数３２３、入力ファイル名３２４〜３２６、出力ファイル数３２７、出力ファイル名３２８〜３３０、実行ノード３３１、推定処理時間３３２、実処理時間３３３の各項目を含む。プログラム名３２１、入力ファイル名３２４〜３２６、出力ファイル名３２８〜３３０は図３に例示したようなジョブデータ指定ファイルの内容である。入力ファイル数３２３、出力ファイル数３２７は実行時に直接参照できると処理を高速に進められるために入れたものである。ファイル数が参照できない場合、ファイル名をチェックし、定義されていればあり、いなければファイルはなし、ということで、この判定に時間を要するため、ジョブデータ指定ファイル２を読み込んだ際に、入力ファイル数３２３、出力ファイル数３２７を数えておくことにより、以降の処理においてファイル数の参照を高速に行うことができる。図３において、ファイル数の定義が示されていないが、「input」というキーワードの数で入力ファイルの数を把握できることから、ユーザの手間を省くためにファイル数の定義は含めなかった。もちろん、システムとしてはファイル数をユーザに指定してもらってもよい。状態コード３２２は、この処理ステージ（ジョブ処理単位）の実行状況を示すためのもので、「未処理」「実行中」「正常終了」「エラー終了」などのデータが入れられる。初期値は「未処理」である。実行ノード３３１は本ジョブスケジューリングシステムによるスケジューリングの結果として当該処理ステージの処理に割り当てられた実行ノードを記述しておくためのエリアである。スケジューリングは、スケジューリング手段６０により後述のようにして自動的になされたり変更されたりし、また後述のようにユーザによる手動操作で変更されることもある。そしてスケジューリングが変更された場合には当初とは異なるノードが割り当てられることもある。推定処理時間３３２は、処理時間推定サブシステム３０により後述のようにして算出される推定処理時間を格納しておくためのものである。ここに格納された推定処理時間は、後述の手動操作によるスケジューリングの変更に際して有効に利用される。実処理時間３３３は各処理ステージの処理に実際に要した時間を格納するためのものである。
【００２３】
次に、ジョブデータ表示・操作手段４０について説明する。ジョブデータ表示・操作手段４０は、スケジューリング結果とその実行状況をコンピュータの表示画面にグラフィック表示し、かつその表示で表示される要素とジョブ実行管理データベース３の内容とを関連づけることでユーザが画面上の表示要素を操作することによりジョブ実行管理データベース３の内容を変更できるようにする、つまりスケジューリングをユーザによる手動操作で変更できるようにする手段である。図６にそれによる手動操作用画面の表示例を示す。画面は大きく２つの領域に分けられている。上側は表示・操作の設定を行うための設定領域４１であり、下側がスケジューリング状態を表示するための表示領域４２である。表示・操作の設定としては、表示内容をジョブ番号単位またはステージ番号単位あるいは全ての何れかに選択するためのジョブ選択部４４とステージ選択部４５、表示領域の表示モードを全体表示とするかスクロール可能な表示要素の大きさを変更しないスクロール表示とするかを選択するための表示モード選択部４６、およびユーザ設定ファイル２５で記述された使用ノード以外のノードの利用を可能とするか否かを設定するためのノード追加設定部４７などを含む。表示領域４２は、ジョブのスケジューリングとその実行状況を表示する。ユーザはここに表示されている内容で、スケジューリングの実行状況を確認し、必要な場合には表示されている各要素（各ジョブの各処理ステージに対応している）をポインティングデバイスなどで操作することによりスケジュールの手動変更を行う。
【００２４】
表示領域４２における表示の例を図７に示す。この表示例は、横軸を処理時間として縦軸に実行ノードを並べ、それぞれ３つのステージからなる４つのジョブによるジョブ群を同等性能のNo.０１〜０３の３つのノードで処理させるとしてスケジューリングした場合の例である。表示されている各要素はそれが対応する処理ステージの処理に要する処理時間に応じた大きさで表示されており、その処理時間には処理時間推定サブシステム３０が算出する推定処理時間が用いられている。スケジューリングにおいては、各ジョブの各ステージが上述したステージ間の依存関係を保つよう配置されなければならない。図７の例は、３つのノードの性能が同等であるということから、これらのノードに各ジョブと各ステージをそれぞれの番号順で順番に割り当てるという方式でスケジューリング手段６０がスケジューリングした例である。具体的には、最初のステージ（ステージ番号０のステージ）P(x、0)(x；ジョブ番号＝0、1、2、3)をまずジョブ番号順に各ノードに割り当て、それから次のステージ（ステージ番号１のステージ）P(x、1)(x＝0、1、2、3)を同じくジョブ番号順に各ノードに割り当て、さらに最後のステージ（ステージ番号２のステージ）P(x、2)(x＝0、1、2、3)を同じくジョブ番号順に各ノードに割り当て、ステージ間の依存関係からP(3、2)はP(3、1)が終了するのを待ってから実行されるよう配置されている。なお図７では図示を省略してあるが、表示要素に色付けなどをすることでスケジュールの実行状況も表示される。
【００２５】
図８は、図７の場合と同じジョブ群を、node03の代わりにnode04を使用してスケジューリングした場合の例を示したものである。ここで、node04はnode03に対し、高い処理性能を有していることを想定した。この場合、スケジューリングの手順は図７の場合と同様であるが、各ジョブと各ステージの並び方が異なってくる。
【００２６】
次に、図９〜図１２を用いてスケジューリングの手動変更操作を説明する。スケジューリングの手動変更操作を行うには、まずユーザは図７の例のような表示が表示領域４２になされる図６の例のような手動変更操作用の表示画面をジョブデータ表示・操作手段４０により表示させる。次いでその表示領域４２における表示からスケジュールの実行状況などを把握し、必要ならばユーザが手動操作によるスケジューリングの変更を行う。それには、まず表示要素にマウスのようなポインティングデバイスのカーソルを重ねることにより、表示要素と対応したジョブ実行管理データベース中の処理ステージをスケジューリング変更の対象として特定・選択する。この選択をなしたとき、選択された表示要素の表示を例えば色や表示パターンの変更あるいは点滅などにより他の表示要素と区別することで選択状態をユーザにわかり易くするようにする。次に、選択した表示要素（処理ステージ）をドラッグアンドドロップ操作で変更先のノードに移動させる。図１０はnode04に移動させた場合を示したものである。ジョブデータ表示・操作手段４０は、ユーザによる移動操作に応じて画面上で表示要素をnode04に移動させる。同時に、ジョブデータ表示・操作手段４０は、この表示要素の移動に対応する処理ステージの別なノードへの移動情報を処理時間推定サブシステム３０に送り、新しいノードにおける処理時間を算出してもらい、その推定処理時間に基づいて表示要素の大きさを変更する。ただし、ステージ間の依存関係はくずせないので、図１０の場合では移動させた処理ステージP(3、1)は時間軸に関して先行のP(3、0)の終了より前には移動できない。
【００２７】
次いでジョブデータ表示・操作手段４０は、後続の処理ステージをチェックし、それを移動すべきかどうかを判定する。図１０の場合、処理ステージP(3、1)をnode04に移動することにより、後続のP(3、2)がP(3、1)の終了と大きく離れてしまうことになり、この間の時間が無駄となる。ジョブデータ表示・操作手段４０はこのような状態を判定し、後続の処理ステージが移動可能であれば、それらの再スケジューリングを行う。図１０の場合では、P(3、1)の終了後、node04が利用可能となるため、P(3、2)がここに配置され、図１１のような表示に変更される。このとき、前記と同様、処理ステージP(3、2)も処理時間推定サブシステム３０によりnode04での処理時間を推定した結果に基づいて表示要素の大きさが変更される。
【００２８】
ここで、本実施形態では以上のように、手動操作によるスケジューリングの変更に際して、それを補完する再スケジューリングの機能をジョブデータ表示・操作手段４０に与えている。このような構成に代えて、例えばスケジューリング手段６０に手動スケジューリング変更における補完再スケジューリングの機能を負わせるようにしてもよく、また補完再スケジューリングまでも手動操作で行うようにしてもよい。
【００２９】
図９〜図１１の例は、それまで使用していなかった新しいノードnode04に処理ステージを移動させる場合であったが、図１２は、ノードnode04への移動ができない条件になっている場合の例であり、この場合にはノードnode04へ表示要素を移動させようとしても、表示の変更がなされない。処理ステージの新しいノードへの移動を可能とするか否かは図６のノード追加設定部４７における設定で決められる。
【００３０】
図１３は、表示要素を絞って表示領域４２に表示させる場合の例である。すなわち図６のジョブ選択部４４で「０」を指定するとともにステージ選択部４５で「all」を指定した場合には図１３のようにジョブ番号０のジョブにおける全ステージ、つまり図５におけるP(0、x)(X=0、1、2)のみが表示される。
【００３１】
図１４は、後述する処理時間の推定で最大推定処理時間を算出し、その最大推定処理時間に応じた大きさで表示要素を表示する例を示している。最大推定処理時間と標準推定処理時間との差は、色の変更や表示パターンの変更などで表示し、どの程度違いがあるかを一目でユーザが判断できるようにする。これらのことは処理時間の推定で算出する最小推定処理時間についても同様である。
【００３２】
以上のように、本発明では、スケジューリング手段６０による自動スケジューリングの結果とその実行状態を表示画面上に表示してユーザがスケジューリングに関する状態を容易に把握できるようにするとともに、その表示における表示要素を表示画面上で操作することでユーザが手動によるスケジューリングの変更を行えるようにしている。このような手動でのスケジューリング変更を可能とする手段を設けたことにより、人の柔軟な対応能力を有効に活用できるようになり、その結果、より適切なスケジューリングを行えるようになる。
【００３３】
図１５に実行手段５０の構成例を示す。この例の実行手段５０は、アプリケーション呼び出し５１と終了状態データ登録５２の各部を含んでなる。アプリケーション呼び出し５１は、ジョブ実行管理データベース３より実行プログラム名、入出力の各データファイル名などを取り出し、これらをもとにアプリケーションプログラム５３の実行を指示する。終了状態データ登録５２は、アプリケーションプログラム５３の実行終了後、正常終了、エラー終了などの終了状態コード、実際に処理に要した時間などのデータをジョブ実行管理データベース３に登録する。アプリケーションプログラム５３は、本発明におけるジョブスケジューリングシステムとは独立したプログラムであり、実行手段５０とは別プロセスとして起動される。アプリケーションプログラム５３の実行においては、ユーザがジョブデータ指定ファイル２に記述した少なくとも1個の入力データファイル５４を読み込み、処理結果として少なくとも1個の出力データファイル５５を出力する。
【００３４】
図１６にスケジューリング手段６０の構成例を示す。この例のスケジューリング手段６０は、スケジューリング６１と表示更新指示６２の各部を含んでなる。スケジューリング６１は、ジョブデータ指定ファイル２で指定されたジョブ群における各ジョブとその各処理ステージを使用可能なノードに割り当てるスケジューリングを行う。各ジョブと各処理ステージのノードへの割当には様々な方式が可能であるが、本実施形態では上で説明した例のように、使用可能なノードに各ジョブと各ステージをそれぞれの番号順で順番に割り当てるという方式を基本として用いている。ただし、ジョブデータ指定ファイル２でノードが指定されているステージがある場合にはそのステージについては指定を優先し、それ以外のステージについて、ノード指定のステージとの関係を前提にしてスケジューリングを行う。またスケジューリング６１は、ある処理ステージの実行を終えた時点で未処理の処理ステージについての再スケジューリングも行う。すなわち、既に処理を終えたステージについて推定処理時間と実処理時間とに大きな差があった場合などに、未処理のステージについて再スケジューリングを行う。この場合には処理済みのステージにおける推定処理時間と実処理時間の差を考慮することになる。再スケジューリングを行った際にはジョブデータ表示・操作手段４０による表示を変更させるために表示更新指示６２がジョブデータ表示・操作手段４０へ指示を送る。このように適宜に再スケジューリングを行えるようにすることにより、推定処理時間と実処理時間に差が生じた場合でも、以降のスケジュールを適切に設定することができ、より効率的にジョブ群を処理することが可能となる。
【００３５】
以下では処理時間推定サブシステム３０の具体的な例について説明する。図１７に、本実施形態における処理時間推定サブシステム３０の構成をブロック図にして示す。図に見られるように、処理時間推定サブシステム３０は、処理時間推定手段３００、ジョブ実行事例データベース６１０、ベンチマークデータベース７１０、ハードウエアデータベース８１０、システム設定パラメータ９１０を含んでなり、さらにインターネット上のハード・ソフト情報８２０を参照できるようにされている。またその処理時間推定手段３００は、ＤＢ登録手段３１０、類似率算出手段２５０、類似データ検索手段３５０、ユーザコマンドチェック手段２１０、処理時間算出手段４１０を含んでなり、さらにソフトウエアデータベース５１０を含んでいる。
【００３６】
処理時間推定手段３００における処理の概要は以下の通りである。処理時間推定手段３００にはユーザコマンド１００と入力データファイル１１０が入力する。ここで、ユーザコマンド１００は、ジョブデータ指定ファイル２に定義されているジョブを処理ステージ単位（ジョブ処理単位）で順次取り出して得られるものである。また入力データファイル１１０は、同じくジョブデータ指定ファイル２に定義されている入力データファイルを取り出して得られるものである。ユーザコマンド１００は、ユーザコマンドチェック手段２１０により、プログラム名、入力データのファイル名、実行時のオプション設定などに分解される。それからユーザコマンドチェック手段２１０は、ユーザコマンド１００から取り出したプログラム名とオプション設定をソフトウエアデータベース５１０で照合することでそのプログラムにおけるキーデータの名称を取り出す。ここで、キーデータとは、プログラムの処理時間に影響する事項（処理の種類や内容など）を定義しているデータであり、その具体例については後述する。次いで、ユーザコマンドチェック手段２１０は、プログラム名と取り出したキーデータ名を類似率算出手段２５０に渡す。プログラム名とキーデータ名を渡された類似率算出手段２５０は、そのプログラム名とキーデータ名でジョブ実行事例データベース６１０を検索して該当する事例、つまりプログラム名が入力ジョブ（実行すべきジョブとしてジョブデータ指定ファイル２で入力されたジョブ）におけるプログラムのプログラム名と一致しかつキーデータ名が入力ジョブにおけるプログラムのキーデータ名と一致したプログラムが用いられているジョブ実行事例を抽出し、その抽出した事例全てについて類似率を求める。次いで、類似率算出手段２５０で類似率が求められた事例を類似データ検索手段３５０がその類似率で順位付けするなどの処理を行う。それから処理時間算出手段４１０がキーデータ係数（プログラムの処理時間とキーデータ値との相関における係数）を求めるとともに、このキーデータ係数から補正係数を求め、この補正係数を選定ジョブ実行事例における実処理時間に乗じて入力ジョブの推定処理時間を算出する。以上の処理は、ジョブ処理単位つまり処理ステージ単位で行なわれ、入力ジョブ群における全てのジョブ処理単位についてなされる。
【００３７】
ここで、システム設定パラメータ９１０は、処理時間推定手段３００による処理時間の推定処理で必要となるいくつかのパラメータ、つまりをユーザやジョブの実行環境に合わせて変更する可能性のあるデータを記述するためのファイルである。ベンチマークデータベース７１０とハードウエアデータベース８１０は、推定精度を高める処理などにおいて参照するためのデータベースである。すなわち処理時間の推定で利用するジョブ実行事例で使用されたノードと入力ジョブで使用するノードとが異なる場合に、ベンチマークデータベース７１０やハードウエアデータベース８１０を参照して各ノードの性能データを求め、それらの性能差を係数として推定時間に補正を加える、といった処理などで用いられる。このことについては後に詳述する。
【００３８】
以下では処理時間推定手段３００における処理の詳細について説明する。図１８にユーザコマンドチェック手段２１０の構成例を示す。ユーザコマンドチェック手段２１０は、プログラム名取出し２１１、キーデータ選定２１２、キーデータ取出し２１３、チェック表作成２１４の各部を含んでなる。プログラム名取出し２１１は、ユーザコマンド１００から実行すべきプログラムの名称とそのプログラムにおけるオプションの名称を取り出す。キーデータ選定２１２は、取り出したプログラム名とオプション名を用いてソフトウエアデータベース５１０を検索し、処理時間に影響するキーデータの名称を取り出す。キーデータ取出し２１３は、キーデータ選定２１２が取り出したキーデータ名を用いて、入力データファイルより、そのキーデータ名に対応するデータの値（キーデータ値）を取り出す。チェック表作成２１４は、以上の処理で取り出した各種のデータを含む形で、処理時間推定の処理で使用する管理データを作成する。
【００３９】
図１９にソフトウエアデータベース５１０における登録単位の例を示す。最初に、プログラム名５１１とキーデータ数５１２の各項目があり、この後ろにそれぞれのキーデータの名称と型についての項目が対になって並ぶ（５１３、５１４、５１５、５１６、・・・）。キーデータには型があり、その型には文字型や数値型などがあり、さらにその数値型には整数型や実数型などである。文字型は、プログラム内部で区分けされる処理の判別などに利用される種類のものである。例えば、構造解析プログラムにおける、応力解析、固有値解析、熱解析などである。整数型は、有限要素法を用いた解析プログラムにおける、解析モデルの節点数や要素数などである。実数型は、材料定数や境界条件など、実数で与えられるデータである。キーワードの個数はＭ＋１個としている。Ｍは、使用するプログラムの種類に応じて設定されるべき数字である。例えば、使用するプログラム中でキーデータの数が最大で８個である場合、Ｍを７としておけばよい。
【００４０】
図２０にソフトウエアデータベース５１０の具体例を示す。ここでは、有限要素法による構造解析プログラム、流体解析プログラム、電磁場解析プログラムの３種類を想定し、それぞれのプログラム名をstruct、fluid、em-fieldと仮定する。プログラム名５１１にはstruct、fluid、em-fieldのどれかが入れられる。構造解析プログラムstructには、３種類の解析モード（これは上でのオプションに相当する）があり、この３種類の解析モードとして入力データでstress、dynamic、thermalを指定するものとする。stress解析モードでは、節点数、要素数、要素タイプが、dynamicモードでは、詳細な解析タイプ、節点数、要素数、要素タイプが、thermalモードでは、節点数、要素数、要素タイプ、解析ステップ数が、それぞれ処理時間に影響するものとする。解析モードは文字型で、節点数や要素数などは整数型で指定されるとする。この例の場合、プログラム名５１１に”struct”が入っている登録単位が３セットあり、解析モードがstressの場合は、キーデータ数が４、dynamicの場合は５、thermalの場合は５となる。プログラムによっては、解析モードを複数有しているもの、単一のもの、などがあるため、解析モードはキーデータの一つとして扱う。したがって、キーデータ数５１２の後ろに、キーデータ０の型２６３として、"char"が入れられ、この後ろに名称２６４として、"stress"、"dynamic"、"thermal"が入れられる。さらに、この後ろに節点数を示す"nodes"、要素数を示す"elements"、要素タイプを示す"elm_type"、ステップ数を示す"step"などのキーデータが入る（５１５、５１６、・・・）。キーデータの数が、登録単位の最大キーデータ数、すなわち、図１９におけるＭ＋１より小さい場合、残りのキーデータのエリアには、型として"char"、内容として"NULLコード"の組み合わせ、または、型として"int"、内容として"０"の組み合わせなどを入れておく。
【００４１】
図２１に類似率算出手段２５０の構成例を示す。類似率算出手段２５０は、プログラム名比較２５１、キーデータ比較２５２、ファイル名比較２５３、ファイル更新日時比較２５４の各部を含んでなる。プログラム名比較２５１は、ユーザコマンドチェック手段２１０のプログラム名取出し２１１により取り出されたプログラム名（入力ジョブにおけるプログラムのプログラム名）をジョブ実行事例データベース６１０に登録されている実行済みのジョブ（ジョブ実行事例）におけるプログラムのプログラム名と比較し、両者が一致するジョブ実行事例を抽出する。キーデータ比較２５２は、プログラム名比較２５１が抽出したジョブ実行事例についてキーデータ名の比較を行い、ジョブ実行事例のプログラムにおけるキーデータ名が入力ジョブにおけるキーデータ名と一致するジョブ実行事例を抽出する。すなわちプログラム名比較２５１とキーデータ比較２５２により、入力ジョブに対してプログラム名が一致しかつキーデータ名も一致するジョブ実行事例がジョブ実行事例データベース６１０から抽出される。
【００４２】
ファイル名比較２５３とファイル更新日時比較２５４は、プログラム名比較２５１とキーデータ比較２５２により抽出されたジョブ実行事例について、そこで使われている入力データファイルの類似率を求める。すなわちファイル名比較２５３は、ジョブ実行事例で使われている入力データのファイル名を入力ジョブにおける入力データのファイル名と比較し、両ファイル名がどの程度同じ文字列を含むかを数値化する。一方ファイル更新日時比較２５４は、入力ジョブにおける入力データファイルの作成ないし更新日時をジョブ実行事例における入力データファイルの作成ないし更新日時と比較し、後者がどの程度前者に近いかを数値化する。そしてこれらファイル名とファイル更新日時それぞれについての数値からジョブ実行事例の入力ジョブに対する類似率を求める。すなわち本実施形態では、ファイル名とファイル更新日時それぞれについての数値による入力データファイルの類似性として、ジョブ実行事例の入力ジョブに対する類似性を求めている。ここで、一般に、科学技術計算を行う場合、一度の計算のみで目的を達成することはほとんどなく、同じモデルについて、いろいろと解析条件を変えたり、モデルの形状を少しずつ変えたりしながら、何回かの計算を行うことが多い。このため入力データファイルの作成ないし更新日時が近い場合には同じ内容のジョブである可能性が高いと考えられる。このような観点から本実施形態ではファイル更新日時比較２５４を設け、これにより類似性の判定精度をさらに高めることができるようにしている。
【００４３】
図２２にファイル名比較２５３の数値化の例を示す。２つのファイルがあり、それぞれファイル名が"test_data011.dat"（２５５）、"test_data012.dat"（２５６）であるとする。ここで最後の部分の"dat"は拡張子であり、同じ種類のファイルには特定の文字列が決められているものとする。ファイル名としてユーザが設定できるのは拡張子の前の部分である。この例の場合、ファイル名で異なる部分は拡張子の直前の"1"と"2"である。そこで、まず一致率として、ユーザが設定可能なファイル名の部分の文字数に対する２つのファイル名で一致している文字列の長さを定義する。例ではファイル名の長さが１２、一致部分が１１であるため、１１÷１２が一致率となる。次に、一致率を横軸に、一致係数を縦軸にとった一致関数２５８を用意する。前記で求めた一致率より、関数２５８から一致係数を得る。一致関数２５８は任意に設定可能である。ただ、上の例での不一致部分"1"と"2"は、入力データファイルの通し番号（上述のように科学技術計算では同じモデルについて解析条件を変えたりモデルの形状を変えたりしながら何回かの計算を行う場合が多くそのような場合に入力データファイルに付けられる通し番号）であり、このように通し番号以外の部分が一致するものは、同じ解析モデルである率が高い。したがってこうしたことを考慮して一致関数２５８の設定をなすようにすれば、類似性判断の精度を高めるのに有効である。
【００４４】
図２３にファイル更新日時比較２５４の数値化の例を示す。２つのファイルの更新日時がそれぞれ、２００２年１２月１０日１４時３０分１４秒（２６１）、２００２年１２月１３日１５時４０分３２秒（２６２）であるとする。簡単のため、時のオーダで計算することにすると、２つのファイルは７３時間の差となる。あるユーザのひとまとまりの仕事（一つのジョブ群の処理）がおおよそ１ヶ月で区切りがつくとした場合、これを基準時間とし、この範囲でどれだけ近い時に作成されたかを近似率２６３として（基準時間―更新時間差）÷基準時間で算出する。さらに、横軸を近似率、縦軸を近似係数とした近似関数２６４を用意し、近似率２６３から近似係数２６４に変換する。近似関数２６４は、更新日時が近ければ近いほど、同じ種類の解析である可能性が高いため、前記一致関数２５８と同様、近似率が高いほど一致係数が高いように設定するのが類似性判断の精度を高めるのに有効である。
【００４５】
次に、処理時間推定の処理で使用するためにユーザコマンドチェック手段２１０のチェック表作成２１４が作成する管理データについて説明する。図２４は、作業用の表の登録単位を示したものである。入力ジョブにおけるジョブ処理単位（ステージ単位）ごとにこの登録単位で管理データが作成され、ジョブ実行事例データベース６１０に登録される。内容は、プログラム名６１１、キーデータ数６１２、キーデータの名称とその値のセット(６１３、６１４、・・・、６２０)、推定処理時間６２１、実処理時間６２２、ジョブを実行したノードのノード名６２３、ジョブの実行終了状態６２４、入力ファイル数６２５、入力ファイル名(６２６、６２７、・・・、６２８)、類似データとして選定された時に設定するフラグ６２９、類似データとして選定された回数である類似データ選定累積回数６３０、類似データとして選定されはしなかったが選定の候補となった回数である類似データ候補累積回数６３１の各項目を含む。ここで、プログラム名６１１、キーデータ数６１２、キーデータ名称および値(６１３、・・・、６２０)、入力ファイル数６２５、および入力ファイル名(６２６、・・・、６２８)は、ユーザコマンドチェック手段２１０がユーザコマンド１００をチェックした段階で登録される。推定処理時間６２１と実行ノード６２３は、処理時間推定手段４１０で推定処理時間が算出された時点で登録される。推定処理後に実行ノードに変更を生じた場合は、変更時点でこれらのデータが更新される。実処理時間６２２と実行終了状態６２４は、ジョブ処理単位の実行が完了した時点で登録される。類似データ選定フラグ６２９、類似データ選定累積回数６３０、および類似データ候補累積回数６３１は、処理時間推定処理の過程で当該ジョブ実行事例が処理時間推定の基礎用として選定されたり候補にされたりした時点で登録される。
【００４６】
図２５に類似データ検索手段３５０の構成例を示す。類似データ検索手段３５０は、類似率算出手段２５０が類似率を求めた各ジョブ実行事例についてそれぞれのデータをジョブ実行事例データベース６１０から取り出すデータ取出し３５１、このデータ取出し３５１で取り出された各ジョブ実行事例について類似率の比較を行う類似率比較３５２、類似率によって順位付けを行う類似データソート３５３、処理時間推定手段４１０での処理時間推定の基礎とする類似データ（入力ジョブに対してプログラムとそのキーデータが一致しかつ入力データファイルが類似しているジョブ実行事例）を類似データソート３５３による順位付けに基づいて選定する類似データ選定３５４の各部を含んでなる。処理時間推定の基礎とする類似データの選定は、順位付けが最上位の類似データだけ選定する場合と順位付けが上位の類似データから複数を選定する場合がある。いずれにしても選定されたデータ（選定ジョブ実行事例）に対しては、類似選定フラグ６２９をセットし、類似データ選定累積回数６３０を１増加させる。また類似データソート３５３の上位に入ったデータに対しては、選定されたものも含めて、類似データ候補にされたということで、類似データ候補累積回数６３１を１増加させる。上位何番目までを候補範囲とするかは、システム設定パラメータ９１０に記述しておく。
【００４７】
次に、処理時間推定手段４１０について説明する。処理時間推定手段４１０では、上述のように、キーデータ係数を求めるとともに、このキーデータ係数から補正係数を求めてこれを選定ジョブ実行事例における実処理時間に乗じて入力ジョブの推定処理時間を算出する。図２６にその処理の流れを示す。まず補正係数に１を設定する（処理４１１）。次いで入力ジョブと選定ジョブ実行事例それぞれにおける数値型キーデータについてその値を取り出し（処理４１２）、この両キーデータ値に基づいてキーデータ係数を算出する（処理４１３）。キーデータ係数の算出については後述する。それから算出されたキーデータ係数を最初に設定した係数に乗じ、その結果を新しい補正係数をする（処理４１４）。以上の処理は、最初の数値型キーデータから始めて最後の数値型キーデータに至るまで繰り返す（処理４１５）。そしてこの繰返しで最終的に得られる補正係数を選定ジョブ実行事例における実処理時間に乗じて入力ジョブの推定処理時間とする（処理４１６）。
【００４８】
図２７にキーデータ係数の算出における処理の流れを示す。プログラムの処理時間は、それにおける数値型キーデータの値に相関し、数値型キーデータの値を変数とする関数で近似することができる。その関数はプログラムに応じて代数関数であったり指数関数であったりする。例えば代数関数近似の場合であればAX2＋BX＋Cであり、指数関数近似の場合であればXA、AXなどである（図２７の４２７、４２８、４２９）。ここでXはキーデータ値であり、A、B、Cは未知係数である。この未知係数は、類似データ候補におけるキーデータ値と実処理時間より求めることができる。すなわち実行済みのジョブである類似データ候補についてはキーデータ値と実処理時間が既知であるから、適切な数の類似データ候補がればそれらのキーデータ値と実処理時間から未知係数を求めることができる。このようにして未知係数を決定するについては、必要な類似データ候補を類似率の高いものから選定する方式と、類似データ候補の全てを使って複数の未知係数を算出し、その平均をとる方式が可能である。後者の方式においては、複数の未知係数について偏差を求め、未知係数＋偏差を未知係数の最大値、同様に未知係数−偏差を未知係数の最小値とし、これらからキーデータ係数の最大値と最小値を求めることで、推定処理時間に最大推定処理時間と最小推定処理時間を求めるようにすることができる。
【００４９】
キーデータ係数は以上のことを前提にして求められる。具体的には、まずキーデータの特性に合わせて関数を設定する（処理４２１）。次いで類似データ候補に基づいて未知係数を算出する（処理４２２）。複数の未知係数を算出した場合にはその平均を求め、また偏差を求める（処理４２３）。それから処理４２１で設定の関数に、処理４２２で求めた未知係数を（図の例では平均未知係数）と入力ジョブにおけるキーデータ値を適用してキーデータ係数を求める（処理４２４）。さらに必要に応じてキーデータ係数の最大値と最小値を求める（処理４２５、４２６）。キーデータ係数の最大値と最小値を求めた場合にはこれを用いることで図２６の処理により最大推定処理時間と最小推定処理時間を求めることができる。
【００５０】
以上のような処理により、ジョブ実行事例における実処理時間のデータをベースに、実行しようとする新規ジョブの処理時間を精度よく推定することが可能となる。
【００５１】
次に、ジョブ実行事例データベース６１０へのデータの登録を自動的に行う方法について説明する。図２８にＤＢ登録手段３１０の構成例を示す。ＤＢ登録手段３１０は、プログラム名登録３１１、キーデータ登録３１２、入力データファイル登録・コピー３１３、推定処理時間登録３１４、実処理時間・ノード登録３１５の各部を含んでなる。プログラム名登録３１１は、ユーザコマンドチェック手段２１０におけるプログラム名取出し２１１により取り出されたプログラムの名称をジョブ実行事例データベース６１０に登録する。またプログラム名登録３１１は、図２４に示したような登録単位による推定処理時間６２１から実行終了状態６２４までの各格納エリアをジョブ実行事例データベース６１０に追加する処理も行う。キーデータ登録３１２は、キーデータの数、名称、値をジョブ実行事例データベース６１０に登録する。入力データファイル登録・コピー３１３は、実行しようとするジョブにおける入力データファイルをジョブ実行事例データベース６１０にコピーし、このデータベースで管理されるファイル名を入力データファイルのファイル名として登録する。これは入力データファイルの数だけ行われ、この数も登録される。推定処理時間登録３１４は、処理時間算出手段４１０により算出された推定処理時間を登録する。実処理時間・ノード登録３１５は、プログラム実行完了時（ジョブ処理単位実行完了時）に、その処理に実際に要した処理時間とそのプログラムを実行したノードのノード名を登録する。
【００５２】
以上のようにしてＤＢ登録手段３１０によりジョブ実行事例データベース６１０への登録を自動的に行えるようにしたことにより、処理時間推定に関するユーザの手間を少なくすることができる。このことは登録データが増えれば増えるほど推定精度が向上するという関係のあることを考慮すると、有用性が大きい。
【００５３】
科学技術計算を行うコンピュータ環境は、必ずしも同じ機種、性能のプロセッサが用意されているわけではなく、また処理能力増強のために機種やモデルの入れ替えなどが行われることが多い。このような多機種混在の環境において適切な処理時間推定を行うためには、ハードウエアの性能を加味する必要がある。そこで、本実施形態ではハードウエアの性能を考慮して処理時間推定をより高い精度でなせる構成も付加している。以下ではこれについて説明する。
【００５４】
図２９は、ハードウエアの性能を考慮して処理時間の推定をなす処理の例における流れを示したものである。まず類似データの候補のジョブ実行事例を実行したノードのノード名を取り出し（処理４３１）、また入力ジョブを実行させる予定のノードのノード名を取り出す（処理４３２）。次いで類似データ候補からプログラム名と解析タイプが入力ジョブに一致するデータを検索する（処理４３３）。それから先に取り出したノード名がともにそのデータに含まれているか否かを判断する（処理４３４）。含まれているとされた場合には、実処理時間のデータからノードの性能差を算出する（処理４３５）。一方、含まれていないとされた場合には、図１７のハードウエアデータベース８１０から、ジョブ実行事例の実行ノードと入力ジョブ実行予定ノードそれぞれのプロセッサにおけるクロック周波数の値を取り出し（処理４３６）、このクロック周波数の比をノードの性能差として設定する（処理４３７）。このようにして得られた性能差を上述のようにして求められる推定処理時間に乗じてノード性能差補正の推定処理時間を算出する（処理４３８）。
【００５５】
図３０にハードウエアベータベース８１０の具体例を示す。この例のハードウエアベータベース８１０は、ノード名８１１、モデル機種名８１２、モデル型名８１３、プロセッサ数８１４、プロセッサの種類８１５、クロップ周波数８１６などの各項目を含んでいる。このうち、ノード名８１１、モデル機種名８１２、モデル型名８１３、プロセッサの種類８１５は文字型で、プロセッサの数８１４は整数型で、クロック周波数８１６は整数型または実数型で、それぞれのデータを持つ。また、インターネット上に同様な情報（図１７におけるインターネット上のハード・ソフト情報８２０）が公開され参照可能な場合には、このサイトから前記と同様の情報を得ることもできる。
【００５６】
図３１は、入力ジョブ実行予定ノードの状態に応じて処理時間推定の補正を行う場合の処理における流れの例を示したものである。入力ジョブ実行予定ノードのＣＰＵ稼働率についての情報を取得し（処理４４１）、そのＣＰＵ稼働率がシステム設定パラメータ９１０で設定した高負荷稼動率より高いか低いかを判定する（処理４４２）。ＣＰＵ稼働率が高負荷を示しているときは別のノードを選定し（処理４４３）、処理時間の推定を再実行する（処理４４４）。一方、ＣＰＵ稼働率が低い場合にはＣＰＵ稼働率で処理時間の推定を補正する（処理４４５）。たとえば、ＣＰＵ稼働率が５０％である場合は、０．５で割り、２倍の処理時間を適正な処理時間として設定する。
【００５７】
科学技術計算用のソフトウエアは、その計算アルゴリズムやプログラミングにより、異なるＣＰＵクロック周波数のコンピュータで実行した場合でも、処理時間がクロック周波数にリニアに依存しないことがある。大きく影響を与えるのは、主記憶メモリのメモリ容量、メモリアクセスのバンド幅、ディスクのアクセス速度などである。ここでは、実際に使用するプログラムのベンチマークデータを用意し、この実行結果を参照することにより処理時間の推定精度を高める方法について説明する。
【００５８】
図３２に示すのはベンチマークデータベースの登録単位である。プログラム名７１１は、使用するプログラムの名称であり、図１７のユーザコマンド１００の中で指定されるものに相当する。解析タイプ７１２は、前記プログラムが内蔵する解析モードが複数ある場合に、それがどの解析モードかを記述する。モデルデータ名７１３は、ベンチマークで使用する解析モデルの入力データファイルを指定する。並列化係数７１４は、ベンチマーク実行時の並列度を指定する。プログラムが並列計算の機能を有しない場合は１となる。標準ノードのノード名７１５は、ベンチマークを実行したノードの一つを指定する。比較ノード１のノード名７１６は、標準ノード以外のノードであり、比較ノード１の相対性能７１７は、標準ノードに対する比較ノード１の相対性能を記述する。相対性能は、比較ノード１での実行時間を標準ノードでの実行時間で割った結果とする。比較ノード２のノード名７１８と比較ノード２の相対性能７１９も比較ノード１のところと同様である。ベンチマークを実施したノードについて、順次データを追加しておく。また、インターネット上に同様な情報（図１７におけるインターネット上のハード・ソフト情報８２０）が公開され参照可能な場合にはこのサイトから前記と同様の情報を得ることもできる。
【００５９】
次に、処理時間推定手段４１０が図１７のベンチマークデータベース７１０を参照して処理時間の推定をなす処理について説明する。図３３にその処理の流れの例を示す。まず、ジョブ実行管理データベース３より、入力ジョブの実行予定ノードのノード名、入力ジョブにおけるプログラムのプログラム名およびそのプログラムにおける解析タイプを取り出す（処理７３１）。次いで、ベンチマークデータベース７１０より、プログラム名と解析タイプが一致するベンチマークデータを検索し（処理７３２）、実行予定ノードが標準ノードまたは比較ノードに含まれているかをチェックする（処理７３３）。実行予定ノードがどちらかに含まれている場合にはベンチマークデータベースのデータを利用して処理時間を推定する（処理７３４）。実行予定ノードと標準ノードが同一の場合は相対性能を１とし、実行予定ノードが比較ノードの一つである場合はその相対性能を取り出し（処理７３５）、それから実処理時間を相対性能で補正して推定処理時間とする（処理７３６）。一方、実行予定ノードが標準ノードと比較ノードのどちらにも含まれていない場合は、参照できるデータがないことになるため、段落００４３から００４５で説明したような処理時間の推定を行い（処理７３７）、必要ならば推定精度を高めるためにＣＰＵのクロック周波数比を相対性能として設定し（処理７３８）、これで推定推定時間を補正する（処理７３６）。
【００６０】
以上の実施形態では、処理時間推定システムを処理時間推定サブシステムとしてジョブスケジューリングシステムに組み込む形態としていた。このような形態に代えて、本発明における処理時間推定システムをジョブスケジューリングシステムから独立させた単独のシステムとして実施する形態も可能である。
【産業上の利用可能性】
【００６１】
本発明によれば、入力ジョブについて、推定処理時間という情報を人の持つ柔軟な対応力をもって有効に活用することで、より適切なスケジューリングを行えるようになる。また本発明によれば、様々なハードウエアやソフトウエアの環境などに柔軟に対応しながら、しかも高精度で処理時間の推定をなすことを可能となる。このような本発明は、データ処理システムを用いて例えば科学技術計算や設計解析シミュレーションなどを行う分野のより一層の発展に大きく寄与することができる。
【図面の簡単な説明】
【００６２】
【図１】一実施形態によるジョブスケジューリングシステムの構成を示す図である。
【図２】ジョブデータチェック手段の構成例を示す図である。
【図３】システムリソース管理手段の構成例を示す図である。
【図４】ソフトウエアデータベースの内容例を示す図である。
【図５】ジョブ実行管理データベースの内容例を示す図である。
【図６】ジョブデータ表示・操作手段により表示される手動操作用画面の表示例を示す図である。
【図７】手動操作用画面の表示領域における表示例を示す図である。
【図８】手動操作用画面の表示領域における表示例の他の例を示す図である。
【図９】手動操作用画面でのスケジューリング変更操作の手順の一部を説明する図である。
【図１０】手動操作用画面でのスケジューリング変更操作の手順の他の一部を説明する図である。
【図１１】手動操作用画面でのスケジューリング変更操作の手順のさらなる他の一部を説明する図である。
【図１２】手動操作用画面の表示領域における表示例を、スケジュール変更不可ノードがある場合について示す図である。
【図１３】手動操作用画面の表示領域における表示例を、表示対象を絞った場合について示す図である。
【図１４】手動操作用画面の表示領域における表示例を、最大推定処理時間の場合について示す図である。
【図１５】実行手段の構成例を示す図である。
【図１６】スケジューリング手段の構成例を示す図である。
【図１７】処理時間推定サブシステムの構成例を示す図である。
【図１８】ユーザコマンドチェック手段の構成例を示す図である。
【図１９】ソフトウエアデータベースの登録単位の例を示す図である。
【図２０】ソフトウエアデータベースの具体的な登録例を示す図である。
【図２１】類似率算出手段の構成例を示す図である。
【図２２】ファイル名比較の方法を示す図である。
【図２３】ファイル更新日時比較の方法を示す図である。
【図２４】作業用の表の登録単位の例を示す図である。
【図２５】類似データ検索手段の構成例を示す図である。
【図２６】処理時間推定の手順を示す図である。
【図２７】キーデータ係数算出の手順を示す図である。
【図２８】ＤＢ登録手段の構成例を示す図である。
【図２９】ハードウエアの性能を考慮する処理の手順を示す図である。
【図３０】ハードウエアベータベースの登録単位の例を示す図である。
【図３１】実行予定ノードの状態による推定の補正を行う処理の手順を示す図である。
【図３２】ベンチマークデータベースの登録単位の例を示す図である。
【図３３】ベンチマークデータベースによる処理時間推定を行う処理の手順を示す図である。
【符号の説明】
【００６３】
３０    処理時間推定サブシステム
４０    ジョブデータ表示・操作手段
６０    スケジューリング手段
２５０    類似率算出手段
３５０    類似データ検索手段
４１０    処理時間算出手段
６１０    ジョブ実行事例データベース
【図１】
2005148901.tif 000003
【図２】
2005148901.tif 000004
【図３】
2005148901.tif 000005
【図４】
2005148901.tif 000006
【図５】
2005148901.tif 000007
【図６】
2005148901.tif 000008
【図７】
2005148901.tif 000009
【図８】
2005148901.tif 000010
【図９】
2005148901.tif 000011
【図１０】
2005148901.tif 000012
【図１１】
2005148901.tif 000013
【図１２】
2005148901.tif 000014
【図１３】
2005148901.tif 000015
【図１４】
2005148901.tif 000016
【図１５】
2005148901.tif 000017
【図１６】
2005148901.tif 000018
【図１７】
2005148901.tif 000019
【図１８】
2005148901.tif 000020
【図１９】
2005148901.tif 000021
【図２０】
2005148901.tif 000022
【図２１】
2005148901.tif 000023
【図２２】
2005148901.tif 000024
【図２３】
2005148901.tif 000025
【図２４】
2005148901.tif 000026
【図２５】
2005148901.tif 000027
【図２６】
2005148901.tif 000028
【図２７】
2005148901.tif 000029
【図２８】
2005148901.tif 000030
【図２９】
2005148901.tif 000031
【図３０】
2005148901.tif 000032
【図３１】
2005148901.tif 000033
【図３２】
2005148901.tif 000034
【図３３】
2005148901.tif 000035