(57)【要約】【課題】分散コンピューティング・システム１０を構築する場合、プロセッサ集団の規模を自律的に反映することができる規模拡張性を有し、分散コンピューティング・システム１０を構成する複数のプロセッサの数が動的に変化する場合にも効果的に対応することができる分散コンピューティング・システム１０等を提供する。【解決手段】分散コンピューティング・システム１０へプロセッサ２５ａ等が参加した場合、制御プロセッサ１はグループ記録部８に基づきプロセッサ２５ａ等をグループ２０等に構成してグループ記録部８の更新を行なう。プロセッサ２５ｂ等が脱退した場合、グループ記録部８に基づき脱退したプロセッサ２５ｂ等についてグループ記録部８の更新を行なう。制御プロセッサ１はグループ２０等にタスクを均等に配分し、グループ制御プロセッサ２３等が配分されたタスクをグループ２０等内のプロセッサ２５ａ等へ処理能力に応じて配分する。【選択図】  図１
2004341962.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング・システムであって、
前記複数のプロセッサの構成とタスクの配分とを含む制御を行なう制御プロセッサと、所定の上限個数のプロセッサから構成されるグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサとを有し、該制御プロセッサと該グループ内制御プロセッサとは相互に接続され、グループ内のプロセッサと該グループのグループ制御プロセッサとは相互に接続されており、
前記制御プロセッサは、
分散コンピューティング・システムへプロセッサが参加した場合、前記グループ内のプロセッサ数、グループの種別及びグループ内のグループ制御プロセッサの識別子を含む情報を記録したグループ記録部に基づき、参加したプロセッサを前記グループに構成して該グループ記録部の更新を行ない、又は分散コンピューティング・システムからプロセッサが脱退した場合、グループ記録部に基づき、脱退したプロセッサについて該グループ記録部の更新を行なうグループ化手段と、
前記グループ化手段で構成されたグループにタスクを均等に配分するタスク配分手段とを備え、
前記グループ制御プロセッサは、
前記タスク配分手段でグループに配分されたタスクを該グループ内のプロセッサへ処理能力に応じて配分するグループ内タスク配分手段を備えたことを特徴とする分散コンピューティング・システム。
【請求項２】
請求項１記載の分散コンピューティング・システムにおいて、タスクの分散処理に参加しているプロセッサが制御プロセッサのみの状態で最初にプロセッサが参加した場合、
前記グループ化手段は、最初に参加したプロセッサのみで最初のグループを構成し、該最初に参加したプロセッサを該グループ内のグループ制御プロセッサと指定することを特徴とする分散コンピューティング・システム。
【請求項３】
請求項１記載の分散コンピューティング・システムにおいて、プロセッサの数が所定の上限個数に達しないグループが存在する状態で新たなプロセッサが参加した場合、
前記グループ化手段は、所定の上限個数に達するまで新たに参加したプロセッサを該グループへ入れることを特徴とする分散コンピューティング・システム。
【請求項４】
請求項１記載の分散コンピューティング・システムにおいて、プロセッサの数が所定の上限個数に達したグループが存在する状態で新たなプロセッサが参加した場合、
前記グループ化手段は、新たに参加したプロセッサのみで新たなグループを構成し、該新たに参加したプロセッサを該新たなグループ内のグループ制御プロセッサと指定することを特徴とする分散コンピューティング・システム。
【請求項５】
請求項１記載の分散コンピューティング・システムにおいて、プロセッサの数が所定の上限個数に達したグループからグループ制御プロセッサではないプロセッサが脱退した状態で新たなプロセッサが参加した場合、
前記グループ化手段は、新たに参加したプロセッサをグループ制御プロセッサではないプロセッサが脱退したグループへ入れることを特徴とする分散コンピューティング・システム。
【請求項６】
請求項１記載の分散コンピューティング・システムにおいて、グループ制御プロセッサが脱退した場合、前記グループ化手段は、グループ制御プロセッサが脱退したグループにおける他のプロセッサを新たにグループ制御プロセッサと指定することを特徴とする分散コンピューティング・システム。
【請求項７】
複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング方法であって、前記複数のプロセッサの構成とタスクの配分とを含む制御を行なう制御プロセッサと、所定の上限個数のプロセッサから構成されるグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサとを用い、該制御プロセッサと該グループ内制御プロセッサとは相互に接続され、グループ内のプロセッサと該グループのグループ制御プロセッサとは相互に接続されており、
前記制御プロセッサが、
分散コンピューティング・システムへプロセッサが参加した場合、前記グループ内のプロセッサ数、グループの種別及びグループ内のグループ制御プロセッサの識別子を含む情報を記録したグループ記録部に基づき、参加したプロセッサを前記グループに構成して該グループ記録部の更新を行ない、又は分散コンピューティング・システムからプロセッサが脱退した場合、グループ記録部に基づき、脱退したプロセッサについて該グループ記録部の更新を行なうグループ化ステップと、
前記グループ化ステップで構成されたグループにタスクを均等に配分するタスク配分ステップと、
グループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサが、前記タスク配分ステップでグループに配分されたタスクを該グループ内のプロセッサへ処理能力に応じて配分するグループ内タスク配分ステップと
を備えたことを特徴とする分散コンピューティング方法。
【請求項８】
請求項７記載の分散コンピューティング方法において、タスクの分散処理に参加しているプロセッサが制御プロセッサのみの状態で最初にプロセッサが参加した場合、
前記グループ化ステップは、最初に参加したプロセッサのみで最初のグループを構成し、該最初に参加したプロセッサを該グループ内のグループ制御プロセッサと指定することを特徴とする分散コンピューティング方法。
【請求項９】
請求項７記載の分散コンピューティング方法において、プロセッサの数が所定の上限個数に達しないグループが存在する状態で新たなプロセッサが参加した場合、
前記グループ化ステップは、所定の上限個数に達するまで新たに参加したプロセッサを該グループへ入れることを特徴とする分散コンピューティング方法。
【請求項１０】
請求項７記載の分散コンピューティング方法において、プロセッサの数が所定の上限個数に達したグループが存在する状態で新たなプロセッサが参加した場合、
前記グループ化ステップは、新たに参加したプロセッサのみで新たなグループを構成し、該新たに参加したプロセッサを該新たなグループ内のグループ制御プロセッサと指定することを特徴とする分散コンピューティング方法。
【請求項１１】
請求項７記載の分散コンピューティング方法において、プロセッサの数が所定の上限個数に達したグループからグループ制御プロセッサではないプロセッサが脱退した状態で新たなプロセッサが参加した場合、
前記グループ化ステップは、新たに参加したプロセッサをグループ制御プロセッサではないプロセッサが脱退したグループへ入れることを特徴とする分散コンピューティング方法。
【請求項１２】
請求項７記載の分散コンピューティング方法において、グループ制御プロセッサが脱退した場合、前記グループ化ステップは、グループ制御プロセッサが脱退したグループにおける他のプロセッサを新たにグループ制御プロセッサと指定することを特徴とする分散コンピューティング方法。
【請求項１３】
複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング・プログラムであって、複数のプロセッサの構成とタスクの配分とを含む制御を行なう制御プロセッサに、
分散コンピューティング・システムへプロセッサが参加した場合、前記グループ内のプロセッサ数、グループの種別及びグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサの識別子を含む情報を記録したグループ記録部に基づき、参加したプロセッサを前記グループに構成して該グループ記録部の更新を行ない、又は分散コンピューティング・システムからプロセッサが脱退した場合、グループ記録部に基づき、脱退したプロセッサについて該グループ記録部の更新を行なうグループ化ステップ、
前記グループ化ステップで構成されたグループにタスクを均等に配分するタスク配分ステップ
を実行させるための分散コンピューティング・プログラム。
【請求項１４】
請求項１３記載の分散コンピューティング・プログラムにおいて、タスクの分散処理に参加しているプロセッサが制御プロセッサのみの状態で最初にプロセッサが参加した場合、
前記グループ化ステップは、最初に参加したプロセッサのみで最初のグループを構成し、該最初に参加したプロセッサを該グループのグループ制御プロセッサと指定することを特徴とする分散コンピューティング・プログラム。
【請求項１５】
請求項１３記載の分散コンピューティング・プログラムにおいて、プロセッサの数が所定の上限個数に達しないグループが存在する状態で新たなプロセッサが参加した場合、
前記グループ化ステップは、所定の上限個数に達するまで新たに参加したプロセッサを該グループへ入れることを特徴とする分散コンピューティング・プログラム。
【請求項１６】
請求項１３記載の分散コンピューティング・プログラムにおいて、プロセッサの数が所定の上限個数に達したグループが存在する状態で新たなプロセッサが参加した場合、
前記グループ化ステップは、新たに参加したプロセッサのみで新たなグループを構成し、該新たに参加したプロセッサを該新たなグループのグループ制御プロセッサと指定することを特徴とする分散コンピューティング・プログラム。
【請求項１７】
請求項１３記載の分散コンピューティング・プログラムにおいて、プロセッサの数が所定の上限個数に達したグループからグループ制御プロセッサではないプロセッサが脱退した状態で新たなプロセッサが参加した場合、
前記グループ化ステップは、新たに参加したプロセッサをグループ制御プロセッサではないプロセッサが脱退したグループへ入れることを特徴とする分散コンピューティング・プログラム。
【請求項１８】
請求項１３記載の分散コンピューティング・プログラムにおいて、グループ制御プロセッサが脱退した場合、前記グループ化ステップは、グループ制御プロセッサが脱退したグループにおける他のプロセッサを新たにグループ制御プロセッサと指定することを特徴とする分散コンピューティング・プログラム。
【請求項１９】
請求項１３ないし１８のいずれかに記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング・システム等に関する。
【０００２】
【従来の技術】
【特許文献１】特開平１０−０４０２２９号公報
【０００３】
一般的に、複数のプロセッサを統合して規模の大きいタスクを処理するような分散コンピューティング・システムを構築する場合、各プロセッサの処理能力に応じて公平にタスクを配分することによりスループットを増大させることが重要となる。このため、タスクの分配を最適に行う最適化プロセッサまたはコントローラが必要となる。しかし、最適化プロセッサの機能が特定の端末装置に集約されている場合、この集約されているということが複数のプロセッサにより構成されるプロセッサ集団の規模に対して処理上のボトルネックとなっていた。従って大規模な分散コンピューティング・システムを構築する場合、最適化プロセッサの機能を分散化させることが必要となっていた。
【０００４】
例えば従来のグリッド・コンピューティング（ｇｒｉｄ  ｃｏｍｐｕｔｉｎｇ）の場合、上述の最適化プロセッサはグリッド・コンピューティングを管理する管理センターの側にあった。この管理センター側で最適化プロセッサを並列プロセッサとして構成することにより最適化プロセッサの機能の分散化を図っていた。しかし、最適化プロセッサの並列化自体は人手により行なわれていたため、グリッド・コンピューティングを実行するプロセッサ集団の規模を自律的に反映することが困難であるという問題があった。
【０００５】
上述の最適化プロセッサの機能の分散化として、インターネット等のネットワークを利用して複数のプロセッサを多段階に階層化するシステムも検討されている。この多段階の階層化システムは、システムを構成する複数のプロセッサの数が静的である場合には効果的である。しかし、システムを構成するプロセッサが途中で脱退しまったり、逆に途中から参加したりするような場合、システムの再編成が必要となる。このため、システムを構成する複数のプロセッサの数が動的に変化する場合には効果的ではないという問題があった。特許文献１には分散コンピューティング環境におけるプロセッサ・グループへの加入を管理するためのシステムが記載されている。特許文献１のシステムでは、特定のプロセスが対応するプロセス・グループに加わることを要求し、プロセッサがそのプロセス・グループを認識していない場合に、プロセッサがそのプロセス・グループのメンバになることを要求することが記載されている。しかし、特許文献１のシステムでは固定数の処理ノード（プロセッサ）を前提としているため、プロセッサの数が動的に変化する場合には対応することができない。
【０００６】
【発明が解決しようとする課題】
上述のように、大規模な分散コンピューティング・システムを構築する場合、従来のグリッド・コンピューティングでは最適化プロセッサの並列化自体は人手により行なわれていた。このためグリッド・コンピューティングを実行するプロセッサ集団の規模を自律的に反映することが困難であるという問題があった。
インターネット等のネットワークを利用した多段階の階層化システムでは、システムを構成する複数のプロセッサの数が動的に変化する場合には効果的ではないという問題があった。
【０００７】
そこで、本発明の目的は、上記問題を解決するためになされたものであり、大規模なプロセッサから構成される分散コンピューティング・システムを構築する場合、プロセッサ集団の規模を自律的に反映することができる規模拡張性を有し、システムを構成する複数のプロセッサの数が動的に変化する場合にも効果的に対応することができる分散コンピューティング・システム等を提供することにある。
【０００８】
【課題を解決するための手段】
この発明の分散コンピューティング・システムは、複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング・システムであって、複数のプロセッサの構成とタスクの配分とを含む制御を行なう制御プロセッサと、所定の上限個数のプロセッサから構成されるグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサとを有し、該制御プロセッサと該グループ内制御プロセッサとは相互に接続され、グループ内のプロセッサと該グループのグループ制御プロセッサとは相互に接続されており、前記制御プロセッサは、分散コンピューティング・システムへプロセッサが参加した場合、前記グループ内のプロセッサ数、グループの種別及びグループ内のグループ制御プロセッサの識別子を含む情報を記録したグループ記録部に基づき、参加したプロセッサを前記グループに構成して該グループ記録部の更新を行ない、又は分散コンピューティング・システムからプロセッサが脱退した場合、グループ記録部に基づき、脱退したプロセッサについて該グループ記録部の更新を行なうグループ化手段と、前記グループ化手段で構成されたグループにタスクを均等に配分するタスク配分手段とを備え、前記グループ制御プロセッサは、前記タスク配分手段でグループに配分されたタスクを該グループ内のプロセッサへ処理能力に応じて配分するグループ内タスク配分手段を備えたことを特徴とする。
【０００９】
ここで、この発明の分散コンピューティング・システムにおいて、タスクの分散処理に参加しているプロセッサが制御プロセッサのみの状態で最初にプロセッサが参加した場合、前記グループ化手段は、最初に参加したプロセッサのみで最初のグループを構成し、該最初に参加したプロセッサを該グループ内のグループ制御プロセッサと指定することができる。
【００１０】
ここで、この発明の分散コンピューティング・システムにおいて、プロセッサの数が所定の上限個数に達しないグループが存在する状態で新たなプロセッサが参加した場合、前記グループ化手段は、所定の上限個数に達するまで新たに参加したプロセッサを該グループへ入れることができる。
【００１１】
ここで、この発明の分散コンピューティング・システムにおいて、プロセッサの数が所定の上限個数に達したグループが存在する状態で新たなプロセッサが参加した場合、前記グループ化手段は、新たに参加したプロセッサのみで新たなグループを構成し、該新たに参加したプロセッサを該新たなグループ内のグループ制御プロセッサと指定することができる。
【００１２】
ここで、この発明の分散コンピューティング・システムにおいて、プロセッサの数が所定の上限個数に達したグループからグループ制御プロセッサではないプロセッサが脱退した状態で新たなプロセッサが参加した場合、前記グループ化手段は、新たに参加したプロセッサをグループ制御プロセッサではないプロセッサが脱退したグループへ入れることができる。
【００１３】
ここで、この発明の分散コンピューティング・システムにおいて、グループ制御プロセッサが脱退した場合、前記グループ化手段は、グループ制御プロセッサが脱退したグループにおける他のプロセッサを新たにグループ制御プロセッサと指定することができる。
【００１４】
この発明の分散コンピューティング方法は、複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング方法であって、前記複数のプロセッサの構成とタスクの配分とを含む制御を行なう制御プロセッサと、所定の上限個数のプロセッサから構成されるグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサとを用い、該制御プロセッサと該グループ内制御プロセッサとは相互に接続され、グループ内のプロセッサと該グループのグループ制御プロセッサとは相互に接続されており、前記制御プロセッサが、分散コンピューティング・システムへプロセッサが参加した場合、前記グループ内のプロセッサ数、グループの種別及びグループ内のグループ制御プロセッサの識別子を含む情報を記録したグループ記録部に基づき、参加したプロセッサを前記グループに構成して該グループ記録部の更新を行ない、又は分散コンピューティング・システムからプロセッサが脱退した場合、グループ記録部に基づき、脱退したプロセッサについて該グループ記録部の更新を行なうグループ化ステップと、前記グループ化ステップで構成されたグループにタスクを均等に配分するタスク配分ステップと、グループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサが、前記タスク配分ステップでグループに配分されたタスクを該グループ内のプロセッサへ処理能力に応じて配分するグループ内タスク配分ステップとを備えたことを特徴とする。
【００１５】
ここで、この発明の分散コンピューティング方法において、タスクの分散処理に参加しているプロセッサが制御プロセッサのみの状態で最初にプロセッサが参加した場合、前記グループ化ステップは、最初に参加したプロセッサのみで最初のグループを構成し、該最初に参加したプロセッサを該グループ内のグループ制御プロセッサと指定することができる。
【００１６】
ここで、この発明の分散コンピューティング方法において、プロセッサの数が所定の上限個数に達しないグループが存在する状態で新たなプロセッサが参加した場合、前記グループ化ステップは、所定の上限個数に達するまで新たに参加したプロセッサを該グループへ入れることができる。
【００１７】
ここで、この発明の分散コンピューティング方法において、プロセッサの数が所定の上限個数に達したグループが存在する状態で新たなプロセッサが参加した場合、前記グループ化ステップは、新たに参加したプロセッサのみで新たなグループを構成し、該新たに参加したプロセッサを該新たなグループ内のグループ制御プロセッサと指定することができる。
【００１８】
ここで、この発明の分散コンピューティング方法において、プロセッサの数が所定の上限個数に達したグループからグループ制御プロセッサではないプロセッサが脱退した状態で新たなプロセッサが参加した場合、前記グループ化ステップは、新たに参加したプロセッサをグループ制御プロセッサではないプロセッサが脱退したグループへ入れることができる。
【００１９】
ここで、この発明の分散コンピューティング方法において、グループ制御プロセッサが脱退した場合、前記グループ化ステップは、グループ制御プロセッサが脱退したグループにおける他のプロセッサを新たにグループ制御プロセッサと指定することができる。
【００２０】
この発明の分散コンピューティング・プログラムは、複数のプロセッサにタスクの配分を行って該タスクの分散処理を実行する分散コンピューティング・プログラムであって、複数のプロセッサの構成とタスクの配分とを含む制御を行なう制御プロセッサに、分散コンピューティング・システムへプロセッサが参加した場合、前記グループ内のプロセッサ数、グループの種別及びグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサの識別子を含む情報を記録したグループ記録部に基づき、参加したプロセッサを前記グループに構成して該グループ記録部の更新を行ない、又は分散コンピューティング・システムからプロセッサが脱退した場合、グループ記録部に基づき、脱退したプロセッサについて該グループ記録部の更新を行なうグループ化ステップ、前記グループ化ステップで構成されたグループにタスクを均等に配分するタスク配分ステップを実行させるための分散コンピューティング・プログラムである。
【００２１】
ここで、この発明の分散コンピューティング・プログラムにおいて、タスクの分散処理に参加しているプロセッサが制御プロセッサのみの状態で最初にプロセッサが参加した場合、前記グループ化ステップは、最初に参加したプロセッサのみで最初のグループを構成し、該最初に参加したプロセッサを該グループのグループ制御プロセッサと指定することができる。
【００２２】
ここで、この発明の分散コンピューティング・プログラムにおいて、プロセッサの数が所定の上限個数に達しないグループが存在する状態で新たなプロセッサが参加した場合、前記グループ化ステップは、所定の上限個数に達するまで新たに参加したプロセッサを該グループへ入れることができる。
【００２３】
ここで、この発明の分散コンピューティング・プログラムにおいて、プロセッサの数が所定の上限個数に達したグループが存在する状態で新たなプロセッサが参加した場合、前記グループ化ステップは、新たに参加したプロセッサのみで新たなグループを構成し、該新たに参加したプロセッサを該新たなグループ内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサと指定することができる。
【００２４】
ここで、この発明の分散コンピューティング・プログラムにおいて、プロセッサの数が所定の上限個数に達したグループからグループ制御プロセッサではないプロセッサが脱退した状態で新たなプロセッサが参加した場合、前記グループ化ステップは、新たに参加したプロセッサをグループ制御プロセッサではないプロセッサが脱退したグループへ入れることができる。
【００２５】
ここで、この発明の分散コンピューティング・プログラムにおいて、グループ制御プロセッサが脱退した場合、前記グループ化ステップは、グループ制御プロセッサが脱退したグループにおける他のプロセッサを新たにグループ制御プロセッサと指定することができる。
【００２６】
この発明の記録媒体は本発明のいずれかの分散コンピューティング・プログラムを記録したコンピュータ読取り可能な記録媒体である。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して詳細に説明する。
【００２８】
実施の形態１．
図１は、本発明の分散コンピューティング・システム１０を例示する。図１に示されるように、分散コンピューティング・システム１０において複数のプロセッサ２３、２５ａ、２５ｂ、２５ｃ、．．．、２５ｎ−２、２５ｎ−１等は所定の上限個数（ｎ個またはｎ台）のグループ２０を構成しており、他のプロセッサ３３、３５ａ、３５ｂ、３５ｃ、．．．、３５ｎ−２、３５ｎ−１等も同様に所定の上限個数（ｎ個）のグループ３０を構成している。プロセッサ６３、６５ａ、６５ｂ、６５ｃ等は所定の上限個数（ｎ個）には未だ達していないグループ６０を構成している。以下、所定の上限個数（ｎ個）のプロセッサを有するグループ２０等を完成グループと呼び、所定の上限個数（ｎ個）には未だ達していないグループ６０をエッジ・グループと呼ぶ。完成グループ２０、３０等およびエッジ・グループ６０には各々グループ２０、３０、６０等内のプロセッサ２５ａ、３５ａ、６５ａ等に対してタスクの配分を含む制御を行なうグループ制御プロセッサ２３、３３、６３等が存在している。このグループ制御プロセッサ２３、３３、６３等はグループ内のプロセッサ２５ａ、３５ａ、６５ａ等とインターネット等のネットワーク等（不図示）を介して相互に接続されている。グループ制御プロセッサ２３、３３、６３等はインターネット等のネットワーク５等を介して制御プロセッサ１と接続されており、この制御プロセッサ１が複数のプロセッサ２３、２５ａ等に対して上記グループ構成とタスクの配分とを含む制御を行なっている。
【００２９】
図１において、符号２は制御プロセッサ１の機能および使用するファイル等をブロック化して示す機能ブロックである。機能ブロック２において、符号４は  分散コンピューティング・システム１０へプロセッサ２５ａ等が参加した場合、グループ２０等内のプロセッサ数、完成グループ、エッジ・グループまたは未熟なグループ（後述）等のグループの種別及びグループ２０等内のグループ制御プロセッサ２３等の識別子を記録したグループ記録部８に基づき、参加したプロセッサ２５ａ等をグループ２０等に構成してグループ記録部８の更新を行なうグループ化部（グループ化手段）である。グループ化部４は分散コンピューティング・システム１０からプロセッサ２５ａ等が脱退した場合、グループ記録部８に基づき、脱退したプロセッサ２５ａ等についてグループ記録部８の更新も行なう。グループ記録部８には、各グループ２０等についてグループ制御プロセッサ２３の識別子が記録されており、完成グループ２０等についてはプロセッサ数ｎと完成グループの種別（フラグ等）とが記録され、エッジ・グループ６０についてはプロセッサ数４とエッジ・グループの種別とが記録されている。符号６はグループ化部４により構成されたグループ２０等にタスクを均等に配分するタスク配分部（タスク配分手段）である。
【００３０】
図１において、符号２２はグループ制御プロセッサ２３の機能をブロック化して示す機能ブロックである。機能ブロック２２において、符号２４は制御プロセッサ１のタスク配分部６によりグループ２０に配分されたタスクを、グループ２０内のプロセッサ２５ａ等へ処理能力に応じて配分するグループ内タスク配分部（グループ内タスク配分手段）である。他のグループ制御プロセッサ３３等も同様の機能を有するため説明は省略する。
【００３１】
以上のように、制御プロセッサ１はまず複数のプロセッサ２３、２５ａ等のグループ化を行い、各グループ２０等のグループ制御プロセッサ２３等へ均等にタスクを配分する。次にグループ制御プロセッサ２３等は制御プロセッサ１から配分されたタスクをグループ２０等内のプロセッサ２５ａ等へ処理能力に応じて配分する。以下、グループ化部４の行なうグループ化について、図２ないし図１０を用い場合を分けて説明する。図２ないし図１０において図１と同じ符号を付した箇所は同じ要素を示すため説明は省略する。
【００３２】
初期状態及び最初のプロセッサの参加．
図２は、タスクの分散処理に参加しているプロセッサが制御プロセッサ１のみの状態、すなわち分散コンピューティング・システム１０の初期状態を示す。図３は、分散コンピューティング・システム１０の初期状態において最初にプロセッサ２３が参加した状態を示す。グループ化部４は、最初に参加したプロセッサ２３のみで最初のグループ２０を構成し、この最初に参加したプロセッサ２３をエッジ・グループ２０内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサ２３と指定する。グループ記録部８には、エッジ・グループ２０についてプロセッサ数１とエッジ・グループの種別とグループ制御プロセッサ２３の識別子とが記録されている。図３に示される状態では未だ他のプロセッサは存在していないため、制御プロセッサ１からエッジ・グループ２０へタスクが配分された場合、このタスクはグループ制御プロセッサ２３のみで実行される。
【００３３】
２台目以降のプロセッサの参加．
図４はエッジ・グループ２０に２台目のプロセッサ２５ａが参加した状態を示す。まずグループ化部４はグループ記録部８に基づきグループ２０についてプロセッサ数が１であり、エッジ・グループであることを得る。図４に示されるようにエッジ・グループ２０が存在する状態で新たなプロセッサ２５ａが参加した場合、グループ化部４は所定の上限個数（ｎ個）に達するまで新たに参加したプロセッサ２５ａをエッジ・グループ２０へ入れる。
【００３４】
図５はエッジ・グループ２０にｎ台目のプロセッサ２５ｎ−１が参加した状態を示す。この結果、グループ記録部８にはエッジ・グループ２０についてプロセッサ数ｎと完成グループの種別とが記録される。図４または図５に示される状態で制御プロセッサ１からエッジ・グループ２０または完成グループ２０へタスクが配分された場合、このタスクはグループ制御プロセッサ２３からタスクを配分されたプロセッサ２５ａ等により実行される。グループ制御プロセッサ２３は自分を含めてタスクを配分することもできる。
【００３５】
ｎ＋１台目以降のプロセッサの参加．
図６は、分散コンピューティング・システム１０へｎ＋１台目以降のプロセッサが参加した状態を示す。まずグループ化部４はグループ記録部８に基づきグループ２０についてプロセッサ数がｎであり、グループ２０が完成グループであることを得る。図６に示されるように、完成グループ２０が存在する状態で新たなプロセッサ３３が参加した場合、グループ化部４は、新たに参加したプロセッサ３３のみで新たなエッジ・グループ３０を構成し、この新たに参加したプロセッサ３３を新たなエッジ・グループ３０内のプロセッサに対してタスクの配分を含む制御を行なうグループ制御プロセッサ３３と指定する。グループ記録部８には、エッジ・グループ３０についてプロセッサ数１とグループ制御プロセッサ３３の識別子とが記録される。図６に示される状態では、エッジ・グループ３０には未だ他のプロセッサは存在していないため、制御プロセッサ１からエッジ・グループ３０へタスクが配分された場合、このタスクはグループ制御プロセッサ３３のみで実行される。
【００３６】
図７はエッジ・グループ３０に２台目のプロセッサ３５ａが参加した状態を示す。まずグループ化部４はグループ記録部８に基づきグループ２０についてプロセッサ数がｎであり、グループ２０が完成グループであることを得る。さらにグループ記録部８に基づきグループ３０についてプロセッサ数が１であり、グループ３０がエッジ・グループであることを得る。図７に示されるように、エッジ・グループ３０が存在する状態で新たなプロセッサ３５ａが参加した場合、グループ化部４は、所定の上限個数（ｎ個）に達するまで新たに参加したプロセッサ３５ａをエッジ・グループ３０へ入れる。
【００３７】
プロセッサの脱退．
図８は完成グループ２０からプロセッサ２５ｂが脱退した状態を示す。グループ化部４は完成グループ２０からグループ制御プロセッサ２３ではないプロセッサが脱退した場合、グループ記録部８のグループ２０に対しプロセッサ数を１減ずる更新を行なう。このように一度完成グループとなった後に完成グループではなくなったグループを未熟なグループと呼ぶ。未熟なグループの種別は他のグループの種別と同様にグループ記録部８に適宜フラグを立てることにより記録しておくことができる。このフラグによりグループ化部４はグループ２０が未熟なグループであることを得る。
【００３８】
図９は未熟なグループ２０とエッジ・グループ３０とが混在する状態で新たなプロセッサ２５ｊが参加した場合を示す。まずグループ化部４はグループ記録部８に基づきグループ２０についてプロセッサ数がｎ−１であり、グループ２０が未熟なグループであることを得る。次にグループ記録部８に基づきグループ３０についてプロセッサ数が１であり、グループ３０がエッジ・グループであることを得る。このように未熟なグループ２０とエッジ・グループ３０とが混在する場合、グループ化部４は新たに参加したプロセッサ２５ｊを未熟なグループ２０へ入れることができる。これはできるだけ完成グループを増やすことに重点を置いたためである。従って、エッジ・グループ３０のプロセッサ数がｎ−１である場合は、新たに参加したプロセッサ２５ｊを未熟なグループ２０へ入れる替わりにエッジ・グループ３０へ入れてもよい。同じ条件の未熟なグループが複数存在する場合、グループが構成された時間順に新たに参加したプロセッサ２５ｊを入れてもよい。あるいはランダムに選択されたグループへ新たに参加したプロセッサ２５ｊを入れてもよい。
【００３９】
図１０はエッジ・グループ３０からグループ制御プロセッサ２３が脱退した状態を示す。エッジ・グループ３０に限らずグループ制御プロセッサ２３等が脱退した場合、グループ化部４はグループ制御プロセッサ３３が脱退したグループ３０における他のプロセッサ３５ａを新たにグループ制御プロセッサとして指定する。グループ記録部８のグループ３０に対しプロセッサ３５ａの識別子をグループ制御プロセッサとして記録すると共に、プロセッサ数を１減ずる更新を行なう。グループ３０はエッジ・グループであり一度も完成グループとなってはいないため、未熟なグループとはならない。
【００４０】
図１１は本発明の分散コンピューティング方法またはプログラムの処理の流れをフローチャートで示す。図１１に示されるように、制御プロセッサ１はプロセッサのグループ化を行なう（グループ化ステップ。ステップＳ１０、Ｓ１４、Ｓ１６、Ｓ１８）。詳しくは、分散コンピューティング・システム１０へプロセッサ２５ａ等が参加した場合（ステップＳ１０）、グループ２０等内のプロセッサ数、グループ２０等の種別及びグループ２０等内のグループ制御プロセッサ２３の識別子を含む情報を記録したグループ記録部８に基づき、参加したプロセッサ２５ａ等をグループ２０に構成してグループ記録部８の更新を行なう。プロセッサが参加していない場合はステップＳ２０へ進む。
【００４１】
ステップＳ１２では、タスクの分散処理に参加しているプロセッサが制御プロセッサ１のみの状態で最初にプロセッサ２３が参加した場合、最初に参加したプロセッサ２３のみで最初のグループ２０を構成し、最初に参加したプロセッサ２３をグループ２０内のグループ制御プロセッサと指定する。
【００４２】
ステップＳ１４では、プロセッサの数が所定の上限個数（ｎ個）に達しないエッジ・グループ２０等が存在する状態で新たなプロセッサ２５ａ等が参加した場合、所定の上限個数（ｎ個）に達するまで新たに参加したプロセッサ２５ａ等をエッジ・グループ２０等へ入れる。
【００４３】
ステップＳ１６では、プロセッサの数が所定の上限個数（ｎ個）に達した完成グループ２０が存在する状態で新たなプロセッサ３３等が参加した場合、新たに参加したプロセッサ３３のみで新たなグループ３０を構成し、新たに参加したプロセッサ３３を新たなグループ３０内のグループ制御プロセッサと指定する。
【００４４】
ステップＳ１８では、プロセッサの数が所定の上限個数（ｎ個）に達した完成グループ２０等からグループ制御プロセッサ２３等ではないプロセッサ２５ｂ等が脱退した状態で新たなプロセッサ２５ｊ等が参加した場合、新たに参加したプロセッサ２５ｊ等をグループ制御プロセッサ２３等ではないプロセッサ２５ｂ等が脱退したグループ２０等へ入れる。
【００４５】
ステップＳ１２、Ｓ１４、Ｓ１６およびＳ１８が終了した後、ステップＳ２０へ進む。グループ制御プロセッサ３３等が脱退した場合（ステップＳ２０）、グループ制御プロセッサ３３等が脱退したグループ３０等における他のプロセッサ３５ａ等を新たにグループ制御プロセッサと指定する（ステップ２２）。グループ記録部８に基づき、脱退したプロセッサ２５ｂ等についてグループ記録部８の更新を行ない、ステップＳ２４へ進む。グループ制御プロセッサ３３等が脱退していない場合も、ステップＳ２４へ進む。
【００４６】
ステップＳ２４では、制御プロセッサ１が上述のグループ化ステップ（ステップＳ１０、Ｓ１２、Ｓ１４，Ｓ１６．Ｓ１８）で構成されたグループにタスクを均等に配分する（タスク配分ステップ）。
【００４７】
最後に、各グループ制御プロセッサ２３等が、タスク配分ステップ（ステップＳ２４）でグループ２０等に配分されたタスクをグループ２０等内のプロセッサ２５ａ等へ処理能力に応じて配分する（グループ内タスク配分ステップ。ステップＳ２６）。
【００４８】
以上説明したように、本発明の実施の形態１によれば、制御プロセッサ１は分散コンピューティング・システム１０へプロセッサ２５ａ等が参加した場合、グループ２０等内のプロセッサ数、グループ２０等の種別及びグループ２０等内のグループ制御プロセッサ２３等の識別子を含む情報を記録したグループ記録部８に基づき、参加したプロセッサ２５ａ等をグループ２０等に構成してグループ記録部８の更新を行なう。又は分散コンピューティング・システム１０からプロセッサ２５ｂ等が脱退した場合、グループ記録部８に基づき、脱退したプロセッサ２５ｂ等についてグループ記録部８の更新を行なう。上述のように構成されたグループ２０等にタスクを均等に配分する。グループ制御プロセッサ２３等は、グループ２０等に配分されたタスクをグループ２０等内のプロセッサ２５ａ等へ処理能力に応じて配分する。従って、大規模なプロセッサから構成される分散コンピューティング・システム１０を構築する場合、プロセッサ集団であるグループ２０等の規模を自律的に反映することができ規模拡張性を有し、分散コンピューティング・システム１０を構成する複数のプロセッサの数が動的に変化する場合にも効果的に対応することができる。
【００４９】
実施の形態２．
図１２は、上述した本発明のコンピュータ・プログラムである分散コンピューティング・プログラムを実行するコンピュータの内部回路１０を示すブロック図である。図１２において、上述の本発明の分散コンピューティング・プログラムは、ＲＯＭ７２、ディスク７５ａまたはＣＤ−ＲＯＭ７５ｎ等の記録媒体に記録されている。この分散コンピューティング・プログラムは、ＲＯＭ７２、ディスク７５ａまたはＣＤ−ＲＯＭ７５ｎ等の記録媒体からコントローラ７４を介しバス７６を通ってＲＡＭ７３へロードされる。入力操作部７８は制御プロセッサ１等のコンピュータに入力を行うためのマウスまたはテンキー等の入力装置であり、入力制御部７７は入力操作部７８と接続され入力制御等を行う。外部インタフェース（Ｉ／Ｆ）部７９はネットワーク５等の外部との通信を行う際のインタフェース機能を有している。グループ記録部８等はディスク７５ａ等に記録しておくことができる。
【００５０】
ＣＰＵ７１がＲＡＭ７３内の上述の本発明の分散コンピューティング・プログラムを実行することにより、本発明の目的を達成することができる。当該分散コンピューティング・プログラムは上述のようにＣＤ−ＲＯＭ７５ｎ等の脱着可能な記録媒体の形態でコンピュータＣＰＵ７１に供給することができ、当該分散コンピューティング・プログラムを記録したＣＤ−ＲＯＭ７５ｎ等の記録媒体も同様に本発明を構成することになる。当該分散コンピューティング・プログラムを記録した記録媒体としては上述された記録媒体の他に、例えばＤＶＤ、光ディスク、メモリ・カード、メモリスティック、ＭＯ、ＦＤ等を用いることができる。
【００５１】
【発明の効果】
以上説明したように、本発明の分散コンピューティング・システム１０等によれば、分散コンピューティング・システム１０へプロセッサ２５ａ等が参加した場合、制御プロセッサ１はグループ２０等内のプロセッサ数、グループ２０等の種別及びグループ２０等内のグループ制御プロセッサ２３等の識別子を含む情報を記録したグループ記録部８に基づき、参加したプロセッサ２５ａ等をグループ２０等に構成してグループ記録部８の更新を行なう。又は分散コンピューティング・システム１０からプロセッサ２５ｂ等が脱退した場合、グループ記録部８に基づき、脱退したプロセッサ２５ｂ等についてグループ記録部８の更新を行なう。上述のように構成されたグループ２０等にタスクを均等に配分する。グループ制御プロセッサ２３等は、グループ２０等に配分されたタスクをグループ２０等内のプロセッサ２５ａ等へ処理能力に応じて配分する。従って、大規模なプロセッサから構成される分散コンピューティング・システム１０を構築する場合、プロセッサ集団であるグループ２０等の規模を自律的に反映することができる規模拡張性を有し、分散コンピューティング・システム１０を構成する複数のプロセッサの数が動的に変化する場合にも効果的に対応することができる分散コンピューティング・システム１０等を提供することができる。
【図面の簡単な説明】
【図１】本発明の分散コンピューティング・システム１０を例示する図である。
【図２】タスクの分散処理に参加しているプロセッサが制御プロセッサ１のみの状態、すなわち分散コンピューティング・システム１０の初期状態を示す図である。
【図３】分散コンピューティング・システム１０の初期状態において最初にプロセッサ２３が参加した状態を示す図である。
【図４】エッジ・グループ２０に２台目のプロセッサ２５ａが参加した状態を示す図である。
【図５】エッジ・グループ２０にｎ台目のプロセッサ２５ｎ−１が参加した状態を示す図である。
【図６】分散コンピューティング・システム１０へｎ＋１台目以降のプロセッサが参加した状態を示す図である。
【図７】エッジ・グループ３０に２台目のプロセッサ３５ａが参加した状態を示す図である。
【図８】完成グループ２０からプロセッサ２５ｂが脱退した状態を示す図である。
【図９】未熟なグループ２０とエッジ・グループ３０とが混在する状態で新たなプロセッサが参加した場合を示す図である。
【図１０】エッジ・グループ３０からグループ制御プロセッサ２３３が脱退した状態を示す図である。
【図１１】本発明の分散コンピューティング方法またはプログラムの処理の流れを示すフローチャートである。
【図１２】本発明の分散コンピューティング・プログラムを実行するコンピュータの内部回路７０を示すブロック図である。
【符号の説明】
１  制御プロセッサ、  ２  機能ブロック、  ４  グループ化部、  ５  ネットワーク、  ６  タスク配分部、  ８  グループ記録部、  １０  分散コンピューティング・システム、  ２０，３０，６０  グループ、  ２３，３３，６３  グループ制御プロセッサ、  ２５ａ，２５ｂ，２５ｃ，２５ｎ−２，２５ｎ−１，３５ａ，３５ｂ，３５ｃ，３５ｎ−２，３５ｎ−１，６５ａ，６５ｂ，６５ｃプロセッサ、
７０  内部回路、  ７１  ＣＰＵ、  ７２  ＲＯＭ、  ７３  ＲＡＭ、  ７４コントローラ、  ７５ａ  ディスク、  ７５ｎ  ＣＤ−ＲＯＭ、  ７６  バス、  ７７  入力操作部、  ７８  入力制御部、  ７９  外部Ｉ／Ｆ部。
【図１】
2004341962.tif 000003
【図２】
2004341962.tif 000004
【図３】
2004341962.tif 000005
【図４】
2004341962.tif 000006
【図５】
2004341962.tif 000007
【図６】
2004341962.tif 000008
【図７】
2004341962.tif 000009
【図８】
2004341962.tif 000010
【図９】
2004341962.tif 000011
【図１０】
2004341962.tif 000012
【図１１】
2004341962.tif 000013
【図１２】
2004341962.tif 000014