(57)【特許請求の範囲】
【請求項１】
計算要求を要求元から受け付けて、要求された計算を行い、その計算結果を要求元に回答する計算機システムにおいて、
計算要求およびその計算結果を記憶しておく記憶手段と、
前記記憶手段を検索する検索手段と、
該検索手段の検索時間を予測する検索時間予測手段と、
前記計算を行う計算手段と、
前記計算要求に応じた前記計算手段の計算時間を予測する計算時間予測手段と、
前記検索時間予測手段により予測された検索時間と前記計算時間予測手段により予測された計算時間の大小を比較する比較手段と、
該比較手段の結果、検索時間が小さい場合には、前記要求元から受け付けた計算要求に対応する計算結果の検索を前記検索手段に指示し、計算時間が小さい場合には、前記要求元から受け付けた計算要求の計算を前記計算手段に実行させる制御手段と
を備えたことを特徴とする計算システム。
【請求項２】
請求項１に記載の計算システムにおいて、
検索手段による検索の結果、要求元から受け取った計算要求に対応する計算結果が、前記記憶手段に記憶されていない場合には、前記制御手段は、前記計算手段に計算を指示することを特徴とする計算システム。
【請求項３】
請求項１に記載の計算システムにおいて、
前記記憶手段は複数の記憶手段で構成され、当該複数の記憶手段は分散配置されることを特徴とする計算システム。
【請求項４】
請求項３に記載の計算システムにおいて、
前記複数の記憶手段は通信ネットワークを介して分散配置されることを特徴とする計算システム。
【請求項５】
請求項４に記載の計算システムにおいて、
前記複数の記憶手段と前記計算システム本体との間の通信時間を監視する手段をさらに備えたことを特徴とする計算システム。
【請求項６】
請求項１に記載の計算システムにおいて、
前記計算手段は複数の計算手段で構成され、前記計算は少なくとも１以上の計算手段により実行されることを特徴とする計算システム。
【請求項７】
請求項６に記載の計算システムにおいて、
前記複数の計算手段は通信ネットワークを介して分散配置されることを特徴とする計算システム。
【請求項８】
請求項７に記載の計算システムにおいて、
前記複数の計算手段と前記計算システム本体との間の通信時間を監視する手段をさらに備えたことを特徴とする計算システム。
【請求項９】
計算手段および該計算手段に対する計算要求および前記計算手段の計算結果を記憶している記憶手段を有する計算機システムにおいて、要求元から受け付けた計算要求に対する計算結果を要求元に送信するための計算結果提供方法であって、前記計算システムは、さらに検索手段、検索時間予測手段、計算時間予測手段、比較手段および制御手段を有し、
前記検索手段が前記記憶手段を検索する検索ステップと、
前記検索時間予測手段が該検索ステップでの検索時間を予測する検索時間予測ステップと、
前記計算手段が前記計算を行う計算ステップと、
前記計算時間予測手段が前記計算要求に応じた前記計算ステップの計算時間を予測する計算時間予測ステップと、
前記比較手段が、前記検索時間予測ステップにより予測された検索時間と前記計算時間予測ステップにより予測された計算時間の大小を比較する比較ステップと、
前記制御手段が、該比較ステップの結果、検索時間が小さい場合には、前記要求元から受け付けた計算要求に対応する計算結果の検索を前記検索ステップにより実行させ、計算時間が小さい場合には、前記要求元から受け付けた計算要求の計算を前記計算ステップにより実行させる制御ステップと
を備えたことを特徴とする計算結果提供方法。
【請求項１０】
請求項９に記載の計算結果提供方法において、
検索ステップによる検索の結果、要求元から受け取った計算要求に対応する計算結果が、前記記憶ステップで記憶されていない場合には、前記制御ステップでは、前記計算ステップによる計算を実行させることを特徴とする計算結果提供方法。
【請求項１１】
請求項９に記載の計算結果提供方法において、
前記記憶手段は複数の記憶手段で構成され、当該複数の記憶手段は分散配置されることを特徴とする計算結果提供方法。
【請求項１２】
請求項１１に記載の計算結果提供方法において、
前記複数の記憶手段は通信ネットワークを介して分散配置されることを特徴とする計算結果提供方法。
【請求項１３】
請求項１２に記載の計算結果提供方法において、
前記複数の記憶手段と前記計算システム本体との間の通信時間を監視する手段を前記計算システムがさらに備えたことを特徴とする計算結果提供方法。
【請求項１４】
請求項９に記載の計算結果提供方法において、
前記計算システムは、複数の計算手段を有し、前記計算ステップは複数の計算手段の少なくとも１つにより実行されることを特徴とする計算結果提供方法。
【請求項１５】
請求項１４に記載の計算結果提供方法において、
前記複数の計算手段は通信ネットワークを介して分散配置されることを特徴とする計算結果提供方法。
【請求項１６】
請求項１５に記載の計算結果提供方法において、
前記計算システムは、前記複数の計算手段と前記計算システム本体との間の通信時間を監視する手段をさらに備えたことを特徴とする計算結果提供方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、予め計算要求を受け付けて、その計算結果を要求元に返す計算システムおよび計算結果提供方法に関する。
【０００２】
【従来の技術】
多数の計算機を使用する計算システムでは、計算時間が長くなるので、計算時間を短縮するための提案がいくつかなされている。たとえば、特許第２５１９００５号公報では、各計算機が実行するジョブ（情報処理）をモニター（監視）し、実行ジョブに余裕がある計算機に新規ジョブを実行させるシステムを提案している。
【０００３】
また、データベースに対して頻繁に検索が行われるテーマについては、クエリー（キーワードとも呼ばれる）とその検索結果をキャッシュ（一時記憶すること）し、同じクエリーについての検索要求が入力されたときには、キャッシュしておいた検索結果を検索の要求元に返すことで、検索処理時間の短縮を行うようにしたシステムも提案されている。
【０００４】
【発明が解決しようとする課題】
計算要求により計算を行う計算システムに上述のような計算結果をキャッシュすることを考えた場合に次のような問題が生じる。
【０００５】
キャッシュしておく計算要求と計算結果が増えてくると、計算要求を受けたときに、同一の計算要求について検索する時間が増大する。このため、実際に計算を行ってしまったほうが早い場合がある。
【０００６】
そこで、本発明の目的は、上述のような記憶してある計算結果を検索したほうが処理時間が早いのか、実際に計算を行った方が処理時間が早いのかを判定することができる計算システムおよび計算結果提供方法を提供することにある。
【０００８】
【課題を解決するための手段】
このような目的を達成するために、本発明は、計算要求を要求元から受け付けて、要求された計算を行い、その計算結果を要求元に回答する計算機システムにおいて、計算要求およびその計算結果を記憶しておく記憶手段と、前記記憶手段を検索する検索手段と、該検索手段の検索時間を予測する検索時間予測手段と、前記計算を行う計算手段と、前記計算要求に応じた前記計算手段の計算時間を予測する計算時間予測手段と、前記検索時間予測手段により予測された検索時間と前記計算時間予測手段により予測された計算時間の大小を比較する比較手段と、該比較手段の結果、検索時間が小さい場合には、前記要求元から受け付けた計算要求に対応する計算結果の検索を前記検索手段に指示し、計算時間が小さい場合には、前記要求元から受け付けた計算要求の計算を前記計算手段に実行させる制御手段とを備えたことを特徴とする。
【００１１】
本発明では、検索手段による検索の結果、要求元から受け取った計算要求に対応する計算結果が、前記記憶手段に記憶されていない場合には、前記制御手段は、前記計算手段に計算を指示することを特徴とする。
【００１２】
本発明では、前記記憶手段は複数の記憶手段で構成され、当該複数の記憶手段は分散配置されることを特徴とする。
【００１３】
本発明では、前記複数の記憶手段は通信ネットワークを介して分散配置されることを特徴とする。
【００１４】
本発明では、前記複数の記憶手段と前記計算システム本体との間の通信時間を監視する手段をさらに備えたことを特徴とする。
【００１５】
本発明では、前記計算手段は複数の計算手段で構成され、前記計算は少なくとも１以上の計算手段により実行されることを特徴とする。
【００１６】
本発明では、前記複数の計算手段は通信ネットワークを介して分散配置されることを特徴とする。
【００１７】
本発明では、前記複数の計算手段と前記計算システム本体との間の通信時間を監視する手段をさらに備えたことを特徴とする。
【００１９】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００２０】
（第１の実施形態）
図１は本発明実施形態のシステム構成を示す。図１において、１０はクライアントＰＣ（パーソナルコンピュータ）であり、計算の要求元となる。クライアントＰＣ１０からは計算要求、一例としては、量子化学計算に使用する各種のパラメータのデータあるいは計算条件を入力する。計算要求はクライアントＰＣ１０から後述の計算システムに送られ、計算要求に対する計算結果が計算システムからクライアントＰＣ１０に返される。
【００２１】
本発明に係わる計算システムはＷＥＢサーバ２０、結果データベース（結果ＤＢ３０と略記）、知識ＤＢ４０、計算管理システム５０、推論エンジンとして機能するコンピュータ６０（推論エンジン６０と称する）、複数のスケジューラ７０および複数の計算ノード８０を有する。
【００２２】
ＷＥＢサーバ２０は、複数のクライアントＰＣ１０から計算要求を入力するためのＨＴＭＬ文書（ハイパーテキストマークアップランゲージ文書）および計算結果を表示するためのＨＴＭＬ文書をクライアントＰＣ１０に対して提供する。クライアントＰＣ１０は、上記ＨＴＭＬ文書をブラウザと呼ばれるプログラムを使用して、ＨＴＭＬ文書で規定される文書内容を表示する。
【００２３】
結果ＤＢ３０は、これまでに受け付けた計算要求および計算結果を累積的に記憶する。ただし、同一内容の計算要求については、計算要求者に係わる情報を累積的に記憶し、同一内容の計算要求およびその計算結果は重複的には記憶しない。
【００２４】
知識ＤＢ４０には、計算システムが提供する計算の種類内容に応じた計算所要時間を推論エンジン６０により予測するための各種のデータが記憶されている。データの一例としては、計算ノード８０の性能や計算実績時間などである。
【００２５】
計算管理システム５０は検索時間予測プログラムを有し、結果ＤＢ３０にキャッシュされた計算結果を計算要求元に返したほうが全体の計算処理時間が早いか、実際に計算を行った方が全体の計算処理時間が早いかを判定する。この判定方法については後述する。また、この判定結果に基づいて、結果ＤＢ３０から計算結果を取り出したり、あるいはスケジューラ７０に対して要求された計算の実行を指示する。
【００２６】
推論エンジン６０は知識ＤＢ４０に蓄積された知識データを使用して、計算元から要求された計算に要する計算ノード８０の計算処理時間を予測する。
【００２７】
スケジューラ７０は複数の計算ノード８０、いわゆる並列処理用計算機を管理するコンピュータである。
【００２８】
計算ノード８０は要求された計算の一部あるいは全部を実行するための計算機である。１台または所定数の計算ノードがスケジューラに選択されて量子化学計算が行われる。スケジューラ７０が管理する並列計算機システムはよく知られているので詳細な説明を省略する。
【００２９】
このようなシステム構成において、クライアントＰＣ１０からＷＥＢサーバ２０を介して計算要求を計算管理システム５０が受け取ると、メタスケジューラが結果ＤＢ３０にキャッシュされた計算結果を計算要求元に返したほうが全体の計算処理時間が早いか、実際に計算を行った方が全体の計算処理時間が早いかを判定する。
【００３０】
メタスケジューラは要求された計算内容の計算ノード８０の計算所要時間の予測を推論エンジン６０に対して命じ、検索時間予測プログラムに対しては、結果ＤＢ３０の検索時間の予側を命じる。推論エンジン６０から受け取った予測計算時間と、検索予測プログラムから受け取った予測検索時間とを比較して処理時間が早いほうを選択する。このための判定処理は図３を参照して後述する。
【００３１】
（第２の実施形態）
上述の実施形態では、計算機システムは単体システムで、一箇所に構築されている例であった。計算機システムを分散処理で行う計算機システムの一例を図２に示す。なお、図１と同様の個所には同一の符号を付しており、詳細な説明を省略し、相違点を説明する。
【００３２】
図２において、１１０、１２０、１３０、１４０は同一または異なる通信ネットワークである。通信ネットワークとしてはインターネットのような公衆に一般公開された通信ネットワーク、ＬＡＮや専用回線を使用して、特定の人間のみに公開された通信ネットワーク等を使用することができる。通信ネットワークは有線や無線を問わない。この形態では、結果ＤＢ３０は複数存在する。統合管理システム１００は、計算管理システム５０と複数の結果ＤＢ３０および複数のスケジューラ７０との間の通信実績時間および通信信頼度（通信エラーの回数）をモニター（監視）すると共に管理し、計算管理システム５０からの問い合わせに対して、現在、どの結果ＤＢ３０あるいはスケジューラ７０との通信時間が早いかあるいは信頼度が高いかをアドバイスする。
【００３３】
この形態では量子化学計算処理を有料でクライアントＰＣ１０に提供する。この計算サービスでは、
（１）高速かつ高信頼度での計算（ただし計算料金が最も高い）
（２）普通（計算料金も中程度）レベルの計算
（３）計算時間が長いが高信頼度での計算
（４）計算時間が長く、低信頼度での計算（計算料金が最も安い）
等計算処理内容に応じて料金体系が予め決められている。
【００３４】
クライアントＰＣ１０はＷＥＢサーバ２０から提供されるメニュー選択画面で、上記料金の種類を選択する。
【００３５】
計算管理システム５０は、クライアントＰＣ１０により選択された料金の種類に応じて、結果ＤＢ３０およびスケジューラ７０を選択して計算処理（キャッシュしておいた計算結果を返す処理をも含む）を行う。
【００３６】
第１の実施形態および第２の実施形態の計算管理システム５０の、本発明に係わる処理手順を図３に示す。
【００３７】
上述した結果ＤＢ３０に対する検索は粗検索と詳細検索とが用意されている。粗検索は計算要求内容全体から構成したハッシュキーを用いた検索である。詳細検索は計算要求の各項目から構成したハッシュキーによる検索、テキストの寸分検索および分子構造比較検索を行う。この形態では、量子化学計算サービスを念頭においているので、このような２段階の検索が可能であるが、検索内容に応じて、適宜、検索の種類に応じて検索時間を予測するための検索予測プログラムの内容を決定すればよい。
【００３８】
また、推論エンジンは量子化学計算処理の専門家の知識を評価関数で表した知識データベースに基づいて、計算の種類に応じた、現在実行可能な計算手段（スケジューラ７０＋計算ノード８０）を使用した場合の計算所要時間を予測するものとする。
【００３９】
図３において、クライアントＰＣ１０から計算要求を受け取ると（ステップＳ１０）、計算管理システム５０は、推論エンジン６０により、計算要求に対する計算予測時間を取得し、検索時間予測プログラムにより粗検索に要する予測時間を取得する（ステップＳ２０）。
【００４０】
取得した計算予測時間（計算処理時間）と粗検索の検索（予測）時間の対象を比較する。
【００４１】
計算予測時間が小さい場合、すなわち、実際に計算をしたほうが早い場合には、手順をステップＳ３５に進め、計算を実行可能なスケジューラ７０に対して、要求の計算を実行させる。その計算結果が、要求元のクライアントＰＣ１０にＷＥＢサーバ２０を介して回答される（ステップＳ３５→エンド）。また、このとき、使用された計算要求およびその計算結果が結果ＤＢ３０に登録される。なお、このときの計算要求と同じ計算要求が結果ＤＢ３０に登録されているかの判定が行われて、重複登録が回避される。
【００４２】
一方、粗検索の検索予測時間の方が小さいとの判定結果が得られた場合には、計算管理システム５０は粗検索を結果ＤＢ３０に対して施す（ステップＳ４０）。結果ＤＢ３０の中に計算要求と同じ計算要求が見つかった場合には、計算要求に関連付けられた結果ＤＢ３０上の計算結果が計算要求に対する計算結果として要求もとのクライアントＰＣ１０に回答される（ステップＳ５０→Ｓ５５→エンド）。
【００４３】
計算管理システム５０は粗検索により検索結果が見つからなかった場合には、詳細検索に要する予測時間を検索時間予測プログラムにより取得する（ステップＳ６０）。
【００４４】
計算管理システム５０は詳細検索予測時間と先に取得した計算予測時間との大小判定を行う（ステップＳ７０）。計算予測時間が小さい場合には、計算管理システム５０はスケジューラ７０に対して計算を命じ、その計算結果を受け取って要求もとのクライアントＰＣ１０に計算結果を回答する（ステップＳ７０→Ｓ７５→エンド）。計算要求および計算結果が重複登録の有無判定の後登録されることは言うまでもない。
【００４５】
詳細検索予測時間の方が小さい場合には、計算管理システム５０は結果ＤＢ３０に対して詳細検索を実行する（ステップＳ８０）。
【００４６】
詳細検索により結果ＤＢ３０から計算結果が得られた場合には、計算管理システム５０はその計算結果を要求もとのクライアントＰＣ１０に回答する（ステップＳ９０→Ｓ１００）。一方、詳細検索により計算要求に対応する計算結果が得られなかった場合には、計算管理システム５０はスケジューラ７０に対して計算要求を引き渡し、計算を実行させる。スケジューラ７０から引き渡される計算結果がクライアントＰＣ１０に引き渡される（ステップＳ９０→Ｓ９５）。計算要求および計算結果が重複登録の有無判定の後登録されることは言うまでもない。
【００４７】
以上、説明したように、上述の実施形態では、結果ＤＢ３０の登録データが変動しても検索時間予測プログラムにより検索時間を正確に予測できる。また、計算可能な計算ノード８０の性能の相違により生じる実際の計算処理時間も推論エンジン６０および知識ＤＢ４０を使用して、現在、実行可能な計算ノード８０の計算処理時間を予測することで、正確な計算処理時間を取得することができる。さらに、取得した検索予測時間と計算予測時間を比較することで、計算と検索のどちらを選択したほうが処理時間が早いかを選択することができる。
【００４８】
上述の実施形態の他に次の形態を実施することができる。
１）計算予測時間は人工知能（推論エンジン６０＋知識データベース）により取得しているが、プログラム、テーブル等を使用して取得してもよい。同様に、検索時間も人工知能や表を使用して取得してもよい。
２）上述の実施形態では、実際にスケジューラ７０および少なくとも１以上の計算ノード８０による計算が行われるとその計算結果は結果ＤＢ３０に登録されるので、このときの計算時間を上記知識ＤＢ４０に反映させるとよい。また、計算結果の重複登録の判定のために、結果ＤＢ３０に対する検索が行われるので、この検索時間を検索予測プログラムが使用するデータに反映させてもよい。
３）計算結果の登録は計算管理システム５０に一時記憶しておき、一時記憶した複数の計算結果をバッジ（一括して）で結果ＤＢ３０に登録してもよい。これにより、クライアントＰＣ１０に回答する時間がさらに短縮される。
４）上述の実施形態では計算結果について結果ＤＢ３０の２段階の検索処理を要しているが、１段階の検索処理でもよいし、２段階以上の検索処理を行ってもよい。
５）第２実施形態では計算は有料サービスであるが、そのための課金処理は従来システムと同様とすることができる。
６）第１および第２の実施形態のシステム構成は発明の例示のために示されている。したがって、システム使用者の好適なように複数の記憶手段や複数の計算手段（スケジューラ７０および計算ノード８０）等を適宜、通信ネットワークを介して分散配置すればよい。
【００４９】
上述した実施形態の他にも種々の改良形態が実施可能であるが、それらの改良形態が特許請求の範囲に記載された技術思想に基づく限り、それらの改良形態は本発明の権利範囲内となる。
【００５０】
【発明の効果】
以上、説明したように、本発明によれば、計算結果を記憶手段に記憶して、そのデータ容量が多くなるような場合があっても、検索による処理と実際の計算処理の早いほうを選択することができる。
【００５１】
さらに本発明では少なくとも２段階の検索を行うことで検索により計算結果を取得する場合でも、できるだけ短い検索時間で計算結果の取得が可能となる。
【００５２】
また、記憶手段や計算手段を分散配置することで、記憶手段の記憶容量を大容量としたり、１台の記憶手段の故障が生じても他の記憶手段で対応することができる。
【００５３】
計算手段を分散配置することで多数の並列コンピュータの設置スペースの制限が緩和される。
【図面の簡単な説明】
【図１】本発明第１の実施形態のシステム構成を示すブロック図である。
【図２】本発明第２の実施形態のシステム構成を示すブロック図である。
【図３】の処理内容を示すフローチャートである。
【符号の説明】
１０  （クライアント）ＰＣ
３０  結果ＤＢ
４０  知識ＤＢ
５０  計算管理システム
７０  スケジューラ
【図１】
0003968419.tif 000002
【図２】
0003968419.tif 000003
【図３】
0003968419.tif 000004