(57)【要約】【課題】プログラム処理時間推定方法において、科学技術計算、設計解析シミュレーションなどのような処理量が大きく変化する場合においても処理時間を推定できるようにする。【解決手段】科学技術計算、設計解析シミュレーションなどを行うコンピュータシステムを用いて次の手順で処理時間を推定する。入力された内容をチェックし、処理時間に影響するいくつかのキーデータをソフトウェア毎に定義し、実行を完了したジョブのコマンド、入力データ、実行時間などを登録しておき、これと実行ずみのデータとを比較して類似の程度を数値で算出し、登録されたデータを検索し、入力データの内容とジョブ実行データベースの内容とを比較して推定処理時間を算出し、入力データの内容と検索されたデータの内容についてソフトウェアデータベース５１０に定義されているキーデータ同士の比較を行い、類似率が最も高いデータに基づいて入力データの処理に要する時間を処理時間算出手段４１０により推定する。【選択図】  図１
2004258705.tif 000002
【特許請求の範囲】
【請求項１】
科学技術計算、設計解析シミュレーションなどを行うコンピュータシステムを用いて行うプログラム処理時間推定方法において、
入力されたコマンドや入力データの内容を入力ジョブチェック手段によりチェックし、
処理時間に影響するいくつかのキーデータをソフトウェア毎にソフトウェアデータベースに定義し、
実行を完了したジョブのコマンド、入力データ、実行時間などをジョブ実行データベースに登録し、
前記コマンドや入力データと前記ジョブ実行データベースに登録されている既に実行ずみのデータとを比較して、内容がどの程度類似しているかを類似率算出手段により数値で算出し、
前記ジョブ実行データベースからデータを類似データ検索手段により検索し、
前記入力データの内容と、前記類似データ検索手段により検索されたデータの内容について、前記ソフトウェアデータベースに定義されているキーデータ同士の比較を行い、類似率が最も高いデータに基づいて入力データの処理に要する時間を処理時間算出手段により算出する
ことを特徴とするプログラム処理時間推定方法。
【請求項２】
請求項１に記載のプログラム処理時間推定方法において、ハードウェアの仕様をまとめたハードウェアデータベースのデータからハードウェアの性能差を算出し、これに基づいて異なる機種のコンピュータによる処理時間を推定するプログラム処理時間推定方法。
【請求項３】
請求項１または請求項２に記載のプログラム処理時間推定方法において、計算処理を実行する毎に入力データとともに実行時間を前記ジョブ実行データベースに蓄積し、処理時間推定に必要な類似データとして用いるプログラム処理時間推定方法。
【請求項４】
請求項１乃至請求項３の何れかに記載のプログラム処理時間推定方法において、ソフトウェア毎に用意されたサンプルデータを用いて１種類以上のコンピュータでベンチマークを行い、この結果をベンチマークデータベースに登録し、前記入力データと前記ベンチマークに使用したサンプルデータとの比較を行い、機種毎にベンチマークに要した時間をベースにして入力データの処理に要する時間を推定するプログラム処理時間推定方法。
【請求項５】
科学技術計算、設計解析シミュレーションなどの処理時間を推定するプログラム処理時間推定システムにおいて、
入力されたコマンドや入力データの内容をチェックする入力ジョブチェック手段と、
処理時間に影響するいくつかのキーデータをソフトウェア毎に定義するソフトウェアデータベースと、
実行を完了したジョブのコマンド、入力データ、実行時間などを登録するジョブ実行データベースと、
前記コマンドや入力データと前記ジョブ実行データベースに登録されている既に実行ずみのデータとを比較して、内容がどの程度類似しているかを数値で算出する類似率算出手段と、
前記ジョブ実行データベースからデータを検索する類似データ検索手段と、
前記入力データの内容および前記類似データ検索手段により検索されたデータの内容について、前記ソフトウェアデータベースに定義されているキーデータ同士の比較を行い、類似率が最も高いデータに基づいて入力データの処理に要する時間を算出する処理時間算出手段とを備えた
ことを特徴とするプログラム処理時間推定システム。
【請求項６】
請求項５に記載のプログラム処理時間推定システムにおいて、計算処理を実行する毎に入力データとともに実行時間を前記ジョブ実行データベースに蓄積し、処理時間推定に必要な類似データとして用いるように構成したことを可能とするプログラム処理時間推定システム。
【請求項７】
科学技術計算、設計解析シミュレーションなどのプログラム処理時間を推定するためのコンピュータに、
入力されたコマンドや入力データの内容を入力ジョブチェック手段によりチェックする手順と、
処理時間に影響するいくつかのキーデータをソフトウェア毎にソフトウェアデータベースに定義する手順と、
実行を完了したジョブのコマンド、入力データ、実行時間などをジョブ実行データベースに登録する手順と、
前記コマンドや入力データと前記ジョブ実行データベースに登録されている既に実行ずみのデータとを比較して、内容がどの程度類似しているかを類似率算出手段により数値で算出する手順と、
前記ジョブ実行データベースからデータを類似データ検索手段により検索し、
前記入力データの内容および前記類似データ検索手段により検索されたデータの内容について、前記ソフトウェアデータベースに定義されているキーデータ同士の比較を行い、類似率が最も高いデータに基づいて入力データの処理に要する時間を処理時間算出手段により推定する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム処理時間推定方法に係り、特に科学技術計算、設計解析シミュレーションを行うコンピュータシステムを用いて計算処理に要する時間を推定するプログラム処理時間推定方法に関する。
【０００２】
【従来の技術】
コンピュ−タによる処理にかかる時間を推定する従来技術としては、特開平９−３０５５５６号公報（特許文献１）に記載されている技術がある。この従来技術では、データ処理の処理データ件数を含むＪＣＬ（ジョブ制御言語）と処理時間を履歴として保存しておき、データ件数と処理時間から１件あたりの処理時間を算出し、新たに投入されたＪＣＬより取り出したデータ件数に１件あたりの処理時間を乗ずることにより処理時間を推定する。
【０００３】
【特許文献１】
特開平９−３０５５５６号公報
【０００４】
【発明が解決しようとする課題】
コンピュ−タシステムで多くのジョブを効率よく実行させるためには、スケジューリングが重要であるが、一般に科学技術計算、設計解析シミュレーションなどでは、計算対象のモデル、解法、計算条件などにより処理内容が異なり、従来技術で処理時間を推定することが困難である。解法に収束計算を含む場合の収束の度合い、プログラムとハードウェアの組み合わせによっても処理時間が異なることがある。また、これらの技術計算を計算サーバで行う場合には多種多様なプログラムが実行されることが多く、ある一つの方法が特定のプログラムに対しては高精度な推定を行えても、別のプログラムで同様な精度で推定できるとは限らない。このため、高精度に処理時間を推定するためにはプログラム毎にその特性を考慮しながら、推定方法を個別に検討しなければならない。しかし、ハードウェア、ソフトウェアが急速に進化していく中では、個々のプログラム毎にこのような推定方法を検討していくことはコスト面も含めて極めて困難である。
【０００５】
本発明の目的は、科学技術計算、設計解析シミュレーションなどのような処理量が大きく変化する場合においても処理時間を高精度に推定できるとともに、ハードウェア、ソフトウェアの異なる環境やその変化などに対して柔軟に対応できるプログラム処理時間推定方法を提供することにある。
【０００６】
本発明の別の目的は、科学技術計算、設計解析シミュレーションなどのような処理量が大きく変化する場合においても処理時間を推定できるとともに、ユーザが手間をかけることなく自動的に推定精度を向上させることができるプログラム処理時間推定方法を提供することにある。
【０００７】
【課題を解決するための手段】
上述した目的を達成するために、本発明は、科学技術計算、設計解析シミュレーションなどを行うコンピュータシステムを用いて行うプログラム処理時間推定方法において、入力されたコマンドや入力データの内容を入力ジョブチェック手段によりチェックし、処理時間に影響するいくつかのキーデータをソフトウェア毎にソフトウェアデータベースに定義し、実行を完了したジョブのコマンド、入力データ、実行時間などをジョブ実行データベースに登録し、前記コマンドや入力データと前記ジョブ実行データベースに登録されている既に実行ずみのデータとを比較して、内容がどの程度類似しているかを類似率算出手段により数値で算出し、前記ジョブ実行データベースからデータを類似データ検索手段により検索し、前記入力データの内容と、前記類似データ検索手段により検索されたデータの内容について、前記ソフトウェアデータベースに定義されているキーデータ同士の比較を行い、類似率が最も高いデータに基づいて入力データの処理に要する時間を処理時間算出手段により算出するようにしたことにある。
【０００８】
また、本発明は、さらに、ハードウェアの仕様をまとめたハードウェアデータベースのデータからハードウェアの性能差を算出し、これに基づいて異なる機種のコンピュータによる処理時間を推定するようにしたことにある。
【０００９】
また、本発明は、さらに、計算処理を実行する毎に入力データとともに実行時間を前記ジョブ実行データベースに蓄積し、処理時間推定に必要な類似データとして用いるようにしたことにある。
【００１０】
また、本発明は、さらに、ソフトウェア毎に用意されたサンプルデータを用いて１種類以上のコンピュータでベンチマークを行い、この結果をベンチマークデータベースに登録し、前記入力データと前記ベンチマークに使用したサンプルデータとの比較を行い、機種毎にベンチマークに要した時間をベースにして入力データの処理に要する時間を推定するようにしたことにある。
【００１１】
【発明の実施の形態】
次に、図１〜図１７を参照して、本発明によるプログラム処理時間推定方法の一実施形態を説明する。本実施形態は、科学技術計算、設計解析シミュレーションなどを行うコンピュータシステムに係る。特に、本実施形態は、計算処理に要する時間を記録済みの既に実行された処理のプログラム名と比較し、入力データを新たに入力されたデータと比較し、記録済みの実際にかかった時間をベースに新たな処理に要する時間を推定するプログラム処理時間推定方法に好適なものである。
【００１２】
図１は本発明による処理時間推定方法の一実施形態の概要を示すブロック図である。処理時間推定システムは、処理時間推定手段２００と、参照・登録のためのデータベース群５１０、６１０、７１０、８１０から構成されている。
【００１３】
ユーザから与えられたジョブ実行要求コマンド１００は、入力ジョブチェック手段２１０により、実行すべきプログラム名、入力データのファイル名、実行時のオプション設定、などに分解される。この入力ジョブチェック手段２１０は、この取り出されたプログラム名をソフトウェアデータベース５１０と照合し、プログラムの処理時間に影響するキーデータ名を取り出し、そのプログラム名と取り出したキーデータ名とを類似率算出手段２５０に渡す。
【００１４】
類似率算出手段２５０は、データ検索手段３５０を用いて、渡されたプログラム名およびキーデータ名に基づいて、ジョブ実行データベース６１０を参照し、データフォーマットおよびキーデータの値が類似しているデータファイルを検索する。
【００１５】
処理時間算出手段４１０は、検索されたデータファイルが入力データとして実行されたときのジョブの実行データを取り出し、その処理時間をベースにユーザから与えられた入力ジョブの処理時間を推定算出する。
【００１６】
システム設定パラメータ９１０は、本実施形態による処理時間推定の処理において、一連の処理の中では定数であるが、ユーザや実行環境に合わせて変更する可能性のあるデータを定義しておくためのものである。
【００１７】
ベンチマークデータベース７１０、ハードウェアデータベース８１０は、推定精度を高める処理において参照するためのデータベースである。検索されたデータファイルのジョブが実行されたホストとユーザの入力ジョブを実行するホストとが異なる場合、ベンチマークデータベース７１０またはハードウェアデータベース８１０を参照し、ホスト毎の性能差を係数として推定時間に補正を加える。これによって、推定精度を高めることができる。ここで、ホストとは、ＰＣ（パーソナルコンピュータ）、ワークステーション、サーバなど、ネットワーク上で識別するためにつけられたホスト名で管理されるコンピュータ機器をさす。これらを用いた推定処理については、詳細を後述する。
【００１８】
図２は、入力ジョブチェック手段の詳細を示す図である。入力ジョブチェック手段２１０は、プログラム名取出し２１１、キーデータ選定２１２、キーデータ取出し２１３、チェック表作成２１４の４つの構成要素を備えている。
【００１９】
プログラム名取出し２１１は、ユーザから与えられたジョブ実行要求コマンド１００から、実行すべきプログラム名を取り出す。このプログラム名は、以降の処理における検索の一つのキーワードとして用いられる。キーデータ選定２１２は、取り出したプログラム名を用いてソフトウェアデータベース５１０を検索し、処理時間に影響するキーデータの名称を取り出す。キーデータ取出し２１３は、キーデータ選定２１２が取り出したキーデータの名称を用いて、入力データファイル１１０より、キーデータの名称に相当するデータの値を取り出す。チェック表作成２１４は、以上の処理で取り出した各種のデータを含む形で、処理時間推定の処理で使用する管理データを作成する。この管理データは、類似率算出手段２５０、ＤＢ登録手段３１０、処理時間４１０に渡される。
【００２０】
図３はソフトウェアデータベース５１０の登録単位を示したものである。このソフトウェアデータベース５１０は、最初に、プログラム名５１１、キーデータ数５１２があり、この後ろにそれぞれのキーデータの名称、型が対になって並ぶようになっている（５１３、５１４、５１５、５１６、・・・）。
【００２１】
ここで、キーデータの型５１３、５１５、・・・は文字型、整数型、実数型などである。文字型はプログラム内部で区分けされる処理の判別などに利用される種類のものである。例えば、構造解析プログラムにおける、応力解析、固有値解析、熱解析、などである。整数型は、有限要素法を用いた解析プログラムにおける、解析モデルの節点数や要素数などである。実数型は、材料定数や境界条件など、実数で与えるデータである。キーワードの個数はＭ＋１個としている。Ｍは、使用するプログラムの種類に応じて、設定されるべき数字である。例えば、使用するプログラム中、最も多いキーデータの数が８個である場合、Ｍは７としておけばよい。
【００２２】
図４はソフトウェアデータベース５１０の具体例を示したものである。ここでは、有限要素法による構造解析プログラム、流体解析プログラム、電磁場解析プログラムの３種類を想定し、それぞれのプログラム名を「ｓｔｒｕｃｔ」、「ｆｌｕｉｄ」、「ｅｍ−ｆｉｅｌｄ」と仮定している。
【００２３】
そして、プログラム名５１１には「ｓｔｒｕｃｔ」、「ｆｌｕｉｄ」、「ｅｍ−ｆｉｅｌｄ」のどれかが入れられる。構造解析プログラムｓｔｒｕｃｔには、３種類の解析モードがあり、入力データで、「ｓｔｒｅｓｓ」、「ｄｙｎａｍｉｃ」、「ｔｈｅｒｍａｌ」を指定するものとする。ｓｔｒｅｓｓ解析モードでは節点数、要素数、要素タイプが処理時間に影響し、ｄｙｎａｍｉｃモードでは詳細な解析タイプ、節点数、要素数、要素タイプが処理時間に影響し、ｔｈｅｒｍａｌモードでは節点数、要素数、要素タイプ、解析ステップ数が処理時間に影響するものとする。解析モードは文字型で、節点数や要素数などは整数型で指定されるとする。
【００２４】
このような場合、プログラム名５１１に「ｓｔｒｕｃｔ」が入っている登録単位が３セットあり、解析モードが「ｓｔｒｅｓｓ」の場合はキーデータ数が４、「ｄｙｎａｍｉｃ」の場合はキーデータ数が５、「ｔｈｅｒｍａｌ」の場合はキーデータ数が５となる。プログラムによって解析モードを複数備えているものや単一のものなどがあるため、解析モードはキーデータのひとつとして扱う。したがって、キーデータ数５１２の後ろに、キーデータ０の型５１３として「ｃｈａｒ」が入れられ、この後ろに名称５１４として、「ｓｔｒｅｓｓ」、「ｄｙｎａｍｉｃ」、「ｔｈｅｒｍａｌ」が入れられる。
【００２５】
さらに、この後ろに節点数を示す「ｎｏｄｅｓ」、要素数を示す「ｅｌｅｍｅｎｔｓ」、要素タイプを示す「ｅｌｍ＿ｔｙｐｅ」、ステップ数を示す「ｓｔｅｐ」などのキーデータが入る（５１５、５１６、・・・）。キーデータの数が、登録単位の最大キーデータ数、すなわち、図３におけるＭ＋１より小さい場合、残りのキーデータのエリアには、型として「ｃｈａｒ」、内容として「ＮＵＬＬコード」の組み合わせ、または、型として「ｉｎｔ」、内容として「０」の組み合わせなどを入れておく。
【００２６】
次に、図５を用いて類似率算出手段２５０を説明する。類似率算出手段２５０は、プログラム名比較２５１、キーデータ比較２５２、ファイル名比較２５３、ファイル更新日時比較２５４の構成要素を備えて構成されている。この類似率算出手段２５０は、それぞれの一致性、類似性などを数値に変換し、類似率として定量化する。
【００２７】
プログラム名比較２５１は、プログラム名取出し２１１により取り出されたプログラム名と、ジョブ実行データベース６１０に登録されている実行済みのジョブのプログラム名とを比較し、一致するか否かを判定する。判定は論理的なＴＲＵＥ、ＦＡＬＳＥ、または演算にも利用可能な整数の１、０を用いて行う。
【００２８】
キーデータ比較２５２は、ソフトウェアデータベース５１０から抽出したキーデータについて、ジョブ実行データベース６１０の中からプログラム名が一致するものに対して、各キーワードに関して除算などにより係数を算出する。キーデータが文字型の場合は、一致するか否かを判定する。
【００２９】
ファイル名比較２５３は、プログラム名が一致するものについて、入力データのファイル名が、どの程度同じ文字列を含むかを数値化する。ファイル更新日時比較２５４は、入力データのファイルが、どの程度近い日時で作成、または更新されたかを数値化する。一般に、科学技術計算を行う場合、一度の計算のみで目的を達成することはほとんどなく、同じモデルについて、いろいろと解析条件を変えたり、モデルの形状を少しずつ変えたりしながら、何回かの計算を行うことが多い。このため、入力データのファイル名に通し番号がつけられたり、ファイルの作成日時が非常に近かったりする傾向が強い。ファイル名比較２５３、ファイル更新日時比較２５４はこのような傾向を数値化することにより、実行されるジョブの類似性の判定精度を高めるために行う。
【００３０】
図６はファイル名比較２５３の数値化の例を示したものである。２つのファイルがあり、それぞれファイル名が「ｔｅｓｔ＿ｄａｔａ０１１．ｄａｔ」（２５５）、「ｔｅｓｔ＿ｄａｔａ０１２．ｄａｔ」（２５６）であるとする。ここで最後の部分の「ｄａｔ」は拡張子であり、同じ種類のファイルには特定の文字列が決めれているものとする。ファイル名としてユーザが設定できるのは拡張子の前の部分である。この例の場合、ファイル名で異なる部分は拡張子の直前の「１」と「２」である。そこで、まず一致率として、ユーザが設定可能なファイル名の部分の文字数に対する２つのファイル名で一致している文字列の長さを定義する。例ではファイル名の長さが１２、一致部分が１１であるため、１１÷１２が一致率となる。
【００３１】
次に、一致率を横軸に、一致係数を縦軸にとった一致関数２５８を用意する。前記で求めた一致率より、一致関数２５８から一致係数を得る。一致関数２５８は任意に設定可能であるが、通し番号でない部分が一致するものは同じ解析モデルである率が高いため、一致率が高いほど一致係数を大きくするようなもののほうがよく、類似性の精度を高めるのに有効である。
【００３２】
図７は、ファイル更新日時比較２５４の数値化の例を示したものである。２つのファイルの更新日時がそれぞれ、２００２年１２月１０日１４時３０分１４秒（２６１）、２００２年１２月１３日１５時４０分３２秒（２６２）であるとする。簡単のため、時のオーダで計算することにすると、２つのファイルは７３時間の差となる。あるユーザのひとまとまりの仕事がおおよそ１ヶ月で区切りがつくとした場合、これを基準時間とし、この範囲でどれだけ近い時に作成されたかを近似率２６３として（基準時間―更新時間差）÷基準時間で算出する。さらに、横軸を近似率、縦軸を近似係数とした近似関数２６４を用意し、近似率２６３から近似係数２６４に変換する。近似関数２６４は、前記一致関数２５８と同様、更新日時が近ければ近いほど、同じ種類の解析である可能性が高いため、近似率が高いほど一致係数が高いもののほうが、類似性の精度を高めるのに有効である。
【００３３】
図８を用いて、処理時間推定の処理で使用する管理データについて説明する。図８は作業用の表の登録単位を示したものである。入力ジョブ毎にこの単位で管理データが作成され、ジョブ実行データベース６１０に登録される。
【００３４】
内容は、プログラム名６１１、キーデータ数６１２、キーデータの名称とその値のセット（６１３、６１４、・・・、６２０）、推定処理時間の格納エリア６２１、実処理時間の格納エリア６２２、ジョブを実行したホストのホスト名格納エリア６２３、ジョブの実行の終了状態コード格納エリア６２４、入力ファイル数６２５、入力ファイル名（６２６、６２７、・・・、６２８）、類似データとして選定された時に設定するフラグ６２９、類似データとして選定された回数６３０、類似データとして選定されはしなかったが選定の候補となった回数６３１、を含む。
【００３５】
ここで、プログラム名６１１、キーデータ数６１２、キーデータ名称および値（６１３、・・・、６２０）、入力ファイル数６２５、入力ファイル名（６２６、・・・、６２８）は、入力ジョブチェック手段２１０がジョブ実行要求コマンド１００をチェックした段階で登録される。推定処理時間６２１、実行ホスト６２３はジョブ実行に要する処理時間の推定処理により、時間が算出された時点で登録される。推定処理後に、実行ホストに変更が生じた場合は、変更時点でこれらのデータが更新される。実処理時間６２２、実行終了状態６２４はジョブの実行が完了した時点でデータが登録される。類似データ選定フラグ６２９、類似データ選定累積回数６３０、類似データ候補累積回数６３１は、別のジョブ投入時に同様な処理の過程において選定された場合に登録される。
【００３６】
図９を用いて、類似データ検索手段３５０を説明する。類似データ検索手段３５０は、ジョブ実行データベース６１０から登録されているジョブの実行に関するデータを取り出すデータ取出し３５１、前記類似率算出手段２５０で算出される類似率の比較を行う類似率比較３５２、類似率によって順位をつける類似データソート３５３、類似データソート３５３の結果により、類似データを選び出す類似データ選定３５４の構成要素を備えて構成される。選定されたデータに対しては、類似選定フラグ６２９をセットし、類似データ選定累積回数６３０を１増加させる。類似データソート３５３の上位に入ったデータに対しては、選定されたものも含めて、類似データ候補累積回数６３１を１増加させる。上位何番目までを候補範囲とするかは、システム設定パラメータ９１０に記述しておく。
【００３７】
次に図１０を用いて処理時間推定の手順を説明する。まず、係数に１を設定する（４１１）。キーデータの中から、最初の数値型のキーデータを取出し（４１２）、入力データと、選定されたデータを比較し、キーデータ係数を算出する（４１３）。数値型とは、整数型または実数型をさす。キーデータ係数算出の具体例については、図１１で説明する。算出されたキーデータ係数を最初に設定した係数に乗じ、結果を新しい係数とする（４１４）。このような処理をすべての数値キーデータについて繰り返し（４１５）、最終的に得られた係数を、類似データの処理にかかった実処理時間に乗じて、入力データの処理にかかると考えられる推定処理時間とする（４１６）。
【００３８】
図１１を用いて、キーデータ係数算出の具体例を説明する。まず、キーデータの特性に合わせて関数を設定する（４２１）。例えば、処理時間がキーデータの代数関数で近似できる場合は、ＡＸ２＋ＢＸ＋Ｃ、指数関数近似の場合はＸＡ、ＡＸなどである（４２５、４２６、４２７）。ここで、Ｘはキーデータ、Ａ、Ｂ、Ｃは未知係数である。未知係数は類似データ候補のキーデータと実処理時間より求められる（４２２）。類似データ候補の数が未知係数決定に必要な数より多い場合には、類似率の高いものを優先する、またはいくつか算出した後に平均をとる、などの方法により決定する（４２３）。決定された未知係数を用いて、処理時間を推定し、類似データ候補の実処理時間と算出された推定時間との比を得、類似データ候補についてこの比の平均を得る。これをキーデータ係数とする（４２４）。
【００３９】
以上のような処理により、実際に要した処理時間の記録をベースに、新規ジョブの処理時間を精度よく推定することが可能となる。
【００４０】
次に、ユーザが手間をかけることなく、自動的に推定精度を向上させる方法を説明する。これは、ジョブ実行データベース６１０のデータ登録を自動的に行うものである。図１２を用いてジョブデータベース６１０への登録方法を説明する。ＤＢ登録手段３１０は、プログラム名登録３１１、キーデータ登録３１２、入力データファイル登録・コピー３１３、推定処理時間登録ｋ３１４、実処理時間・ホスト登録３１５、類似データ選定見直し３１６の構成要素を備えて構成される。
【００４１】
プログラム名登録３１１は、プログラム名取出し２１１により得られた実行すべきプログラムの名称をジョブ実行データベース６１０に登録する。プログラム名登録３１１では、ジョブ実行データベース６１０には図８に示したような登録単位で、データの格納エリア追加も行う。他の処理では、ここで確保されたエリアに書き込み処理を行う。キーデータ登録３１２は、キーデータの数、名称、値をデータベースに登録する。入力データファイル登録・コピー３１３は、入力データとなるファイルをジョブ実行データベース６１０にコピーし、このデータベースで管理されるファイル名を入力ファイルのファイル名として登録する。これは入力データのファイルの数だけ行われ、この数も登録される。推定処理時間登録３１４は、処理時間算出手段４１０により算出された時間を登録する。実処理時間・ホスト登録３１５は、プログラム実行完了時に、実際に処理に要した時間、およびプログラムを実行したホストのホスト名を登録する。類似データ見直し３１６は、実処理時間と推定処理時間を比較し、類似データを、選定したものから候補の中の別のものに変えた場合の推定時間を算出し、算出された推定時間が実行前に推定されたものより実処理時間に近い場合に、類似データ選定の変更を行う。変更が生じた場合、ジョブ実行データベース６１０に登録されている類似データ選定フラグ６２９、類似データ選定累積回数６３０の修正も合わせて行う。
ジョブ実行データベースへの登録が自動的に行われるため、処理時間推定に関するユーザの手間はかからず、しかも登録データが増えれば増えるほど、推定精度が向上する。
【００４２】
科学技術計算を行うコンピュータ環境は、必ずしも同じ機種、性能のプロセッサが用意されているわけではなく、また、処理能力増強のために、機種、モデルの入れ替えなどが行われることが多い。このような多機種の環境において、適切な処理時間推定を行うためには、ハードウェアの性能を加味する必要がある。そこで、ハードウェアの性能を考慮し、より精度の高い処理時間推定の方法を用いるようになっている。
【００４３】
図１３はハードウェアの性能を考慮する処理の例を示したものである。類似データ候補から、それを実行したホスト名（４３１）、入力ジョブの実行予定ホスト名（４３２）を取り出しておく。類似データ候補から、プログラム名、解析タイプが一致するデータを検索し（４３３）、先に取り出したホスト名が含まれている場合には（４３４）、実処理時間のデータより、ホストの性能差を算出する（４３５）。含まれていない場合は、ハードウェアデータベース８１０からプロセッサのクロック周波数の値を取り出し（４３６）、クロック周波数の比をホストの性能差と設定する（４３７）。このようにして得られた性能差の数値を用いて、推定された処理時間の補正を行う（４３８）。
【００４４】
ハードウェアベータベース８１０は、図１４に示すように、ホスト名８１１、モデル機種名８１２、モデル型名８１３、プロセッサ数８１４、プロセッサの種類８１５、クロップ周波数８１６のようなデータを含む。このうち、ホスト名８１１、モデル機種名８１２、モデル型名８１３、プロセッサの種類８１５は文字型で、プロセッサの数８１４は整数型で、クロック周波数８１６は整数型または実数型で、それぞれのデータを持つ。
【００４５】
図１５は、実行予定ホストの状態をチェックし、推定の補正を行う処理を示したものである。実行予定ホストのＣＰＵ稼働率を測定し（４４１）、システム設定パラメータ９１０で設定した高負荷稼動率より高いか低いかを判定する（４４２）。ＣＰＵ稼働率が高負荷を示しているときは、別のハードウェアを選定し（４４３）、処理時間の推定を再実行（４４４）する。ＣＰＵ稼働率が低い場合、および、実行ホストを選択し直した場合、ＣＰＵ稼働率で処理時間の推定を補正する（４４５）。たとえば、ＣＰＵ稼働率が５０％である場合は、０．５で割り、２倍の処理時間を適正な処理時間として設定する。
【００４６】
科学技術計算用のソフトウェアは、その計算アルゴリズムやプログラミングにより、異なるＣＰＵクロック周波数のコンピュータで実行した場合でも、処理時間がクロック周波数にリニアに依存しないことがある。大きく影響を与えるのは、主記憶メモリの搭載量、メモリアクセスのバンド幅、ディスクのアクセス速度、などである。そこで、処理時間推定方法において、実際に使用するプログラムのベンチマークデータ７１０を用意し、この実行結果を参照することにより処理時間の推定精度を高める方法を説明する。
【００４７】
図１６はベンチマークデータベース７１０の登録単位である。プログラム名７１１は、使用するプログラムの名称であり、ユーザが発行するジョブ実行要求コマンド１００の中で指定されるものに相当する。解析タイプ７１２は、前記プログラムが内蔵する解析モードが複数ある場合に、そのどの解析モードかを記述する。モデルデータ名７１３は、ベンチマークで使用する解析モデルの入力データファイルを指定する。並列化係数７１４は、ベンチマーク実行時の並列度を指定する。プログラムが並列計算の機能を有しない場合は、１となる。標準ホストのホスト名７１５は、ベンチマークを実行したホストの一つを指定する。比較ホスト１のホスト名７１６は、標準ホスト以外のホストであり、比較ホスト１の相対性能７１７は、標準ホストに対する比較ホスト１の相対性能を記述する。相対性能は、比較ホスト１での実行時間を標準ホストでの実行時間で割った結果とする。比較ホスト２のホスト名７１８、比較ホスト２の相対性能７１９も、比較ホスト１のところと同様である。ベンチマークを実施したホストについて、順次データを追加しておく。
【００４８】
次に、図１７を用いて、ベンチマークデータベース７１０を参照することによる処理時間推定の補正処理の手順を説明する。まず、ジョブ実行データベース６１０より実行予定ホストのホスト名を取り出す（７３１）。ベンチマークデータベース７１０より、プログラム名、解析タイプが一致するベンチマークデータを検索し（７３２）、実行予定ホストが標準ホスト、または比較ホストに含まれているかをチェックする。実行予定ホストがどちらかに含まれている場合、ベンチマークデータベース７１０のデータを利用して処理時間を推定する（７３４）。実行予定ホストと標準ホストが同一の場合は相対性能を１とし、実行予定ホストが比較ホストのひとつである場合はその相対性能を取出し（７３５）、実処理時間を相対性能で補正し、推定処理時間とする（７３６）。一方、実行予定ホストが標準ホスト、比較ホストのどちらにも含まれていない場合は、参照できるデータがないことになるため、上述したような処理時間の推定を行い（７３７）、推定精度を高めるためにＣＰＵのクロック周波数比を相対性能とし（７３８）、推定推定時間を補正する（７３６）。以上のような手順により、処理時間を精度よく推定することが可能となる。
【００４９】
本実施形態によれば、科学技術計算のような、処理の状況、内容によって処理量が大きく変化する場合においても、プログラムの機能、特性、ハードウェア環境を考慮した精度の高い処理時間推定が可能となる。また、データベースへの登録を自動的に行う機能により、ユーザは処理時間推定のための処理を一切考慮する必要なく、投入したジョブの実行にどの程度の時間を要するかを把握できる。さらには、処理時間を精度よく推定できることにより、計算機センタのような多くのジョブを複数のコンピュータで処理する場合、クラスタシステムなどでそれぞれの処理が連携しながら動作するようなプログラムを実行する場合、など、多くのジョブを最も効率のよい状態でスケジューリングすることが可能となる。
【００５０】
なお、本発明には次に述べる構成も含まれる。本発明は、科学技術計算、設計解析シミュレーションを行うコンピュータシステムにおいて、入力されたコマンドや入力データの内容をチェックする入力ジョブチェック手段と、処理時間に影響するいくつかのキーデータをソフトウェア毎に定義したソフトウェアデータベースと、実行を完了したジョブのコマンド、入力データ、実行時間などを登録したジョブ実行データベースと、前記コマンドや入力データとジョブ実行データベースに登録されている既に実行ずみのデータとを比較し、内容がどの程度類似しているかを数値で算出する類似率算出手段と、ジョブ実行データベースからデータを検索する類似データ検索手段と、入力データの内容とジョブ実行データベースの内容とを比較することにより推定処理時間を算出する処理時間算出手段と、を有し、前記入力データの内容と、前記類似データ検索手段により検索されたデータの内容について、前記ソフトウェアデータベースに定義されているキーデータ同士の比較を行い、類似率が最も高いデータと比較し、処理量がどの程度増加、または減少するかを算出し、前記類似率が最も高いデータの処理に要した実行時間をベースに、処理量の増加、または減少の割合を加えて、入力データの処理に要する時間を推定するようになっている。
【００５１】
また、推定精度を高めるために、入力されたコマンド、入力データ、処理に要した時間をジョブ実行データベースに登録するデータベース登録手段を備え、計算処理を実行する毎に、入力データとともに実行時間が自動的に蓄積され、処理時間推定に必要な類似データを、より近いものに絞り込むことを可能としている。
【００５２】
また、異なる機種の混在環境に対応するために、ハードウェアの仕様をまとめたハードウェアデータベースを備え、仕様のデータからハードウェアの性能差を算出し、異なる機種のコンピュータによる処理においても、処理時間を推定することを可能としている。
【００５３】
また、ソフトウェアとハードウェアの組み合わせによってソフトウェア毎にサンプルデータを用意し、このサンプルデータを用いて１種類以上のコンピュータでベンチマークを行い、この結果を登録したベンチマークデータベースを備え、入力データとベンチマークに使用したサンプルデータとの比較を行い、機種毎にベンチマークに要した時間をベースに、入力データの処理に要する時間を推定するようになっている。
【００５４】
【発明の効果】
以上の説明から明らかなように、本発明によれば、科学技術計算、設計解析シミュレーションなどのような処理量が大きく変化する場合においても処理時間を高精度に推定できるとともに、ハードウェア、ソフトウェアの異なる環境やその変化などに対して柔軟に対応できるプログラム処理時間推定方法を得ることができる。
【００５５】
また、本発明によれば、科学技術計算、設計解析シミュレーションなどのような処理量が大きく変化する場合においても処理時間を推定できるとともに、ユーザが手間をかけることなく自動的に推定精度を向上させることができるプログラム処理時間推定方法を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態による処理時間推定方法の概要を示すブロック図である。
【図２】本発明の一実施形態による入力ジョブチェック手段を示す図である。
【図３】本発明の一実施形態によるソフトウェアデータベースの登録単位を示す図である。
【図４】本発明の一実施形態によるソフトウェアデータベースの具体例を示す図である。
【図５】本発明の一実施形態による類似率算出手段を示す図である。
【図６】本発明の一実施形態によるファイル名比較の方法を示す図である。
【図７】本発明の一実施形態によるファイル更新日時比較の方法を示す図である。
【図８】本発明の一実施形態による作業用の表の登録単位を示す図である。
【図９】本発明の一実施形態によるデータ検索手段を示す図である。
【図１０】本発明の一実施形態による処理時間推定の手順を示す図である。
【図１１】本発明の一実施形態によるキーデータ係数算出の方法を示す図である。
【図１２】本発明の一実施形態によるジョブデータベースへの登録方法を示す図である。
【図１３】本発明の一実施形態によるハードウェアの性能を考慮する処理を示す図である。
【図１４】本発明によるハードウェアベータベースの登録単位を示す図である。
【図１５】本発明の一実施形態による実行予定ホストの状態による推定の補正を行う処理を示す図である。
【図１６】本発明の一実施形態によるベンチマークデータベースの登録単位を示す図である。
【図１７】本発明の一実施形態によるベンチマークデータベースによる処理時間推定の補正を行う処理を示す図である。
【符号の説明】
１００…ジョブ実行要求コマンド、１１０…入力データファイル、２００…処理時間推定手段、２１０…入力ジョブチェック手段、２１１…プログラム名取出し、２１２…キーデータ選定、２１３…キーデータ取出し、２１４…チェック表作成、２５０…類似率算出手段、２５１…プログラム名比較、２５２…キーデータ比較、２５３…ファイル名比較、２５４…ファイル更新日時比較、２５５、２５６…ファイル名、２５７…ファイル名一致率、２５８…ファイル名一致関数、２５９…ファイル一致係数、２６１、２６２…ファイル更新時刻、２６３…更新時刻近似率、２６４…更新時刻近似関数、２６５…更新時刻近似係数、３１０…ＤＢ登録手段、３１１…プログラム名登録、３１２…キーデータ登録、３１３…入力データ登録、３１４…推定処理時間登録、３１５…実処理時間・ホスト登録、３１６…類似データ選定見直し、３５０…データ検索手段、３５１…データ取出し、３５２…類似率比較、３５３…類似データソート、３５４…類似データ選定、４１０…処理時間算出手段、４１１…係数初期化、４１２…キーデータ取出し、４１３…キーデータ係数算出、４１４…係数算出、４１５…繰り返し判定、４１６…推定処理時間算出、４１７…キーデータ係数、４２１…関数設定、４２２…未知係数算出、４２３…未知係数平均値算出、４２４…キーデータ係数算出、４２５…関数例１（代数型）、４２６…関数例２（指数型）、４２７…関数例３（指数型）、４３１…類似データ実行ホスト名取出し、４３２…実行予定ホスト名取出し、４３３…データ検索、４３４…ホスト名判定、４３５…性能比算出、４３６…クロック周波数取出し、４３７…性能比設定、４３８…推定処理時間算出、４４１…ＣＰＵ稼働率取出し、４４２…稼働率判定、４４３…別ハード選択、４４４…知り時間推定再実行、４４５…推定処理時間算出、５１０…ソフトウェアデータベース、５１１…プログラム名、５１２…キーデータ数、５１３、５１５、・・・、５２５…キーデータ０、１、・・・、Ｍの型、５１４、５１６、・・・、５２６…キーデータ０、１、・・・、Ｍの名称、６１０…ジョブ実行データベース、６１１…プログラム名、６１２…キーデータ数、６１３、６１５、６１９…キーデータ０、１、Ｍの名称、６１４、６１６、６２０…キーデータ０、１、Ｍの値、６２１…推定処理時間、６２２…実処理時間、６２３…実行ホスト、６２４…実行終了状態、６２５…入力ファイル数、６２６、６２７、６２８…入力ファイル０、１、Ｎのファイル名、６２９…類似データ選定フラグ、６３０…類似データ選定累積回数、６３１…類似データ候補累積回数、７１０…ベンチマークデータベース、７１１…プログラム名、７１２…解析タイプ、７１３…モデルデータ名、７１４…並列化係数、７１５…標準ホスト名、７１６、７１８…比較ホスト名、７１７、７１９…比較ホストの相対性能、７３１…ホスト名、プログラム名、解析タイプ取出し、７３２…データ検索、７３３…ホスト名判定、７３４…処理時間推定（ベンチマークデータベース利用）、７３５…ホスト相対性能取出し、７３６…推定処理時間算出、７３７…処理時間推定（ジョブ実行データベース利用）、７３８…ホスト性能比設定、８１０…ハードウェアデータベース、８１１…ホスト名、８１２…モデル機種名、８１３…モデル型名、８１４…プロセッサ数、８１５…プロセッサの種類、８１６…クロック周波数、９１０…システム設定パラメータ。
【図１】
2004258705.tif 000003
【図２】
2004258705.tif 000004
【図３】
2004258705.tif 000005
【図４】
2004258705.tif 000006
【図５】
2004258705.tif 000007
【図６】
2004258705.tif 000008
【図７】
2004258705.tif 000009
【図８】
2004258705.tif 000010
【図９】
2004258705.tif 000011
【図１０】
2004258705.tif 000012
【図１１】
2004258705.tif 000013
【図１２】
2004258705.tif 000014
【図１３】
2004258705.tif 000015
【図１４】
2004258705.tif 000016
【図１５】
2004258705.tif 000017
【図１６】
2004258705.tif 000018
【図１７】
2004258705.tif 000019