(57)【要約】【課題】  投入されるジョブのサイズ、種類、数が様々で、それらが時々刻々と変化していくことが予想される処理を効率的に実行するネットワークシステムを提供する。【解決手段】  管理コンピュータ１０６は、自己の傘下のコンピュータ１０８が他のコンピュータとの接続が可能な状態にあるかどうかを表す接続可否情報と、他のコンピュータとの接続の容易度合いを表す容易性情報とを管理する。そして、自己及び他の管理コンピュータで管理している最新の接続可否情報が接続可を表すコンピュータを探索し、これにより特定されたコンピュータの容易性情報に基づいて当該特定されたコンピュータを包含するクラスタを形成する。クラスタ化されたコンピュータ１０８についての接続可否情報を接続不能に更新し、ジョブの実行が終了した時点でクラスタに属するすべてのコンピュータ１０８についての接続可否情報をクラスタ形成前の状態に復帰させる。【選択図】  図１
2006072987.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムであって；
各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブルと；
既に一又は複数のコンピュータにより形成されているクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルとを含み；
いずれかの前記コンピュータは、前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す自己および他のコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報を、クラスタ化不能の状態を表す情報に更新し、さらに形成したクラスタについての前記追加容易性情報を前記第２テーブルに記録するクラスタ形成手段を有しており；
クラスタを形成した前記コンピュータは、当該クラスタへの追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段を有している；ネットワークシステム。
【請求項２】
前記クラスタを形成した前記コンピュータは、当該クラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルに記録されている前記追加容易性情報および消滅したクラスタに所属していたすべてのコンピュータについて前記第１のテーブルに記録されていたクラスタ化可否情報をクラスタ形成前の状態に復帰させるクラスタ消滅手段；をさらに有している、
請求項１記載のネットワークシステム。
【請求項３】
前記追加容易性情報は前記追加のし易さを定量化した数値であり、前記クラスタ成長手段は、前記数値が高くなるほど前記候補コンピュータを当該クラスタへ追加させ易くする、
請求項１記載のネットワークシステム。
【請求項４】
前記クラスタ成長手段は、候補コンピュータの追加に拘わらず、前記数値を一定値に保持させる、
請求項３記載のネットワークシステム。
【請求項５】
前記クラスタ成長手段が、前記数値を前記第２のテーブルに記録した後に変動可能にする、
請求項３記載のネットワークシステム。
【請求項６】
前記クラスタ成長手段は、前記候補コンピュータを前記クラスタに追加したことを契機に前記数値を変動させる、
請求項５記載のネットワークシステム。
【請求項７】
それぞれ、他のコンピュータとのクラスタ化が可能な一又は複数のコンピュータを自己の傘下とする複数の管理コンピュータが自由に参加および離脱することができるネットワークシステムであって；
各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブルと；
既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録した第２のテーブルとを含み；
少なくとも一つの前記管理コンピュータは、自己の傘下にあるコンピュータおよび他の管理コンピュータの傘下にあるコンピュータのうち前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表すコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新するクラスタ形成手段を有しており、
クラスタを形成した前記管理コンピュータは、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段を有している、
ネットワークシステム。
【請求項８】
前記クラスタを形成した管理コンピュータは、当該クラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルに記録されている追加容易性情報および消滅したクラスタに所属していたすべてのコンピュータについて前記第１のテーブルに記録されていたクラスタ化可否情報をクラスタ形成前の状態に復帰させるクラスタ消滅手段をさらに有している、
請求項７記載のネットワークシステム。
【請求項９】
いずれかの前記管理コンピュータが、最大で自己の傘下にあるコンピュータの数の前記第２のテーブルを保有している、
請求項８記載のネットワークシステム。
【請求項１０】
前記第２テーブルは、それを保有する管理コンピュータが自己の傘下にある第１コンピュータを含む第１クラスタを形成するときに当該第１コンピュータ用として生成するマスターテーブルと、それを保有する管理コンピュータが、他の管理コンピュータが形成した第２クラスタに追加される、自己の傘下にある第２コンピュータの動作を監視制御するときには当該第２コンピュータ用に生成するスレーブテーブルのいずれかを少なくとも含んでおり、
前記追加容易性情報は前記マスターテーブルに記録されており、
前記マスターテーブルを保有する管理コンピュータは、前記第１クラスタの形成、第１クラスタ内のコンピュータ数の変更並びに第１クラスタの消滅に関わる情報処理を主導的に行うマスター管理コンピュータとして振る舞い、前記スレーブテーブルを保有する管理コンピュータは、前記第２クラスタに対するスレーブ管理コンピュータとして振る舞う、
請求項９記載のネットワークシステム。
【請求項１１】
前記マスター管理コンピュータは、いずれかの前記管理コンピュータに対してクラスタ化可能状態のコンピュータがあるかどうかを問い合わせることにより前記第１クラスタに追加させるための候補コンピュータを探索する探索手段を有する、
請求項１０記載のネットワークシステム。
【請求項１２】
いずれかの前記管理コンピュータは、前記マスター管理コンピュータにより形成された第１クラスタについての前記追加容易性情報に基づいて自己の傘下の候補コンピュータを当該第１クラスタに追加させるかどうかを決定する、
請求項１０記載のネットワークシステム。
【請求項１３】
前記追加容易性情報は、前記第１クラスタへの候補コンピュータの追加のし易さを定量化した数値であり、
前記マスター管理コンピュータが有するクラスタ成長手段は、前記数値が高くなるほど前記候補コンピュータを当該第１クラスタに追加させ易くする、
請求項１０記載のネットワークシステム。
【請求項１４】
前記クラスタ成長手段は、候補コンピュータの追加に拘わらず、前記数値を一定値に保持させる、
請求項１３記載のネットワークシステム。
【請求項１５】
前記クラスタ成長手段は、前記数値を前記第２テーブルに記録した後に変動可能にする、
請求項１３記載のネットワークシステム。
【請求項１６】
前記クラスタ成長手段は、前記候補コンピュータを前記第１クラスタに追加したことを契機に前記数値を変動させる、
請求項１５記載のネットワークシステム。
【請求項１７】
それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムであって；
既に一又は複数のコンピュータにより形成されているクラスタ毎に、当該クラスタに所属するコンピュータに関係付けられている他のクラスタの識別情報をリストアップしたテーブルを含み；
クラスタを形成した前記コンピュータは、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを自己のクラスタに関係付けられている他のクラスタに追加するかどうかを前記テーブルにリストアップされた識別情報に基づいて決定するクラスタ成長手段を有している；
ネットワークシステム。
【請求項１８】
前記テーブルには、前記自己のクラスタが実行する処理との関連性が高い関連クラスタほど前記候補コンピュータが追加されるように優先的にリストアップされる、
請求項１７記載のネットワークシステム。
【請求項１９】
各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブルを含んでおり、
いずれかの前記コンピュータは、前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す自己および他のコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報を、クラスタ化不能の状態を表す情報に更新するクラスタ形成手段を有している、
請求項１７記載のネットワークシステム。
【請求項２０】
それぞれ、他のコンピュータとのクラスタ化が可能な一又は複数のコンピュータを自己の傘下とする管理コンピュータであって；
他の同種機能を有する管理コンピュータと共に自由に参加および離脱することができるコンピュータネットワークに接続するためのネットワーク接続手段と；
各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブル、および、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルへのアクセスを可能にするテーブル管理手段と；
自己の傘下にある前記コンピュータおよび他の管理コンピュータの傘下にある前記コンピュータのうち前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表すコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタについての前記追加容易性情報を前記第２のテーブルに記録するクラスタ形成手段と；
追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段と；を有する管理コンピュータ。
【請求項２１】
前記形成したクラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルに記録されている追加容易性情報および消滅したクラスタに所属していたすべてのコンピュータについて前記第１のテーブルに記録されているクラスタ化可否情報をクラスタ形成前の状態に復帰させるクラスタ消滅手段をさらに有する、
請求項２０記載の管理コンピュータ。
【請求項２２】
それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるクラスタ管理方法であって；
各コンピュータが、それぞれ自己の状態がクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を第１のテーブルに記録する段階と；
いずれかのコンピュータが、自己と前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す他のコンピュータとを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を第２のテーブルに記録する段階と；
追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定する段階と；を有するクラスタ管理方法。
【請求項２３】
前記クラスタを形成したコンピュータが、前記形成したクラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルに記録されている追加容易性情報および消滅したクラスタに所属していたすべてのコンピュータについて前記第１のテーブルに記録されているクラスタ化可否情報をクラスタ形成前の状態に復帰させる段階とを有する、
請求項２２記載のクラスタ管理方法。
【請求項２４】
それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるクラスタ管理方法であって；
既に一又は複数のコンピュータによりクラスタを形成したコンピュータが、当該クラスタに所属するコンピュータが関係付けられている他のクラスタの識別情報を所定のテーブルにリストアップする段階と；
クラスタを形成した前記コンピュータが、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを当該クラスタと関係付けられている他のクラスタに追加するかどうかを前記テーブルに記録されている識別情報に基づいて決定する段階と；を有する、クラスタ管理方法。
【請求項２５】
それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるいずれかのコンピュータに読み取られて実行されることにより当該コンピュータを、
各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブル、および、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルへのアクセスを可能にするテーブル管理手段；
前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す自己および他のコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記第１のテーブルのクラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタについての前記追加容易性情報を前記第２のテーブルに記録するクラスタ形成手段；
追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段；として機能させるためのコンピュータプログラム。
【請求項２６】
それぞれ他のコンピュータとのクラスタ化が可能な一又は複数のコンピュータを自己の傘下とする管理コンピュータに読み取られて実行されることにより、前記管理コンピュータを；
他の同種機能を有する管理コンピュータと共に自由に参加および離脱することができるコンピュータネットワークに接続するためのネットワーク接続手段；
各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブル、および、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルへのアクセスを可能にするテーブル管理手段；
自己の傘下にある前記コンピュータおよび他の管理コンピュータの傘下にある前記コンピュータのうち前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表すコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタについての前記追加容易性情報を前記第２のテーブルに記録するクラスタ形成手段；
追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段；として機能させるためのコンピュータプログラム。
【請求項２７】
それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるいずれかのコンピュータに読み取られて実行されることにより、当該コンピュータを；
既に一又は複数のコンピュータによりクラスタを形成したときに当該クラスタに所属するコンピュータが関係付けられている他のクラスタの識別情報を所定のテーブルにリストアップするクラスタ管理手段；
追加候補となる候補コンピュータが存在するときに当該候補コンピュータを自己のクラスタに関係付けられている他のクラスタに追加するかどうかを前記テーブルにリストアップされた識別情報に基づいて決定するクラスタ成長手段；として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広帯域環境のコンピュータ・ネットワークに接続される複数のコンピュータによって行われる効率的な分散コンピューティング技術に関する。
より詳しくは、分散コンピューティングが可能なネットワークシステムおよびその構成要素、ならびにネットワークにおけるクラスタ管理方法に関する。
【背景技術】
【０００２】
今日、ネットワークに接続された複数のコンピュータが協働して一つのジョブを分散処理することが一般的になっている。ジョブを分散処理する場合、従来は、どのコンピュータにどのジョブを割り当てるかを決めるために、予めネットワークに接続可能なすべてのコンピュータの処理能力を把握しているサーバの存在が不可欠となる。
サーバは、ジョブの負荷の大きさと、分散処理を行おうとするときにネットワークに接続されている各コンピュータの余剰処理能力（計算資源）とを特定し、負荷に応じた余剰処理能力を有するコンピュータを逐次割り当てていき、その割り当てたコンピュータからジョブの実行結果を受け取る。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
サーバを必要とする従来の分散処理方法では、任意の時点でネットワークに接続されたり、非接続になったりするコンピュータの余剰処理能力を、サーバにおいて、迅速に把握することは、非常に困難である。また、サーバが、ジョブの分散処理を依頼したコンピュータからその実行結果を受け取って、ジョブの依頼元に転送しなければならないため、サーバのオーバーヘッドが大きくなる。そのため、ジョブの実行に必要な時間と、ネットワークを介するデータ伝送に必要な時間とが実質的に増加してしまうという問題がしばしば生じていた。
本発明は、このような従来の問題点を解決することができる分散処理の仕組みを提供することを、主たる課題とする。
【課題を解決するための手段】
【０００４】
本発明は、実行すべきジョブのサイズ、種類、数が様々で、それらが時々刻々と変化することが予想される情報処理を複数のコンピュータにより効率的に分散実行することができるネットワークシステムおよびその構成要素、ならびにクラスタ管理方法により、上記の課題を解決する。
ここにいう「コンピュータ」は、コンピュータプログラムによって動作するプロセッサを含む装置をいうが、装置の形式をとらないデバイス、プロセッサボード、プロセッサチップ、あるいはプロセッサ自体も「コンピュータ」の概念に含まれる。例えば、マルチプロセッサシステムのような個々のプロセッサも「コンピュータ」となり得る。
【０００５】
本発明が提供する第１構成のネットワークシステムは、それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムである。
このネットワークシステムは、各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブルと、既に一又は複数のコンピュータにより形成されているクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルとを含んでいる。
いずれかの前記コンピュータは、前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す自己および他のコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報を、クラスタ化不能の状態を表す情報に更新し、さらに形成したクラスタについての前記追加容易性情報を前記第２テーブルに記録するクラスタ形成手段を有している。また、クラスタを形成した前記コンピュータは、当該クラスタへの追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段を有するものである。
【０００６】
このような構成のネットワークシステムでは、いずれかのコンピュータが、第１のテーブルに記録されている個々のコンピュータのクラスタ化可否情報をもとに自律的にクラスタを形成し、そのクラスタにおける追加容易性情報を第２のテーブルに記録する。クラスタに含めるコンピュータの数は、クラスタが形成されたタイミングで定まるデフォルト数であっても良く、実際に投入された、あるいは、近い将来投入が予想されるジョブのサイズ等に応じてフレキシブルに定まる数であっても良い。いずれにしても、クラスタ化可否情報がクラスタ化可能な状態であるコンピュータが選定されてクラスタが形成される。
クラスタが形成された後、追加候補となる候補コンピュータがあるときは、そのクラスタを形成したコンピュータが、第２テーブルに記録されている追加容易性情報に基づいてその候補コンピュータをクラスタに追加するかどうかを決定する。
【０００７】
追加容易性情報は、クラスタを形成したコンピュータが、候補コンピュータを追加することが適切かどうかを自律的に決定するための情報であって、様々な種類の情報を用いることができる。最先に追加を申し込んだいくつかのコンピュータのみを追加させる、乱数により発生した番号を識別情報とするコンピュータのみを追加させる・・・といった条件等も追加容易性情報として採用することができる。但し、追加させるかどうかの決定の処理を簡略化する観点からは、追加のし易さといった尺度を数値により定量化しておき、この数値との大小比較を行えるようにして、数値が高くなるほど候補コンピュータを当該クラスタへ追加させ易くするようにすることが望ましい。この場合の数値は、一例を挙げれば、不定期に発生する５回の追加可否の問い合わせに対して１回だけランダムに応答して追加を認める（この場合の数値は１／５：２０％となる）、合計で１日のシステム運用時間の１０％の時間帯の受付分だけ、候補コンピュータの追加を認める（この場合の数値は２４（時間）×６０（分）×６０（秒）×０．１×α（確率値）となる）という類のものである。
【０００８】
なお、数値は、候補コンピュータの追加に拘わらず、一定値に保持させるようにしても良いし、第２のテーブルに記録した後に変動可能にしても良い。数値を変動可能にする場合は、候補コンピュータをクラスタに追加したことを契機に変動させることにより、候補コンピュータが集まり易いクラスタは、さらに他の候補コンピュータを集めやすくなり、実際の需要に即したサイズのクラスタを容易に形成できるようになり易いという利点が生じる。
【０００９】
このようにして、候補コンピュータがクラスタに逐次追加されることにより、様々なサイズのクラスタがネットワークシステムの複数のコンピュータ上で形成され、成長していく。そのため、実行すべきジョブのサイズ、種類、数が様々で、それらが時々刻々と変化していくことが予想される情報処理を効率的に実行することができる分散コンピューティングが実現され、従来の問題点が解消される。
【００１０】
第１構成のネットワークシステムにおける、ある実施の態様では、クラスタを形成したコンピュータが、当該クラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルに記録されている前記追加容易性情報および消滅したクラスタに所属していたすべてのコンピュータについて前記第１のテーブルに記録されていたクラスタ化可否情報をクラスタ形成前の状態に復帰させるクラスタ消滅手段をさらに有している。
クラスタは、ジョブが実行されるまでは、上述した追加容易性情報に基づいて成長するが、ジョブの実行が終了した時点で消滅するので、固定的にクラスタを用意しておく場合に比べて、コンピュータの有効活用が図れるようになる。
【００１１】
本発明が提供する第２構成のネットワークシステムは、それぞれ、他のコンピュータとのクラスタ化が可能な一又は複数のコンピュータを自己の傘下とする複数の管理コンピュータが自由に参加および離脱することができるネットワークシステムである。
「一又は複数のコンピュータを自己の傘下のコンピュータとして管理する」とは、自己に接続されている複数のコンピュータの動作を制御するとともに、それらの動作状態を監視することをいう。
このネットワークシステムにおいて、各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブルと、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録した第２のテーブルとを含んでいる。
また、少なくとも一つの前記管理コンピュータは、自己の傘下にあるコンピュータおよび他の管理コンピュータの傘下にあるコンピュータのうち前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表すコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新するクラスタ形成手段を有している。さらに、クラスタを形成した前記管理コンピュータは、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段を有している。
【００１２】
このような構成のネットワークシステムでは、いずれかの管理コンピュータが、第１のテーブルに記録されているコンピュータのクラスタ化可否情報をもとに自律的にクラスタを形成し、そのクラスタにおける追加容易性情報を第２のテーブルに記録する。クラスタが形成された後、追加候補となる候補コンピュータがあるときは、そのクラスタを形成した管理コンピュータが、第２テーブルに記録されている追加容易性情報に基づいてその候補コンピュータをクラスタに追加するかどうかを決定する。クラスタ化可否情報、追加容易性情報の扱い、クラスタ化、クラスタ成長の際の基準は、第１構成のネットワークシステムと同じである。
【００１３】
第２構成のネットワークシステムにおける、ある実施の態様では、前記管理コンピュータは、前記形成したクラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルおよび消滅したクラスタに所属していたすべてのコンピュータについての前記第１のテーブルの記録情報をクラスタ形成前の状態に復帰させるクラスタ消滅手段をさらに有するものである。
クラスタは、ジョブが実行されるまでは、上述した追加容易性情報に基づいて成長するが、ジョブの実行が終了した時点で消滅するので、固定的にクラスタを用意しておく場合に比べて、コンピュータの有効活用が図れるようになる。
【００１４】
第２構成のネットワークシステムにおいて、第２のテーブルは、任意の箇所に存在しても良いが、通常は、第２のテーブルを生成することになるいずれかの管理コンピュータが保有することになる。この場合、その管理コンピュータは、最大で自己の傘下にあるコンピュータの数の前記第２のテーブルを保有することになる。
第２テーブルは、それを保有する管理コンピュータが自己の傘下にある第１コンピュータを含む第１クラスタを形成するときに当該第１コンピュータ用として生成するマスターテーブルと、それを保有する管理コンピュータが、他の管理コンピュータが形成した第２クラスタに追加される、自己の傘下にある第２コンピュータの動作を監視制御するときには当該第２コンピュータ用に生成するスレーブテーブルのいずれかを少なくとも含む。追加容易性情報はマスターテーブルに記録される。マスターテーブルを保有する管理コンピュータは、第１クラスタの形成、第１クラスタ内のコンピュータ数の変更並びに第１クラスタの消滅に関わる情報処理を主導的に行うマスター管理コンピュータとして振る舞い、スレーブテーブルを保有する管理コンピュータは、第２クラスタに対するスレーブ管理コンピュータとして振る舞う。
【００１５】
クラスタ化を促進する観点からは、マスター管理コンピュータは、いずれかの管理コンピュータに対してクラスタ化可能状態のコンピュータがあるかどうかを問い合わせることにより第１クラスタに追加させるための候補コンピュータを探索する探索手段を有するものとする。また、いずれかの管理コンピュータは、マスター管理コンピュータにより形成された第１クラスタについての前記追加容易性情報に基づいて自己の傘下の候補コンピュータを当該第１クラスタに追加させるかどうかを決定するように構成する。
【００１６】
本発明が提供する第３構成のネットワークシステムは、それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムであって；既に一又は複数のコンピュータにより形成されているクラスタ毎に、当該クラスタに所属するコンピュータが関係付けられている他のクラスタの識別情報をリストアップしたテーブルを含み；クラスタを形成した前記コンピュータは、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを自己のクラスタに関係付けられている他のクラスタに追加するかどうかを前記テーブルにリストアップされた識別情報に基づいて決定するクラスタ成長手段を有しているネットワークシステムである。「関係付けられている」とは、例えば互いに連絡が可能で連携処理等ができる状態をいう。このような構成のネットワークシステムでは、追加容易性情報によらずともベキ分布に従うクラスタリングが可能になる。
【００１７】
本発明は、また、例えば上記第２構成のネットワークシステムを構成するための管理コンピュータを提供することにより、上記課題の解決を図る。
この管理コンピュータは、それぞれ、他のコンピュータとのクラスタ化が可能な一又は複数のコンピュータを自己の傘下とする管理コンピュータであって；他の同種機能を有する管理コンピュータと共に自由に参加および離脱することができるコンピュータネットワークに接続するためのネットワーク接続手段と；各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブル、および、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルへのアクセスを可能にするテーブル管理手段と；自己の傘下にある前記コンピュータおよび他の管理コンピュータの傘下にある前記コンピュータのうち前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表すコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタについての前記追加容易性情報を前記第２のテーブルに記録するクラスタ形成手段と；追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段と；を有するものである。前記形成したクラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルに記録されている追加容易性情報および消滅したクラスタに所属していたすべてのコンピュータについて前記第１のテーブルに記録されているクラスタ化可否情報をクラスタ形成前の状態に復帰させるクラスタ消滅手段をさらに有するものとすることもできる。
【００１８】
本発明は、また、例えば上記の第１構成および第３構成のネットワークシステムに含まれる複数のコンピュータにより実行されるクラスタ管理方法により、上記課題の解決を図る。
第１のクラスタ管理方法は、それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるクラスタ管理方法であって；各コンピュータが、それぞれ自己の状態がクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を第１のテーブルに記録する段階と；いずれかのコンピュータが、自己と前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す他のコンピュータとを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を第２のテーブルに記録する段階と；追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定する段階と；を有するクラスタ管理方法である。
前記クラスタを形成したコンピュータが、前記形成したクラスタによるジョブの実行が終了した時点で当該クラスタを消滅させるとともに、前記第２のテーブルおよび消滅したクラスタに所属していたすべてのコンピュータについての前記第１のテーブルの記録情報をクラスタ形成前の状態に復帰させる段階とをさらに含めることもできる。
【００１９】
第２のクラスタ管理方法は、それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるクラスタ管理方法であって；既に一又は複数のコンピュータによりクラスタを形成したコンピュータが、当該クラスタに所属するコンピュータが関係付けられている他のクラスタの識別情報を所定のテーブルにリストアップする段階と；クラスタを形成した前記コンピュータが、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを当該クラスタと関係付けられている他のクラスタに追加するかどうかを前記テーブルに記録されている識別情報に基づいて決定する段階と；を有する、クラスタ管理方法である。
【００２０】
本発明は、また、コンピュータに所定の機能を付与するためのコンピュータプログラムを提供することにより、上記課題の解決を図る。
第１のコンピュータプログラムは、それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるいずれかのコンピュータに読み取られて実行されることにより当該コンピュータを、各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブル、および、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルへのアクセスを可能にするテーブル管理手段；前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表す自己および他のコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記第１のテーブルのクラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタについての前記追加容易性情報を前記第２のテーブルに記録するクラスタ形成手段；追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段として機能させるためのコンピュータプログラムである。
【００２１】
第２のコンピュータプログラムは、それぞれ他のコンピュータとのクラスタ化が可能な一又は複数のコンピュータを自己の傘下とする管理コンピュータに読み取られて実行されることにより、前記管理コンピュータを；他の同種機能を有する管理コンピュータと共に自由に参加および離脱することができるコンピュータネットワークに接続するためのネットワーク接続手段；各々のコンピュータの状態がそれぞれクラスタ化が可能な状態かどうかを表すクラスタ化可否情報を記録した第１のテーブル、および、既に一又は複数のコンピュータにより形成されたクラスタが他のコンピュータをどの程度追加し易いかを表す追加容易性情報を記録するための第２のテーブルへのアクセスを可能にするテーブル管理手段；自己の傘下にある前記コンピュータおよび他の管理コンピュータの傘下にある前記コンピュータのうち前記第１のテーブルのクラスタ化可否情報がクラスタ化可能の状態を表すコンピュータを含んだクラスタを形成するとともに、形成したクラスタに含まれるすべてのコンピュータについての前記クラスタ化可否情報をクラスタ化不能の状態を表す情報に更新し、さらに、当該クラスタについての前記追加容易性情報を前記第２のテーブルに記録するクラスタ形成手段；追加候補となる候補コンピュータが存在するときに当該候補コンピュータを前記クラスタに追加するかどうかを前記第２のテーブルに記録されている追加容易性情報に基づいて決定するクラスタ成長手段；として機能させるためのコンピュータプログラムである。
【００２２】
第３のコンピュータプログラムは、それぞれ、他のコンピュータとのクラスタ化が可能な複数のコンピュータが自由に参加および離脱することができるネットワークシステムにおけるいずれかのコンピュータに読み取られて実行されることにより、当該コンピュータを、既に一又は複数のコンピュータによりクラスタを形成したときに当該クラスタに所属するコンピュータが関係付けられている他のクラスタの識別情報を所定のテーブルにリストアップするクラスタ管理手段と、追加候補となる候補コンピュータが存在するときに当該候補コンピュータを自己のクラスタに関係付けられている他のクラスタに追加するかどうかを前記テーブルにリストアップされた識別情報に基づいて決定するクラスタ成長手段；として機能させるためのコンピュータプログラムである。
【００２３】
これらのコンピュータプログラムは、可搬性の記録媒体に記録されて市場を流通し、あるいは、コンピュータまたは管理コンピュータがアクセス可能なコンピュータネットワークを通じてプログラムサーバ等からダウンロードされる。
【発明の効果】
【００２４】
本発明によれば、様々なサイズのクラスタがネットワークシステムの複数のコンピュータのいずれかにおいて形成され、それが所定のテーブルの記録情報に基づいて成長していくので、任意のサイズのクラスタを容易に得られるようになる。そのため、実行すべきジョブのサイズ、種類、数が様々で、それらのいずれかが時々刻々と変化していくことが予想される不確実性の情報処理であっても、それを効率的に実行することができる分散コンピューティングが実現されるという、特有の効果が得られる。
【発明を実施するための最良の形態】
【００２５】
＜ネットワークシステムのアーキテクチャ＞
まず、本発明が適用されるネットワークシステムのアーキテクチャを説明する。
図１は、本発明が適用されるネットワークシステム１０１の全体図である。このネットワークシステム１０１は、コンピュータ・ネットワーク１０４を含んでいる。コンピュータ・ネットワーク１０４の例としては、ローカル・エリア・ネットワーク(ＬＡＮ)、インターネットのようなグローバルネットワーク、あるいは他のコンピュータ・ネットワークが挙げられる。
【００２６】
コンピュータ・ネットワーク１０４には、一又は複数のコンピュータを自己の傘下とする管理コンピュータ１０６が、それぞれ任意のタイミングで接続することができる。各管理コンピュータ１０６は、それぞれ、他の管理コンピュータ１０６、および、他の管理コンピュータ１０６の傘下にある他のコンピュータ１０８との間で双方向の通信を行うことができる。各コンピュータ１０８は、何時でも、いずれかの管理コンピュータ１０６の傘下になることができる。つまり、これらのコンピュータ１０６、１０８は、ネットワークシステム１０１に、何時でも自由に離脱できる形態で参加できるようになっている。
【００２７】
この実施形態にいう「コンピュータ」は、コンピュータプログラムによって動作するプロセッサを含む装置をいうが、装置の形式をとらないデバイス、プロセッサボード、あるいはこれらの集合も「コンピュータ」の概念に含まれる。また、「一又は複数のコンピュータ１０８を傘下とする」とは、自己に接続されている複数のコンピュータ１０８の動作を制御するとともに、それらの動作状態を監視することをいう。
【００２８】
管理コンピュータ１０６の例としては、サーバ機能を有するコンピュータ、通信機能付のゲームコンソール、コンピューティングデバイス、プロセッサボードなどが含まれる。
管理コンピュータ１０６の傘下にあるコンピュータ１０８の例としては、パーソナルコンピュータ、通信機能付のゲームコンソール及びその他の有線または無線コンピュータ、コンピューティング・デバイス、プロセッサボードなどが含まれる。
【００２９】
管理コンピュータ１０６へのコンピュータ１０８の接続形態は様々である。例えば、図１に示されるように、コンピュータ・ネットワーク１０４に接続された管理コンピュータ１０６を中心に複数のコンピュータ１０８が直接接続されるスター接続型、管理コンピュータ１０６が接続されている構内ネットワークを介して複数のコンピュータ１０８が接続される構内ネットワーク型、コンピュータ・ネットワーク１０４を介して複数のコンピュータ１０８が管理コンピュータ１０６に接続される広域ネットワーク型等が挙げられる。
構内ネットワーク型における構内ネットワークの種類も様々であり、コンピュータ・ネットワーク１０４とダイレクトに接続されたネットワークもあれば、コンピュータ・ネットワーク１０４とは管理コンピュータ１０６を介して接続されるネットワークもある。
【００３０】
各管理コンピュータ１０６は、図２に示されるように、バスＢ１１を通じて相互に接続されたハードディスク等のストレージ装置１０６１、通信装置１０６３、半導体メモリ１０６５、プロセッサ１０６７を含んでいる。このようなハードウエア資源を有する管理コンピュータ１０６は、ＣＤ−ＲＯＭ等の記録媒体を通じて半導体メモリ１０６５にロードされたコンピュータプログラムをプロセッサ１０６７が読み取って実行することにより、図４に示されるように、ストレージ装置１０６１に、後述する複数の管理テーブル２０６を格納するとともに、テーブル管理部２１２、クラスタ管理部２１６、通信制御部２３６、およびジョブ実行部２５６の機能をコンピュータ本体内に構築する。
【００３１】
テーブル管理部２１２は、管理テーブル２０６にアクセスして、その管理テーブル２０６の記録内容を更新させる。クラスタ管理部２１６は、自己の傘下のコンピュータ１０８および他の管理コンピュータ１０６の傘下にあるコンピュータ１０８が所属するクラスタの形成・成長・消滅に関わる情報処理を行う。つまり、クラスタ管理部２１６は、クラスタの状態変化に応じて、クラスタ形成手段、クラスタ成長手段、クラスタ消滅手段として機能する。
【００３２】
通信制御部２３６は、通信装置１０６３を通じて、自己の傘下のコンピュータ１０８および他の管理コンピュータ１０６との間の通信を可能にする。ジョブ実行部２５６は、自己の傘下のコンピュータ１０８を含むクラスタにジョブを投入し、それを実行させる。ジョブ実行部２５６には、最適なクラスタのサイズ、つまりコンピュータ数の特定を容易にするために、ジョブのサイズ、処理時間等を計算する機能を持たせるようにしても良い。
【００３３】
コンピュータ１０８は、管理コンピュータ１０６と同様のストレージ装置、通信装置、半導体メモリおよびプロセッサを有している。この実施形態では、ストレージ装置に、後述するステータステーブルを格納する。また、ＣＤ−ＲＯＭ等の記録媒体を通じて半導体メモリにロードされたコンピュータプログラムをプロセッサが読み取って実行することにより、クラスタ管理およびジョブの実行に関する種々の機能をコンピュータ本体内に構築する。望ましくは、他のコンピュータ１０８と命令セット・アーキテクチャ(ＩＳＡ)がすべて同じ、あるいは同じとみなされるもので、同じ命令セットに従って所要の処理を実行できるものとする。
【００３４】
各管理コンピュータ１０６における傘下のコンピュータ１０８の数は、任意である。ある管理コンピュータ１０６では、各種アプリケーションによって与えられるジョブを実行する上で必要な処理能力によって、コンピュータ１０８の数が割り当てられている。
管理コンピュータ１０６の傘下にある複数のコンピュータ１０８におけるＩＳＡがそれぞれ同一あるいは同一とみなされる場合には、管理コンピュータ１０６あるいはネットワークシステム１０１におけるアダプタビリティを飛躍的に改善することができる。
【００３５】
各管理コンピュータ１０６は、各々自己の傘下のコンピュータ１０８又は他の管理コンピュータ１０６の傘下のコンピュータ１０８のうち１つまたはそれ以上を含んでクラスタを形成し、クラスタ単位でジョブを実行できるようにする。自己の傘下のコンピュータ１０８と他の管理コンピュータ１０６の傘下のコンピュータ１０８との間には、少なくとも一つのクラスタを形成する上での性能上の相違、制約等は存在しない。このように扱うことにより、ジョブは、どの管理コンピュータ１０６のどのコンピュータ１０８において実行するかは、さほど重要でなくなる。ジョブの実行結果の受け取り先を、ジョブを依頼した管理コンピュータ１０６、その傘下のコンピュータ１０８あるいは後続のジョブを実行する任意のコンピュータ１０８として指定するだけで足りるようになる。そのため、個々のジョブは、コンピュータ・ネットワーク１０４に接続されている複数の管理コンピュータ１０６の傘下のコンピュータ１０８の間で分散実行することが容易になる。
【００３６】
上記のように各コンピュータ１０８が、すべて同じ、あるいは同じとみなされるＩＳＡを有するものとする場合は、コンピュータ１０８間の互換性を達成するためのソフトウェアの追加層の計算上の負担も回避されるし、異質なコンピュータ・ネットワークの混在という問題の多くを防ぐことができる。そのため、用途に応じて、そのようなネットワークシステム１０１を構成するのが望ましい。このようなネットワークシステム１０１では、コンピュータ・ネットワーク１０４に接続されている複数の管理コンピュータ１０６およびコンピュータ１０８間のアーキテクチャの相違は吸収され、図３に示されるように、各管理コンピュータ１０６の傘下にある多数のコンピュータ１０８の各々があたかも情報処理の細胞（Cell）のように機能する、広帯域処理の実現が可能な大規模情報処理統合体ＷＯが形成される。
【００３７】
大規模情報処理統合体ＷＯにおける個々のコンピュータ１０８は、物理的には自己が所属する管理コンピュータ１０６によって管理され、単独のコンピュータとして動作したり、その管理コンピュータ１０６の傘下にある他のコンピュータ１０８と共にクラスタ化されて協働で動作したりする。しかし、論理的には、管理コンピュータ１０６による壁はなく、異なる管理コンピュータ１０６の傘下の他のコンピュータ１０８との間でのクラスタ化も可能である。このような形態でクラスタ化される場合、一つのジョブを同じクラスタに属する複数のコンピュータ１０８で分散実行することができる。
【００３８】
＜分散コンピューティング＞
本発明は、上記のネットワークシステム１０１のアーキテクチャを利用した効率的な分散コンピューティングの仕組みを提供する。このような仕組みを可能にするため、本発明では、例えば図３に示した大規模情報処理統合体ＷＯのようなネットワークを構成する複数のコンピュータ１０８の各々がノードとなり、少数のノードからスタートして時間の経過と共にノード数が増加する「成長」、ノード間のリンクの接続手法としての「選択的接続」とを繰り返すことができるようにする。
「選択的接続」とは、新たにネットワークに参加したノードがリンクを張る際に、リンク先のノードを選ぶ基準として、より多くのリンクを既に持っているノードに、より接続しやすくなるいうものである。成長と選択的接続の２つの特徴により、ネットワークは、成長しながらスケールフリーの性質を持つようになる。このような成長と選択的接続の繰り返しにより、ノードの持つリンク数の分布がベキ分布になることは、例えば、Albert Barabasi,Reka Albert,Hawoong“Mean-field theory for scale-free random networks"に詳細に示されている。
【００３９】
図５は、ノードをランダムに接続した場合と、選択的接続した場合のノードが持つリンクの数を横軸に、そのリンク数を持つノード数を縦軸にして、実測値をプロットしたグラフである。図５（ａ）は、ノードをランダムに接続した場合の例である。この例の場合は、典型的なリンク数をもつ代表的なノードというものが現れる。図５（ｂ）は、選択的接続した場合の例であり、代表的なノードが現れず、リンク数は、広い範囲に拡がる。つまり、典型的なスケールが現れないという意味で、スケールフリーと称される。図５（ｂ）の分布は、以下のように表され、両対数のグラフで書くと、直線になるような非常に裾野の広い分布となる。
Ｐ（ｋ）＝ＡＫ＾（−ｒ）・・・（１）
但し、ｋ：リンク数、Ｐ（ｋ）：ノード数
【００４０】
本発明は、上記の２つの特徴を応用し、個々のノードをクラスタと解釈し、リンクは、互いに結ばれたノードに相当するクラスタに含まれる２つのコンピュータ１０８であると解釈する。これにより、任意の分布、もちろん、図５（ｂ）に示したベキ分布をもつことも可能な形態でクラスタリングを行い、これにより、効率的な分散コンピューティングを可能にするものである。このようにして成長していくネットワークでは、リンク数は、クラスタに含まれるコンピュータ１０８の数、つまりクラスタサイズ、あるいはクラスタの計算能力となる。横軸にクラスタに含まれるコンピュータ１０８の数、縦軸にクラスタの数又はクラスタ化の頻度をプロットすると、それは、図５（ｂ）に示したベキ分布と類似した分布になるはずである。
【００４１】
以下、上記のようなクラスタリングを可能にするには、個々のコンピュータ１０８がどのように動作し、各管理コンピュータ１０６がどのようにコンピュータ１０８又は他の同種の管理コンピュータ１０６の動作を監視制御していったら良いかを述べる。
【００４２】
個々のコンピュータ１０８は、現在、自己の状態がクラスタ化が可能な状態にあるかどうかを表すコンピュータ・クラスタ・ステータス（クラスタ化可否情報）により管理される。コンピュータ・クラスタ・ステータスは、ステータステーブルに記録され、コンピュータ１０８の状態の変化に追随して、当該コンピュータ１０８又はそれを傘下として管理する管理コンピュータ１０６により更新される。ステータステーブルは、コンピュータ１０８又は管理コンピュータ１０６がアクセス可能な任意のメモリ領域に存在すれば足りるが、コンピュータ１０８のストレージ装置に設けるようにしても良い。
ステータステーブルに記録されるコンピュータ・クラスタ・ステータスの例として、本実施形態では、「clustered」、「run」、「free」の３種類の情報を用いる。「clustered」は既にクラスタ化されており、現在はジョブの実行を待っているコンピュータであることを示す。「run」はジョブを実行中のコンピュータであることを示す。「free」は未稼働状態にあるコンピュータであることを示す。「clustered」、「run」のときは、そのコンピュータ１０８はクラスタ化ができない。そのため、「clustered」、「run」は、クラスタ化不能の状態を表す情報となる。他方、「free」はクラスタ化可能の状態を表す情報となる。
【００４３】
管理コンピュータ１０６の役割の一つは、上述したように、自己の傘下のコンピュータ１０８を管理することにある。管理テーブル２０６は、そのために用いられる。上述したように、管理テーブル２０６は、例えば当該管理コンピュータ１０６が有するストレージ装置１０６１に格納される。この管理コンピュータ１０６は、最大で、自己の傘下にあるコンピュータ１０８の数だけの管理テーブル２０６を有する。
【００４４】
管理テーブル２０６には、２種類ある。ある種類に分類される管理テーブル２０６は、管理コンピュータ１０６が、初めに自己の傘下のコンピュータ１０８を含むクラスタを形成する際にそのクラスタの状態に関する情報を記録するための「マスタテーブル」である。もう１つは、他の管理コンピュータ１０６により形成されるクラスタに追加されるコンピュータ１０８があるときに、そのクラスタの状態に関する情報を記録するための「スレーブテーブル」である。
【００４５】
管理コンピュータ１０６は、マスターテーブルにより自己が管理するクラスタに含まれるコンピュータ１０８を監視制御するときは「マスター管理コンピュータ」として振る舞う。他方、スレーブテーブルにより他の管理コンピュータ１０６が管理するクラスタに属する自己の傘下のコンピュータ１０８を監視制御するときは、「スレーブ管理コンピュータ」として振る舞う。つまり、１つの管理コンピュータ１０６でありながら、最大で、自己の傘下のコンピュータ１０８の数だけの種類の管理コンピュータとして振る舞うことになる。
【００４６】
マスターテーブルは、マスター管理コンピュータとして振る舞う管理コンピュータ１０６が生成し、スレーブテーブルは、スレーブ管理コンピュータとして振る舞う管理コンピュータ１０６が生成する。スレーブテーブルが存在するということは、それに対応するマスターテーブルがどこかの管理コンピュータ１０６に存在していることを意味する。
【００４７】
ここで、本実施形態におけるマスターテーブルとスレーブテーブルの内容例を具体的に説明する。図６（ａ）にはマスターテーブル２１６１、図６（ｂ）にはスレーブテーブル２１６２の内容例が示されている。
マスターテーブル２１６１には、クラスタＩＤ（ＩＤは識別情報の意、以下同じ）２３６１、クラスタ・サイズ２３６２、コンピュータリスト２３６３、クラスタ・ステータス２３６４、最大コンピュータ数２３６５、最小コンピュータ数２３６６、トータルコンピュータ数２３６７、クラスタ・コネクションレシオ２３６８の値（図６（ａ）の右側のフィールドの記録値）が、それぞれ、そのクラスタの成分（値）として、マスター管理コンピュータにより記録される。
【００４８】
クラスタＩＤ２３６１は、形成したクラスタに付与される固有ＩＤである。そのクラスタが存在し続ける限りにおいて一意の情報になれば良いので、例えば、マスター管理コンピュータのＩＤと初めにクラスタに含まれることになるコンピュータ１０８のＩＤとの組をクラスタＩＤとすることができる。
クラスタ・サイズ２３６２は、新規あるいは追加でクラスタに含まれることとなったコンピュータ１０８の総数値である。これは、マスター管理コンピュータが、クラスタ内のコンピュータ数を計測することにより特定することができる。
【００４９】
コンピュータリスト２３６３は、クラスタに含まれることになったコンピュータ１０８の識別情報のリストである。
クラスタ・ステータス２３６４は、クラスタの現在の状態を表す情報である。本実施形態では、「idle」、「run」、「wait」の３種類の状態をクラスタ・ステータスとして用いる。「idle」はクラスタがジョブを実行していない状態である。クラスタがこの状態のときは、そのクラスタへのコンピュータ１０８の追加が可能である。「run」はそのクラスタがジョブを実行している状態である。「wait」は保持されているコンピュータ１０８の数が最大コンピュータ数に達している状態である。この状態では、そのクラスタへのコンピュータ１０８の追加はできない。
【００５０】
最大コンピュータ数２３６５は、クラスタが保持可能な最大コンピュータ数であり、ユーザによって定義されるか、あるいはシステムの保有する定数として定義される。図示の例では、最大で２００個のコンピュータを保有できるクラスタであることが示されている。
最小コンピュータ数２３６６は、クラスタとして保持しなければならない最小コンピュータ数であり、ユーザによって定義されるか、ネットワークシステム１０１の保有する定数として定義される。図示の例では、３個のコンピュータ１０８によりクラスタとなることが示されている。
トータルコンピュータ数２３６７は、そのクラスタに含まれることになる可能性があるコンピュータ１０８の総数値であり、統計に基づく期待値により求めることができる。図示の例では、４８個のコンピュータ１０８が含まれる可能性のあることが示されている。
【００５１】
コネクションレシオ２３６８は、追加容易性情報の一例となる情報である。本実施形態では、例えば追加候補となるコンピュータ１０８（候補コンピュータ）が存在するときにそれを２０％の確率でクラスタに追加させる、あるいは、必要とするクラスタ・サイズ／トータルコンピュータ数のように、追加のし易さを確率値等により定めた数値をコネクションレシオとして用いる。この数値が高いほど、クラスタにはコンピュータ１０８が追加され易くなり、クラスタが成長しやすくなる。図示の例では、現在のクラスタサイズを２３、トータルコンピュータを４８個としたときのコネクションレシオ（＝０．４８）が示されている。
【００５２】
コネクションレシオ２３６８は、一定値を用いることもできるし、変動値とすることもできる。一定値にしていたものを事後的に変動値に代えることもできるし、その逆にすることもできる。これは、クラスタを形成するときのデフォルト値として自動的に設定されるようにしても良いし、クラスタにジョブを実行させるアプリケーションプログラムがパラメータの一つとしてマスターテーブル２１６１のコネクションレシオ２３６８に設定するようにしても良い。
図５のように横軸にクラスタに含まれるコンピュータ１０８の数、縦軸にクラスタの数又はクラスタ化の頻度をプロットしたときの分布がどのようになるかは、このコネクションレシオをどのようにするかに因るところが大きい。例えば、図５（ａ）のような正規分布を得ようとするときは、コネクションレシオを一定値とする。これにより、上記の分布は、代表値を中心とする正規分布となる。コンピュータが追加されてクラスタサイズが大きくなるにつれてコネクションレシオが変動するようにしても良い。例えば、１又はいくつかのコンピュータが追加される毎に、コネクションレシオが高くなるようにしても良い。このようにすれば、図５（ｂ）のようなベキ分布を容易に得ることができる。
なお、マスターテーブル２１６１における上記の成分の持ち方は例示であり、適宜、増減することができる。
【００５３】
スレーブテーブル２１６２には、クラスタＩＤ２４６１と、コンピュータｉｄ２４６２とが記録される。クラスタＩＤ２４６１は、クラスタを識別するためのＩＤ（マスターテーブル２１６１に記録されているクラスタＩＤ２３６１と同じ）である。コンピュータｉｄ２４６２はクラスタに含まれるコンピュータ１０８を識別するためのＩＤである。
スレーブテーブル２１６２は、クラスタＩＤ２４６１とコンピュータｉｄ２４６２さえ判明していれば、そのクラスタＩＤ２４６１を同一にするマスターテーブル２１６１とリンクしているので、それに記録されている成分（値）は、マスターテーブル２１６１よりも簡易なものとなっている。
なお、スレーブテーブル２１６２における上記の成分（値）の持ち方も例示であり、適宜、増減することができる。
【００５４】
＜運用形態＞
次に、本実施形態のネットワークシステム１０１による分散コンピューティングの運用形態の一例を説明する。
本実施形態による分散コンピューティングでは、図７に示すように、３段階のクラスタの状態変化のサイクルを繰り返しながら、ジョブを分散実行していく。第１段階の状態変化は、新しいクラスタの形成、成長により生じる（ステップＳ１）。第２段階の状態変化は、アプリケーションプログラム等から依頼されたジョブの投入により生じる（ステップＳ２）。そして、第３段階の状態変化は、ジョブ実行後のクラスタの消滅により生じる（ステップＳ３）。クラスタが消滅すると、それまでそのクラスタに属していたすべてのコンピュータ１０８は、その時点で他のクラスタへ新たに属することができる候補コンピュータ（ノード）となる。
【００５５】
このサイクルにおける第１段階の状態変化は、ジョブの有無とは無関係に生じる。そして、ある管理コンピュータ１０６がマスター管理コンピュータとなってクラスタを形成し、それをスレーブ管理コンピュータとの協働により成長させていく。クラスタがどの程度成長するかは、個々のコンピュータ１０８の稼働状態とコネクションレシオによって決まる。コンピュータ１０８の稼働状態が「free」でコネクションレシオも高いほど、他のコンピュータ１０８と接続し易くなる。以下、上述の３段階の状態変化の様子を詳細に説明する。
【００５６】
＜第１段階の状態変化＞
［新しいクラスタの形成、成長１］
図７は、マスター管理コンピュータ（そのように動作する管理コンピュータ１０６のクラスタ管理部２１６）によるクラスタの形成、成長の過程を示す手順説明図である。
マスター管理コンピュータは、自己の傘下のコンピュータ１０８の稼働状態を調べる。具体的には、各コンピュータ１０８が保有するステータステーブルに記録されているコンピュータ・クラスタ・ステータスを調べる（ステップＳ１０１）。そして、未稼働状態のコンピュータ１０８、すなわちコンピュータ・クラスタ・ステータスが「free」となっているいくつかのコンピュータ１０８により１つのクラスタを形成する（ステップＳ１０２）。最初に形成するクラスタにいくつのコンピュータを含まるかは、例えば事前の設定により決める。通常は、自己の傘下のコンピュータ１０８のうち、いくつかのコンピュータ１０８を残して、クラスタ化する。残ったコンピュータ１０８は、他のクラスタを成長させ易くするために、なるべく他のクラスタに追加されるような状態にしておく。この状態を図１２（ａ）に示す。
図１２（ａ）の例では、３つのコンピュータ１０８により１つのクラスタＣ１１が形成されている。このとき、マスター管理コンピュータは、１つのマスターテーブルを生成し、このマスターテーブルの成分（値）をセットする（ステップＳ１０４）。マスター管理コンピュータが各コンピュータ１０８のステータステーブルを管理することになっている場合は、このクラスタに含まれるすべてのコンピュータ１０８のコンピュータ・クラスタ・ステータスを「free」から「clustered」に更新する（ステップＳ１０４）。
【００５７】
その後、マスター管理コンピュータは、ランダムに選定した他の管理コンピュータ１０６の傘下のコンピュータ１０８のうち、自己が形成したクラスタに追加するための候補コンピュータが無いかどうか、すなわちコンピュータ・クラスタ・ステータスが「free」になっている他のコンピュータ１０８が無いかどうかを問い合わせることにより探索する（ステップＳ１０５）。探索は、例えば、自己を起点として論理的な距離の短いいくつかの他の管理コンピュータ１０６をランダムに選定し、逐次、その範囲を拡げていくことにより行う。候補コンピュータが存在する場合は（ステップＳ１０６：Yes）、マスターテーブルのコネクションレシオを調べ、コネクションレシオに基づいて、その候補コンピュータをクラスタに追加し、当該候補コンピュータに関する情報をマスターテーブルに記録する（ステップＳ１０７）。その後、追加した候補コンピュータのコンピュータ・クラスタ・ステータスを「free」から「clustered」に更新する（ステップＳ１０８）。
追加された候補コンピュータを管理する管理コンピュータ１０６は、その候補コンピュータ１０８についてのスレーブ管理コンピュータとなり、スレーブテーブルを生成する。候補コンピュータが存在したときの状態を図１２（ｂ）に示す。図１２（ｂ）の例では、２つのコンピュータ１０８が候補コンピュータとして追加されて、５つのコンピュータ１０８が含まれることになったクラスタＣ１４に成長している。マスター管理コンピュータは、追加された新たなコンピュータ１０８の情報をマスターテーブルに追記する。
なお、ステップＳ１０６において、候補コンピュータが存在しない場合は（ステップＳ１０６：No）、ステップＳ１０５の処理に戻る。
【００５８】
［新しいクラスタの形成、成長２］
図９は、マスター管理コンピュータとならない管理コンピュータ１０６によるクラスタの成長過程を示す手順説明図である。
クラスタの成長は、図８に示したように、マスター管理コンピュータが能動的に振る舞うことにより実現されるのが原則であるが、マスター管理コンピュータとはならない管理コンピュータ１０６の方からマスター管理コンピュータにアクセスしてそれを行うこともできる。
すなわち、クラスタ化されていないコンピュータ１０８を傘下に持つ管理コンピュータ１０６は、例えばランダムに選定した他の管理コンピュータ１０６に問い合わせることにより、そのコンピュータ１０８を追加することができる他のクラスタを探索する（ステップＳ２０１）。そして、入り込む先のクラスタのコネクションレシオに基づいてそのクラスタに自己の傘下のコンピュータ１０８を追加するかどうかを決定する（ステップＳ２０２）。追加しないことになった場合は、ステップＳ２０１に戻る（ステップＳ２０３：No）。
追加する場合は、そのコンピュータ１０８について、接続先のクラスタに対するスレーブ管理コンピュータとなるので、そのコンピュータ１０８についてのスレーブテーブルを生成し、このスレーブテーブルに各成分（値）をセットする（ステップＳ２０４）。そして、追加するコンピュータ１０８のコンピュータ・クラスタ・ステータスを「free」から「clustered」に更新する（ステップＳ２０５）。さらに、追加される側のクラスタのマスター管理コンピュータに、マスターテーブルをアップデートさせる（ステップＳ２０６）。なお、このアップデートは、スレーブ管理コンピュータからマスター管理コンピュータにアクセスして自ら行うようにしても良い。
【００５９】
＜第２段階の状態変化＞
［ジョブの投入］
第２段階の状態変化は、アプリケーション等からの依頼によりジョブが投入されたいずれかの管理コンピュータ１０６によるアクションを起点に始まる。ジョブの実行に際しては、ジョブの実行に必要となる計算量と所要時間、例えばコンピュータ１０８の数がパラメータとなる。このパラメータは、投入されたジョブのサイズに基づいて当該管理コンピュータ１０６のプロセッサが自動的に生成しても良いし、アプリケーション等を利用するユーザが適宜与えるようにしても良い。アプリケーションが持っているパラメータを使用するようにしても良い。
【００６０】
図９は、ジョブが投入された管理コンピュータ１０６によるクラスタ利用の手順説明図である。管理コンピュータ１０６は、上記の計算量に基づいて、クラスタリスト２０８を参照することにより、あるいは他の管理コンピュータに問い合わせることにより、必要なサイズのクラスタを形成しているマスター管理コンピュータを探索する（ステップＳ３０１）。見つかった場合は、そのマスター管理コンピュータに、ジョブの実行を依頼する（ステップＳ３０２：Yes、Ｓ３０３）。ジョブの実行依頼は、例えば、ジョブと、その実行に必要なプログラムおよびデータと、実行結果の送出を自己宛とするための指定アドレスとを含むパケットをそのマスター管理コンピュータに送出することにより行う。
【００６１】
マスター管理コンピュータは、そのジョブを実行するクラスタに所属している各コンピュータ１０８のコンピュータ・クラスタ・ステータスを「idol」又は「wait」から「run」に更新したうえで、各コンピュータ１０８による分散処理によってジョブの実行を始める。図１２（ｃ）は、図１２（ｂ）のように成長したクラスタＣ１４を管理するマスター管理コンピュータが、ジョブを実行している状態を表している。ジョブの実行結果は、マスター管理コンピュータから依頼元の管理コンピュータ１０６に送出される。実行結果を受領した管理コンピュータ１０６は、その実行結果をジョブの投入元に伝達する（ステップＳ３０４：Yes、Ｓ３０５）。
なお、ジョブが、必要なサイズのクラスタを管理しているマスター管理コンピュータに直接投入された場合は、上記ステップＳ３０１〜Ｓ３０４は、自ら行う処理手順となる。また、ステップＳ３０２において、複数のクラスタに跨ってジョブを実行する必要があると判定した場合、例えば、画像処理と音声処理とを別々のクラスタで実行する必要があると判定した場合は、各クラスタを管理するマスター管理コンピュータに、それぞれジョブの実行を依頼することになる。
【００６２】
＜第３段階の状態変化＞
［クラスタの消滅］
クラスタの消滅は、ジョブの実行を行ったクラスタを管理するマスター管理コンピュータが行う。図１１は、このクラスタを消滅させるときのマスター管理コンピュータにおける処理手順図である。
マスター管理コンピュータは、ジョブが終了すると（ステップＳ４０１：Yes）、それまでジョブを実行したクラスタに含まれるすべてのコンピュータ１０８についてのコンピュータ・クラスタ・ステータスを「free」に更新する（ステップＳＳ４０２）。また、そのクラスタのマスターテーブルの成分（値）をクリアする。同時に、クラスタに所属していたコンピュータを傘下にするスレーブ管理コンピュータを通じてスレーブテーブルの成分（値）をクリアする。すなわち、すべてのコンピュータをクラスタ形成前の状態に戻す（ステップＳ４０３）。これにより、そのクラスタに所属していたすべてのコンピュータ１０８は、未稼働状態で、クラスタ化が可能な状態となり、あるコンピュータ１０８は、直ちにクラスタ化され、他のコンピュータ１０８は、他のクラスタに追加される状態となる。図１２（ｄ）はこの状態を示している。
【００６３】
このように、この実施形態によれば、投入されるジョブのサイズ、種類、数のいずれかが様々で、それらが時々刻々と変化していくことが予想される不確定要素の多いネットワークシステムであっても、複数存在する管理コンピュータ１０６の各々が、その傘下のコンピュータ１０８毎に、それぞれ、マスター管理コンピュータあるいはスレーブ管理コンピュータとして振る舞いながら、最適なサイズのクラスタを形成し、それを成長させていくので、適切なサイズのクラスタにジョブの実行を割り当てることができ、効果的にジョブを実行していくことができる。また、大規模なプロセスから非常に小さなプロセスまで満遍なく一様の手順で対応が可能になるので、柔軟性に富む分散コンピューティングを実現することができる。特に、プロセスのサイズの分布がべき分布になるときには、追加容易性情報を変動可能にし、クラスタサイズもべき分布になるように設定することができるので、最も効果的にプロセスを処理することができ、コンピュータ資源の使用効率を高めることができる。
＜変形例＞
以上の例では、便宜上、ステータステーブルは、各コンピュータ１０８が保有し、管理テーブル２０６（マスターテーブル／スレーブテーブル）は、管理コンピュータ１０６が保有することを前提として説明したが、これらのテーブルは、各コンピュータ１０８および管理コンピュータ１０６がそれらにアクセスできるメモリ領域に存在すれば良い。例えば、管理コンピュータ１０６が、自己の傘下のコンピュータ１０８のステータステーブルを備えていても良いし、管理コンピュータ１０６のテーブル管理部２１２がアクセス可能なサーバ等に管理テーブル２０６を一括して格納するようにしても良い。
また、以上の例では、スレーブ管理コンピュータの傘下にある候補コンピュータを他のクラスタに追加するかどうかは、そのスレーブ管理コンピュータが決定するようにしているが、候補コンピュータをクラスタに追加するかどうかは、すべてマスター管理コンピュータにおいて決定するようにしても良い。
【００６４】
＜管理コンピュータによらない場合の実施例＞
以上の説明では、複数のコンピュータ１０８を傘下にする管理コンピュータ１０６の集合から成るネットワークシステム１０１の例を示したが、本発明は、管理コンピュータ１０６によらずに、複数のコンピュータ１０８の各々が直接参加および離脱することができるネットワークシステムとしての実施も可能である。
【００６５】
このようなネットワークシステムとして実施する場合は、各コンピュータ１０８のステータステーブルに、コネクションレシオをも記録するようにし、ステータステーブルの管理も自ら行うようにする。例えば、他のコンピュータ１０８により形成されているクラスタに、自己を追加するときには、自己のコンピュータ・クラスタ・ステータスを「clustered」に更新させる。そして、そのクラスタによるジョブの実行が終了した時点で、自己のコンピュータ・クラスタ・ステータスを「free」に復帰させるようにする。また、上述した管理コンピュータ１０６と同様の機能を、いずれかのコンピュータ１０８に持たせるようにする。つまり、自らが主導的にクラスタを形成するときは、そのクラスタの内容を記録したマスターテーブルを生成する。
【００６６】
クラスタを形成したコンピュータ１０８は、他のコンピュータが保有するステータステーブルの最新のコンピュータ・クラスタ・ステータスが「free」になっている他の追加候補となる候補コンピュータを探索し、これにより特定された候補コンピュータを、クラスタのコネクションレシオに基づいて追加するかどうかを決定するようにする。クラスタを形成したコンピュータ１０８は、このようにして成長したクラスタにジョブを実行させ、実行終了後は、そのクラスタを消滅させる。
【００６７】
＜マルチプロセッサ／マルチ・コア・プロセッサとしての実施例＞
本発明は、複数のプロセッサ又はマルチ・コア・プロセッサによるネットワークシステムとして実施することもできる。この場合は、図１３（ａ）に例示したように、内部バスを上述したコンピュータネットワーク１０４として機能させ、この内部バスに接続されたいずれかのプロセッサ又はマルチ・コア・プロセッサのいずれか一つ又はいくつかを上述した管理コンピュータ１０６として動作させるとともに、残りのプロセッサ等を上述したコンピュータ１０８として動作させるようにすれば良い。
図１３（ｂ）に例示した個々のマルチ・コア・プロセッサ自体をネットワークシステムとして実施することもできる。この場合は、内部バスに接続されたいずれか一つ又はいくつかのコア（プロセッサ・コア）および入出力制御部（Ｉ／Ｏ）とキャッシュメモリとで上述した管理コンピュータ１０６の動作を実現するとともに、残りのコアを上述したコンピュータ１０８として動作させるようにすれば良い。
［他の実施の形態］
【００６８】
本発明のネットワークシステムは、あるクラスタのコンピュータ１０８が他のクラスタにアクセスしたときに、当該他のクラスタと関係付けられている別のクラスタにコンピュータ１０８を追加させるという実施形態も可能である。このような実施形態のモードを「デュープリケーションモード（Duplication Mode）」と称する。この「デュープリケーションモードについては、下記の文献に詳細に記載されている。
【非特許文献１】タイトル：Growing networks with local rules:preferential attachment,clustering hierarchy and degree correlations  著作者：Alexei V´azquez  雑誌名：Phys Rev E Stat Nonlin Soft Matter Phys. 2003 May;67(5 Pt2):056104. Epub 2003 May 7.
【００６９】
デュープリケーションモードでは、上述したコネクションレシオ２３６８に代えて、アクセスしたクラスタに所属するコンピュータが関係付けられている他のクラスタの識別情報（接続アドレス等）をリストアップしたクラスタリストを用いる。クラスタリストは、例えばマスターテーブルに設けられる。
【００７０】
図１４は、この場合のマスターテーブルの内容例を示している。このマスターテーブル２１６３は、図６（ａ）に示したマスターテーブル２１６１と同じ内容のクラスタＩＤ２３６１、クラスタサイズ１２６２、コンピュータリスト２３６３、クラスタ・ステータス２３６４、最大コンピュータ数２３６５、最小コンピュータ数２３６６のほか、クラスタリスト２３６９を有する。マスター管理コンピュータは、自己が管理するクラスタに新たなクラスタが関係付けられる度に、その新たなクラスタの識別情報をクラスタリスト２３６９にリストアップする。この実施形態にいう「関係付け」は、あるクラスタに所属するコンピュータと他のクラスタに所属するコンピュータとが論理的につながって（連絡しあって）、連携処理等ができることをいう。
マスター管理コンピュータは、例えばスレーブ管理コンピュータからの求めに応じてクラスタリスト２３６９にリストアップされた一つのクラスタの識別情報を読み出し、それを当該スレーブ管理コンピュータへ通知する。セキュリティを重視しないで足りる用途では、このクラスタリスト２３６９を例えばスレーブ管理コンピュータに閲覧させるようにしても良い。
【００７１】
このクラスタリスト２３６９からの読み出し順序は、ランダムであっても良く、所定順であっても良い。前者の場合、クラスタリスト２３６９へのクラスタの識別情報のリストアップの順位は、任意であって良い。他方、後者の場合は、リストアップの順位に重み付けを行う。例えば、そのマスター管理コンピュータが管理するクラスタの処理内容との関連性が高い他のクラスタほど先に読み出されるようにする。この場合の関連性は、例えば、クラスタ間のアクセス回数、クラスタ間の所定時間内の交信回数、クラスタ間の分散処理の関連度合い（画像処理と同期をとるべき音声処理等）等により決めることができる。
【００７２】
デュープリケーションモードでの運用形態は、例えば以下のようになる。
いま、ネットワークシステムが、図１５の上段のような初期状態であったとする。図１５の例では、複数のクラスタＣ６〜Ｃ１１が既に形成されている。各クラスタＣ６〜Ｃ１１には、それぞれ１又は複数のコンピュータ（上述したコンピュータ１０８、以下同じ）が所属している。
【００７３】
この状態で、図１５中段に示されるように、ネットワークシステムに新たにクラスタＣ２０が形成されたとする。このクラスタＣ２０を形成した管理コンピュータは、当該クラスタＣ２０に所属するコンピュータのほか、他のクラスタを成長させ易くするためのいくつかのコンピュータ、すなわち候補コンピュータ（図示省略）をも自己の傘下として管理しているものとする。この候補コンピュータを他のクラスタに提供する場合、その候補コンピュータを管理する管理コンピュータがスレーブ管理コンピュータとなることは、前述のとおりである。
クラスタＣ２０を管理する管理コンピュータは、クラスタＣ６〜Ｃ１１の中から、クラスタＣ７を探し出す。そして、このクラスタＣ７を管理しているマスター管理コンピュータに問い合わせ、そのマスターテーブル２１６３におけるクラスタＣ７と他のクラスタとの関係付けの情報を入手する。図１５中段の場合、クラスタＣ７はクラスタＣ１１とのみ関係付けられている。そこで、クラスタＣ２０を管理する管理コンピュータは、候補コンピュータをクラスタＣ１１に追加させ、この候補コンピュータとクラスタＣ２０（それに所属するコンピュータ）とを関係付ける（図１５下段）。また、自己が保有するスレーブテーブルの内容を更新する。
他方、クラスタＣ１１を管理するマスター管理コンピュータは、マスターテーブル２１６３に、新たに追加されたコンピュータ（追加前の候補コンピュータ）のリストをコンピュータリスト２３６３に追加するとともに、クラスタリスト２３６９に、クラスタＣ２０の識別情報を追加する。
【００７４】
以上は、クラスタＣ２０とクラスタＣ１１（各々のコンピュータ）同士が１対１で関係付けた場合の例であるが、関係付けは必ずしも１対１だけではなく、１対Ｎ（Ｎは２以上の自然数）であっても良い。また、この関係付けは、物理的なコンソール内のコンピュータ同士のつながりとは関係がない。
【００７５】
例えば、図１６（ａ）は、ネットワークシステムに新たに加わるコンピュータの所属するクラスタＣ２０が形成された場合において、クラスタＣ２０を管理する管理コンピュータが、自己の傘下の候補コンピュータの追加先を探す際に、クラスタＣ１１に到達したとする。クラスタＣ１１のクラスタリストには、クラスタＣ１１のコンピュータと１対１で関係付けられているクラスタＣ６，Ｃ７のほか，クラスタＣ１１の複数のコンピュータと関係付けられているＣ８，Ｃ１０がリストアップされていたとすると、候補コンピュータは、クラスタＣ６，Ｃ７，Ｃ８，Ｃ１０のいずれかに追加される。図１６（ｂ）の場合も同様である。
なお、これらの場合において、スレーブテーブル、マスターテーブルの記録情報が更新されることは、図１５に示した例の場合と同様である。
【００７６】
デュープリケーションモードでは、クラスタリスト２３６９とコンピュータリスト２３６３とを併用した運用形態も可能である。以下、この場合の運用形態例を説明する。
ネットワークシステムに加わる新たにクラスタＣ２０が形成され、クラスタＣ２０を管理する管理コンピュータが、自己の傘下の候補コンピュータの追加先を探し出す際に、クラスタＣ１１に到達するまでは、図１６（ａ），（ｂ）の例と同じである。
クラスタＣ１１のコンピュータリスト２３６３によれば、図１７に示されるように、コンピュータ＃１〜＃５が所属しており、クラスタリスト２３６９によれば、コンピュータ＃１，＃３はクラスタＣ１０、コンピュータ＃４はクラスタＣ７、コンピュータ＃５はクラスタＣ６に、それぞれ関係付けられており、コンピュータ＃２はどことも関係付けられていないとする。必ずしもそのようにする必要はないが、コンピュータリスト２３６３の読み出し順もランダムに行うとすると、コンピュータリスト２３６３からコンピュータ＃１が選ばれたときは、それに関係付けられているクラスタＣ１０に、候補コンピュータが追加される。なお、コンピュータ＃２が選ばれたときは、それに関係付けられているクラスタがないので、再選択される。
【００７７】
デュープリケーションモードでは、コネクションレシオ２３６８を設定しなくとも、ベキ分布に従うクラスタリングが可能になるので、コンピュータのクラスタへの追加が、よりスムーズになるという効果がある。
【産業上の利用可能性】
【００７８】
本発明は、コンピュータ同士をつなぐノードの数が、例えば、正規分布あるいはベキ分布に従うクラスタリングを容易にするためのネットワークシステムに適用が可能である。また、投入されるジョブのサイズ、種類、数が様々で、それらが時々刻々と変化していく情報処理を効率的に実行することができる分散コンピューティング全般にも適用が可能なものである。
【図面の簡単な説明】
【００７９】
【図１】本発明が適用されるネットワークシステムの全体図。
【図２】本実施形態による管理コンピュータの概要アーキテクチャを示す図。
【図３】大規模情報処理統合体の説明図。
【図４】本実施形態による管理コンピュータの機能構成図。
【図５】リンクの数を横軸に、リンク数を持つノード数を縦軸にしてプロットした実測図であり、（ａ）は、ランダムに接続した場合の例、（ｂ）は選択的接続した場合の例である。
【図６】（ａ）はマスターテーブル、（ｂ）はスレーブテーブルの内容例を示した図。
【図７】本実施形態による分散コンピューティングの概要手順図。
【図８】管理コンピュータによるクラスタの形成、成長の手順説明図。
【図９】管理コンピュータによるクラスタの形成、成長の手順説明図。
【図１０】管理コンピュータによるジョブの投入、実行の手順説明図。
【図１１】管理コンピュータによるクラスタ消滅時の処理手順説明図。
【図１２】（ａ）〜（ｄ）は、本実施形態によるクラスタの形成、成長、消滅の過程を示した説明図。
【図１３】（ａ）はマルチプロセッサにより実現されるネットワークシステムの概要図、（ｂ）はマルチ・コア・プロセッサ単体により実現されるネットワークシステムの概要図。
【図１４】デュープリケーションモードで使用されるマスターテーブルの内容例を示した図。
【図１５】デュープリケーションモードでの運用形態例を示した図。
【図１６】（ａ），（ｂ）はデュープリケーションモードでの他の運用形態例を示した図。
【図１７】デュープリケーションモードでの他の運用形態例を示した図。
【符号の説明】
【００８０】
１０１・・・ネットワークシステム
１０４・・・コンピュータ・ネットワーク
１０６・・・管理コンピュータ
１０８・・・コンピュータ（候補コンピュータ）
２０６・・・管理テーブル
２０８・・・クラスタリスト
２１２・・・テーブル管理部
２１６・・・クラスタ管理部
２３６・・・通信制御部
２５６・・・ジョブ実行部
３１５・・・共用ＤＲＡＭ
１０６１・・・ストレージ装置
１０６３・・・通信装置
１０６５・・・半導体メモリ
１０６７・・・プロセッサ
２１６１，２１６３・・・マスターテーブル
２１６２・・・スレーブテーブル
２３６１〜２３６９・・・マスターテーブルの成分（値）
２４６１〜２４６２・・・スレーブテーブルの成分（値）
Ｂ１１・・・バス
ＷＯ・・・大規模情報処理統合体
【図１】
2006072987.tif 000003
【図２】
2006072987.tif 000004
【図３】
2006072987.tif 000005
【図４】
2006072987.tif 000006
【図５】
2006072987.tif 000007
【図６】
2006072987.tif 000008
【図７】
2006072987.tif 000009
【図８】
2006072987.tif 000010
【図９】
2006072987.tif 000011
【図１０】
2006072987.tif 000012
【図１１】
2006072987.tif 000013
【図１２】
2006072987.tif 000014
【図１３】
2006072987.tif 000015
【図１４】
2006072987.tif 000016
【図１５】
2006072987.tif 000017
【図１６】
2006072987.tif 000018
【図１７】
2006072987.tif 000019