(57)【要約】【課題】他のプロセッサの計算資源が不足しているときに、余裕のあるプロセッサの計算資源の貸出を容易にして分散処理の効率化を図る。【解決手段】プロセッサの計算資源を複数の小プロセッサ１４にクラスタ化しておき、管理プロセッサ１２で、各小プロセッサ１４の稼働状況を監視して、要求された情報処理の負荷の大きさに応じて稼働させる小プロセッサにタスクを割り当てる。Ｉ／Ｏインタフェース１３を通じて他のコンピュータから資源貸出の要求があったときは、空き状態の小プロセッサ１４の計算資源を貸し出す。【選択図】    図２
2004287801.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置によりクラスタ化された情報処理システムであって、
少なくとも一つの情報処理装置が、
自装置から見た他の一部又は全部の情報処理装置の処理性能を表す性能情報を更新自在に保持する性能情報管理手段と、
要求された情報処理の負荷の大きさを計測する負荷計測手段と、
この負荷計測手段により計測された負荷の大きさと前記性能情報管理手段に保持されている性能情報とを比較することにより前記要求された情報処理の一部又は全部のタスクを分散実行可能な候補装置を決定する候補決定手段と、
この候補決定手段により決定された候補装置にタスクを割り当てるタスク割当手段とを有することを特徴とする、
情報処理システム。
【請求項２】
前記性能情報管理手段は、前記他の情報処理装置の静的な処理性能を表す第１性能情報を取得して１又は複数の候補装置を決定するとともに、決定した候補装置をリスト化した第１候補リストを所定のメモリ領域に記録する第１候補リスト管理手段と、
前記第１候補リストにリストアップされている候補装置の動的な処理性能を表す第２性能情報を計測し、計測した第２性能情報を処理性能別に分類してリスト化した第２候補リストを作成するとともに、この第２候補リストにリストアップされている第２性能情報をもつ候補装置をタスク実行条件別にソートしてタスク実行条件毎に適した１又は複数の候補装置を決定し、決定した候補装置をリスト化したインデックスリストを所定のメモリ領域に記録する第２候補リスト管理手段とを有し、
このインデックスリストにリストアップされた候補装置の第２性能情報を前記メモリ領域より読み出して前記性能情報として前記候補決定手段に提供するように構成されることを特徴とする、
請求項１記載の情報処理システム。
【請求項３】
前記第１候補リスト管理手段は、個々の情報処理装置が具えるプログラム実行手段の構成情報と、当該プログラム実行手段で実行可能なプログラムの種類を表す情報とを前記第１性能情報とし、複数の情報処理装置についての前記第１性能情報を比較することにより前記第１候補リストにおけるリストアップ順を決定することを特徴とする、
請求項２記載の情報処理システム。
【請求項４】
前記第２候補リスト管理手段は、前記第１候補リストにリストアップされている候補装置に対して処理要求を発信するとともに、この処理要求に対する応答結果を受信することにより当該候補装置の前記第２性能情報を得ることを特徴とする、
請求項２記載の情報処理システム。
【請求項５】
前記第２候補リスト管理手段は、前記第２性能情報に予め定めた処理性能の種別に応じて設定されている係数値を重み付けすることにより前記処理性能毎の第２候補リストを作成することを特徴とする、
請求項４記載の情報処理システム。
【請求項６】
前記性能情報管理手段は、前記他の情報処理装置の静的な処理性能を表す第１性能情報を取得して１又は複数の候補装置を決定するとともに、決定した候補装置をリスト化した第１候補リストを所定のメモリ領域に記録する第１候補リスト管理手段と、
前記第１候補リストにリストアップされている候補装置の動的な処理性能を表す第２性能情報を計測し、計測した第２性能情報に予め複数のタスク実行条件の各々に応じて定められている係数値を重み付けすることにより、タスク実行条件によって異なる第２性能情報をもつ候補装置をリスト化した第２候補リストを所定のメモリ領域に記録する第２候補リスト管理手段とを有し、
この第２候補リストにリストアップされた候補装置の第２性能情報を前記メモリ領域より読み出して前記性能情報として前記候補決定手段に提供するように構成されることを特徴とする、
請求項１記載の情報処理システム。
【請求項７】
前記第２候補リスト管理手段は、作成した前記第２候補リスト及び前記インデックスリストを前記第１候補リストよりも高い頻度で更新することを特徴とする、
請求項２記載の情報処理システム。
【請求項８】
前記複数の情報処理装置がネットワークを介して相互に接続されており、前記第２候補リスト管理手段は、前記ネットワークを通じて前記処理要求を発信するとともに、この処理要求に対する応答結果を当該ネットワークを通じて受信することを特徴とする、
請求項４記載の情報処理システム。
【請求項９】
前記複数の情報処理装置の少なくとも一つは、
前記プログラム実行手段が複数のクラスタに分割されており、
各クラスタの稼働状況を他の情報処理装置に通知可能に構成されていることを特徴とする、
請求項３記載の情報処理システム。
【請求項１０】
前記少なくとも一つの情報処理装置は、貸出可能なクラスタ数を前記稼働状況として前記他の情報処理装置に通知することを特徴とする、
請求項９記載の情報処理システム。
【請求項１１】
負荷の大きさに予測性がない情報処理を実行する装置であって、
複数のクラスタに分割されたプログラム実行手段と、
このプログラム実行手段の各クラスタの処理性能を表す性能情報を更新自在に保持する性能情報管理手段と、
要求された情報処理の負荷の大きさを計測する負荷計測手段と、
この負荷計測手段により計測された負荷の大きさと前記性能情報管理手段に保持されている性能情報とを比較することにより前記要求された情報処理を分散実行可能な複数の候補クラスタを決定する候補決定手段と、
この候補決定手段により決定された複数の候補クラスタにそれぞれ前記要求された情報処理の一部を割り当てるタスク割当手段と、
このタスク割当手段により割り当てた各候補クラスタからの実行結果を統合して出力する出力手段とを有することを特徴とする、
情報処理装置。
【請求項１２】
他の情報処理装置が発信した処理要求に対する所要の情報処理を実行するとともに、その実行結果を送信開始時刻と共に当該他の情報処理装置に返信する処理要求実行手段と、
前記性能情報管理手段に保持されている性能情報を他の情報処理装置に通知する通知手段と、を更に有することを特徴とする、
請求項１１記載の情報処理装置。
【請求項１３】
前記複数のクラスタの各々がプロセッサを含んで構成されることを特徴とする、
請求項１１記載の情報処理装置。
【請求項１４】
ネットワークを介して相互に接続された複数の情報処理装置の各々で、他の情報処理装置の処理性能を前記ネットワークを通じて計測し、計測した処理性能を表す性能情報を所定のメモリ領域に更新自在に保持し合うとともに、他の情報処理装置からの処理要求のために自装置のプログラム実行手段の一部の資源を貸出可能にしておき、
いずれかの情報処理装置において、負荷の大きさに予測性がない情報処理の要求が生じたときに、
当該情報処理の要求が生じた情報処理装置が、
当該情報処理の負荷の大きさを計測する処理、計測した負荷の大きさと前記メモリ領域に保持されている性能情報とを比較して前記要求された情報処理を分散実行可能な１又は複数の候補装置を決定する処理、決定した候補装置に前記要求された情報処理の一部を割り当てる処理、及び、割り当てた候補装置の実行結果を統合して出力する処理を実行することを特徴とする、
分散情報処理方法。
【請求項１５】
ネットワークを介して他の複数の情報処理装置と接続される情報処理装置に、
他の情報処理装置の処理性能を前記ネットワークを通じて計測する処理、
計測した他の情報処理装置の処理性能を表す性能情報を所定のメモリ領域に更新自在に保持する処理、
負荷の大きさに予測性がない不確定の情報処理の要求が生じたときに当該情報処理の負荷の大きさを計測する処理、
計測した負荷の大きさと前記メモリ領域に保持されている性能情報とを比較して前記要求された情報処理を分散実行可能な１又は複数の候補装置を決定する処理、
決定した候補装置に前記要求された情報処理の一部を割り当てる処理、
及び、割り当てた候補装置の実行結果を統合して出力する処理を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の情報処理装置、例えばパーソナルコンピュータ又はサーバのようなコンピュータの協働による負荷の分散実行の仕組みに関する。
【０００２】
【発明の背景】
ネットワークに接続された複数のコンピュータによって一つのタスクを分散実行する手法として、二つの手法がある。
一つの手法は、どのコンピュータに負荷を分散させるかを最初に決めてから情報処理の内容（以下、「タスク」と称する）を割り付ける手法であり、もう一つの手法は、あるコンピュータでタスクを実行し始めた後、負荷が重すぎるとわかったときに、他のコンピュータを探してタスクを割り付ける手法である。
【０００３】
前者の手法の場合は、タスクの負荷の大きさを事前に予測しなければならないが、負荷の大きさに予測性がない情報処理の場合にはタスクの割り当てを行うことができない。後者の手法の場合には負荷の大きさを予測する必要はないが、負荷が重すぎるとわかった時点で計算資源が余っている他のコンピュータを探し出すための特別の処理が必要となる。しかし、計算資源が余っているコンピュータを探し出した後、実際にタスクを割り宛てる際に、そのコンピュータの使用状況が変わると、再度計算資源が余っている他のコンピュータを探し出して負荷を分散させなければならず、そのための手続が煩雑になる。
【０００４】
一般に、コンピュータにおいて一つの計算資源で複数のタスクを共用して使う場合は、時分割等によってタスクを割り当てることが行われている。計算資源がどの位余っているかは、ある時間単位で、タスクを区切ったときに、どの位の時間で、タスクが終了しているかで判断している。図１２（ａ）は、この様子を示している。
しかしながら、どのような時間単位でタスクを区切れるかは、タスクの種類によって異なるため、他のタスクを、この空いている時間に割り付けられるかどうかは、予測が難しい。また、無理に単位時間を合わせると、タスクの切り替えによって起こるオーバーヘッドが大きくなり、予測がさらに難しくなる。
【０００５】
単一のプロセッサが時分割で複数のタスクを実行するときのタイミング例を図１２（ｂ）に示す。図１２（ｂ）の例では、タスクＡがある１単位の処理を終えた後、一定時間、他のタスクに割り当て（その間、タスクＡについては空き時間となる）、一定時間後、再び、タスクＡを行うことを繰り返す。この場合、タスクＡの１単位の処理が、常に一定時間で終わることが保証されていれば、都合良く全体の処理時間に占めるタスクＡの割合は一定であるが、タスク実行条件によって一定時間内で終わらない場合は、図１２（ｃ）のように、タスクＡのための処理時間の割合が変化する。タスク実行条件によって処理時間が変化する場合としては、例えば、グラフィクス処理で視点が移動したときに描画すべきオブジェクトの数が変化するとか、動画像の圧縮データの解凍処理の際に、画像内容によって前後のフレームのデータを使うかどうかが変化するなどが挙げられる。このような例における「１単位の処理」としては、例えば１フレーム分の処理が挙げられる。
【０００６】
上記のように、タスク実行条件によって処理時間の割合が変化するという不都合を解消するためには、１単位の処理をできるだけ細かい時間間隔で区切り、一定時間が経過したら、タスクＡをうち切ってしまうということが考えられる。この場合、図１２（ｄ）のように、タスクを切り替えるのに都合のよい切替タイミングＢではなく、切替タイミングＡでタスクを切り替えなければならない場合が生じ得る。この場合は、より多くのデータ（コンテキスト）をセーブしておかないと、タスクを再開できなくなる。このデータのセーブ／ロードは、処理のオーバーヘッドとなり、都合が悪い。
【０００７】
このように、単一のプロセッサに時分割により複数のタスクを割り当てる方法では、割当時間の安定性と処理効率とを両立させることが困難となる。
本発明は、このような従来の問題点を解決する分散情報処理の仕組みを提供することを、主たる課題とする。
【０００８】
【課題を解決するための手段】
本発明は、タスクを実行するためのプログラム実行手段をクラスタ（Ｃｌｕｓｔｅｒ）化しておくことにより、互いに繋がる他のクラスタの計算資源が不足しているときに、計算資源の貸出を容易にする仕組みを提供する。より具体的には、分散処理を可能にする情報処理システム、情報処理装置、分散情報処理方法、コンピュータプログラムを提供する。
【０００９】
本発明の情報処理システムは、複数の情報処理装置によりクラスタ化された情報処理システムであって、少なくとも一つの情報処理装置が、自装置から見た他の一部又は全部の情報処理装置の処理性能を表す性能情報を更新自在に保持する性能情報管理手段と、要求された情報処理の負荷の大きさを計測する負荷計測手段と、この負荷計測手段により計測された負荷の大きさと前記性能情報管理手段に保持されている性能情報とを比較することにより前記要求された情報処理の一部又は全部のタスクを分散実行可能な候補装置を決定する候補決定手段と、この候補決定手段により決定された候補装置にタスクを割り当てるタスク割当手段とを有することを特徴とする。「候補装置」は、候補となる情報処理装置を意味する。
【００１０】
このような情報処理システムでは、分散実行可能な候補装置の処理性能を情報処理装置の側で把握することができるため、当該情報処理装置において計算資源が足りなくなった場合には、他の候補装置の計算資源を借用してタスクを実行することができ、効率的な分散情報処理が可能になる。
情報処理システムを一つの情報処理を実行するプログラム実行手段とみた場合、個々の情報処理装置は、分割されたクラスタに相当する。情報処理装置は、通常はプロセッサを主要部品とする装置ないしデバイスであるが、プログラムを実行することができる形態であれば、プロセッサも情報処理装置となり得るものである。この場合、複数のプロセッサの集合から成る装置は、情報処理システムに相当する。
【００１１】
上記の情報処理システムにおいて、前記性能情報管理手段は、具体的には、前記他の情報処理装置の静的な処理性能を表す第１性能情報を取得して１又は複数の候補装置を決定するとともに、決定した候補装置をリスト化した第１候補リストを所定のメモリ領域に記録する第１候補リスト管理手段と、前記第１候補リストにリストアップされている候補装置の動的な処理性能を表す第２性能情報を計測し、計測した第２性能情報を処理性能別に分類してリスト化した第２候補リストを作成するとともに、この第２候補リストにリストアップされている第２性能情報をもつ候補装置をタスク実行条件別にソートしてタスク実行条件毎に適した１又は複数の候補装置を決定し、決定した候補装置をリスト化したインデックスリストを所定のメモリ領域に記録する第２候補リスト管理手段とを有し、このインデックスリストにリストアップされた候補装置の第２性能情報を前記メモリ領域より読み出して前記性能情報として前記候補決定手段に提供するように構成される。
第２性能情報は時点々によって大きく変化するので、作成した前記第２候補リスト及び前記インデックスリストを前記第１候補リストよりも高い頻度で更新することが好ましい。
【００１２】
第１候補リストは、より具体的には、候補装置の種別、数など、本来的に時間に左右されない（これを「静的」と称している）処理性能を表す情報に基づいて候補装置をリスト化したものである。この第１候補リストは、各候補装置が任意の時点で起動したり終了したりする場合があるので、定期的に更新する必要がある。これに対して第２候補リスト及びインデックスリストは、候補装置の稼働状態等、その時点々の状況に大きく左右される（これを「動的」と称している）処理性能を表す情報に基づいて候補装置をリスト化したものであり、第１候補リストよりも頻繁に更新する必要がある。更新は、好ましくは、タスク実行に先立って行うことが好ましい。
【００１３】
前記第１候補リスト管理手段は、例えば、個々の情報処理装置が具えるプログラム実行手段の構成情報と、当該プログラム実行手段で実行可能なプログラムの種類を表す情報とを前記第１性能情報とし、複数の情報処理装置についての前記第１性能情報を比較することにより前記第１候補リストにおけるリストアップ順を決定する。
【００１４】
また、前記第２候補リスト管理手段は、例えば、前記第１候補リストにリストアップされている候補装置に対して処理要求を発信するとともに、この処理要求に対する応答結果を受信することにより当該候補装置の前記第２性能情報を得る。より具体的には、第２候補リスト管理手段は、前記第２性能情報に、予め定めた処理性能の種別に応じて設定されている係数値を重み付けすることにより、前記処理性能毎の第２候補リストを作成する。
【００１５】
インデックスリストを持たない情報処理システムにすることもできる。すなわち、前記性能情報管理手段が、前記他の情報処理装置の静的な処理性能を表す第１性能情報を取得して１又は複数の候補装置を決定するとともに、決定した候補装置をリスト化した第１候補リストを所定のメモリ領域に記録する第１候補リスト管理手段と、前記第１候補リストにリストアップされている候補装置の動的な処理性能を表す第２性能情報を計測し、計測した第２性能情報に予め複数のタスク実行条件の各々に応じて定められている係数値を重み付けすることにより、タスク実行条件によって異なる第２性能情報をもつ候補装置をリスト化した第２候補リストを所定のメモリ領域に記録する第２候補リスト管理手段とを有し、この第２候補リストにリストアップされた候補装置の第２性能情報を前記メモリ領域より読み出して前記性能情報として前記候補決定手段に提供するように構成することもできる。
前記複数の情報処理装置がネットワークを介して相互に接続されている場合、前記第２候補リスト管理手段は、前記ネットワークを通じて前記処理要求を発信するとともに、この処理要求に対する応答結果を当該ネットワークを通じて受信するように動作する。
【００１６】
前記複数の情報処理装置のうち、少なくとも一つの情報処理装置における前記プログラム実行手段が複数のクラスタに分割されており、各クラスタの稼働状況を他の情報処理装置に通知可能に構成するものであってもよい。分割されたクラスタの処理能力が他のクラスタと均質の場合、情報処理装置の稼働状況は稼働中のクラスタの数、未稼働状態のクラスタの数として定量化することができる。そこで、プログラム実行手段がクラスタに分割された前記情報処理装置が、貸出可能なクラスタ数を前記稼働状況として前記他の情報処理装置に通知するように構成することにより、この通知を受けた側でのタスク割当が容易になる。例えば、あるタスクの実行条件ではクラスタ３個分が足りないから３個のクラスタを探し出して割り当てるという運用が可能になる。
【００１７】
本発明の情報処理装置は、負荷の大きさに予測性がない情報処理を実行する装置であって、複数のクラスタに分割されたプログラム実行手段と、このプログラム実行手段の各クラスタの処理性能を表す性能情報を更新自在に保持する性能情報管理手段と、要求された情報処理の負荷の大きさを計測する負荷計測手段と、この負荷計測手段により計測された負荷の大きさと前記性能情報管理手段に保持されている性能情報とを比較することにより前記要求された情報処理を分散実行可能な複数の候補クラスタを決定する候補決定手段と、この候補決定手段により決定された複数の候補クラスタにそれぞれ前記要求された情報処理の一部を割り当てるタスク割当手段と、このタスク割当手段により割り当てた各候補クラスタからの実行結果を統合して出力する出力手段とを有することを特徴とする。
このような情報処理装置では、負荷の大きさに応じた数の候補クラスタを選んでタスクを実行させることができるので、計算資源に無駄のない情報処理を実行することが可能になる。
【００１８】
他の情報処理装置と連携して情報処理を分散実行可能にする場合は、他の情報処理装置が発信した処理要求に対する所要の情報処理を実行するとともに、その実行結果を送信開始時刻と共に当該他の情報処理装置に返信する処理要求実行手段と、前記性能情報管理手段に保持されている性能情報を他の情報処理装置に通知する通知手段と、を更に備えて情報処理装置を構成する。前記複数のクラスタの各々がプロセッサを含んで構成されるようにしてもよい。
【００１９】
本発明の分散情報処理方法は、ネットワークを介して相互に接続された複数の情報処理装置の各々で、他の情報処理装置の処理性能を前記ネットワークを通じて計測し、計測した処理性能を表す性能情報を所定のメモリ領域に更新自在に保持し合うとともに、他の情報処理装置からの処理要求のために自装置のプログラム実行手段の一部の資源を貸出可能にしておき、いずれかの情報処理装置において、負荷の大きさに予測性がない情報処理の要求が生じたときに、当該情報処理の要求が生じた情報処理装置が、当該情報処理の負荷の大きさを計測する処理、計測した負荷の大きさと前記メモリ領域に保持されている性能情報とを比較して前記要求された情報処理を分散実行可能な１又は複数の候補装置を決定する処理、決定した候補装置に前記要求された情報処理の一部を割り当てる処理、及び、割り当てた候補装置の実行結果を統合して出力する処理を実行することを特徴とする。
【００２０】
この分散情報処理方法では、貸出可能なプログラム実行手段の一部の資源のみを他の情報処理装置に貸し出すことができるので、互いの処理性能が予め判っている複数の情報処理装置同士で分散情報処理を実行する場合に比べて、無駄のない情報処理が可能になる。
【００２１】
本発明のコンピュータプログラムは、ネットワークを介して他の複数の情報処理装置と接続される情報処理装置に、他の情報処理装置の処理性能を前記ネットワークを通じて計測する処理、計測した他の情報処理装置の処理性能を表す性能情報を所定のメモリ領域に更新自在に保持する処理、負荷の大きさに予測性がない不確定の情報処理の要求が生じたときに当該情報処理の負荷の大きさを計測する処理、計測した負荷の大きさと前記メモリ領域に保持されている性能情報とを比較して前記要求された情報処理を分散実行可能な１又は複数の候補装置を決定する処理、決定した候補装置に前記要求された情報処理の一部を割り当てる処理、及び、割り当てた候補装置の実行結果を統合して出力する処理を実行させるためのコンピュータプログラムである。
【００２２】
【発明の実施の形態】
以下、本発明の実施形態を説明する。
本発明は、図１のように構成される情報処理システムとしての実施が可能である。この情報処理システムは、複数のコンピュータ１ｍ、１ｃをインターネットのような広域のネットワークＮを介して接続して構成される。この実施形態では、便宜上、分散情報処理を主体的に行うコンピュータを主コンピュータ１ｍ、主コンピュータ１ｍに対して自己のプログラム実行手段の一部を貸し出すコンピュータを候補コンピュータ１ｃとするが、両者を区別する必要がない場合は、単に「コンピュータ」と称する。
【００２３】
各コンピュータ１ｍ、１ｃにおけるプログラム実行手段のハードウエア構成、つまりプロセッサの種別及び数、個々のプロセッサの能力（処理速度）、メモリ容量等は任意であるが、この実施形態では、便宜上、すべて均質な構成のプログラム実行手段を備えているものとして説明する。
【００２４】
コンピュータ１ｍ、１ｃにおけるプログラム実行手段は、図２のように、メモリ１１、管理プロセッサ１２、Ｉ／Ｏインタフェース１３及び４つの小プロセッサ１４をバスＢを通じて相互に接続して構成されている。メモリ１１には、プログラム及びデータを含む各種デジタル情報、時刻データ、後述する各種リストが記録される。プログラム及びデータ等のデジタル情報は、ネットワークＮを通じて、あるいは、可搬性記録媒体に記録されたデジタル情報をインストールすることによって、メモリ１１に記録される。
Ｉ／Ｏインタフェース１３は、ネットワークＮに接続された他のコンピュータその他の外部コンピュータとの間で情報の受け渡しを可能にする公知の機構である。小プロセッサ１４は、管理プロセッサ１２により割り当てられたタスクを実行する。この実施形態の場合、情報処理システムのプログラム実行手段のクラスタとして複数のコンピュータ１ｍ、１ｃがあり、各コンピュータ１ｍ、１ｃ自身のプログラム実行手段もまた、４つのクラスタに分割されていることになる。
【００２５】
管理プロセッサ１２は、メモリに記録されているプログラムにより、図３のような機能を当該コンピュータ内に形成する。
すなわち、性能情報管理部２１、他装置性能情報保持部２２、タスク入力部２３、負荷計測部２４、タスク実行管理部２５、稼働状況監視部２６、候補決定部２７、タスク割当部２８、実行結果保持部２９、及び、稼働状況通知部３０の機能を形成する。
【００２６】
性能情報管理部２１は、自己から見た他の候補コンピュータ１ｃの処理性能を表す性能情報を定期的に計測ないし取得し、必要に応じてその性能情報をリストアップする。性能情報には、静的な処理性能を表す第１性能情報と、動的な処理性能を表す第２性能情報とがある。これらの性能情報をリストアップする場合、性能情報管理部２１は、図４に示されるように、第１性能情報を静的性能計測部２１１で計測ないし取得して第１候補リスト２１２を作成する。また、第１候補リスト２１２からタスク割当が原始的に可能な候補コンピュータ１ｃを選抜するとともに、選抜された候補コンピュータ１ｃについての第２性能情報を動的性能計測部２１３で計測して実際的にタスク割当可能な候補コンピュータ１ｃを決定し、この第２性能情報を処理性能毎にリスト化した第２候補リスト２１４と、第２性能情報をタスク実行条件毎にソート（並び替え）して、タスク実行条件毎に最適な第２性能情報をもつ候補コンピュータ１ｃをリスト化したインデックスリスト２１５を作成する。
作成された第１候補リスト２１２、第２候補リスト２１４及びインデックスリスト２１５は、他装置性能情報保持部２２のメモリ領域に記録され、随時更新される。但し、第１候補リスト２１２と第２候補リスト２１４及びインデックスリスト２１５とでは、後述するように、更新のタイミングと更新対象となる数が大きく相違する。
【００２７】
この実施形態における第１性能情報としては、プロセッサの種別、プロセッサの数、個々のプロセッサの能力（処理速度）、実行可能なプログラムの種類、メモリ容量その他の分散可能処理能力（分散処理が可能かどうかの情報を含む）を表す候補コンピュータ１ｃ固有の情報である。この第１性能情報は、例えば、静的性能計測部２１１から各候補コンピュータ１ｃに問い合わせ用のプログラムを転送し、このプログラムに基づき、当該候補コンピュータ１ｃが搭載するオペレーティングシステムが集めたハードウエア構成情報を、転送開始時刻と共に返信してもらうことにより、取得が可能である。候補コンピュータ１ｃの側が自発的に送信することによって取得するようにしてもよい。自ら計測する場合は、性能把握用のプログラム及びデータを候補コンピュータ１ｃへ転送し、その候補コンピュータ１ｃからのレスポンスを計測する。
候補コンピュータ１ｃは、随時起動したり終了したりするので、性能情報管理部２１は、第１性能情報を定期的に計測し、他装置性能情報保持部２２の第１候補リスト２１２を更新する。
【００２８】
第２性能情報は、例えば、第１候補リスト２１２により選抜された候補コンピュータ１ｃについて、ネットワークＮの転送状態（輻輳の状態を含む）、各候補コンピュータ１ｃにおける小プロセッサ１４の稼働状況、例えば空き具合など、その時点々の状況によって変化する、候補コンピュータ１ｃ固有の情報である。この第２性能情報は、例えば、動的性能計測部２１３から各候補コンピュータ１ｃに処理要求を行った後、処理結果を受け取るまでに要する時間を計測することにより定量化（例えば数値化）することができる。受け取ったデータを送り出すだけのプログラムを転送し、データ受け取りまでの時間を計測するようにしてもよい。一般に、この時間が短い程、動的な処理性能は高いことになる。あるいは、候補コンピュータ１ｃに小プロセッサ１４の空き具合等を問い合わせ、その問い合わせに応じて返送されてきたデータを第２性能情報として用いるようにしてもよい。
【００２９】
なお、性能情報管理部２１において、第２候補リスト２１４を作成する際に、例えば、第２性能情報に、予め定めた処理性能の種別に応じて設定されている係数値を重み付けすることにより、処理性能毎の分類が可能になるので、実際に候補コンピュータ１ｃを決めるためのインデックスリスト２１５の作成が容易になる利点がある。
【００３０】
静的性能計測部２１１によって作成される第１候補リスト２１２の内容例を図５（ａ）、動的性能計測部２１３によって作成される第２候補リスト２１４の内容例を図５（ｂ）、第２候補リスト２１４からタスク実行条件（タスク実行に好適な条件）毎に最適な順にソートすることにより作成された候補コンピュータ１ｃのインデックスリスト２１５の例を図５（ｃ）に示す。
【００３１】
図５（ａ）においてＡＤは候補コンピュータ１ｃのアドレス、ＰＩＤは各候補コンピュータ１ｃが実行可能な処理あるいはプログラムの種類を識別するためのＩＤ、ＳＩＤは各候補コンピュータ１ｃの構成情報（プロセッサの数及び個々のプロセッサの能力等）である。
ＰＩＤ欄にある「３」は３次元処理（あるいはそのためのプログラム）、「Ｇ」はジオメトリ（Ｇｅｏｍｅｔｒｙ）処理（あるいはそのためのプログラム）、「Ｒ」はレンダリング（Ｒｅｎｄｅｒｉｎｇ）処理（あるいはそのためのプログラム）である。また、ＳＩＤ欄のＣ１，Ｃ４はプロセッサの種別、Ｐ１〜Ｐ３は分散処理能力を表している。例えば、ＡＤが「３１１」、ＰＩＤが「３，Ｇ，Ｒ」、ＳＩＤがＣ１・Ｐ３の候補コンピュータ１ｃは、３次元のジオメトリ処理及びレンダリング処理が可能な分散処理可能なコンピュータであることを表している。
【００３２】
図５（ｂ）に示される第２候補リスト２１４は、動的性能計測部２１３によって計測された候補コンピュータ１ｃの転送状態と、未負荷計算資源の状態を第２性能情報の例としてリスト化したものである。図５（ｂ）において、ＡＤは候補コンピュータ１ｃのアドレスであり、未負荷計算資源欄のＣ１，はプロセッサの種別、Ｐ１，Ｐ２は分散処理能力を表している。図示の例の場合、ＡＤが「３１１」の候補コンピュータ１ｃは、計測時点では、送信可能なデータサイズは大きいが、受信できるサイズは中程度であり、しかし、レスポンスは高いこと、未負荷計算資源にはＣ１があり、分散処理能力はＰ１になっていることを示している。
【００３３】
図５（ｃ）に示されるインデックスリスト２１５には、ジオメトリ処理、レンダリング処理のようなタスク実行条件毎に、第２候補リスト２１４からソートされた候補コンピュータ１ｃのアドレス（図５（ａ），（ｂ）のＡＤ）が記録されている。タスクを実行するときに、このインデックスリスト２１５を上から順に辿っていくことにより、そのタスク実行条件のもとでは最も効率よく候補コンピュータ１ｃを割り当てることができることを示している。
インデックスリスト２１５は、第２候補リスト２１４が作成された時点で作成される。すなわち、インデックスリスト２１５は、性能情報管理部２１が、他の候補コンピュータ１ｃに割り当てるべきタスク実行条件に応じて第２候補リスト２１４にリストアップされた第２性能情報を評価してソートすることによって作成される。割り当てるタスクが発生する又はし得るようになったタイミングで、インデックスリスト２１５を作成してもよい。
【００３４】
なお、第２性能情報は上述のように時点々で大きく変化するため、性能情報管理部２１は、第２候補リスト２１４及びインデックスリスト２１５を、第１候補リスト２１２よりも頻繁に更新するようにしている。その結果、他装置性能情報保持部２２に記録されている各種性能情報の内容は、各候補コンピュータ１ｃについて最新のものとなっている。
【００３５】
タスク入力部２３は、候補コンピュータ１ｃその他の外部コンピュータから要求された情報処理の内容（タスク）をＩ／Ｏインタフェース１３を通じて受け付ける。あるいは、主コンピュータ１ｍ内部のアプリケーションから要求された情報処理の内容を受け付ける。負荷計測部２４は、例えば単位時間に処理すべき情報量を計測することにより、要求された情報処理の負荷の大きさを計測する。
【００３６】
タスク実行管理部２５は、情報処理の実行に際して自己の小プロセッサ１４にタスクを割り当て、その実行を促す。
稼働状況監視部２６は、いくつの小プロセッサ１４が実際に稼働しているかを監視し、負荷に余裕があるかどうか、ある場合は、いくつの小プロセッサ１４が空き状態になっているかを数値データとして出力する。また、主コンピュータ１ｍの小プロセッサ１４の空き具合の情報を取得するために、他の候補コンピュータ１ｃから監視結果の要求があった場合には、稼働状況通知部３０を通じて要求元に通知する機能も有している。
【００３７】
候補決定部２７は、負荷計測部２４で計測した負荷の大きさと、稼働状況監視部２６による監視結果と、他装置性能情報保持部２２に保持されている性能情報とを比較することにより、要求された情報処理の一部又は全部のタスクを分散実行させる必要があるかどうか、ある場合には、分散実行可能な候補コンピュータ１ｃがどれかを決定する。
【００３８】
タスク割当部２８は、候補決定部２７で決定した候補コンピュータ１ｃに情報処理の一部又は全部のタスクを割り当てるものであり、実行結果保持部２９は、自己の小プロセッサ１４及び割り当てた候補コンピュータ１ｃにおいて実行された情報処理の結果データを一時的に保持するものである。
【００３９】
［分散情報処理方法］
次に、上記の情報処理システムにおいて、主コンピュータ１ｍが主体的に行う分散情報処理の手順例を説明する。
＜準備段階＞
分散情報処理に先立ち、主コンピュータ１ｍは、例えば図６の手順で、自己から見た他の候補コンピュータ１ｃの処理性能を把握する。
まず、性能情報管理部２１において、第１候補リスト２１２にリストアップされている候補コンピュータ１ｃについての第２性能情報を計測ないし取得する。例えば、メモリ１１に記録されている性能把握用のプログラムとデータを第１候補リスト２１２にリストアップされている順に転送するとともに、転送開始時刻Ｔ１，転送終了時刻Ｔ２をメモリ１１の時刻記録領域に記録しておく（ステップＳ１０１）。
【００４０】
各候補コンピュータ１ｃから応答があったときは（ステップＳ１０２：Ｙｅｓ）、各候補コンピュータ１ｃによる処理結果の転送開始時刻Ｔ３，結果の転送終了時刻Ｔ４を検出し、これを上記の時刻領域に記録する（ステップＳ１０３）。そして、各候補コンピュータ１ｃへの転送バンド幅Ｂ１、各候補コンピュータ１ｃからの転送バンド幅Ｂ２、レイテンシＬを候補コンピュータ毎に算出する（ステップＳ１０４）。
【００４１】
転送バンド幅Ｂ１は、転送するプログラムとデータの合計サイズがＤ１であるとすると、Ｄ１／（Ｔ２−Ｔ１）の演算式により求めることができる。また、バンド幅Ｂ２は、処理結果のデータサイズがＤ２であるとすると、Ｄ２／（Ｔ４−Ｔ３）の演算式により求めることができる。レイテンシＬは、Ｔ３−Ｔ１から求めることができる。各候補コンピュータ１ｃの構成情報により特定される処理性能がＰ（＝プロセッサ能力＊プロセッサ数）であるとすると、例えば下記のような評価式で、候補コンピュータ毎の評価値を決める。
Ｋ１＊Ｂ１＋Ｋ２＊Ｂ２＋Ｋ３＊Ｌ＋Ｋ４＊Ｐ
【００４２】
この式で、Ｋ１，Ｋ２，Ｋ３，Ｋ４は、それぞれタスク実行条件によって個々の重み付けが異なる係数である。例えば、主コンピュータ１ｍから各候補コンピュータ１ｃに送るデータが大きく、処理結果のデータが小さいときは、Ｋ１＝１．０、Ｋ２＝０．１、Ｋ３＝１．０、Ｋ４＝１．０のようにする。データサイズは、送る場合も受け取る場合も共に小さく、受け取る時間が速いほどよいとする場合にはＫ１＝０．１、Ｋ２＝０．１、Ｋ３＝１．０、Ｋ４＝１．０とする。データサイズは大きいが、転送先の負荷が殆どないことが判明している場合には、Ｋ１＝１．０、Ｋ２＝１．０、Ｋ３＝０．１、Ｋ４＝０．１にする。このような条件は例示であり、他の条件であってもよいのは勿論である。また、上記評価式は、線形であるが、２次式など非線形な式を代用してもよい。
【００４３】
このような評価値に基づき、性能情報管理部２１は、第２候補リスト２１４からインデックスリスト２１５を作成し、これらを他装置性能情報保持部２２に記録する（ステップＳ１０５、Ｓ１０６）。このようにして、準備段階を終える。
【００４４】
＜アプリケーション実行時＞
次に、準備段階を終えた主コンピュータ１ｍに、負荷の大きさに予測性がないアプリケーションの実行要求が入力されたときの情報処理の手順例を図７を参照して説明する。
アプリケーション実行要求をタスク入力部２３で受け付けると（ステップＳ２０１：Ｙｅｓ）、負荷計測部２４で、そのアプリケーションによるタスクの実行負荷を計測する（ステップＳ２０２）。そして、分散実行の必要があるかどうかを判別する。分散実行の必要がある場合は、候補決定部２７の機能を起動する（ステップＳ２０３：Ｙｅｓ）。
【００４５】
候補決定部２７は、稼働状況監視部２６で監視している自己の小プロセッサ１４の現在の稼働状況（空き具合）を見て余裕があるかどうかを判別し、余裕がない場合には、不足負荷を計算するとともに他装置性能情報保持部２２内のインデックスリスト２１５のうち、需要に適したインデックスリスト２１５を特定する（ステップＳ２０４）。そして、特定したインデックスリスト２１５にリストアップされた順に、各候補コンピュータ１ｃの現在の実行負荷を確認する（ステップＳ２０５）。
負荷に余裕がある候補コンピュータ１ｃに順次タスクを割り当て、不足負荷を再計算する（ステップＳ２０６）。
不足負荷がなくなるまでステップＳ２０６の処理を繰り返し、不足負荷がなくなった時点で（ステップＳ２０７：Ｙｅｓ）、自己分のタスクを実行する（ステップＳ２０８）。
ステップＳ２０３において、分散実行の必要がないとされた場合には、直ちに自己分のタスクを実行する（ステップＳ２０３：Ｎｏ）。
【００４６】
なお、アプリケーションにおけるタスクの実行負荷に変動要素がある場合、あるいは、候補コンピュータ１ｃの第２性能情報が第２候補リスト２１４及びインデックスリスト２１５にリストアップないし分類された後、ある程度時間が経過している場合は、インデックスリスト２１５に従い、各候補コンピュータ１ｃに、現在の負荷を問い合わせ、問い合わせた結果に基づいて第２候補リスト２１４及びインデックスリスト２１５を更新するか、あるいは、問い合わせた結果に基づいてタスクを割り当てるようにしてもよい。
【００４７】
また、負荷の分散が必要な場合、つまり自己の小プロセッサ１４だけでは足りない場合に、とりあえず、処理できる分のタスクを自分の小プロセッサ１４に割り当てるようにしてもよい。
また、自己の小プロセッサ１４よりも他のクラスタ、つまり候補コンピュータ１ｃで処理した方がメリットがある場合は、第１候補リスト２１２、第２候補リスト２１４及びインデックスリスト２１５に、自己の小プロセッサ１４もクラスタの１つとして掲載し、自己の小プロセッサ１４を含めて、利用可能な全クラスタの中から最適なクラスタを特定してタスクを割り当てる、という形態にしてもよい。
さらに、タスク実行条件の種類が少ないなどの場合においては、インデックスリスト２１５を作成することなく、負荷の分散の必要が生じた時点で、第２性能情報を評価して第２候補リスト２１４を作成し、最適な候補コンピュータ１ｃを選定してもよい。
【００４８】
このように、本実施形態の情報処理システムでは、１つのプログラム実行手段を複数のコンピュータによってクラスタ化しておくことにより、各候補コンピュータ１ｃが、ネットワークＮで繋がる主コンピュータ１ｍのプログラム実行手段の計算資源が不足しているときに、自己の計算資源を容易に貸し出せるようになる。
【００４９】
また、計算資源の貸出を受ける主コンピュータ１ｍでは、予め静的な処理性能（第１性能情報）に基づく第１候補リスト２１２を作成し、また、動的な処理性能（第２性能情報）に基づく評価値をリストアップした第２候補リスト２１４を作成し、さらに、第２候補リスト２１４にリストアップした評価値をタスク実行条件毎に分類したインデックスリスト２１５を作成し、タスク実行時に、インデックスリスト２１５に従って負荷を分散させる候補コンピュータ１ｃを選定するようにしたので、タスク実行前、あるいは、タスク実行中の負荷が重すぎるとわかった時点で計算資源が余っている他の候補コンピュータを探し出す処理が簡略化され、あるいは、その処理自体が不要となる。また、これにより、分散情報処理が効率化される。
【００５０】
なお、この実施形態のように、情報処理システムのクラスタ要素となる複数のコンピュータがすべて均質な構成のプログラム実行手段を備えており、このプログラム実行手段もそれぞれ複数の小プロセッサ１４によってクラスタ化されている場合、性能情報、特に第２性能情報は、コンピュータの種類や数に関わらず、当該時点で空いているクラスタの総数によって表現することができる。
【００５１】
例えば、あるコンピュータにおいてあるタスクを実行する際に、足りない処理能力がクラスタ何個分に相当するかを算出し、その足りない処理能力分のクラスタをネットワークに接続されている他のコンピュータから確保し、確保したクラスタにタスクを割り当てていくという運用が可能となる。１つのクラスタで実行可能なタスクを「単位時間内に終了するクラスタ１つ分の処理」として把握するのである。
また、足りない分のクラスタを、１つのコンピュータからのみではなく、複数のコンピュータによる数珠つなぎ的な連絡によって確保するという運用も可能となる。
【００５２】
さらに、例えば特定の補助プロセッサが存在することを前提として、「Ａ処理が可能なクラスタ」あるいは「Ｂ処理が可能なクラスタ」というように、第１性能情報に基づく「〜処理が可能なクラスタ１つ分の処理」として把握する運用形態も、本発明によれば可能である。このような運用形態は、上記のように「単位時間内に終了するクラスタ１つ分の処理」が動的性能に基づくものであるのに対し、静的性能に基づくものということができる。
【００５３】
また、コンピュータないしそのプログラム実行手段が均質かどうかを問わず、あるコンピュータＡが、自分の性能では、処理仕切れない分の処理を他のコンピュータＢに割り当て、そのコンピュータＢはその処理の一部又は全部をさらに他のコンピュータＣに割り当てるという別の形態の数珠つなぎ的な処理も、本発明によれば、可能になる。
【００５４】
なお、この実施形態では、第２候補リスト２１４には、候補コンピュータ１ｃの第２性能情報を未ソートの状態で分離・集計してリストアップし、インデックスリスト２１５には第２候補リスト２１４の第２性能情報をタスク実行条件でソートしてリストアップした場合の例を示したが、第２候補リスト２１４に、タスク実行条件でソートした候補コンピュータ１ｃの第２性能情報をリストアップし、インデックスリスト２１５は、タスク実行条件毎にふさわしい第２候補リスト２１４はどれかを特定するためのリスト（第２候補リスト２１４のリスト番号をリストアップする）として用いるようにすることもできる。
【００５５】
すなわち、動的性能計測部２１３は、第２性能情報をタスク実行条件毎に分類して第２候補リスト２１４を作成する。タスク実行条件は、タスクの種類によって様々であるが、その様々なタスク実行条件に対応した第２候補リスト２１４を作成するのである。このとき、計測した第２性能情報に、予め複数のタスク実行条件の各々に応じて定められている係数値を重み付けすることにより、タスク実行条件によって異なる第２候補リストを容易に作成できるようになる利点がある。このような第２候補リスト２１４をそれぞれ作成するために第２性能情報を収集する対象となる候補コンピュータ１ｃは、タスク実行条件に基づき、第１候補リスト２１２から選抜される。例えば、タスク実行条件がレンダリング処理に関するものである場合、図５（ａ）に示されるアドレス（ＡＤ）３３３の候補コンピュータ１ｃは、レンダリング処理には向かないため、この候補コンピュータ１ｃからは、第２性能情報を収集しない。
【００５６】
【実施例】
次に、負荷の大きさに予測性がないアプリケーションが画像処理であるときの分散情報処理の実施例を説明する。
画像処理には、上述したジオメトリ処理とレンダリング処理とがある。ジオメトリ処理は、絶対座標空間におけるモデル（物体）の形状を、頂点座標、境界線・面を表現する方程式のパラメータなどにより定義するとともに、定義したモデルを、視点を基準としたスクリーン空間に置き換える処理であり、３次元空間での座標変換や光源処理（Ｌｉｇｈｔｉｎｇ）、クリッピング等を行う。レンダリング処理は、このジオメトリ処理で作成されたデータをもとに、画像用メモリ上に線や面の描画を行い、目的のモデルを画像表現する処理である。
ジオメトリ処理は膨大な計算処理を伴うので、複数のコンピュータで分散実行するアプリケーションとしては適している。
【００５７】
ここでは、画像処理が、図８のようなモデルを表示画面５０に表示させるためのデータを作ることであるとする。モデルは、メッシュデータに基づいて作成されるもので、ジオメトリ処理では、図９に示されるような格子点上の頂点データに座標変換を行うものであるとする。
主コンピュータ１ｍは、それぞれがクラスタの要素となる図２に示されるように４つの小プロセッサ１４を有し、各小プロセッサ１４は、１単位時間に８×８のデータのブロックＡを４つ含む１７×１７頂点の座標変換を単位時間で行うことができるものとすると、処理しなければならないデータは、図９に示されるようにブロック６つ分のデータであるから、主コンピュータ１ｍで１単位時間でデータ処理するには、２つのブロック分の処理性能が足りない。そこで、ＣとＤのブロックについてのジオメトリ処理を他の候補コンピュータ１ｃに代行させる必要がある。
そこで、主コンピュータ１ｍは、負荷を分散すべき候補コンピュータ１ｃを、以下のような手順で見つける。
【００５８】
まず、第１候補リスト２１２中のジオメトリ処理可能な候補コンピュータ１ｃに、プログラム及びデータをネットワークＮ上の各候補コンピュータ１ｃに転送してデータ受け取りまでの時間を計測し、計測結果に基づく現時点での転送バンド幅Ｂ１、Ｂ２、レイテンシＬを求めて第２候補リスト２１４を作成し、さらに、候補コンピュータ毎の評価値を決め、評価値によって第２候補リスト２１４をソーティングして、ジオメトリ処理に適したインデックスリスト２１５を作成する。ジオメトリ処理に適する条件は、転送するデータ、受け取るデータ共にそのサイズが大きく、応答時間は速いことである。
【００５９】
ジオメトリ用の処理性能ＰＡと、主コンピュータ１ｍの全処理性能Ｐ１とを較べ、足りない処理性能（ＰＡ−Ｐ１）を求めた後、第２候補リスト２１４で最も順位の高い候補コンピュータ１ｃに、どれだけの性能が余っているかを尋ねる。余っている性能Ｐ２が、足りない性能よりも多ければ（Ｐ２≧ＰＡ−Ｐ１）、その候補コンピュータにタスクを割り当てる。その候補コンピュータで余っている性能が足りない性能に満たない場合（ＰＡ−Ｐ１−Ｐ２＞０）は、候補コンピュータ１ｃに、余っている性能Ｐ２分の処理を割り当て、さらに、第２候補リスト２１４に従って他の候補コンピュータに尋ねることを、足りない処理性能が確保されるまで繰り返す。
【００６０】
このようにして、ブロックＣについてのデータは第１候補コンピュータ、ブロックＤのデータは第２候補コンピュータに決定されると、主コンピュータ１ｍは、データをメモリ１１上に格納し、ブロックＢの部分の座標変換を行うとともに、ブロックＣについてのデータは第１候補コンピュータに転送し、ブロックＤのデータは第２候補コンピュータに転送する。第１候補コンピュータは、ブロックＣの座標変換を行い、演算結果を主コンピュータ１ｍに転送して、実行結果保持部２９に蓄積させる。第２候補コンピュータは、ブロックＤの座標変換を行い、演算結果を主コンピュータ１ｍに転送して、実行結果保持部２９に蓄積させる。主コンピュータ１ｍは、ブロックＢの座標変換結果とブロックＣ，Ｄの座標変換結果とを統合して描画を行い、描画結果を自己に接続されている表示装置の表示画面５０に表示させる。図１０は、以上の手順の流れを図示したものである。
【００６１】
＜変形例＞
上記の実施例の変形として、以下のような弾力的な運用が可能である。
例えば、上記の実施例の場合、ジオメトリ処理については、処理（計算）の負荷、例えばデータ量によっては、他の候補コンピュータの計算能力を借りることが必要になるので、ジオメトリ処理に先立って、処理を分散させるべき第１候補コンピュータを見つけ、その第１候補コンピュータに、ジオメトリ処理用のプログラムを転送して、処理の予約を行っておく。そして、その後に負荷が大きいことが判明した時点で第１候補コンピュータにデータのみを送り、計算結果を受領する。計算が自己のみで間に合う場合は、データを送らないようにする。また、データ転送速度及び処理速度にプロセッサの数を乗算して単位時間内に第１候補コンピュータが処理できるデータ量を予め特定しておき、これ以上のデータについては、転送しないようにする。この結果、予約した計算能力以下の処理を分散させることになるが、この場合は、その旨を第１候補コンピュータに通知するようにすればよい。
【００６２】
なお、この実施形態では、すべてのコンピュータのプログラム実行手段の構成が同じであることを前提として説明したが、本発明は、空いている計算資源を他のコンピュータに貸し出せるようにすればよいので、プログラム実行手段の構成は、コンピュータによって異なる場合であっても本発明を実施できることは勿論である。
【００６３】
また、コンピュータが随時追加接続されることを考慮すると、全てのコンピュータに図３のような機能を用意させておく形態のほか、分散情報処理のための性能情報の管理は一つの管理コンピュータのみが行い、他のコンピュータは、自己の負荷が大きいことが判った段階で、管理コンピュータを介して他のコンピュータに分散情報処理の実行を依頼するようにしてもよい。
例えば、図１１は、一つの管理サーバと、複数のクライアント＃１〜＃ｎとをネットワークを介して接続し、各クライアントのプログラム実行手段の稼働状況を管理サーバで監視するとともに、あるクライアントから分散情報処理の依頼があったときに、計算資源に余裕があるクライアントにその分散情報処理を実行させ、その処理結果を依頼元に返信するようにすることもできる。
【００６４】
【発明の効果】
以上の説明から明らかなように、本発明によれば、複数のタスクを分散実行をするときに、負荷の大きさと候補装置の性能を計測し、当該時点で最適な資源にタスクを割り当てることができるので、分散情報処理の効率化が図れる効果がある。
【図面の簡単な説明】
【図１】本発明が適用される情報処理システムの全体構成図。
【図２】情報処理システムの構成要素となるコンピュータのプログラム実行手段のハードウエア構成例を示した図。
【図３】コンピュータに形成される機能ブロック構成図。
【図４】性能情報管理部の詳細ブロック構成図。
【図５】（ａ）は第１候補リストの内容例を示した図、（ｂ）第２候補リストの内容例を示した図、（ｃ）はインデックスリストの内容例を示した図。
【図６】分散情報処理を行う場合の準備段階の手順説明図。
【図７】アプリケーション入力時の分散情報処理の実行手順説明図。
【図８】画像処理により得られるモデルの説明図。
【図９】ジオメトリ処理を行うときのデータの種類及びサイズの説明図。
【図１０】分散情報処理の実行手順説明図。
【図１１】本発明の他の実施形態の説明図。
【図１２】分散情報処理を行うときの従来手法のタイミング関係を示した図であり、（ａ）は一つの計算資源で複数のタスクを共用して使う際の各タスクの終了タイミングを示した図、（ｂ）は時分割で複数のタスクを実行するときの各タスクと空き時間のタイミング関係を示した図、（ｃ）は各タスクが一定時間内で終わらない場合の不都合状態を示した図、（ｄ）は処理を細かい時間間隔で区切った場合の不都合状態を示した図である。
【符号の説明】
１ｍ・・・主コンピュータ、１ｃ・・・候補コンピュータ、Ｎ・・・ネットワーク、１１・・・メモリ、１２・・・管理プロセッサ、１３・・・Ｉ／Ｏ（入出力）インタフェース、１４・・・小プロセッサ、Ｂ・・・バス、２１・・・性能情報管理部、２２・・・他装置性能情報保持部、２３・・・タスク入力部、２４・・・負荷計測部、２５・・・タスク実行管理部、２６・・・稼働状況監視部、２７・・・候補決定部、２８・・・タスク割当部、２９・・・実行結果保持部、３０・・・稼働状況通知部、２１１・・・静的性能計測部、２１２・・・第１候補リスト、２１３・・・動的性能計測部、２１４・・・第２候補リスト、２１５・・・インデックスリスト、５０・・・表示画面
【図１】
2004287801.tif 000003
【図２】
2004287801.tif 000004
【図３】
2004287801.tif 000005
【図４】
2004287801.tif 000006
【図５】
2004287801.tif 000007
【図６】
2004287801.tif 000008
【図７】
2004287801.tif 000009
【図８】
2004287801.tif 000010
【図９】
2004287801.tif 000011
【図１０】
2004287801.tif 000012
【図１１】
2004287801.tif 000013
【図１２】
2004287801.tif 000014