(57)【要約】  マスタ端末（ＭＴ１）は、分散処理をおこなうグループ（Ｇ１）を編成する際、メイングループと、サブグループと、に分けてスレーブ端末（ＭＴ２〜ＭＴ４）を登録する。具体的には、常時マスタ端末（ＭＴ１）からの処理依頼を受け付けるスレーブ端末（ＭＴ２）は、メイングループに登録される。一方、臨時にマスタ端末（ＭＴ１）からの処理依頼を受け付けるスレーブ端末（ＭＴ３，ＭＴ４）は、サブグループに登録される。これにより、マスタ端末（ＭＴ１）は、専らメイングループのスレーブ端末（ＭＴ２）に分散処理に含まれる複数の処理を割り振って、分散処理を並列処理させることができる。また、マスタ端末（ＭＴ１）は、サブグループのスレーブ端末（ＭＴ３，ＭＴ４）に臨時に分散処理に含まれる処理を割り振ることで、スレーブ端末（ＭＴ２〜ＭＴ４）が可搬であることに起因する状況の変化に対応できるグループ（Ｇ１）を編成することができる。
2012160629.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置を含む第１グループへの第１装置の追加要求を検出し、
前記第１装置が前記第１グループと異なる第２グループに属しないときは、前記第１グループの複数の装置を登録するメイングループに登録し、
前記第１装置が前記第２グループに属するときは、前記第１装置をサブグループに登録し、
前記メイングループに登録される複数の装置によって複数のタスクを含む分散処理がおこなわれること
を特徴とするデータ処理方法。
【請求項２】
前記第１グループへの第２装置の追加要求を検出し、
前記複数の装置の数である第１数と前記複数のタスクの数である第２数とを比較し、
前記比較結果に基づいて前記第２装置を前記メイングループおよび前記サブグループの何れかに登録すること
を特徴とする請求項１に記載のデータ処理方法。
【請求項３】
前記第１数が前記第２数以上であるとき、前記第２装置を前記サブグループに登録し、
前記第１数が前記第２数よりも小さいとき、前記第２装置を前記メイングループに登録すること
を特徴とする請求項２に記載のデータ処理方法。
【請求項４】
前記第１装置が前記サブグループに登録されるとき、前記第２グループに含まれる他の装置からの前記第１装置に対する同期要求が前記サブグループのマスタ端末に登録されること
を特徴とする請求項１乃至請求項３の何れか一に記載のデータ処理方法。
【請求項５】
前記メイングループへの登録または不登録を基地局に通知すること
を特徴とする請求項１乃至請求項４の何れか一に記載のデータ処理方法。
【請求項６】
前記第１数が前記第２数よりも大きいとき、前記複数のタスク内のタスクが割り当てられていない第３装置のメイングループの登録を削除すること
を特徴とする請求項１乃至請求項５の何れか一に記載のデータ処理方法。
【請求項７】
前記複数の装置で共有される共有メモリの前記第３装置に設定されるメモリ領域が使用されているときは、前記第３装置のメイングループの登録を削除しないこと
を特徴とする請求項６に記載のデータ処理方法。
【請求項８】
前記複数のタスク内の各タスクが使用するメモリの大きさが前記複数の装置で共有される共有メモリの大きさよりも大きいとき、前記共有メモリの設定を解除すること
を特徴とする請求項６または請求項７に記載のデータ処理方法。
【請求項９】
前記メイングループに登録される第４装置の通信能力の低下を検出するときまたは前記第４装置のタスクの実行結果を取得するとき、前記第４装置の前記メイングループの登録または前記サブグループの登録を削除すること
を特徴とする請求項１乃至請求項８の何れか一に記載のデータ処理方法。
【請求項１０】
前記複数の装置で共有される共有メモリの前記第４装置に設定されるメモリ領域が使用されているときは前記メモリ領域のデータを回収すること
を特徴とする請求項９に記載のデータ処理方法。
【請求項１１】
前記複数のタスク内の各タスクが使用するメモリの大きさが前記複数の装置で共有される共有メモリの大きさよりも大きいとき、前記共有メモリの設定を解除すること
を特徴とする請求項９または請求項１０に記載のデータ処理方法。
【請求項１２】
前記メイングループの登録の削除を基地局に通知すること
を特徴とする請求項６乃至請求項１１の何れか一に記載のデータ処理方法。
【請求項１３】
第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出し、
前記第１装置が、前記第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録されるとき、
前記サブグループに登録するために前記メイングループおよび前記サブグループを管理する装置に前記同期要求を通知すること
を特徴とするデータ処理方法。
【請求項１４】
前記第１グループからの削除要求を受信し、
前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第１グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３に記載のデータ処理方法。
【請求項１５】
前記第１グループに含まれる複数の装置で共有される共有メモリのメモリ領域が使用されているときは前記メモリ領域のデータを前記第１グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３または請求項１４に記載のデータ処理方法。
【請求項１６】
前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行依頼を受信し、
前記第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第２グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３乃至請求項１５の何れか一に記載のデータ処理方法。
【請求項１７】
前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行を開始するときに、前記第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第２グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３乃至請求項１６の何れか一に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理するデータ処理方法に関する。
【背景技術】
【０００２】
従来、１端末で処理する場合に高い処理能力が要求される演算処理は、処理量が多い。このような演算処理を実行する際、当該演算処理に含まれる複数の処理を複数の端末に割り振って並列処理させることにより、個々の端末の性能が低くても演算処理を実行できるようにしていた。以下では、並列処理の対象となる演算処理を「分散処理」という。なお、分散処理としては、気象シミュレーションなどの科学技術計算や描画系アプリケーションが挙げられる。【０００３】
分散処理をおこなう複数の端末が含まれるグループ内には、分散処理を制御するマスタ端末が存在し、マスタ端末がグループ内のスレーブ端末を制御して分散処理をおこなう。具体的には、マスタ端末が、分散処理に含まれる複数の処理の中から、スレーブ端末に処理を割り振り、また、スレーブ端末から割り振った処理の処理結果を回収して、分散処理をおこなう。【０００４】
関連する従来技術としては、ネットワークにより接続された複数のＰＯＳ（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅ）装置のデータを圧縮して、バックアップ用のデータとしてそれぞれのＰＯＳ装置において保持しておく技術がある（下記、特許文献１参照）。また、グループ内の複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の負荷情報に基づいて、ＣＰＵの処理能力を、他のＣＰＵが発生させたプロセスの処理に貸し出す技術がある（下記、特許文献２参照）。また、中断した処理の処理情報を退避させるメモリ領域を自装置内に用意しておく技術がある（下記、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−６７２３２号公報
【特許文献２】特開平８−７７０２６号公報
【特許文献３】特開昭６４−７６２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来では、分散処理をおこなうグループに含まれる端末としては、設置場所が固定された端末について想定されており、可搬の端末については想定されていない。そのため、端末が可搬であることに起因してマスタ端末と通信可能な端末群が動的に変化する場合に、分散処理をおこなうグループに登録する端末を当該端末群から選択することができず、可般の端末間では、分散処理ができないという問題がある。【０００７】
また、可般の端末群の端末で分散処理をおこなう場合、すでに他のグループに所属している端末を自グループに含めてしまうと、当該端末に両グループからの処理が割り当てられてしまい、かえって負荷が増大してしまうという問題がある。【０００８】
また、グループを編成した場合、分散処理がなされるため、分散処理終了後はグループが解消される。したがって、すでに他のグループの所属している端末であっても、分散処理終了後は、どのグループにも属さないことになるため、分散処理効率の低下を招くという問題がある。【０００９】
本発明は、上述した従来技術による問題点を解消するため、可搬の端末群での分散処理時における特定の端末への負荷集中の防止および分散処理の効率化を図ることができるデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数の装置を含む第１グループへの第１装置の追加要求を検出し、第１装置が第１グループと異なる第２グループに属しないときは、第１グループの複数の装置を登録するメイングループに登録し、第１装置が第２グループに属するときは、第１装置をサブグループに登録し、メイングループに登録される複数の装置によって複数のタスクを含む分散処理をおこなうデータ処理方法が提案される。【００１１】
また、本発明の一側面によれば、第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出し、第１装置が、第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録されるとき、サブグループに登録するためにメイングループおよびサブグループを管理する装置に同期要求を通知するデータ処理方法が提案される。
【発明の効果】
【００１２】
本発明の一側面によれば、可搬の端末群での分散処理時における特定の端末への負荷集中の防止および分散処理の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容を示す説明図である。
【図２】図２は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。
【図３】図３は、実施の形態にかかる端末ＭＴのハードウェア例を示すブロック図である。
【図４】図４は、メイングループ情報ＤＢ４００の内容を示す説明図である。
【図５】図５は、サブグループ情報ＤＢ５００の内容を示す説明図である。
【図６】図６は、マスタ端末情報ＤＢ６００の内容を示す説明図である。
【図７】図７は、実施の形態にかかる基地局のハードウェア例を示すブロック図である。
【図８】図８は、グループ情報ＤＢ８００の内容を示す説明図である。
【図９】図９は、マスタ端末ＭＴの機能例を示すブロック図である。
【図１０】図１０は、スレーブ端末ＭＴの機能例を示すブロック図である。
【図１１】図１１は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１の詳細を示すフローチャートである。
【図１２】図１２は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２の詳細を示すフローチャートである。
【図１３】図１３は、マスタ端末ＭＴからのグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。
【図１４】図１４は、基地局ＢＳによる端末ＭＴの位置情報の送信処理の詳細を示すフローチャートである。
【図１５】図１５は、基地局ＢＳによるグループ情報の登録処理の詳細を示すフローチャートである。
【図１６】図１６は、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入った場合におけるグループの再編成の内容を示す説明図である。
【図１７】図１７は、マスタ端末ＭＴによるグループの再編成処理の詳細を示すフローチャートである。
【図１８】図１８は、グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容を示す説明図である。
【図１９】図１９は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。
【図２０】図２０は、マスタ端末ＭＴからの登録の削除通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。
【図２１】図２１は、マスタ端末ＭＴからの処理終了通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。
【図２２】図２２は、グループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容を示す説明図である。
【図２３】図２３は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。
【図２４】図２４は、サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容を示す説明図である。
【図２５】図２５は、メイングループの分散処理の実行の開始処理の詳細を示すフローチャートである。
【図２６】図２６は、サブグループのマスタ端末ＭＴによるデータ回収処理の詳細を示すフローチャートである。
【図２７】図２７は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼の内容を示す説明図である。
【図２８】図２８は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理の詳細を示すフローチャートである。
【図２９】図２９は、スレーブ端末ＭＴによる処理依頼の受付処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明にかかるデータ処理方法の実施の形態を詳細に説明する。本データ処理方法によれば、分散処理を制御するマスタ端末は、他のマスタ端末からの処理が割り振られていないスレーブ端末を、自端末から主として分散処理を割り振るメイングループに登録する。また、マスタ端末は、他のマスタ端末から処理を割り振られているスレーブ端末を、自端末から臨時に分散処理を割り振るサブグループに登録する。
【００１５】
これにより、マスタ端末は、メイングループに登録された端末に分散処理を割り振って、効率よく分散処理を実行することができる。また、マスタ端末は、まだ実行されていない処理がある場合であって、かつ、サブグループに登録された端末がアイドル状態のときには、臨時に分散処理を割り振って、分散処理の効率化を図ることができる。また、端末の移動によりメイングループに登録された端末の通信状況が悪化した場合であって、かつ、サブグループに登録された端末がアイドル状態のときには、サブグループに登録された端末に臨時に分散処理を割り振り直して、分散処理を続行することもできる。
【００１６】
（マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容）
まず、図１を用いて、マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容について説明する。
【００１７】
図１は、マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容を示す説明図である。図１では、基地局ＢＳ（Ｂａｓｅ  Ｓｔａｔｉｏｎ）の通信圏Ｃ内（いわゆる「セル」）には、複数の端末ＭＴ（Ｍｏｂｉｌｅ  Ｔｅｒｍｉｎａｌ）（ここでは、例として５台の端末ＭＴ１〜ＭＴ５）が存在する。端末ＭＴは、可搬の通信装置である。端末ＭＴとしては、例えば、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ゲーム機器が挙げられる。
【００１８】
基地局ＢＳの通信圏Ｃ内の複数の端末ＭＴの中には、複数の処理を含む分散処理の実行を制御するマスタとなる端末ＭＴ（以下、「マスタ端末ＭＴ」という）が存在する。ここでは、例として、端末ＭＴ１，ＭＴ５をマスタ端末ＭＴとする。また、基地局ＢＳの通信圏Ｃ内の複数の端末ＭＴの中には、マスタ端末ＭＴの制御に従って、割り振られた分散処理をおこなうスレーブとなる端末ＭＴ（以下、「スレーブ端末ＭＴ」という）が存在する。ここでは、例として、端末ＭＴ２〜ＭＴ４をスレーブ端末ＭＴとする。
【００１９】
図１では、マスタ端末ＭＴ５は、自端末ＭＴ５とスレーブ端末ＭＴ４とを含むグループＧ２を編成している。一方、マスタ端末ＭＴ１は、まだグループＧ１を編成していない。マスタ端末ＭＴ１がグループＧ１を編成する場合には、メイングループとサブグループとに分けてグループＧ１を編成する。ここで、メイングループとは、マスタ端末ＭＴ１からの処理依頼を常時受け付けるスレーブ端末ＭＴが登録されるグループである。サブグループとは、マスタ端末ＭＴ１からの処理依頼を臨時に受け付けるスレーブ端末ＭＴが登録されるグループである。
【００２０】
メイングループに登録されるスレーブ端末は、他のグループに所属しておらず、ＣＰＵがアイドル状態になりやすいスレーブ端末である。そのため、マスタ端末ＭＴ１は常時処理依頼をして、分散処理の効率化を図ることができる。
【００２１】
また、サブグループに登録されるスレーブ端末は、すでに他のグループに所属しているスレーブ端末ＭＴである。そのため、マスタ端末ＭＴ１は、自グループからの処理依頼を極力おこなわずに当該スレーブ端末ＭＴの負荷が増大することを防止する。ただし、サブグループに登録されたスレーブ端末が、他のグループの分散処理の終了後、または、他のグループの分散処理の中断中であって、ＣＰＵがアイドル状態になっているときには、マスタ端末ＭＴ１は、臨時に処理依頼をして分散処理の効率化を図る。
【００２２】
図１では、マスタ端末ＭＴ１は、処理１ａと処理１ｂとを含む分散処理１を有している。ここで、処理１ａと処理１ｂは、それぞれ一連の処理であり、例えば、単一のタスクであってもよいし、タスク群であってもよい。また、処理１ａと処理１ｂは、それぞれ独立した処理であってもよいし、一方の処理の実行中には他方の処理が中断される排他的な関係にある処理であってもよい。排他的な関係とは、例えば、一方の処理の処理結果を他方の処理が参照する関係である。
【００２３】
ここで、マスタ端末ＭＴ１は、基地局ＢＳから各端末ＭＴ１〜ＭＴ５の位置情報を取得し、取得した位置情報を参照して自端末ＭＴ１のアドホック通信の通信圏Ｅ内のスレーブ端末ＭＴを検出する。なお、アドホック通信とは、各端末ＭＴが自端末ＭＴの通信圏内にある他の端末ＭＴ間の通信を中継する機能を有することにより、自端末ＭＴの通信圏内にない端末ＭＴとも通信可能な通信方式である。
【００２４】
そして、マスタ端末ＭＴ１は、検出されたスレーブ端末ＭＴが他のグループに所属しているか否かに基づいて、検出されたスレーブ端末を分散処理をおこなうグループＧ１のメイングループまたはサブグループに登録する。マスタ端末ＭＴ１は、自端末ＭＴ１とグループＧ１のメイングループに登録したスレーブ端末ＭＴとに分散処理１を割り振って、分散処理１を並列処理する。
【００２５】
（１）例えば、マスタ端末ＭＴ１は、基地局ＢＳから取得した位置情報を参照して、スレーブ端末ＭＴ４を検出すると、メイングループまたはサブグループへのスレーブ端末ＭＴ４の登録処理を開始する。ここで、スレーブ端末ＭＴ４は、マスタ端末ＭＴ５のグループＧ２に所属しており、専らマスタ端末ＭＴ５からの処理依頼により、ＣＰＵを分散処理に使用するスレーブ端末ＭＴである。
【００２６】
そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ４は、マスタ端末ＭＴ１からの処理依頼を常時受け付けることはできないスレーブ端末ＭＴであると判断して、スレーブ端末ＭＴ４をサブグループに登録する。
【００２７】
（２）次に、マスタ端末ＭＴ１は、基地局ＢＳから取得した位置情報を参照して、スレーブ端末ＭＴ２を検出すると、メイングループまたはサブグループへのスレーブ端末ＭＴ２の登録処理を開始する。ここで、スレーブ端末ＭＴ２は、他のマスタ端末ＭＴ５のグループＧ２に所属しておらず、マスタ端末ＭＴ１からの処理依頼により、ＣＰＵを分散処理１に使用できるスレーブ端末ＭＴである。
【００２８】
そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ２は、マスタ端末ＭＴ１からの処理依頼を常時受け付けることができるスレーブ端末ＭＴであると判断して、メイングループに登録する。
【００２９】
（３）そして、マスタ端末ＭＴ１は、基地局ＢＳから取得した位置情報を参照して、スレーブ端末ＭＴ３を検出すると、メイングループまたはサブグループへのスレーブ端末ＭＴ３の登録処理を開始する。ここで、スレーブ端末ＭＴ３は、他のマスタ端末ＭＴ５のグループＧ２に所属しておらず、マスタ端末ＭＴ１からの処理依頼により、ＣＰＵを分散処理１に使用できるスレーブ端末ＭＴである。
【００３０】
そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ３は、マスタ端末ＭＴ１からの処理依頼を常時受け付けることができるスレーブ端末ＭＴであると判断して、メイングループに登録する。
【００３１】
ただし、分散処理１に含まれる処理数は２であるから、マスタ端末ＭＴ１と、メイングループに登録されたスレーブ端末ＭＴ２と、の２端末があれば、並列処理が可能である。そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ３をメイングループに登録しても、スレーブ端末ＭＴ３に割り振る処理がないと判断して、スレーブ端末ＭＴ３をサブグループに登録するようにしてもよい。
【００３２】
そして、マスタ端末ＭＴ１は、分散処理１をおこなうグループＧ１を編成し、メイングループに登録されたスレーブ端末ＭＴ２に処理１ｂを依頼し、また、処理１ａは自端末ＭＴ１にて実行して、分散処理１を並列に実行する。このように、マスタ端末ＭＴ１は、他のグループに所属しておらずＣＰＵがアイドル状態になりやすいスレーブ端末ＭＴ２，ＭＴ３に処理を依頼し、分散処理１を効率よく実行することができる。
【００３３】
そして、スレーブ端末ＭＴ２の移動に起因して、マスタ端末ＭＴ１とスレーブ端末ＭＴ２とのデータの送受信が困難な状況になった場合を想定する。この場合、マスタ端末ＭＴ１は、メイングループのスレーブ端末ＭＴ３やサブグループのスレーブ端末ＭＴ４を使用して分散処理を続行することができる。このように、マスタ端末ＭＴ１は、グループに含まれる端末ＭＴが可搬であることに起因する通信状況の変化に対応して分散処理を実行可能なグループを編成することができる。
【００３４】
（ネットワークシステムの一実施例）
図２は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。図２において、ネットワークシステム２００は、複数の端末ＭＴ１〜ＭＴ８と、基地局ＢＳ１，ＢＳ２と、を含む。ネットワークシステム２００において、各端末ＭＴ１〜ＭＴ８は、基地局ＢＳ１，ＢＳ２を介して接続されている。
【００３５】
端末ＭＴ１〜ＭＴ８は、他端末ＭＴと通信をおこなう移動可能な無線通信装置である。また、各端末ＭＴ１〜ＭＴ８のうち、端末ＭＴ１，ＭＴ５，ＭＴ８は、マスタ端末ＭＴである。一方、各端末ＭＴ１〜ＭＴ８のうち、端末ＭＴ２〜ＭＴ４，ＭＴ６，ＭＴ７は、スレーブ端末ＭＴである。
【００３６】
マスタ端末ＭＴ１，ＭＴ５，ＭＴ８はそれぞれ、自端末ＭＴが接続されている基地局ＢＳ１，ＢＳ２に接続されている複数のスレーブ端末ＭＴのうち、自端末ＭＴとアドホック通信が可能な範囲に存在するスレーブ端末ＭＴを自端末ＭＴのグループに登録している。
【００３７】
すなわち、マスタ端末ＭＴとスレーブ端末ＭＴとは、マルチホップ通信によりアドホック通信をおこなう。アドホック通信においては、アドホック通信のためのモジュールを通信先の端末ＭＴごとに用意して、通信をおこなう。ここでは、マスタ端末ＭＴとスレーブ端末ＭＴとは、アドホック通信をおこなっているが、基地局ＢＳを介して通信をおこなうようにしてもよい。
【００３８】
具体的には、マスタ端末ＭＴ１は、スレーブ端末ＭＴ２，ＭＴ３を、グループＧ１のスレーブ端末ＭＴに登録している。また、マスタ端末ＭＴ５は、スレーブ端末ＭＴ４，ＭＴ６を、グループＧ２のスレーブ端末ＭＴに登録している。そして、マスタ端末ＭＴ８は、スレーブ端末ＭＴ７を、グループＧ３のスレーブ端末ＭＴに登録している。
【００３９】
なお、マスタ端末ＭＴの中には、マスタ端末ＭＴ５のように複数の基地局と通信可能な端末ＭＴがあってもよい。また、マスタ端末ＭＴの中には、他のマスタ端末ＭＴのスレーブ端末ＭＴとなるマスタ端末ＭＴがあってもよい。
【００４０】
ここで、グループＧ１内の各端末ＭＴ１〜ＭＴ３は、それぞれメモリＭを有する。そして、グループＧ１内の各端末ＭＴ１〜ＭＴ３は、それぞれメモリＭ内に分散共有メモリ領域Ｍｄ１を有する。分散共有メモリ領域Ｍｄ１は、グループＧ１内のどの端末ＭＴからもアクセス可能な領域である。
【００４１】
ここで、各端末ＭＴ１〜ＭＴ３がメモリＭ内に設定する分散共有メモリ領域Ｍｄ１のサイズは、端末ＭＴの動作に不具合が発生しないサイズであって、例えば、各端末ＭＴのメモリＭの１０パーセント以下のサイズである。これにより、グループＧ１では、各端末ＭＴ１〜ＭＴ３が有する分散共有メモリ領域Ｍｄ１の集合となる仮想的な共有メモリＭｃ１を作成する。このように作成した共有メモリＭｃ１を、グループＧ１内の各端末ＭＴ１〜ＭＴ３は、処理結果の退避に使用して、自端末ＭＴのメモリＭを有効活用する。
【００４２】
具体的には、各端末ＭＴ１〜ＭＴ３は、実行中の分散処理を中断して、あらたな処理を自端末ＭＴにおいて実行する場合、分散処理の途中処理結果があらたな処理の処理結果で上書きされないように、分散処理の途中処理結果を共有メモリＭｃ１に退避させる。そして、各端末ＭＴ１〜ＭＴ３は、中断した分散処理を再開する際に、退避させた途中処理結果を復帰させて、分散処理を再開する。
【００４３】
また、グループＧ２でも、同様に、分散共有メモリ領域Ｍｄ２から共有メモリＭｃ２が作成されている。一方、グループＧ３のように、共有メモリＭｃを作成しないグループがあってもよい。また、各端末ＭＴ１〜ＭＴ６の中には、分散共有メモリ領域Ｍｄを有しない端末ＭＴがあってもよい。また、各端末ＭＴが有する分散共有メモリ領域Ｍｄはそれぞれ異なるサイズであってもよい。
【００４４】
また、ネットワークシステム２００は、設置場所が固定された端末ＭＴを含んでもよい。設置場所が固定された端末ＭＴとしては、例えば、ＰＣ、サーバが挙げられる。また、ネットワークシステム２００は、基地局の他に、ゲートウェイを含んでもよい。
【００４５】
（端末ＭＴのハードウェア例）
次に、図３を用いて、実施の形態にかかる端末ＭＴのハードウェア例について、説明する。ここで、端末ＭＴとは、上述したマスタ端末ＭＴまたはスレーブ端末ＭＴになる端末ＭＴであり、例えば、端末ＭＴ１〜ＭＴ８である。
【００４６】
図３は、実施の形態にかかる端末ＭＴのハードウェア例を示すブロック図である。図３において、端末ＭＴは、ＣＰＵ３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４と、ディスプレイ３０５と、キーボード３０６と、を備えている。また、各構成部はバス３１０によってそれぞれ接続されている。
【００４７】
ここで、ＣＰＵ３０１は、端末ＭＴの全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。なお、図２に示したメモリＭは、ここではＲＡＭ３０３である。
【００４８】
また、端末ＭＴがマスタ端末ＭＴである場合には、ＲＡＭ３０３は、メイングループ情報ＤＢ（ＤａｔａＢａｓｅ）と、サブグループ情報ＤＢと、を記憶している。一方、端末ＭＴがスレーブ端末ＭＴである場合、ＲＡＭ３０３は、マスタ端末情報ＤＢを記憶している。
【００４９】
Ｉ／Ｆ３０４は、基地局ＢＳとの電波の送受信を制御し、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３２０に接続され、このネットワーク３２０を介して他の装置に接続される。そして、Ｉ／Ｆ３０４は、ネットワーク３２０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。また、Ｉ／Ｆ３０４は、マルチホップ通信により、通信圏Ｅ内の他の装置とのデータの送受信をおこなう。
【００５０】
ディスプレイ３０５は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０５は、例えば、ＴＦＴ液晶ディスプレイなどを採用することができる。キーボード３０６は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【００５１】
（メイングループ情報ＤＢ４００の内容）
ここで、図４を用いて、図３に示した端末ＭＴがマスタ端末ＭＴである場合に、ＲＡＭ３０３に記憶されているメイングループ情報ＤＢ４００の内容について説明する。
【００５２】
図４は、メイングループ情報ＤＢ４００の内容を示す説明図である。図４において、メイングループ情報ＤＢ４００は、メイングループ端末項目と、分散共有メモリ領域情報項目と、分散処理配布状況項目と、を有し、メイングループにスレーブ端末ＭＴが登録されるごとにレコードを構成する。
【００５３】
ここで、メイングループ端末項目には、メイングループに登録されたスレーブ端末ＭＴの情報が記憶されている。スレーブ端末ＭＴの情報とは、端末ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と位置情報と通信速度である。
【００５４】
端末ＩＤとは、スレーブ端末ＭＴを一意に特定できる識別情報である。例えば、スレーブ端末ＭＴが携帯電話である場合は、ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）カードに付与されたＩＭＳＩ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｏｂｉｌｅ  Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ）を、端末ＩＤに採用できる。
【００５５】
ただし、マスタ端末ＭＴがメイングループにスレーブ端末ＭＴを登録する際、マスタ端末ＭＴ内に限りスレーブ端末ＭＴを一意に特定できるローカルな識別情報をスレーブ端末ＭＴに付与しておき、付与された識別情報を端末ＩＤとして採用することもできる。
【００５６】
また、位置情報は、スレーブ端末ＭＴの現在位置を示す位置情報である。例えば、位置情報は、ＧＰＳシステムにより測位した座標であってもよい。ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）により測位した座標（図４では、緯度と経度の情報）である。
【００５７】
また、通信速度は、マスタ端末ＭＴとスレーブ端末ＭＴの間において単位時間当たりに伝送されるデータ量を示す。例えば、通信速度は、１秒間当たりに伝送されたビット数（ｂｐｓ：ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）である。
【００５８】
また、分散共有メモリ領域情報項目には、各スレーブ端末ＭＴにおける分散共有メモリ領域Ｍｄの情報が記憶されている。分散共有メモリ領域Ｍｄの情報とは、各スレーブ端末ＭＴにおける分散共有メモリ領域Ｍｄの確保サイズと、分散共有メモリ領域Ｍｄの使用量である。
【００５９】
また、分散処理配布状況項目には、マスタ端末ＭＴからの処理依頼によりスレーブ端末ＭＴに分散処理内のいずれかの処理が割り振られているか否かが記憶されている。分散処理配布状況項目には、例えば、マスタ端末ＭＴが処理依頼により処理を割り振った場合は、「配布中」が記憶されている。
【００６０】
一方、分散処理配布状況項目には、例えば、マスタ端末ＭＴが処理依頼していない場合、または、マスタ端末ＭＴが処理依頼した処理の処理結果が返却されている場合は、「配布なし」が記憶されている。
【００６１】
（サブグループ情報ＤＢ５００の内容）
ここで、図５を用いて、図３に示した端末ＭＴがマスタ端末ＭＴである場合に、ＲＡＭ３０３に記憶されているサブグループ情報ＤＢ５００の内容について説明する。
【００６２】
図５は、サブグループ情報ＤＢ５００の内容を示す説明図である。図５において、サブグループ情報ＤＢ５００は、サブグループ端末項目と、処理依頼受付可能状態項目と、を有し、サブグループにスレーブ端末ＭＴが登録されるごとにレコードを構成する。
【００６３】
ここで、サブグループ端末項目には、サブグループに登録されたスレーブ端末ＭＴの情報が記憶されている。サブグループ端末項目に記憶されるスレーブ端末ＭＴの情報とは、端末ＩＤと位置情報と通信速度であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００６４】
また、処理依頼受付可能状態項目には、マスタ端末ＭＴからの処理依頼により自グループの分散処理を実行させることが可能な状態であるか否かが記憶されている。処理依頼受付可能状態項目には、例えば、他のグループの分散処理の停止中であってＣＰＵ３０１がアイドル状態になっているスレーブ端末ＭＴであれば、自グループの分散処理を実行させることが可能な状態（図５では、「○」で示す）であると記憶される。一方、他のグループの分散処理の実行中であってＣＰＵ３０１がアイドル状態ではないスレーブ端末ＭＴであれば、自グループの分散処理を実行させることができない状態（図５では、「×」で示す）であると記憶される。
【００６５】
（マスタ端末情報ＤＢ６００の内容）
ここで、図６を用いて、図３に示した端末ＭＴがスレーブ端末ＭＴである場合に、ＲＡＭ３０３に記憶されているマスタ端末情報ＤＢ６００の内容について説明する。
【００６６】
図６は、マスタ端末情報ＤＢ６００の内容を示す説明図である。図６において、マスタ端末情報ＤＢ６００は、メイングループマスタ端末項目と、サブグループマスタ端末項目と、を有し、自端末ＭＴがマスタ端末ＭＴによってメイングループまたはサブグループに登録されるごとにレコードを構成する。
【００６７】
ここで、メイングループマスタ端末項目には、自端末ＭＴをメイングループに登録しているマスタ端末ＭＴの情報が記憶されている。マスタ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００６８】
また、サブグループマスタ端末項目には、自端末ＭＴをサブグループに登録しているマスタ端末ＭＴの情報が記憶されている。マスタ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００６９】
ここで、自端末ＭＴをメイングループに登録しているマスタ端末ＭＴは、１つのみである。一方、自端末ＭＴをサブグループに登録しているマスタ端末ＭＴは、複数あってもよい。
【００７０】
（基地局のハードウェア例）
次に、図７を用いて、実施の形態にかかる基地局のハードウェア例について、説明する。ここで、基地局とは、例えば、上述した基地局ＢＳである。
【００７１】
図７は、実施の形態にかかる基地局のハードウェア例を示すブロック図である。図７において、基地局ＢＳは、ＣＰＵ７０１と、ＲＯＭ７０２と、ＲＡＭ７０３と、Ｉ／Ｆ７０４と、を含む。また、各構成部はバス７１０によってそれぞれ接続されている。
【００７２】
ここで、ＣＰＵ７０１は、基地局ＢＳの全体の制御を司る。ＲＯＭ７０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ７０３は、ＣＰＵ７０１のワークエリアとして使用される。
【００７３】
Ｉ／Ｆ７０４は、基地局ＢＳとの電波の送受信を制御し、ＬＡＮ、ＷＡＮ、インターネットなどのネットワーク７２０に接続され、このネットワーク７２０を介して他の装置に接続される。そして、Ｉ／Ｆ７０４は、ネットワーク７２０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【００７４】
（グループ情報ＤＢ８００の内容）
ここで、図８を用いて、図７に示したＲＡＭ７０３に記憶されているグループ情報ＤＢ８００の内容について説明する。
【００７５】
図８は、グループ情報ＤＢ８００の内容を示す説明図である。図８において、グループ情報ＤＢ８００は、グループＩＤ項目と、マスタ端末項目と、スレーブ端末項目と、を有し、マスタ端末ＭＴからグループ情報を受信するごとにレコードを構成する。
【００７６】
ここで、グループＩＤ項目には、基地局ＢＳの通信圏Ｃ内（いわゆる「セル」）に存在するマスタ端末ＭＴが編成しているグループを、一意に特定できる識別情報（以下、「グループＩＤ」という）が記憶されている。グループＩＤには、基地局ＢＳが、マスタ端末ＭＴからグループ情報を受信した際に番号を割り振るようにしておき、割り振られた番号をグループＩＤとして採用できる。また、グループＩＤとしては、グループを編成しているマスタ端末ＭＴの端末ＩＤを採用してもよい。
【００７７】
また、マスタ端末項目には、グループＩＤが示すグループを編成しているマスタ端末ＭＴの情報が記憶されている。マスタ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００７８】
また、スレーブ端末項目には、グループＩＤが示すグループに登録されているスレーブ端末ＭＴの情報が記憶されている。スレーブ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００７９】
（マスタ端末ＭＴの機能例）
次に、マスタ端末ＭＴの機能例について説明する。図９は、マスタ端末ＭＴの機能例を示すブロック図である。マスタ端末ＭＴは、検出部９０１と、判定部９０２と、登録部９０３と、処理部９０４と、比較部９０５と、同期部９０６と、通知部９０７と、抽出部９０８と、削除部９０９と、検知部９１０と、比較部９１１と、解除部９１２と、監視部９１３と、取得部９１４と、検知部９１５と、回収部９１６と、を含む。この制御部となる機能（検出部９０１〜回収部９１６）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。
【００８０】
検出部９０１は、複数の装置を含む第１グループへの第１装置の追加要求を検出する機能を有する。ここで、複数の装置を含む第１グループとは、分散処理をおこなうグループであり、例えば、上述したグループＧ１，Ｇ２である。第１装置の追加要求とは、第１グループへの第１装置の登録の要求であり、例えば、基地局ＢＳが検出した第１グループの近隣の第１装置の第１グループへの登録の要求である。
【００８１】
具体的には、例えば、検出部９０１は、基地局ＢＳから、グループの近隣にあるスレーブ端末ＭＴの存在の通知を受信することにより、自端末ＭＴのグループへのスレーブ端末ＭＴの登録の要求を検出する。端末ＭＴの登録の要求には、メイングループ情報ＤＢ４００のメイングループ端末項目の内容、または、サブグループ情報ＤＢ５００のサブグループ端末項目の内容となる端末ＩＤ、位置情報の情報が含まれる。なお、検出された登録の要求は、ＲＡＭ３０３などの記憶領域に記憶される。
【００８２】
判定部９０２は、第１装置が第１グループと異なる第２グループに属するか否かを判定する機能を有する。ここで、第２グループとは、分散処理をおこなうグループである。例えば、第１グループが、上述したグループＧ１であれば、第２グループは、上述したグループＧ２である。
【００８３】
具体的には、判定部９０２は、検出部９０１によって検出された端末ＭＴが有するマスタ端末情報ＤＢ６００の内容を取得して、他のグループに所属している端末ＭＴであるか否かを判定する。なお、判定結果は、ＲＡＭ３０３などの記憶領域に記憶される。
【００８４】
登録部９０３は、第１装置が第１グループと異なる第２グループに属しないときは、第１グループの複数の装置を登録するメイングループに登録する機能を有する。ここで、メイングループとは、グループのマスタ端末ＭＴからの処理依頼を常時受け付けるスレーブ端末ＭＴが登録されるグループである。
【００８５】
具体的には、例えば、登録部９０３は、判定部９０２によって、検出されたスレーブ端末ＭＴが、他のグループに所属していないスレーブ端末ＭＴであると判定された場合、メイングループに登録する。即ち、登録部９０３は、メイングループ情報ＤＢ４００に、検出されたスレーブ端末ＭＴのレコードを登録する。これにより、他のグループの分散処理をおこなうことなく、常時、分散処理の依頼を受け付けることができるスレーブ端末ＭＴをメイングループに登録することができる。
【００８６】
登録部９０３は、第１装置が第２グループに属するときは、第１装置をサブグループに登録する機能を有する。ここで、サブグループとは、グループのマスタ端末ＭＴからの処理依頼を臨時に受け付けるスレーブ端末ＭＴが登録されるグループである。
【００８７】
具体的には、例えば、登録部９０３は、判定部９０２によって、検出されたスレーブ端末ＭＴが、他のグループに所属しているスレーブ端末ＭＴであると判定された場合は、サブグループに登録する。即ち、サブグループ情報ＤＢ５００に、検出されたスレーブ端末ＭＴのレコードが登録される。これにより、専ら他のグループの分散処理の並列処理をおこなうため、分散処理の依頼をしても実行されにくいスレーブ端末ＭＴをメイングループから除外することができる。
【００８８】
登録部９０３は、複数の装置の数である第１数が複数のタスクの数である第２数以上であるとき、第２装置をサブグループに登録する機能を有する。ここで、第１数とは、メイングループに登録されている端末ＭＴ数である。タスクとは、処理の１単位であり、例えば、上述した処理１ａ〜１ｄ，２ａ〜２ｃである。第２数とは、グループの分散処理に含まれる処理数である。具体的には、例えば、登録部９０３は、比較部９０５によって比較された結果、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上であるとき、スレーブ端末ＭＴをサブグループに登録する。
【００８９】
ここで、分散処理を並列処理するためには、処理数と同数のスレーブ端末ＭＴがあればよく、処理数以上のスレーブ端末ＭＴには割り振る処理が存在しない。そのため、処理数以上のスレーブ端末ＭＴについては、サブグループに登録してメイングループには登録しないようにすることにより、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を残しておくことができる。
【００９０】
登録部９０３は、複数の装置の数である第１数が複数のタスクの数である第２数よりも小さいとき、第２装置をメイングループに登録する機能を有する。
【００９１】
具体的には、例えば、登録部９０３は、比較部９０５によって比較された結果、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数よりも小さいとき、スレーブ端末ＭＴをメイングループに登録する。これにより、メイングループに登録されている端末ＭＴ数が処理数と同数になるまでは、スレーブ端末ＭＴをメイングループに登録することにより、分散処理の並列処理の効率化を図る。
【００９２】
処理部９０４は、メイングループに登録される複数の装置によって複数のタスクを含む分散処理をおこなう機能を有する。具体的には、例えば、処理部９０４は、自端末ＭＴとメイングループ内のスレーブ端末ＭＴとに分散処理に含まれる複数の処理を割り振って、並列処理させる。これにより、大量のデータを扱う分散処理であっても、実行時間を短縮することができる。また、大量のデータを扱うために１端末で処理する際には高い処理能力を要求される処理を、複数の端末ＭＴで分散処理することにより個々の端末ＭＴの処理能力が低くても処理できる。
【００９３】
比較部９０５は、複数の装置の数である第１数と複数のタスクの数である第２数とを比較する機能を有する。具体的には、例えば、比較部９０５は、現在メイングループに登録されている端末ＭＴ数と、分散処理に含まれる処理数と、を比較する。これにより、現在メイングループに登録されている端末ＭＴ数が、分散処理に含まれる複数の処理を割り振るのに十分な数となっているかを判断することができる。なお、現在登録されている端末ＭＴ数は、メイングループ情報ＤＢ４００のレコードの総数を計測して求められる。なお、比較結果は、ＲＡＭ３０３などの記憶領域に記憶される。
【００９４】
同期部９０６は、第１装置がサブグループに登録されるとき、第２グループに含まれる他の装置からの第１装置に対する同期要求をサブグループのマスタ端末に登録する機能を有する。具体的には、同期部９０６は、他のグループの分散処理を実行中のスレーブ端末ＭＴが、他のグループの同期処理により、実行を停止し、アイドル状態になっているか否かを登録する。すなわち、同期部９０６は、サブグループ情報ＤＢ５００の処理依頼受付可能状態項目の内容を更新する。これにより、サブグループのスレーブ端末ＭＴに処理依頼が可能かを判断することができる。
【００９５】
通知部９０７は、メイングループへの登録または不登録を基地局に通知する機能を有する。また、通知部９０７は、メイングループの登録の削除を基地局に通知する機能を有する。具体的には、例えば、通知部９０７は、登録、不登録、または登録の削除をしたスレーブ端末ＭＴの端末ＩＤを基地局に通知する。これにより、グループ情報ＤＢ８００を更新することができる。
【００９６】
抽出部９０８は、複数のタスク内のタスクが割り当てられていない第３装置をメイングループから抽出する機能を有する。具体的には、例えば、抽出部９０８は、メイングループ情報ＤＢ４００に登録されているスレーブ端末ＭＴの中から、メイングループ情報ＤＢ４００の分散処理配布状況項目を参照して、処理が割り振られていないスレーブ端末ＭＴを抽出する。これにより、処理を実行していないスレーブ端末ＭＴを抽出することができる。
【００９７】
削除部９０９は、第１数が第２数よりも大きいとき、複数のタスク内のタスクが割り当てられていない第３装置のメイングループの登録を削除する機能を有する。具体的には、例えば、削除部９０９は、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数より大きいとき、抽出部９０８によって抽出された処理が割り当てられていないスレーブ端末ＭＴの登録を削除する。より具体的には、例えば、削除部９０９は、メイングループ情報ＤＢ４００のレコードを削除する。これにより、処理数以上のスレーブ端末ＭＴが登録されている場合、処理数以上のスレーブ端末ＭＴの登録は削除するようにして、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を作成することができる。
【００９８】
削除部９０９は、メイングループに登録される第４装置の通信能力の低下を検出するときまたは第４装置のタスクの実行結果を取得するとき、第４装置のメイングループの登録を削除する機能を有する。具体的には、例えば、削除部９０９は、監視部９１３によってスレーブ端末ＭＴの通信能力の低下が検出された場合に、通信能力の低下したスレーブ端末ＭＴのメイングループへの登録を削除する。これにより、通信能力の低下したスレーブ端末ＭＴをグループから除外して、分散処理を安定して実行できるようにすることができる。
【００９９】
また、具体的には、例えば、削除部９０９は、取得部９１４によって途中処理結果が取得された場合に、途中処理結果を取得したスレーブ端末ＭＴのメイングループへの登録を削除する。より具体的には、例えば、削除部９０９は、メイングループ情報ＤＢ４００のレコードを削除する。これにより、途中処理結果を返却してきたスレーブ端末ＭＴをグループから除外することができる。
【０１００】
削除部９０９は、複数の装置で共有される共有メモリＭｃの第３装置に設定されるメモリ領域が使用されているときは、第３装置のメイングループの登録を削除しない機能を有する。メモリ領域とは、分散処理の途中処理結果の退避のためのメモリ内の領域であり、上述した分散共有メモリ領域Ｍｄである。
【０１０１】
具体的には、削除部９０９は、抽出部９０８によって抽出されたスレーブ端末ＭＴであっても、検知部９１０によって分散共有メモリ領域Ｍｄにデータがあると検知された場合には、スレーブ端末ＭＴのメイングループの登録を削除しない。これにより、メイングループから登録を削除されたスレーブ端末ＭＴの分散共有メモリ領域Ｍｄにある分散処理の途中処理結果を回収できなくなることを防止できる。
【０１０２】
検知部９１０は、抽出部９０８によって抽出された処理が割り当てられていないスレーブ端末ＭＴのメモリ領域が使用されていることを検知する機能を有する。具体的には、例えば、検知部９１０は、メイングループ情報ＤＢ４００の分散共有メモリ領域情報項目の使用量を参照して、スレーブ端末ＭＴの分散共有メモリ領域Ｍｄが使用されていることを検知する。これにより、スレーブ端末ＭＴの登録の削除により、分散処理の途中処理結果が参照できなくなる虞があることを検知できる。
【０１０３】
比較部９１１は、複数のタスク内の一のタスクが使用するメモリＭの大きさと、複数の装置で共有される共有メモリＭｃの大きさと、を比較する機能を有する。具体的には、例えば、比較部９１１は、分散処理に含まれる複数の処理の中の１タスクが使用するメモリＭのサイズと、共有メモリＭｃのサイズとを比較する。これにより、共有メモリＭｃが、途中処理結果を退避可能なサイズであるかを判断できる。
【０１０４】
解除部９１２は、複数のタスク内の一のタスクが使用するメモリＭの大きさが複数の装置で共有される共有メモリＭｃの大きさよりも大きいとき、共有メモリＭｃの設定を解除する機能を有する。具体的には、例えば、解除部９１２は、比較部９１１の比較結果を参照して、分散処理に含まれる複数の処理の中の各処理が使用するメモリＭのサイズが共有メモリＭｃのサイズより大きい場合は、グループ内の各端末ＭＴの分散共有メモリ領域Ｍｄを解放する。
【０１０５】
これにより、共有メモリＭｃとして処理結果を退避可能なサイズが確保されていない場合は、分散共有メモリ領域Ｍｄを解放することにより、スレーブ端末ＭＴのワークエリアを確保して処理を効率化する。
【０１０６】
監視部９１３は、メイングループに登録される第４装置の通信能力の低下を検出する機能を有する。具体的には、例えば、監視部９１３は、スレーブ端末ＭＴから受信した電波強度に基づいて、スレーブ端末ＭＴの通信能力を監視して、通信能力の低下を検出する。これにより、データの送受信が困難になる虞のあるスレーブ端末ＭＴを検出することができる。
【０１０７】
取得部９１４は、第４装置のタスクの実行結果を取得する機能を有する。具体的には、例えば、取得部９１４は、割り振った処理を中止したスレーブ端末ＭＴから送信された途中処理結果を受信する。これにより、途中処理結果を回収して、分散処理を続行できる。
【０１０８】
検知部９１５は、削除部９０９によって登録の削除の対象になったスレーブ端末ＭＴのメモリ領域が使用されていることを検知する機能を有する。具体的には、例えば、検知部９１５は、メイングループ情報ＤＢ４００の分散共有メモリ領域情報項目の使用量を参照して、スレーブ端末ＭＴの分散共有メモリ領域Ｍｄが使用されていることを検知する。これにより、スレーブ端末ＭＴの登録の削除の際に、分散共有メモリ領域Ｍｄに回収すべき途中処理結果があることを検知できる。
【０１０９】
回収部９１６は、複数の装置で共有される共有メモリＭｃの第４装置に設定されるメモリ領域が使用されているときはメモリ領域のデータを回収する機能を有する。具体的には、例えば、回収部９１６は、検知部９１５によって分散共有メモリ領域Ｍｄが使用されていることが検知された場合、分散共有メモリ領域Ｍｄのデータを回収する。これにより、分散処理の途中処理結果を回収して、分散処理を続行することができる。
【０１１０】
（スレーブ端末ＭＴの機能例）
次に、スレーブ端末ＭＴの機能例について説明する。図１０は、スレーブ端末ＭＴの機能例を示すブロック図である。スレーブ端末ＭＴは、検出部１００１と、通知部１００２と、受信部１００３と、検知部１００４と、移行部１００５と、を含む。この制御部となる機能（検出部１００１〜移行部１００５）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。
【０１１１】
検出部１００１は、第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出する機能を有する。ここで、第１グループとは、分散処理をおこなうグループである。同期要求とは、第２装置から第１装置への処理の中断の要求である。
【０１１２】
具体的には、例えば、検出部１００１は、自端末ＭＴと、所属しているメイングループの他の端末ＭＴと、がそれぞれ実行している処理が、同期制御の対象になる処理である場合に、処理の中断の要求を検出する。これにより、同期制御をおこない、分散処理を正常に実行する。
【０１１３】
また、検出部１００１は、第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行の開始を検出する。具体的には、検出部１００１は、マスタ端末ＭＴから割り振られた処理よりも、優先して実行すべき処理が発生したことを検出する。これにより、マスタ端末ＭＴから割り振られた処理より優先度の高い処理が、自端末ＭＴ内で発生した場合は、優先度の高い処理を優先して実行することができる。
【０１１４】
第１装置が、第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録される。このとき、通知部１００２は、サブグループに登録するためにメイングループおよびサブグループを管理する装置に同期要求を通知する機能を有する。ここで、第１装置は、メイングループと、サブグループと、に所属している。
【０１１５】
具体的には、通知部１００２は、同期要求を検出して、処理を中断したことにより、ＣＰＵ３０１がアイドル状態となり、サブグループからの処理依頼を受付可能な状態になったことを、サブグループのマスタ端末ＭＴに通知する。これにより、アイドル状態となったＣＰＵ３０１を、サブグループの分散処理に提供することで、サブグループの分散処理の効率化を図ることができる。
【０１１６】
受信部１００３は、第１グループからの削除要求を受信する機能を有する。具体的には、受信部１００３は、メイングループのマスタ端末ＭＴからの登録の削除要求を受信する。これにより、メイングループからの登録の削除を把握できる。
【０１１７】
また、受信部１００３は、第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行依頼を受信する機能を有する。具体的には、受信部１００３は、メイングループのマスタ端末ＭＴからの処理依頼を受信する。これにより、メイングループの分散処理の実行を開始することができる。
【０１１８】
検知部１００４は、第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクが第１装置に割り当てられていることを検知する機能を有する。具体的には、検知部１００４は、メイングループの分散処理が割り振られていることを検知する。これにより、メイングループからの登録を削除する際に、メイングループのマスタ端末ＭＴに返却する途中処理結果を保持しているかを検知することができる。
【０１１９】
また、検知部１００４は、第１グループに含まれる複数の装置で共有される共有メモリＭｃのメモリ領域が使用されていることを検知する機能を有する。ここで、メモリ領域とは、上述した分散共有メモリ領域Ｍｄである。具体的には、検知部１００４は、メイングループの共有メモリＭｃに提供している分散共有メモリ領域Ｍｄにデータが保持されていることを検知する。これにより、メイングループからの登録を削除する際に、メイングループのマスタ端末ＭＴに返却するデータを保持しているかを検知することができる。
【０１２０】
また、検知部１００４は、第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが第１装置に割り当てられていることを検知する機能を有する。具体的には、検知部１００４は、サブグループの分散処理が割り振られていることを検知する。これにより、実行中の処理がサブグループの処理であることを検知できる。
【０１２１】
移行部１００５は、タスクを第１グループに含まれる複数の装置の一の装置に移行する機能を有する。具体的には、移行部１００５は、検知部１００４によってメイングループの分散処理に含まれる処理が割り当てられていることが検知された場合に、途中処理結果をメイングループの他の端末ＭＴに移行する。これにより、メイングループからの登録を削除された場合であっても、メイングループの分散処理を続行させることができる。
【０１２２】
また、移行部１００５は、メモリ領域のデータを第１グループに含まれる複数の装置の一の装置に移行する機能を有する。具体的には、移行部１００５は、検知部１００４によって分散共有メモリ領域Ｍｄにデータが保持されていることが検知された場合に、分散共有メモリ領域Ｍｄのデータをメイングループの他の端末ＭＴに移行する。これにより、メイングループからの登録を削除された場合であっても、メイングループの分散処理を続行させることができる。
【０１２３】
また、移行部１００５は、タスクを第２グループに含まれる複数の装置の一の装置に移行する機能を有する。具体的には、例えば、移行部１００５は、受信部１００３によって受信された処理依頼によりメイングループの処理の実行を開始する際に、実行中のサブグループの処理の途中処理結果をサブグループの他の端末ＭＴに移行することができる。
【０１２４】
また、具体的には、例えば、移行部１００５は、検出部１００１によって自端末ＭＴ内で処理すべき処理が発生した際に、実行中のサブグループの処理の途中処理結果をサブグループの他の端末ＭＴに移行することができる。これにより、サブグループの処理より優先して処理すべき処理が自端末ＭＴ内で発生した場合に、途中処理結果を返却することでサブグループの分散処理を続行させることができる。
【０１２５】
（グループの編成の内容）
ここで、図１１〜図１５を用いて、図１に示したマスタ端末ＭＴによる分散処理をおこなうグループの編成において、マスタ端末ＭＴ、スレーブ端末ＭＴ、および基地局がおこなう処理の内容について説明する。
【０１２６】
まず、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理について説明する。マスタ端末ＭＴは、スレーブ端末ＭＴの登録処理を、図１１で示す登録処理１か、図１２で示す登録処理２か、のいずれか一方を採用して実行する。
【０１２７】
（マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１）
ここで、図１１を用いて、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１の詳細について説明する。登録処理１は、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録した場合に、処理を終了する場合のマスタ端末ＭＴの処理例を示す。
【０１２８】
図１１は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、通信圏内の端末ＭＴを検出する（ステップＳ１１０１）。次に、ＣＰＵ３０１は、検出された端末ＭＴの中に、グループに所属可能な端末ＭＴが存在するか否かを判定する（ステップＳ１１０２）。
【０１２９】
ここで、グループに所属可能な端末ＭＴが存在する場合（ステップＳ１１０２：Ｙｅｓ）、ＣＰＵ３０１は、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下であるか否かを判定する（ステップＳ１１０３）。
【０１３０】
ここで、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数より大きい場合（ステップＳ１１０３：Ｎｏ）、ＣＰＵ３０１は、グループ所属確認通知を端末ＭＴに送信する（ステップＳ１１０４）。そして、ＣＰＵ３０１は、グループ所属確認通知に対する応答を受信したか否かを判定する（ステップＳ１１０５）。
【０１３１】
ここで、応答を受信していない場合（ステップＳ１１０５：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１１０５に戻り、応答の受信を待つ。一方、応答を受信した場合（ステップＳ１１０５：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴが既に他のメイングループに所属しているか否かを判定する（ステップＳ１１０６）。
【０１３２】
ここで、端末ＭＴがまだ他のメイングループに所属していない場合（ステップＳ１１０６：Ｎｏ）、ＣＰＵ３０１は、端末ＭＴをメイングループに登録して（ステップＳ１１０７）、ステップＳ１１０２に戻る。
【０１３３】
一方、端末ＭＴが既に他のメイングループに所属している場合（ステップＳ１１０６：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴをサブグループに登録して（ステップＳ１１０８）、ステップＳ１１０２に戻る。
【０１３４】
また、ステップＳ１１０２にて、グループに所属可能な端末ＭＴが存在しない場合（ステップＳ１１０２：Ｎｏ）、ＣＰＵ３０１は、グループ情報を送信して（ステップＳ１１０９）、登録処理を終了する。
【０１３５】
また、ステップＳ１１０３にて、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下である場合（ステップＳ１１０３：Ｙｅｓ）、ＣＰＵ３０１は、グループ情報を送信して（ステップＳ１１０９）、登録処理を終了する。
【０１３６】
これにより、マスタ端末ＭＴは、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録することができる。また、マスタ端末ＭＴは、他のグループに所属している端末ＭＴは、メイングループに登録せず、サブグループに登録する。そのため、専ら他のグループの分散処理にＣＰＵ３０１を使用する端末ＭＴには、極力分散処理の処理を割り振らないようにできる。
【０１３７】
また、この際、マスタ端末ＭＴは、グループ内の端末ＭＴに共有メモリＭｃの作成を通知して、各端末ＭＴから提供された分散共有メモリ領域Ｍｄの集合となる共有メモリＭｃを作成してもよい。共有メモリＭｃを作成した場合、マスタ端末ＭＴは、共有メモリＭｃをアドレッシングしておく。
【０１３８】
（マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２）
次に、図１２を用いて、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２の詳細について説明する。登録処理２は、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録した場合であっても、登録可能な端末ＭＴが残っている限り登録処理を続行する場合のマスタ端末ＭＴの処理例を示す。
【０１３９】
図１２は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、通信圏内の端末ＭＴを検出する（ステップＳ１２０１）。次に、ＣＰＵ３０１は、検出された端末ＭＴの中に、グループに所属可能な端末ＭＴが存在するか否かを判定する（ステップＳ１２０２）。
【０１４０】
ここで、グループに所属可能な端末ＭＴが存在する場合（ステップＳ１２０２：Ｙｅｓ）、ＣＰＵ３０１は、グループ所属確認通知を端末ＭＴに送信する（ステップＳ１２０３）。そして、ＣＰＵ３０１は、グループ所属確認通知に対する応答を受信したか否かを判定する（ステップＳ１２０４）。
【０１４１】
ここで、応答を受信していない場合（ステップＳ１２０４：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１２０４に戻り、応答の受信を待つ。一方、応答を受信した場合（ステップＳ１２０４：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴが既に他のメイングループに所属しているか否かを判定する（ステップＳ１２０５）。
【０１４２】
ここで、端末ＭＴが既に他のメイングループに所属している場合（ステップＳ１２０５：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴをサブグループに登録して（ステップＳ１２０８）、ステップＳ１２０２に戻る。
【０１４３】
一方、端末ＭＴがまだ他のメイングループに所属していない場合（ステップＳ１２０５：Ｎｏ）、ＣＰＵ３０１は、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下であるか否かを判定する（ステップＳ１２０６）。
【０１４４】
ここで、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数より大きい場合（ステップＳ１２０６：Ｎｏ）、ＣＰＵ３０１は、端末ＭＴをメイングループに登録して（ステップＳ１２０７）、ステップＳ１２０２に戻る。
【０１４５】
一方、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下である場合（ステップＳ１２０６：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴをサブグループに登録して（ステップＳ１２０８）、ステップＳ１２０２に戻る。
【０１４６】
また、ステップＳ１２０２にて、グループに所属可能な端末ＭＴが存在しない場合（ステップＳ１２０２：Ｎｏ）、ＣＰＵ３０１は、グループ情報を送信して（ステップＳ１２０９）、登録処理を終了する。
【０１４７】
これにより、マスタ端末ＭＴは、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録することができる。また、マスタ端末ＭＴは、グループに登録可能な端末ＭＴが存在する限り、サブグループに登録を続行することができる。また、マスタ端末ＭＴは、他のグループに所属している端末ＭＴは、メイングループに登録せず、サブグループに登録する。そのため、専ら他のグループの分散処理にＣＰＵ３０１を使用する端末ＭＴには、極力分散処理の処理を割り振らないようにできる。
【０１４８】
（マスタ端末ＭＴからのグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理）
次に、図１３を用いて、ステップＳ１１０４またはステップＳ１２０３においてマスタ端末ＭＴにより送信されたグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理の内容について説明する。
【０１４９】
図１３は、マスタ端末ＭＴからのグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、マスタ端末ＭＴからのグループ所属確認通知を受信したか否かを判定する（ステップＳ１３０１）。
【０１５０】
ここで、グループ所属確認通知を受信していない場合（ステップＳ１３０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１３０１に戻り、グループ所属確認通知の受信を待つ。一方、グループ所属確認通知を受信した場合（ステップＳ１３０１：Ｙｅｓ）、ＣＰＵ３０１は、自端末ＭＴが既に他のメイングループに所属しているか否かを判定する（ステップＳ１３０２）。
【０１５１】
ここで、他のメイングループに所属していない場合（ステップＳ１３０２：Ｎｏ）、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴをメイングループのマスタ端末ＭＴとして登録する（ステップＳ１３０３）。そして、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴに、他のメイングループに所属していないことを通知して（ステップＳ１３０４）、ステップＳ１３０１に戻る。
【０１５２】
一方、他のメイングループに所属している場合（ステップＳ１３０２：Ｙｅｓ）、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴをサブグループのマスタ端末ＭＴとして登録する（ステップＳ１３０５）。そして、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴに、他のメイングループに所属していることを通知して（ステップＳ１３０６）、ステップＳ１３０１に戻る。
【０１５３】
これにより、スレーブ端末ＭＴは、自端末ＭＴのグループへの所属状況を、マスタ端末ＭＴに通知することができる。
【０１５４】
（基地局ＢＳによる端末ＭＴの位置情報の送信処理）
次に、図１４を用いて、基地局ＢＳによる端末ＭＴの位置情報の送信処理について説明する。ここで、送信された端末ＭＴの位置情報が、ステップＳ１１０１またはステップＳ１２０１においてマスタ端末ＭＴにより受信される。
【０１５５】
図１４は、基地局ＢＳによる端末ＭＴの位置情報の送信処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴが存在するか否かを判定する（ステップＳ１４０１）。ここで、グループに所属していない端末ＭＴが存在しない場合（ステップＳ１４０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１４０１に戻り、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴがないか判定を続ける。
【０１５６】
一方、ＣＰＵ３０１は、グループに所属していない端末ＭＴが存在する場合（ステップＳ１４０１：Ｙｅｓ）、端末ＭＴの位置情報を取得する（ステップＳ１４０２）。次に、ＣＰＵ３０１は、取得した位置情報に最も近い位置にあるグループを特定する（ステップＳ１４０３）。そして、ＣＰＵ３０１は、特定したグループのマスタ端末ＭＴに、グループに所属していない端末ＭＴが存在することを通知する（ステップＳ１４０４）。
【０１５７】
次に、ＣＰＵ３０１は、特定したグループに、所属していない端末ＭＴが登録されたか否かを判定する（ステップＳ１４０５）。ここで、登録された場合（ステップＳ１４０５：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ１４０１に戻り、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴがないか判定を続ける。
【０１５８】
一方、登録されていない場合（ステップＳ１４０５：Ｎｏ）、ＣＰＵ３０１は、取得した位置情報に近い位置にある別のグループが存在するか否かを判定する（ステップＳ１４０６）。ここで、別のグループが存在しない場合（ステップＳ１４０６：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１４０１に戻り、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴがないか判定を続ける。
【０１５９】
一方、別のグループが存在する場合（ステップＳ１４０６：Ｙｅｓ）、ＣＰＵ３０１は、別のグループのマスタ端末ＭＴに、グループに所属していない端末ＭＴが存在することを通知する（ステップＳ１４０７）。そして、ＣＰＵ３０１は、ステップＳ１４０５に戻り、別のグループに登録されるか否かの判定をおこなう。
【０１６０】
これにより、グループに所属していない端末ＭＴの存在を、最も位置が近いグループのマスタ端末ＭＴに通知して、グループへの登録処理を開始させることができる。そのため、グループに所属していない端末ＭＴとのアドホック通信が最も高速におこなえると解されるマスタ端末ＭＴに、最初にグループへの登録処理を開始させることができる。
【０１６１】
また、１グループに登録されなかった場合、他のグループのマスタ端末ＭＴに再度通知して、グループへの登録処理を開始させることができる。そのため、最も近いグループ以外で、分散処理に端末ＭＴを使用するグループがあれば、登録させることができる。
【０１６２】
（基地局ＢＳによるグループ情報の登録処理）
次に、図１５を用いて、ステップＳ１１０９またはステップＳ１２０９においてマスタ端末ＭＴにより送信されたグループ情報を受信した基地局ＢＳによるグループ情報の登録処理について説明する。
【０１６３】
図１５は、基地局ＢＳによるグループ情報の登録処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、マスタ端末ＭＴからグループ情報を受信したか否かを判定する（ステップＳ１５０１）。
【０１６４】
ここで、グループ情報を受信していない場合（ステップＳ１５０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１５０１に戻り、グループ情報の受信を待つ。一方、グループ情報を受信した場合（ステップＳ１５０１：Ｙｅｓ）、ＣＰＵ３０１は、グループ情報の更新をおこない（ステップＳ１５０２）、ステップＳ１５０１に戻り、グループ情報の受信を待つ。
【０１６５】
これにより、グループ情報を最新の状態に保ち、基地局ＢＳの通信圏Ｃ内に存在する端末ＭＴが、グループに所属している端末ＭＴか否かを判定することができる。
【０１６６】
（分散処理をおこなうグループの再編成の内容）
次に、図１６〜図２６を用いて、分散処理の実行を開始した後におけるグループの再編成の内容について説明する。
【０１６７】
（基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入った場合におけるグループの再編成の内容）
まず、図１６を用いて、基地局ＢＳの通信圏Ｃ内にグループに所属していないあらたな端末ＭＴが入った場合におけるグループの再編成の内容について説明する。
【０１６８】
図１６は、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入った場合におけるグループの再編成の内容を示す説明図である。図１６では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ５が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３とを含むグループＧ１を編成している。
【０１６９】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｂを自端末ＭＴ１に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。
【０１７０】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４とを含むグループＧ２を編成している。
【０１７１】
グループＧ２において、マスタ端末ＭＴ５は、処理２ｂを端末ＭＴ４に割り振り、処理２ａを自端末ＭＴ５に割り振り、それぞれ並列処理させている。また、処理２ｃは、まだ実行されていない。
【０１７２】
（１）ここで、端末ＭＴ６が移動して、基地局ＢＳの通信圏外から通信圏Ｃ内へと入ってきた場合を想定する。
【０１７３】
（２）端末ＭＴ６が基地局ＢＳの通信圏Ｃ内へと入ってくると、基地局ＢＳは、端末ＭＴ６の位置情報を取得する。（３）そして、基地局ＢＳは、取得した位置情報に最も近い位置にあるグループＧ１に、端末ＭＴ６の位置情報を通知する。
【０１７４】
（４）通知を受信したマスタ端末ＭＴ１は、端末ＭＴ６のグループＧ１への登録処理を開始する。ここで、グループＧ１では、既に、処理１ａは終了しており、処理１ｂ〜１ｄは端末ＭＴ１〜ＭＴ３において実行中である。即ち、端末ＭＴ６をグループＧ１に登録しても割り振る処理が存在しない。そのため、マスタ端末ＭＴ１は、基地局ＢＳに登録不要の通知を送信する。
【０１７５】
（５）基地局ＢＳは、登録不要の通知を受信すると、グループＧ１の次に端末ＭＴ６に近い位置にあるグループＧ２に、端末ＭＴ６の位置情報を通知する。
【０１７６】
（６）通知を受信したマスタ端末ＭＴ５は、端末ＭＴ６のグループＧ２への登録処理を開始する。ここで、グループＧ２では、まだ実行されていない処理２ｃが残っている。そのため、マスタ端末ＭＴ５は、端末ＭＴ６をグループＧ２に登録して、グループを再編成し、処理２ｃを端末ＭＴ６に割り振って、分散処理２の並列処理をおこなう。
【０１７７】
このように、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入ってきた場合は、分散処理に含まれる複数の処理の中に、実行が開始されていない処理が残っているグループにあらたな端末ＭＴを登録させて、グループを再編成させることができる。そのため、再編成したグループは、あらたな端末ＭＴに、処理を割り振って、効率よく分散処理をおこなうことができる。
【０１７８】
（マスタ端末ＭＴによるグループの再編成処理）
ここで、図１７を用いて、図１６に示したマスタ端末ＭＴによるグループの再編成処理について説明する。
【０１７９】
図１７は、マスタ端末ＭＴによるグループの再編成処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、基地局ＢＳからのあらたな端末ＭＴの位置情報の通知を受信したか否かを判定する（ステップＳ１７０１）。ここで、通知を受信していない場合（ステップＳ１７０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１７０１に戻り、基地局ＢＳからの通知を待つ。
【０１８０】
一方、通知を受信した場合（ステップＳ１７０１：Ｙｅｓ）、ＣＰＵ３０１は、分散処理内の実行が終了していない処理数がグループに所属している端末ＭＴ数より多いか否かを判定する（ステップＳ１７０２）。
【０１８１】
ここで、実行が終了していない処理数がグループに所属している端末ＭＴ数より多い場合（ステップＳ１７０２：Ｙｅｓ）、ＣＰＵ３０１は、通知された端末ＭＴをメイングループに登録する（ステップＳ１７０３）。次に、ＣＰＵ３０１は、登録した端末ＭＴと基地局ＢＳとにメイングループへの登録を通知する（ステップＳ１７０４）。そして、ＣＰＵ３０１は、登録した端末ＭＴを含むグループ内において共有メモリＭｃを作成し（ステップＳ１７０５）、ステップＳ１７０１に戻り、基地局ＢＳからの通知を待つ。
【０１８２】
一方、実行が終了していない処理数がグループに所属している端末ＭＴ数以下である場合（ステップＳ１７０２：Ｎｏ）、ＣＰＵ３０１は、メイングループに登録しないことを示す通知を、登録しなかった端末ＭＴと基地局ＢＳとに送信する（ステップＳ１７０６）。そして、ＣＰＵ３０１は、ステップＳ１７０１に戻り、基地局ＢＳからの通知を待つ。
【０１８３】
これにより、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入ってきた場合は、分散処理に含まれる複数の処理の中に、実行が開始されていない処理が残っているグループにあらたな端末ＭＴを登録させて、グループを再編成させることができる。
【０１８４】
なお、図１６に示した基地局ＢＳの送信処理および登録処理と、スレーブ端末ＭＴの応答処理とは、図１３〜図１５に示した処理と同様のため、ここでは、詳細な説明を省略する。
【０１８５】
（グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容）
次に、図１８を用いて、グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容について説明する。
【０１８６】
図１８は、グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容を示す説明図である。図１８では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ６が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３，ＭＴ６とを含むグループＧ１を編成している。
【０１８７】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｂを端末ＭＴ６に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。
【０１８８】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４とを含むグループＧ２を編成している。
【０１８９】
グループＧ２において、マスタ端末ＭＴ５は、処理２ｂを端末ＭＴ４に割り振り、処理２ａを自端末ＭＴ５に割り振り、それぞれ並列処理させている。また、処理２ｃは、まだ実行されていない。
【０１９０】
（１）ここで、グループＧ１内の端末ＭＴ６が、処理１ｂの実行を終了した場合を想定する。端末ＭＴ６は、処理１ｂの実行を終了すると、処理１ｂの処理結果をマスタ端末ＭＴ１に返却する。
【０１９１】
（２）処理１ｂの処理結果を返却されたマスタ端末ＭＴ１は、端末ＭＴ６にさらに割り振ることができる処理が残っているか否かを判定する。グループＧ１では、実行が開始されていない処理は残っていないため、端末ＭＴ６に割り振る処理が存在しない。そのため、マスタ端末ＭＴ１は、端末ＭＴ６をグループＧ１から除外する。
【０１９２】
（３）そして、マスタ端末ＭＴ１は、端末ＭＴ６の登録が削除されたグループＧ１のグループ情報を基地局ＢＳに送信する。これにより、基地局ＢＳは、基地局ＢＳに記憶されているグループ情報を更新する。
【０１９３】
（４）グループ情報を更新した基地局ＢＳは、グループＧ１から除外された端末ＭＴ６の近い位置にあるグループＧ１以外のグループのマスタ端末ＭＴに、端末ＭＴ６の位置情報を通知する。ここでは、基地局ＢＳは、グループＧ２のマスタ端末ＭＴ５に、端末ＭＴ６の位置情報を通知する。
【０１９４】
（５）通知を受信したマスタ端末ＭＴ５は、端末ＭＴ６のグループＧ２への登録処理を開始する。ここで、グループＧ２では、まだ実行されていない処理２ｃが残っている。そのため、マスタ端末ＭＴ５は、端末ＭＴ６をグループＧ２に登録して、グループを再編成し、処理２ｃを端末ＭＴ６に割り振って、分散処理２の並列処理をおこなう。
【０１９５】
このように、マスタ端末ＭＴは、処理を終了した端末ＭＴをグループから除外する。そのため、分散処理に含まれる複数の処理の中に、実行が開始されていない処理が残っている他のグループに除外された端末ＭＴを登録させて、グループを再編成させることができる。そのため、再編成したグループは、あらたな端末ＭＴに、処理を割り振って、効率よく分散処理をおこなうことができる。
【０１９６】
（マスタ端末ＭＴによるグループの登録の削除処理）
ここで、図１９を用いて、図１８に示したマスタ端末ＭＴによるグループの登録の削除処理について説明する。
【０１９７】
図１９は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、実行を終了していない処理数がグループに所属している端末ＭＴ数より少ないか否かを判定する（ステップＳ１９０１）。ここで、実行を終了していない処理数がグループに所属している端末ＭＴ数以上の場合（ステップＳ１９０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１９０１に戻る。
【０１９８】
一方、実行を終了していない処理数がグループに所属している端末ＭＴ数より少ない場合（ステップＳ１９０１：Ｙｅｓ）、ＣＰＵ３０１は、処理を実行していない端末ＭＴの分散共有メモリ領域Ｍｄが使用中か否かを判定する（ステップＳ１９０２）。ここで、使用中の場合（ステップＳ１９０２：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ１９０１に戻る。
【０１９９】
一方、使用中ではない場合（ステップＳ１９０２：Ｎｏ）、ＣＰＵ３０１は、処理を実行していない端末ＭＴに、登録の削除通知と処理終了通知を送信する（ステップＳ１９０３）。そして、ＣＰＵ３０１は、基地局ＢＳに、グループ情報を送信する（ステップＳ１９０４）。
【０２００】
次に、ＣＰＵ３０１は、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きいか否かを判定する（ステップＳ１９０５）。ここで、処理中の処理のサイズが共有メモリＭｃのサイズ以下である場合（ステップＳ１９０５：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１９０１に戻る。
【０２０１】
一方、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きい場合（ステップＳ１９０５：Ｙｅｓ）、ＣＰＵ３０１は、グループ内に共有メモリＭｃを使用中の端末ＭＴが存在するか否かを判定する（ステップＳ１９０６）。
【０２０２】
ここで、共有メモリＭｃを使用中の端末ＭＴが存在する場合（ステップＳ１９０６：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ１９０６に戻る。一方、共有メモリＭｃを使用中の端末ＭＴが存在しない場合（ステップＳ１９０６：Ｎｏ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄの解消通知を送信して（ステップＳ１９０７）、ステップＳ１９０１に戻る。これにより、割り振る処理がない端末ＭＴの登録を削除することができる。
【０２０３】
（マスタ端末ＭＴからの登録の削除通知を受信したスレーブ端末ＭＴによる応答処理）
ここで、図２０を用いて、ステップＳ１９０３においてマスタ端末ＭＴにより送信された登録の削除通知を受信したスレーブ端末ＭＴによる応答処理について説明する。
【０２０４】
図２０は、マスタ端末ＭＴからの登録の削除通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、登録の削除通知を受信したか否かを判定する（ステップＳ２００１）。ここで、登録の削除通知を受信していない場合（ステップＳ２００１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２００１に戻り、登録の削除通知の受信を待つ。
【０２０５】
一方、登録の削除通知を受信した場合（ステップＳ２００１：Ｙｅｓ）、ＣＰＵ３０１は、分散処理に含まれる処理を所持しているか否かを判定する（ステップＳ２００２）。ここで、処理を所持していない場合（ステップＳ２００２：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２００４に移行する。
【０２０６】
一方、処理を所持している場合（ステップＳ２００２：Ｙｅｓ）、ＣＰＵ３０１は、マスタ端末ＭＴへ所持している処理の処理結果を返却して（ステップＳ２００３）、ステップＳ２００４に移行する。
【０２０７】
そして、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄが使用中か否かを判定する（ステップＳ２００４）。ここで、使用中でない場合（ステップＳ２００４：Ｎｏ）、ＣＰＵ３０１は、応答処理を終了する。
【０２０８】
一方、使用中の場合（ステップＳ２００４：Ｙｅｓ）、ＣＰＵ３０１は、マスタ端末ＭＴへ分散共有メモリ領域Ｍｄにあるデータを送信して（ステップＳ２００５）、応答処理を終了する。
【０２０９】
これにより、グループから登録を削除されたスレーブ端末ＭＴは、自端末ＭＴが有していた処理結果や分散共有メモリ領域Ｍｄのデータを、マスタ端末ＭＴに返却することができる。そのため、分散処理中にグループから端末ＭＴの登録が削除されても、分散処理を続行できる。
【０２１０】
（マスタ端末ＭＴからの処理終了通知を受信したスレーブ端末ＭＴによる応答処理）
ここで、図２１を用いて、ステップＳ１９０３においてマスタ端末ＭＴにより送信された処理終了通知を受信したスレーブ端末ＭＴによる応答処理について説明する。
【０２１１】
図２１は、マスタ端末ＭＴからの処理終了通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、処理終了通知を受信したか否かを判定する（ステップＳ２１０１）。ここで、処理終了通知を受信していない場合（ステップＳ２１０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２１０１に戻り、処理終了通知の受信を待つ。
【０２１２】
一方、処理終了通知を受信した場合（ステップＳ２１０１：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄの解消通知を受信したか否かを判定する（ステップＳ２１０２）。ここで、解消通知を受信していない場合（ステップＳ２１０２：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２１０２に戻り、解消通知の受信を待つ。
【０２１３】
一方、解消通知を受信した場合（ステップＳ２１０２：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄを解放し（ステップＳ２１０３）、応答処理を終了する。これにより、グループから登録を削除された端末ＭＴは、分散共有メモリ領域Ｍｄを解放して、解放したメモリ領域を、自端末ＭＴが発生させた処理に使用することができるようになる。
【０２１４】
なお、図１８に示したマスタ端末ＭＴの再編成処理と、基地局ＢＳの送信処理および登録処理とは、図１４，図１５および図１７に示した処理と同様のため、ここでは、詳細な説明を省略する。
【０２１５】
（グループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容）
次に、図２２を用いて、マスタ端末ＭＴとグループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容について説明する。
【０２１６】
図２２は、グループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容を示す説明図である。図２２では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ３が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３とを含むグループＧ１を編成している。
【０２１７】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｂを自端末ＭＴ１に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。
【０２１８】
（１）ここで、端末ＭＴ２が移動することにより、端末ＭＴ２とマスタ端末ＭＴ１との距離が離れてしまい、通信状況が悪化した場合を想定する。
【０２１９】
（２）マスタ端末ＭＴ１は、通信状況を監視することにより、端末ＭＴ２との通信状況の悪化を検出する。具体的には、マスタ端末ＭＴ１は、通信強度を監視することにより通信状況の悪化を検出する。
【０２２０】
（３）通信状況の悪化を検出すると、マスタ端末ＭＴ１は、端末ＭＴ２から途中処理結果を回収し、グループＧ１から端末ＭＴ２を除外する。
【０２２１】
（４）そして、マスタ端末ＭＴ１は、端末ＭＴ２の登録が削除されたグループＧ１のグループ情報を基地局ＢＳに送信する。これにより、基地局ＢＳは、基地局ＢＳに記憶されているグループ情報を更新する。
【０２２２】
これにより、通信状況の悪化により、途中処理結果を回収できなくなってしまう前に、途中処理結果を回収することができる。また、途中処理結果を回収できなくなるおそれがある端末ＭＴをグループから除外することにより、安定した分散処理をすることができる。なお、マスタ端末ＭＴ１が移動することにより、通信状況が悪化した場合であっても、同様にグループを再編成する。
【０２２３】
（マスタ端末ＭＴによるグループの登録の削除処理）
ここで、図２３を用いて、図２２に示したマスタ端末ＭＴによるグループの登録の削除処理について説明する。
【０２２４】
図２３は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、通信状況を監視し、通信状況が悪化したか否かを判定する（ステップＳ２３０１）。ここで、通信状況が悪化していない場合（ステップＳ２３０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２３０１に戻り、通信状況の監視を続ける。
【０２２５】
一方、通信状況が悪化した場合（ステップＳ２３０１：Ｙｅｓ）、ＣＰＵ３０１は、途中処理結果の回収通知を送信する（ステップＳ２３０２）。次に、ＣＰＵ３０１は、端末ＭＴの分散共有メモリ領域Ｍｄが使用中か否かを判定する（ステップＳ２３０３）。ここで、分散共有メモリ領域Ｍｄが使用中である場合（ステップＳ２３０３：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ２３０５に移行する。
【０２２６】
一方、分散共有メモリ領域Ｍｄが使用中ではない場合（ステップＳ２３０３：Ｎｏ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄのデータを回収して（ステップＳ２３０４）、ステップＳ２３０５に移行する。
【０２２７】
次に、ＣＰＵ３０１は、グループの登録を削除して、登録の削除通知と処理終了通知を送信する（ステップＳ２３０５）。そして、ＣＰＵ３０１は、グループ情報を基地局ＢＳに送信する（ステップＳ２３０６）。
【０２２８】
次に、ＣＰＵ３０１は、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きいか否かを判定する（ステップＳ２３０７）。ここで、処理中の処理のサイズが共有メモリＭｃのサイズ以下である場合（ステップＳ２３０７：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２３０１に戻る。
【０２２９】
一方、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きい場合（ステップＳ２３０７：Ｙｅｓ）、ＣＰＵ３０１は、グループ内に共有メモリＭｃを使用中の端末ＭＴが存在するか否かを判定する（ステップＳ２３０８）。
【０２３０】
ここで、共有メモリＭｃを使用中の端末ＭＴが存在する場合（ステップＳ２３０８：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ２３０８に戻る。一方、共有メモリＭｃを使用中の端末ＭＴが存在しない場合（ステップＳ２３０８：Ｎｏ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄの解消通知を送信して（ステップＳ２３０９）、ステップＳ２３０１に戻る。
【０２３１】
これにより、通信状況が悪化した端末ＭＴの登録を削除することができる。また、通信状況が悪化した端末ＭＴが有する途中処理結果や分散共有メモリ領域Ｍｄのデータを回収することができる。
【０２３２】
（サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容）
次に、図２４を用いて、サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容について説明する。
【０２３３】
図２４は、サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容を示す説明図である。図２４では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ５が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３とを含むグループＧ１を編成している。
【０２３４】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。そして、処理１ｂは、まだ実行されていない。
【０２３５】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４と、マスタ端末ＭＴ５のスレーブ端末ＭＴにもなる端末ＭＴ１とを含むグループＧ２を編成している。
【０２３６】
グループＧ２において、マスタ端末ＭＴ５は、処理２ａを自端末ＭＴ５に割り振り、処理２ｂを端末ＭＴ４に割り振り、処理２ｃを端末ＭＴ１に割り振り、それぞれ並列処理させている。
【０２３７】
このように、端末ＭＴ１が、自端末ＭＴ１のグループＧ１のメイングループであり、かつ、端末ＭＴ５のグループＧ２のサブグループである場合を例に挙げて、端末ＭＴ１によるメイングループの分散処理の実行の開始について説明する。
【０２３８】
（１）ここで、端末ＭＴ１が、処理２ｃの実行中に、メイングループの処理１ｂの実行を開始しようとする場合を想定する。
【０２３９】
（２）処理１ｂの実行の開始の前に、端末ＭＴ１は、処理１ｂの実行の開始のために、処理２ｃの途中処理結果をマスタ端末ＭＴ５に返却する。そして、端末ＭＴ１は、処理１ｂの実行を開始する。
【０２４０】
これにより、端末ＭＴ１は、メイングループの処理を優先して実行することができる。また、メイングループの処理を開始する前に、サブグループのマスタ端末ＭＴ５に途中処理結果を返却する。そのため、マスタ端末ＭＴ５の分散処理が中断されることがないようにできる。
【０２４１】
（メイングループの分散処理の実行の開始処理）
ここで、図２５を用いて、図２４に示した一方のグループのメイングループと、他方のグループのサブグループと、の両方に所属している端末ＭＴによるメイングループの分散処理の実行の開始処理について説明する。
【０２４２】
図２５は、メイングループの分散処理の実行の開始処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、自端末ＭＴでメイングループの分散処理を開始するか否かを判定する（ステップＳ２５０１）。ここで、分散処理を開始しない場合（ステップＳ２５０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２５０１に戻り、分散処理の開始を待つ。
【０２４３】
一方、分散処理を開始する場合（ステップＳ２５０１：Ｙｅｓ）、ＣＰＵ３０１は、サブグループの分散処理を所持しているか否かを判定する（ステップＳ２５０２）。ここで、サブグループの分散処理を所持していない場合（ステップＳ２５０２：Ｎｏ）、ＣＰＵ３０１は、メイングループの分散処理の実行の開始処理を終了する。
【０２４４】
一方、サブグループの分散処理を所持している場合（ステップＳ２５０２：Ｙｅｓ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴに途中処理結果の返却通知を送信し（ステップＳ２５０３）、途中処理結果を返却する（ステップＳ２５０４）。そして、ＣＰＵ３０１は、メイングループの分散処理の実行の開始処理を終了する。
【０２４５】
これにより、サブグループの分散処理の実行より、メイングループの分散処理を優先して実行を開始することができる。また、メイングループの分散処理の実行の開始の際に、サブグループの分散処理の途中処理結果と、分散共有メモリ領域Ｍｄのデータを返却する。そのため、サブグループの分散処理を続行させることができる。
【０２４６】
（サブグループのマスタ端末ＭＴによるデータ回収処理）
ここで、図２６を用いて、ステップＳ２５０３において端末ＭＴにより送信された返却通知を受信したサブグループのマスタ端末ＭＴによるデータ回収処理について説明する。ただし、ステップＳ２６０２の処理は、図２３に示したステップＳ２３０２の処理と同様の処理であるため、ここでは詳細な説明を省略する。
【０２４７】
図２６は、サブグループのマスタ端末ＭＴによるデータ回収処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、端末ＭＴから返却通知を受信したか否かを判定する（ステップＳ２６０１）。ここで、返却通知を受信していない場合（ステップＳ２６０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２６０１に戻り、返却通知の受信を待つ。
【０２４８】
一方、返却通知を受信した場合（ステップＳ２６０１：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ２６０２に移行する。そして、ＣＰＵ３０１は、ステップＳ２６０２の処理をおこなう。
【０２４９】
これにより、端末ＭＴからの分散処理の途中処理結果を回収して、分散処理を続行することができる。
【０２５０】
（マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼の内容）
次に、図２７を用いて、メイングループのスレーブ端末ＭＴのみでは分散処理に含まれるすべての処理を同時に並列処理することができない場合におけるマスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼について説明する。
【０２５１】
図２７は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼の内容を示す説明図である。図２７では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ６が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３，ＭＴ６とを含むグループＧ１を編成している。
【０２５２】
グループＧ１において、マスタ端末ＭＴ１は、処理１ａを自端末ＭＴ１に割り振り、処理１ｂを端末ＭＴ６に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。なお、処理１ａと処理１ｂとは、同期制御の対象になる処理であり、一方の処理の実行中には、他方の処理が中断される。
【０２５３】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４，ＭＴ６とを含むグループＧ２を編成している。グループＧ２において、スレーブ端末ＭＴ４は、メイングループに所属している。また、グループＧ２において、スレーブ端末ＭＴ６は、サブグループに所属している。
【０２５４】
グループＧ２において、マスタ端末ＭＴ５は、処理２ａを自端末ＭＴ５に割り振り、処理２ｂを端末ＭＴ４に割り振り、それぞれ並列処理させている。処理２ｃは、まだ実行されていない。
【０２５５】
（１）ここで、マスタ端末ＭＴ１が処理１ａを実行中であるため、スレーブ端末ＭＴ６が処理１ｂの実行を中断した場合を想定する。処理１ｂの実行を中断すると、スレーブ端末ＭＴ６のＣＰＵ３０１は、アイドル状態になり、サブグループの分散処理を実行することができるようになる。
【０２５６】
（２）そのため、処理１ｂの実行を中断すると、スレーブ端末ＭＴ６は、マスタ端末情報ＤＢ６００を参照して、サブグループのマスタ端末ＭＴ５に、処理依頼の受付が可能になった旨の通知（以下、「受付可能通知」という）を送信する。
【０２５７】
（３）受付可能通知を受信したマスタ端末ＭＴ５は、分散処理に含まれる処理の中からまだ実行されていない処理２ｃを選択して、スレーブ端末ＭＴ６に処理依頼を送信する。
【０２５８】
（４）処理依頼を受信すると、スレーブ端末ＭＴ６は、処理１ｂの途中処理結果をグループＧ１の共有メモリＭｃ１に退避させて、処理２ｃを実行する。なお、スレーブ端末ＭＴ６のメモリＭのサイズが処理１ｂの途中処理結果と、処理２ｃの処理結果と、を保持できるサイズであれば、共有メモリＭｃ１に途中処理結果を退避させなくてもよい。
【０２５９】
このように、ＣＰＵ３０１がアイドル状態になったサブグループのスレーブ端末ＭＴを、分散処理の並列処理に使用することにより、分散処理の効率化ができる。また、スレーブ端末ＭＴのＣＰＵ３０１の使用率をあげることができるため、ネットワークシステム２００全体での処理の効率化を図ることができる。
【０２６０】
（マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理）
ここで、図２８を用いて、図２７に示したマスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理について説明する。
【０２６１】
図２８は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、処理依頼する処理が存在するか否かを判定する（ステップＳ２８０１）。処理依頼する処理が存在しない場合（ステップＳ２８０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２８０１に戻り、処理依頼する処理が存在するか否かの判定を続ける。
【０２６２】
一方、処理依頼する処理が存在する場合（ステップＳ２８０１：Ｙｅｓ）、ＣＰＵ３０１は、サブグループに所属するスレーブ端末ＭＴに依頼可能なスレーブ端末ＭＴが存在するか否かを判定する（ステップＳ２８０２）。ここで、依頼可能なスレーブ端末ＭＴが存在しない場合（ステップＳ２８０２：Ｎｏ）、ＣＰＵ３０１は、処理依頼処理を終了する。
【０２６３】
一方、依頼可能なスレーブ端末ＭＴが存在する場合（ステップＳ２８０２：Ｙｅｓ）、ＣＰＵ３０１は、依頼可能なスレーブ端末ＭＴから受付可能通知を受信すると、処理依頼を送信し、処理依頼が受信されると処理を送信して（ステップＳ２８０３）、ステップＳ２８０１に戻る。
【０２６４】
これにより、分散処理に含まれる複数の処理の中で割り振ることができる処理があり、かつ、依頼可能なスレーブ端末ＭＴが存在すれば、処理を割り振って実行させることができるため、分散処理の効率化を図ることができる。
【０２６５】
（スレーブ端末ＭＴによる処理依頼の受付処理の詳細）
ここで、図２９を用いて、ステップＳ２８０３においてマスタ端末ＭＴにより送信された処理依頼を受信したスレーブ端末ＭＴによる処理依頼の受付処理について説明する。
【０２６６】
図２９は、スレーブ端末ＭＴによる処理依頼の受付処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、メイングループのマスタ端末ＭＴから、排他制御にかかる同期待ちを検出したか否かを判定する（ステップＳ２９０１）。同期待ちを検出していない場合（ステップＳ２９０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２９０１に戻り、同期待ちの検出を待つ。
【０２６７】
一方、同期待ちを検出した場合（ステップＳ２９０１：Ｙｅｓ）、ＣＰＵ３０１は、実行中の処理を同期待ちにして中断する。そして、ＣＰＵ３０１は、所属しているサブグループがあるか否か判定する（ステップＳ２９０２）。ここで、所属しているサブグループがない場合（ステップＳ２９０２：Ｎｏ）、ＣＰＵ３０１は、処理依頼の受付処理を終了する。
【０２６８】
一方、所属しているサブグループがある場合（ステップＳ２９０２：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄが利用可能であるか判定する（ステップＳ２９０３）。ここで、分散共有メモリ領域Ｍｄが利用不可能である場合（ステップＳ２９０３：Ｎｏ）、ＣＰＵ３０１は、処理依頼の受付処理を終了する。
【０２６９】
一方、分散共有メモリ領域Ｍｄが利用可能である場合（ステップＳ２９０３：Ｙｅｓ）、ＣＰＵ３０１は、退避用の分散共有メモリ領域Ｍｄを確保し、サブグループのマスタ端末ＭＴに、受付可能通知を送信する（ステップＳ２９０４）。
【０２７０】
次に、ＣＰＵ３０１は、同期待ちが終了したか否かを判定する（ステップＳ２９０５）。同期待ちの終了は、例えば、メイングループのマスタ端末ＭＴからの同期待ちの解除通知を受信することによりおこなわれる。ここで、同期待ちが終了した場合（ステップＳ２９０５：Ｙｅｓ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴに、受付可能通知の取消通知を送信し（ステップＳ２９０６）、処理依頼の受付処理を終了する。
【０２７１】
一方、同期待ちが終了していない場合（ステップＳ２９０５：Ｎｏ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴからの処理依頼を受信したか否かを判定する（ステップＳ２９０７）。ここで、処理依頼を受信していない場合（ステップＳ２９０７：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２９０５に戻る。
【０２７２】
一方、処理依頼を受信した場合（ステップＳ２９０７：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄに途中処理結果を退避させ、処理依頼の受信を通知し、処理を受信する（ステップＳ２９０８）。そして、ＣＰＵ３０１は、サブグループからの処理依頼に基づいて、処理を開始する（ステップＳ２９０９）。
【０２７３】
次に、ＣＰＵ３０１は、同期待ちが終了したか否かを判定する（ステップＳ２９１０）。同期待ちの終了は、例えば、メイングループのマスタ端末ＭＴからの同期待ちの解除通知を受信することによりおこなわれる。
【０２７４】
ここで、同期待ちが終了した場合（ステップＳ２９１０：Ｙｅｓ）、ＣＰＵ３０１は、他に所属しているグループのマスタ端末ＭＴとなる端末ＭＴに、ステップＳ２９０９にて開始した処理の処理結果を送信する（ステップＳ２９１１）。そして、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄに退避させた途中処理結果を復帰させ（ステップＳ２９１２）、処理依頼の受付処理を終了する。
【０２７５】
一方、同期待ちが終了していない場合（ステップＳ２９１０：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２９０９にて開始した処理が終了したか否かを判定する（ステップＳ２９１３）。ここで、処理が終了していない場合（ステップＳ２９１３：Ｎｏ）、ステップＳ２９１０に戻る。
【０２７６】
一方、処理が終了した場合（ステップＳ２９１３：Ｙｅｓ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴに、ステップＳ２９０９にて開始した処理の処理結果を送信し（ステップＳ２９１４）、ステップＳ２９０３に戻る。
【０２７７】
ただし、ステップＳ２９０９にて開始した処理の終了に伴って、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄに退避させた途中処理結果を復帰させてもよい。そして、ＣＰＵ３０１は、同期待ちの終了を待って、中断していた処理を再開してもよい。
【０２７８】
これにより、スレーブ端末ＭＴは、途中処理結果を分散共有メモリ領域Ｍｄに退避させて、サブグループのマスタ端末ＭＴから依頼される処理に使用するＲＡＭ３０３のワークエリアを確保することができる。また、端末ＭＴは、分散共有メモリ領域Ｍｄに退避させた途中処理結果をＲＡＭ３０３のワークエリアに復帰させて、処理を再開することができる。
【０２７９】
以上説明したように、データ処理方法によれば、他のグループに所属していないスレーブ端末ＭＴをメイングループに登録する。また、データ処理方法によれば、他のグループに所属しているスレーブ端末ＭＴは、メイングループに登録せず、サブグループに登録する。
【０２８０】
これにより、専らマスタ端末ＭＴの処理依頼に従って処理を実行可能なスレーブ端末ＭＴを選択してメイングループに登録できるため、分散処理の並列処理を効率よくおこなえるグループを編成できる。また、メイングループに含まれないサブグループのスレーブ端末ＭＴには、自グループからの処理依頼を極力おこなわずに当該スレーブ端末ＭＴの負荷が増大することを防止できる。
【０２８１】
また、サブグループとして、臨時に処理依頼をおこなうスレーブ端末ＭＴを登録しておく。これにより、端末ＭＴが可搬であることに起因するメイングループのスレーブ端末ＭＴの状況の変化に対応して、臨時に処理を割り振って、並列処理をおこなうことができる。また、サブグループに登録されたスレーブ端末が、他のグループの分散処理の終了後、または、他のグループの分散処理の中断中であって、ＣＰＵがアイドル状態になっているときには、臨時に処理依頼をして分散処理の効率化を図ることができる。
【０２８２】
また、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数と、分散処理に含まれる処理数と、の比較結果を参照して、メイングループまたはサブグループへのスレーブ端末ＭＴの登録処理を開始する。
【０２８３】
例えば、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上である場合、スレーブ端末ＭＴの登録をおこなわない。これにより、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を残しておくことができる。
【０２８４】
また、例えば、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数より小さい場合、スレーブ端末ＭＴをメイングループに登録する。これにより、メイングループに登録されている端末ＭＴ数が処理数と同数になるまでは、スレーブ端末ＭＴをメイングループに登録することにより、分散処理の並列処理の効率化を図る。
【０２８５】
また、例えば、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上であるとき、スレーブ端末ＭＴをサブグループに登録する。これにより、スレーブ端末ＭＴをサブグループに登録してメイングループには登録しないようにして、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を残しておくことができる。
【０２８６】
また、データ処理方法によれば、サブグループに登録されたスレーブ端末ＭＴへの同期要求を登録しておくことにより、スレーブ端末ＭＴが処理依頼を受付可能な状態であるかを登録しておくことができる。
【０２８７】
また、データ処理方法によれば、メイングループへのスレーブ端末ＭＴの登録または不登録を基地局ＢＳに通知することにより、基地局ＢＳのグループ情報ＤＢ８００を更新する。これにより、基地局ＢＳは、通信圏Ｃ内にあるスレーブ端末ＭＴのグループへの所属状況を把握することができる。
【０２８８】
また、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上であるとき、グループに登録されているスレーブ端末ＭＴの登録を削除する。これにより、現在メイングループに登録されている端末ＭＴ数が、分散処理に含まれる複数の処理を割り振るのに十分な数を超えているときは、超過分の登録を削除して、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を作ることができる。
【０２８９】
また、データ処理方法によれば、分散共有メモリ領域Ｍｄにデータがあるスレーブ端末ＭＴのメイングループの登録を削除しない。これにより、メイングループから登録を削除されたスレーブ端末ＭＴの分散共有メモリ領域Ｍｄにある分散処理の途中処理結果を回収できなくなることを防止できる。
【０２９０】
また、データ処理方法によれば、分散処理に含まれる複数の処理の中の１処理が使用するメモリＭのサイズが共有メモリＭｃのサイズより大きい場合は、グループ内の各端末ＭＴの分散共有メモリ領域Ｍｄを解放する。これにより、共有メモリＭｃとして途中処理結果を退避可能なサイズが確保されていない場合は、分散共有メモリ領域Ｍｄを解放することにより、スレーブ端末ＭＴのワークエリアを確保して処理を効率化する。
【０２９１】
また、データ処理方法によれば、スレーブ端末ＭＴの通信能力の低下が検出された場合に、通信能力の低下したスレーブ端末ＭＴのメイングループへの登録を削除する。これにより、通信能力が低下し、データの送受信ができなくなる虞があるスレーブ端末ＭＴをグループから除外して、分散処理を安定して実行できる。
【０２９２】
また、データ処理方法によれば、分散処理を中止したスレーブ端末ＭＴから途中処理結果が返却された場合に、途中処理結果を返却したスレーブ端末ＭＴのメイングループへの登録を削除する。これにより、分散処理を中止したスレーブ端末ＭＴをグループから除外することができ、また、返却された途中処理結果により分散処理を続行できる。
【０２９３】
また、データ処理方法によれば、分散共有メモリ領域Ｍｄが使用されている場合、分散共有メモリ領域Ｍｄのデータを回収する。これにより、分散処理の途中処理結果を回収して、分散処理を続行することができる。
【０２９４】
なお、本実施の形態で説明したデータ処理方法は、予め用意されたデータ処理プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本データ処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０２９５】
ＭＴ，ＭＴ１〜ＭＴ８  端末
ＢＳ，ＢＳ１，ＢＳ２  基地局
１，２  分散処理
１ａ〜１ｄ，２ａ〜２ｃ  処理
Ｇ１，Ｇ２  グループ
９０１  検出部
９０２  判定部
９０３  登録部
９０４  処理部
９０５  第１の比較部
９０６  同期部
９０７  通知部
９０８  抽出部
９０９  削除部
９１０  第１の検知部
９１１  第２の比較部
９１２  解除部
９１３  監視部
９１４  取得部
９１５  第２の検知部
９１６  回収部
１００１  検出部
１００２  通知部
１００３  受信部
１００４  検知部
１００５  移行部
【図１】
2012160629.tif 000003
【図２】
2012160629.tif 000004
【図３】
2012160629.tif 000005
【図４】
2012160629.tif 000006
【図５】
2012160629.tif 000007
【図６】
2012160629.tif 000008
【図７】
2012160629.tif 000009
【図８】
2012160629.tif 000010
【図９】
2012160629.tif 000011
【図１０】
2012160629.tif 000012
【図１１】
2012160629.tif 000013
【図１２】
2012160629.tif 000014
【図１３】
2012160629.tif 000015
【図１４】
2012160629.tif 000016
【図１５】
2012160629.tif 000017
【図１６】
2012160629.tif 000018
【図１７】
2012160629.tif 000019
【図１８】
2012160629.tif 000020
【図１９】
2012160629.tif 000021
【図２０】
2012160629.tif 000022
【図２１】
2012160629.tif 000023
【図２２】
2012160629.tif 000024
【図２３】
2012160629.tif 000025
【図２４】
2012160629.tif 000026
【図２５】
2012160629.tif 000027
【図２６】
2012160629.tif 000028
【図２７】
2012160629.tif 000029
【図２８】
2012160629.tif 000030
【図２９】
2012160629.tif 000031
【手続補正書】
【提出日】平成25年11月19日(2013.11.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の装置を含む第１グループへの第１装置の追加要求を検出し、
前記第１装置が前記第１グループと異なる第２グループに属しないときは、前記第１グループの複数の装置を登録するメイングループに登録し、
前記第１装置が前記第２グループに属するときは、前記第１装置をサブグループに登録し、
前記メイングループに登録される複数の装置によって複数のタスクを含む分散処理がおこなわれること
を特徴とするデータ処理方法。
【請求項２】
前記第１グループへの第２装置の追加要求を検出し、
前記複数の装置の数である第１数と前記複数のタスクの数である第２数とを比較し、
前記比較結果に基づいて前記第２装置を前記メイングループおよび前記サブグループの何れかに登録すること
を特徴とする請求項１に記載のデータ処理方法。
【請求項３】
前記第１数が前記第２数以上であるとき、前記第２装置を前記サブグループに登録し、
前記第１数が前記第２数よりも小さいとき、前記第２装置を前記メイングループに登録すること
を特徴とする請求項２に記載のデータ処理方法。
【請求項４】
前記第１装置が前記サブグループに登録されるとき、前記第２グループに含まれる他の装置からの前記第１装置に対する同期要求が前記サブグループのマスタ端末に登録されること
を特徴とする請求項１乃至請求項３の何れか一に記載のデータ処理方法。
【請求項５】
前記メイングループへの登録または不登録を基地局に通知すること
を特徴とする請求項１乃至請求項４の何れか一に記載のデータ処理方法。
【請求項６】
前記複数の装置の数である第１数が前記複数のタスクの数である第２数よりも大きいとき、前記複数のタスク内のタスクが割り当てられていない第３装置のメイングループの登録を削除すること
を特徴とする請求項１乃至請求項５の何れか一に記載のデータ処理方法。
【請求項７】
前記複数の装置で共有される共有メモリの前記第３装置に設定されるメモリ領域が使用されているときは、前記第３装置のメイングループの登録を削除しないこと
を特徴とする請求項６に記載のデータ処理方法。
【請求項８】
前記複数のタスク内の各タスクが使用するメモリの大きさが前記複数の装置で共有される共有メモリの大きさよりも大きいとき、前記共有メモリの設定を解除すること
を特徴とする請求項６または請求項７に記載のデータ処理方法。
【請求項９】
前記メイングループに登録される第４装置の通信能力の低下を検出するときまたは前記第４装置のタスクの実行結果を取得するとき、前記第４装置の前記メイングループの登録または前記サブグループの登録を削除すること
を特徴とする請求項１乃至請求項８の何れか一に記載のデータ処理方法。
【請求項１０】
前記複数の装置で共有される共有メモリの前記第４装置に設定されるメモリ領域が使用されているときは前記メモリ領域のデータを回収すること
を特徴とする請求項９に記載のデータ処理方法。
【請求項１１】
前記複数のタスク内の各タスクが使用するメモリの大きさが前記複数の装置で共有される共有メモリの大きさよりも大きいとき、前記共有メモリの設定を解除すること
を特徴とする請求項９または請求項１０に記載のデータ処理方法。
【請求項１２】
前記メイングループの登録の削除を基地局に通知すること
を特徴とする請求項６乃至請求項１１の何れか一に記載のデータ処理方法。
【請求項１３】
第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出し、
前記第１装置が、前記第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録されるとき、
前記サブグループに登録するために前記メイングループおよび前記サブグループを管理する装置に前記同期要求を通知すること
を特徴とするデータ処理方法。
【請求項１４】
前記第１グループからの削除要求を受信し、
前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第１グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３に記載のデータ処理方法。
【請求項１５】
前記第１グループに含まれる複数の装置で共有される共有メモリのメモリ領域が使用されているときは前記メモリ領域のデータを前記第１グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３または請求項１４に記載のデータ処理方法。
【請求項１６】
前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行依頼を受信し、
前記第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第２グループに含まれる複数の装置の一の装置に移行すること
を特徴とする請求項１３乃至請求項１５の何れか一に記載のデータ処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理するデータ処理方法に関する。
【背景技術】
【０００２】
従来、１端末で処理する場合に高い処理能力が要求される演算処理は、処理量が多い。このような演算処理を実行する際、当該演算処理に含まれる複数の処理を複数の端末に割り振って並列処理させることにより、個々の端末の性能が低くても演算処理を実行できるようにしていた。以下では、並列処理の対象となる演算処理を「分散処理」という。なお、分散処理としては、気象シミュレーションなどの科学技術計算や描画系アプリケーションが挙げられる。
【０００３】
分散処理をおこなう複数の端末が含まれるグループ内には、分散処理を制御するマスタ端末が存在し、マスタ端末がグループ内のスレーブ端末を制御して分散処理をおこなう。具体的には、マスタ端末が、分散処理に含まれる複数の処理の中から、スレーブ端末に処理を割り振り、また、スレーブ端末から割り振った処理の処理結果を回収して、分散処理をおこなう。
【０００４】
関連する従来技術としては、ネットワークにより接続された複数のＰＯＳ（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅ）装置のデータを圧縮して、バックアップ用のデータとしてそれぞれのＰＯＳ装置において保持しておく技術がある（下記、特許文献１参照）。また、グループ内の複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の負荷情報に基づいて、ＣＰＵの処理能力を、他のＣＰＵが発生させたプロセスの処理に貸し出す技術がある（下記、特許文献２参照）。また、中断した処理の処理情報を退避させるメモリ領域を自装置内に用意しておく技術がある（下記、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−６７２３２号公報
【特許文献２】特開平８−７７０２６号公報
【特許文献３】特開昭６４−７６２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来では、分散処理をおこなうグループに含まれる端末としては、設置場所が固定された端末について想定されており、可搬の端末については想定されていない。そのため、端末が可搬であることに起因してマスタ端末と通信可能な端末群が動的に変化する場合に、分散処理をおこなうグループに登録する端末を当該端末群から選択することができず、可般の端末間では、分散処理ができないという問題がある。
【０００７】
また、可般の端末群の端末で分散処理をおこなう場合、すでに他のグループに所属している端末を自グループに含めてしまうと、当該端末に両グループからの処理が割り当てられてしまい、かえって負荷が増大してしまうという問題がある。
【０００８】
また、グループを編成した場合、分散処理がなされるため、分散処理終了後はグループが解消される。したがって、すでに他のグループの所属している端末であっても、分散処理終了後は、どのグループにも属さないことになるため、分散処理効率の低下を招くという問題がある。
【０００９】
本発明は、上述した従来技術による問題点を解消するため、可搬の端末群での分散処理時における特定の端末への負荷集中の防止および分散処理の効率化を図ることができるデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数の装置を含む第１グループへの第１装置の追加要求を検出し、第１装置が第１グループと異なる第２グループに属しないときは、第１グループの複数の装置を登録するメイングループに登録し、第１装置が第２グループに属するときは、第１装置をサブグループに登録し、メイングループに登録される複数の装置によって複数のタスクを含む分散処理をおこなうデータ処理方法が提案される。
【００１１】
また、本発明の一側面によれば、第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出し、第１装置が、第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録されるとき、サブグループに登録するためにメイングループおよびサブグループを管理する装置に同期要求を通知するデータ処理方法が提案される。
【発明の効果】
【００１２】
本発明の一側面によれば、可搬の端末群での分散処理時における特定の端末への負荷集中の防止および分散処理の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容を示す説明図である。
【図２】図２は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。
【図３】図３は、実施の形態にかかる端末ＭＴのハードウェア例を示すブロック図である。
【図４】図４は、メイングループ情報ＤＢ４００の内容を示す説明図である。
【図５】図５は、サブグループ情報ＤＢ５００の内容を示す説明図である。
【図６】図６は、マスタ端末情報ＤＢ６００の内容を示す説明図である。
【図７】図７は、実施の形態にかかる基地局のハードウェア例を示すブロック図である。
【図８】図８は、グループ情報ＤＢ８００の内容を示す説明図である。
【図９】図９は、マスタ端末ＭＴの機能例を示すブロック図である。
【図１０】図１０は、スレーブ端末ＭＴの機能例を示すブロック図である。
【図１１】図１１は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１の詳細を示すフローチャートである。
【図１２】図１２は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２の詳細を示すフローチャートである。
【図１３】図１３は、マスタ端末ＭＴからのグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。
【図１４】図１４は、基地局ＢＳによる端末ＭＴの位置情報の送信処理の詳細を示すフローチャートである。
【図１５】図１５は、基地局ＢＳによるグループ情報の登録処理の詳細を示すフローチャートである。
【図１６】図１６は、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入った場合におけるグループの再編成の内容を示す説明図である。
【図１７】図１７は、マスタ端末ＭＴによるグループの再編成処理の詳細を示すフローチャートである。
【図１８】図１８は、グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容を示す説明図である。
【図１９】図１９は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。
【図２０】図２０は、マスタ端末ＭＴからの登録の削除通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。
【図２１】図２１は、マスタ端末ＭＴからの処理終了通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。
【図２２】図２２は、グループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容を示す説明図である。
【図２３】図２３は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。
【図２４】図２４は、サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容を示す説明図である。
【図２５】図２５は、メイングループの分散処理の実行の開始処理の詳細を示すフローチャートである。
【図２６】図２６は、サブグループのマスタ端末ＭＴによるデータ回収処理の詳細を示すフローチャートである。
【図２７】図２７は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼の内容を示す説明図である。
【図２８】図２８は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理の詳細を示すフローチャートである。
【図２９】図２９は、スレーブ端末ＭＴによる処理依頼の受付処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明にかかるデータ処理方法の実施の形態を詳細に説明する。本データ処理方法によれば、分散処理を制御するマスタ端末は、他のマスタ端末からの処理が割り振られていないスレーブ端末を、自端末から主として分散処理を割り振るメイングループに登録する。また、マスタ端末は、他のマスタ端末から処理を割り振られているスレーブ端末を、自端末から臨時に分散処理を割り振るサブグループに登録する。
【００１５】
これにより、マスタ端末は、メイングループに登録された端末に分散処理を割り振って、効率よく分散処理を実行することができる。また、マスタ端末は、まだ実行されていない処理がある場合であって、かつ、サブグループに登録された端末がアイドル状態のときには、臨時に分散処理を割り振って、分散処理の効率化を図ることができる。また、端末の移動によりメイングループに登録された端末の通信状況が悪化した場合であって、かつ、サブグループに登録された端末がアイドル状態のときには、サブグループに登録された端末に臨時に分散処理を割り振り直して、分散処理を続行することもできる。
【００１６】
（マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容）
まず、図１を用いて、マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容について説明する。
【００１７】
図１は、マスタ端末による分散処理をおこなうグループへのスレーブ端末の登録の内容を示す説明図である。図１では、基地局ＢＳ（Ｂａｓｅ  Ｓｔａｔｉｏｎ）の通信圏Ｃ内（いわゆる「セル」）には、複数の端末ＭＴ（Ｍｏｂｉｌｅ  Ｔｅｒｍｉｎａｌ）（ここでは、例として５台の端末ＭＴ１〜ＭＴ５）が存在する。端末ＭＴは、可搬の通信装置である。端末ＭＴとしては、例えば、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン、ノートＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ゲーム機器が挙げられる。
【００１８】
基地局ＢＳの通信圏Ｃ内の複数の端末ＭＴの中には、複数の処理を含む分散処理の実行を制御するマスタとなる端末ＭＴ（以下、「マスタ端末ＭＴ」という）が存在する。ここでは、例として、端末ＭＴ１，ＭＴ５をマスタ端末ＭＴとする。また、基地局ＢＳの通信圏Ｃ内の複数の端末ＭＴの中には、マスタ端末ＭＴの制御に従って、割り振られた分散処理をおこなうスレーブとなる端末ＭＴ（以下、「スレーブ端末ＭＴ」という）が存在する。ここでは、例として、端末ＭＴ２〜ＭＴ４をスレーブ端末ＭＴとする。
【００１９】
図１では、マスタ端末ＭＴ５は、自端末ＭＴ５とスレーブ端末ＭＴ４とを含むグループＧ２を編成している。一方、マスタ端末ＭＴ１は、まだグループＧ１を編成していない。マスタ端末ＭＴ１がグループＧ１を編成する場合には、メイングループとサブグループとに分けてグループＧ１を編成する。ここで、メイングループとは、マスタ端末ＭＴ１からの処理依頼を常時受け付けるスレーブ端末ＭＴが登録されるグループである。サブグループとは、マスタ端末ＭＴ１からの処理依頼を臨時に受け付けるスレーブ端末ＭＴが登録されるグループである。
【００２０】
メイングループに登録されるスレーブ端末は、他のグループに所属しておらず、ＣＰＵがアイドル状態になりやすいスレーブ端末である。そのため、マスタ端末ＭＴ１は常時処理依頼をして、分散処理の効率化を図ることができる。
【００２１】
また、サブグループに登録されるスレーブ端末は、すでに他のグループに所属しているスレーブ端末ＭＴである。そのため、マスタ端末ＭＴ１は、自グループからの処理依頼を極力おこなわずに当該スレーブ端末ＭＴの負荷が増大することを防止する。ただし、サブグループに登録されたスレーブ端末が、他のグループの分散処理の終了後、または、他のグループの分散処理の中断中であって、ＣＰＵがアイドル状態になっているときには、マスタ端末ＭＴ１は、臨時に処理依頼をして分散処理の効率化を図る。
【００２２】
図１では、マスタ端末ＭＴ１は、処理１ａと処理１ｂとを含む分散処理１を有している。ここで、処理１ａと処理１ｂは、それぞれ一連の処理であり、例えば、単一のタスクであってもよいし、タスク群であってもよい。また、処理１ａと処理１ｂは、それぞれ独立した処理であってもよいし、一方の処理の実行中には他方の処理が中断される排他的な関係にある処理であってもよい。排他的な関係とは、例えば、一方の処理の処理結果を他方の処理が参照する関係である。
【００２３】
ここで、マスタ端末ＭＴ１は、基地局ＢＳから各端末ＭＴ１〜ＭＴ５の位置情報を取得し、取得した位置情報を参照して自端末ＭＴ１のアドホック通信の通信圏Ｅ内のスレーブ端末ＭＴを検出する。なお、アドホック通信とは、各端末ＭＴが自端末ＭＴの通信圏内にある他の端末ＭＴ間の通信を中継する機能を有することにより、自端末ＭＴの通信圏内にない端末ＭＴとも通信可能な通信方式である。
【００２４】
そして、マスタ端末ＭＴ１は、検出されたスレーブ端末ＭＴが他のグループに所属しているか否かに基づいて、検出されたスレーブ端末を分散処理をおこなうグループＧ１のメイングループまたはサブグループに登録する。マスタ端末ＭＴ１は、自端末ＭＴ１とグループＧ１のメイングループに登録したスレーブ端末ＭＴとに分散処理１を割り振って、分散処理１を並列処理する。
【００２５】
（１）例えば、マスタ端末ＭＴ１は、基地局ＢＳから取得した位置情報を参照して、スレーブ端末ＭＴ４を検出すると、メイングループまたはサブグループへのスレーブ端末ＭＴ４の登録処理を開始する。ここで、スレーブ端末ＭＴ４は、マスタ端末ＭＴ５のグループＧ２に所属しており、専らマスタ端末ＭＴ５からの処理依頼により、ＣＰＵを分散処理に使用するスレーブ端末ＭＴである。
【００２６】
そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ４は、マスタ端末ＭＴ１からの処理依頼を常時受け付けることはできないスレーブ端末ＭＴであると判断して、スレーブ端末ＭＴ４をサブグループに登録する。
【００２７】
（２）次に、マスタ端末ＭＴ１は、基地局ＢＳから取得した位置情報を参照して、スレーブ端末ＭＴ２を検出すると、メイングループまたはサブグループへのスレーブ端末ＭＴ２の登録処理を開始する。ここで、スレーブ端末ＭＴ２は、他のマスタ端末ＭＴ５のグループＧ２に所属しておらず、マスタ端末ＭＴ１からの処理依頼により、ＣＰＵを分散処理１に使用できるスレーブ端末ＭＴである。
【００２８】
そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ２は、マスタ端末ＭＴ１からの処理依頼を常時受け付けることができるスレーブ端末ＭＴであると判断して、メイングループに登録する。
【００２９】
（３）そして、マスタ端末ＭＴ１は、基地局ＢＳから取得した位置情報を参照して、スレーブ端末ＭＴ３を検出すると、メイングループまたはサブグループへのスレーブ端末ＭＴ３の登録処理を開始する。ここで、スレーブ端末ＭＴ３は、他のマスタ端末ＭＴ５のグループＧ２に所属しておらず、マスタ端末ＭＴ１からの処理依頼により、ＣＰＵを分散処理１に使用できるスレーブ端末ＭＴである。
【００３０】
そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ３は、マスタ端末ＭＴ１からの処理依頼を常時受け付けることができるスレーブ端末ＭＴであると判断して、メイングループに登録する。
【００３１】
ただし、分散処理１に含まれる処理数は２であるから、マスタ端末ＭＴ１と、メイングループに登録されたスレーブ端末ＭＴ２と、の２端末があれば、並列処理が可能である。そのため、マスタ端末ＭＴ１は、スレーブ端末ＭＴ３をメイングループに登録しても、スレーブ端末ＭＴ３に割り振る処理がないと判断して、スレーブ端末ＭＴ３をサブグループに登録するようにしてもよい。
【００３２】
そして、マスタ端末ＭＴ１は、分散処理１をおこなうグループＧ１を編成し、メイングループに登録されたスレーブ端末ＭＴ２に処理１ｂを依頼し、また、処理１ａは自端末ＭＴ１にて実行して、分散処理１を並列に実行する。このように、マスタ端末ＭＴ１は、他のグループに所属しておらずＣＰＵがアイドル状態になりやすいスレーブ端末ＭＴ２，ＭＴ３に処理を依頼し、分散処理１を効率よく実行することができる。
【００３３】
そして、スレーブ端末ＭＴ２の移動に起因して、マスタ端末ＭＴ１とスレーブ端末ＭＴ２とのデータの送受信が困難な状況になった場合を想定する。この場合、マスタ端末ＭＴ１は、メイングループのスレーブ端末ＭＴ３やサブグループのスレーブ端末ＭＴ４を使用して分散処理を続行することができる。このように、マスタ端末ＭＴ１は、グループに含まれる端末ＭＴが可搬であることに起因する通信状況の変化に対応して分散処理を実行可能なグループを編成することができる。
【００３４】
（ネットワークシステムの一実施例）
図２は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。図２において、ネットワークシステム２００は、複数の端末ＭＴ１〜ＭＴ８と、基地局ＢＳ１，ＢＳ２と、を含む。ネットワークシステム２００において、各端末ＭＴ１〜ＭＴ８は、基地局ＢＳ１，ＢＳ２を介して接続されている。
【００３５】
端末ＭＴ１〜ＭＴ８は、他端末ＭＴと通信をおこなう移動可能な無線通信装置である。また、各端末ＭＴ１〜ＭＴ８のうち、端末ＭＴ１，ＭＴ５，ＭＴ８は、マスタ端末ＭＴである。一方、各端末ＭＴ１〜ＭＴ８のうち、端末ＭＴ２〜ＭＴ４，ＭＴ６，ＭＴ７は、スレーブ端末ＭＴである。
【００３６】
マスタ端末ＭＴ１，ＭＴ５，ＭＴ８はそれぞれ、自端末ＭＴが接続されている基地局ＢＳ１，ＢＳ２に接続されている複数のスレーブ端末ＭＴのうち、自端末ＭＴとアドホック通信が可能な範囲に存在するスレーブ端末ＭＴを自端末ＭＴのグループに登録している。
【００３７】
すなわち、マスタ端末ＭＴとスレーブ端末ＭＴとは、マルチホップ通信によりアドホック通信をおこなう。アドホック通信においては、アドホック通信のためのモジュールを通信先の端末ＭＴごとに用意して、通信をおこなう。ここでは、マスタ端末ＭＴとスレーブ端末ＭＴとは、アドホック通信をおこなっているが、基地局ＢＳを介して通信をおこなうようにしてもよい。
【００３８】
具体的には、マスタ端末ＭＴ１は、スレーブ端末ＭＴ２，ＭＴ３を、グループＧ１のスレーブ端末ＭＴに登録している。また、マスタ端末ＭＴ５は、スレーブ端末ＭＴ４，ＭＴ６を、グループＧ２のスレーブ端末ＭＴに登録している。そして、マスタ端末ＭＴ８は、スレーブ端末ＭＴ７を、グループＧ３のスレーブ端末ＭＴに登録している。
【００３９】
なお、マスタ端末ＭＴの中には、マスタ端末ＭＴ５のように複数の基地局と通信可能な端末ＭＴがあってもよい。また、マスタ端末ＭＴの中には、他のマスタ端末ＭＴのスレーブ端末ＭＴとなるマスタ端末ＭＴがあってもよい。
【００４０】
ここで、グループＧ１内の各端末ＭＴ１〜ＭＴ３は、それぞれメモリＭを有する。そして、グループＧ１内の各端末ＭＴ１〜ＭＴ３は、それぞれメモリＭ内に分散共有メモリ領域Ｍｄ１を有する。分散共有メモリ領域Ｍｄ１は、グループＧ１内のどの端末ＭＴからもアクセス可能な領域である。
【００４１】
ここで、各端末ＭＴ１〜ＭＴ３がメモリＭ内に設定する分散共有メモリ領域Ｍｄ１のサイズは、端末ＭＴの動作に不具合が発生しないサイズであって、例えば、各端末ＭＴのメモリＭの１０パーセント以下のサイズである。これにより、グループＧ１では、各端末ＭＴ１〜ＭＴ３が有する分散共有メモリ領域Ｍｄ１の集合となる仮想的な共有メモリＭｃ１を作成する。このように作成した共有メモリＭｃ１を、グループＧ１内の各端末ＭＴ１〜ＭＴ３は、処理結果の退避に使用して、自端末ＭＴのメモリＭを有効活用する。
【００４２】
具体的には、各端末ＭＴ１〜ＭＴ３は、実行中の分散処理を中断して、あらたな処理を自端末ＭＴにおいて実行する場合、分散処理の途中処理結果があらたな処理の処理結果で上書きされないように、分散処理の途中処理結果を共有メモリＭｃ１に退避させる。そして、各端末ＭＴ１〜ＭＴ３は、中断した分散処理を再開する際に、退避させた途中処理結果を復帰させて、分散処理を再開する。
【００４３】
また、グループＧ２でも、同様に、分散共有メモリ領域Ｍｄ２から共有メモリＭｃ２が作成されている。一方、グループＧ３のように、共有メモリＭｃを作成しないグループがあってもよい。また、各端末ＭＴ１〜ＭＴ６の中には、分散共有メモリ領域Ｍｄを有しない端末ＭＴがあってもよい。また、各端末ＭＴが有する分散共有メモリ領域Ｍｄはそれぞれ異なるサイズであってもよい。
【００４４】
また、ネットワークシステム２００は、設置場所が固定された端末ＭＴを含んでもよい。設置場所が固定された端末ＭＴとしては、例えば、ＰＣ、サーバが挙げられる。また、ネットワークシステム２００は、基地局の他に、ゲートウェイを含んでもよい。
【００４５】
（端末ＭＴのハードウェア例）
次に、図３を用いて、実施の形態にかかる端末ＭＴのハードウェア例について、説明する。ここで、端末ＭＴとは、上述したマスタ端末ＭＴまたはスレーブ端末ＭＴになる端末ＭＴであり、例えば、端末ＭＴ１〜ＭＴ８である。
【００４６】
図３は、実施の形態にかかる端末ＭＴのハードウェア例を示すブロック図である。図３において、端末ＭＴは、ＣＰＵ３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４と、ディスプレイ３０５と、キーボード３０６と、を備えている。また、各構成部はバス３１０によってそれぞれ接続されている。
【００４７】
ここで、ＣＰＵ３０１は、端末ＭＴの全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。なお、図２に示したメモリＭは、ここではＲＡＭ３０３である。
【００４８】
また、端末ＭＴがマスタ端末ＭＴである場合には、ＲＡＭ３０３は、メイングループ情報ＤＢ（ＤａｔａＢａｓｅ）と、サブグループ情報ＤＢと、を記憶している。一方、端末ＭＴがスレーブ端末ＭＴである場合、ＲＡＭ３０３は、マスタ端末情報ＤＢを記憶している。
【００４９】
Ｉ／Ｆ３０４は、基地局ＢＳとの電波の送受信を制御し、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３２０に接続され、このネットワーク３２０を介して他の装置に接続される。そして、Ｉ／Ｆ３０４は、ネットワーク３２０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。また、Ｉ／Ｆ３０４は、マルチホップ通信により、通信圏Ｅ内の他の装置とのデータの送受信をおこなう。
【００５０】
ディスプレイ３０５は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０５は、例えば、ＴＦＴ液晶ディスプレイなどを採用することができる。キーボード３０６は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【００５１】
（メイングループ情報ＤＢ４００の内容）
ここで、図４を用いて、図３に示した端末ＭＴがマスタ端末ＭＴである場合に、ＲＡＭ３０３に記憶されているメイングループ情報ＤＢ４００の内容について説明する。
【００５２】
図４は、メイングループ情報ＤＢ４００の内容を示す説明図である。図４において、メイングループ情報ＤＢ４００は、メイングループ端末項目と、分散共有メモリ領域情報項目と、分散処理配布状況項目と、を有し、メイングループにスレーブ端末ＭＴが登録されるごとにレコードを構成する。
【００５３】
ここで、メイングループ端末項目には、メイングループに登録されたスレーブ端末ＭＴの情報が記憶されている。スレーブ端末ＭＴの情報とは、端末ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と位置情報と通信速度である。
【００５４】
端末ＩＤとは、スレーブ端末ＭＴを一意に特定できる識別情報である。例えば、スレーブ端末ＭＴが携帯電話である場合は、ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）カードに付与されたＩＭＳＩ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｍｏｂｉｌｅ  Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ）を、端末ＩＤに採用できる。
【００５５】
ただし、マスタ端末ＭＴがメイングループにスレーブ端末ＭＴを登録する際、マスタ端末ＭＴ内に限りスレーブ端末ＭＴを一意に特定できるローカルな識別情報をスレーブ端末ＭＴに付与しておき、付与された識別情報を端末ＩＤとして採用することもできる。
【００５６】
また、位置情報は、スレーブ端末ＭＴの現在位置を示す位置情報である。例えば、位置情報は、ＧＰＳシステムにより測位した座標であってもよい。ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）により測位した座標（図４では、緯度と経度の情報）である。
【００５７】
また、通信速度は、マスタ端末ＭＴとスレーブ端末ＭＴの間において単位時間当たりに伝送されるデータ量を示す。例えば、通信速度は、１秒間当たりに伝送されたビット数（ｂｐｓ：ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）である。
【００５８】
また、分散共有メモリ領域情報項目には、各スレーブ端末ＭＴにおける分散共有メモリ領域Ｍｄの情報が記憶されている。分散共有メモリ領域Ｍｄの情報とは、各スレーブ端末ＭＴにおける分散共有メモリ領域Ｍｄの確保サイズと、分散共有メモリ領域Ｍｄの使用量である。
【００５９】
また、分散処理配布状況項目には、マスタ端末ＭＴからの処理依頼によりスレーブ端末ＭＴに分散処理内のいずれかの処理が割り振られているか否かが記憶されている。分散処理配布状況項目には、例えば、マスタ端末ＭＴが処理依頼により処理を割り振った場合は、「配布中」が記憶されている。
【００６０】
一方、分散処理配布状況項目には、例えば、マスタ端末ＭＴが処理依頼していない場合、または、マスタ端末ＭＴが処理依頼した処理の処理結果が返却されている場合は、「配布なし」が記憶されている。
【００６１】
（サブグループ情報ＤＢ５００の内容）
ここで、図５を用いて、図３に示した端末ＭＴがマスタ端末ＭＴである場合に、ＲＡＭ３０３に記憶されているサブグループ情報ＤＢ５００の内容について説明する。
【００６２】
図５は、サブグループ情報ＤＢ５００の内容を示す説明図である。図５において、サブグループ情報ＤＢ５００は、サブグループ端末項目と、処理依頼受付可能状態項目と、を有し、サブグループにスレーブ端末ＭＴが登録されるごとにレコードを構成する。
【００６３】
ここで、サブグループ端末項目には、サブグループに登録されたスレーブ端末ＭＴの情報が記憶されている。サブグループ端末項目に記憶されるスレーブ端末ＭＴの情報とは、端末ＩＤと位置情報と通信速度であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００６４】
また、処理依頼受付可能状態項目には、マスタ端末ＭＴからの処理依頼により自グループの分散処理を実行させることが可能な状態であるか否かが記憶されている。処理依頼受付可能状態項目には、例えば、他のグループの分散処理の停止中であってＣＰＵ３０１がアイドル状態になっているスレーブ端末ＭＴであれば、自グループの分散処理を実行させることが可能な状態（図５では、「○」で示す）であると記憶される。一方、他のグループの分散処理の実行中であってＣＰＵ３０１がアイドル状態ではないスレーブ端末ＭＴであれば、自グループの分散処理を実行させることができない状態（図５では、「×」で示す）であると記憶される。
【００６５】
（マスタ端末情報ＤＢ６００の内容）
ここで、図６を用いて、図３に示した端末ＭＴがスレーブ端末ＭＴである場合に、ＲＡＭ３０３に記憶されているマスタ端末情報ＤＢ６００の内容について説明する。
【００６６】
図６は、マスタ端末情報ＤＢ６００の内容を示す説明図である。図６において、マスタ端末情報ＤＢ６００は、メイングループマスタ端末項目と、サブグループマスタ端末項目と、を有し、自端末ＭＴがマスタ端末ＭＴによってメイングループまたはサブグループに登録されるごとにレコードを構成する。
【００６７】
ここで、メイングループマスタ端末項目には、自端末ＭＴをメイングループに登録しているマスタ端末ＭＴの情報が記憶されている。マスタ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００６８】
また、サブグループマスタ端末項目には、自端末ＭＴをサブグループに登録しているマスタ端末ＭＴの情報が記憶されている。マスタ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００６９】
ここで、自端末ＭＴをメイングループに登録しているマスタ端末ＭＴは、１つのみである。一方、自端末ＭＴをサブグループに登録しているマスタ端末ＭＴは、複数あってもよい。
【００７０】
（基地局のハードウェア例）
次に、図７を用いて、実施の形態にかかる基地局のハードウェア例について、説明する。ここで、基地局とは、例えば、上述した基地局ＢＳである。
【００７１】
図７は、実施の形態にかかる基地局のハードウェア例を示すブロック図である。図７において、基地局ＢＳは、ＣＰＵ７０１と、ＲＯＭ７０２と、ＲＡＭ７０３と、Ｉ／Ｆ７０４と、を含む。また、各構成部はバス７１０によってそれぞれ接続されている。
【００７２】
ここで、ＣＰＵ７０１は、基地局ＢＳの全体の制御を司る。ＲＯＭ７０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ７０３は、ＣＰＵ７０１のワークエリアとして使用される。
【００７３】
Ｉ／Ｆ７０４は、基地局ＢＳとの電波の送受信を制御し、ＬＡＮ、ＷＡＮ、インターネットなどのネットワーク７２０に接続され、このネットワーク７２０を介して他の装置に接続される。そして、Ｉ／Ｆ７０４は、ネットワーク７２０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【００７４】
（グループ情報ＤＢ８００の内容）
ここで、図８を用いて、図７に示したＲＡＭ７０３に記憶されているグループ情報ＤＢ８００の内容について説明する。
【００７５】
図８は、グループ情報ＤＢ８００の内容を示す説明図である。図８において、グループ情報ＤＢ８００は、グループＩＤ項目と、マスタ端末項目と、スレーブ端末項目と、を有し、マスタ端末ＭＴからグループ情報を受信するごとにレコードを構成する。
【００７６】
ここで、グループＩＤ項目には、基地局ＢＳの通信圏Ｃ内（いわゆる「セル」）に存在するマスタ端末ＭＴが編成しているグループを、一意に特定できる識別情報（以下、「グループＩＤ」という）が記憶されている。グループＩＤには、基地局ＢＳが、マスタ端末ＭＴからグループ情報を受信した際に番号を割り振るようにしておき、割り振られた番号をグループＩＤとして採用できる。また、グループＩＤとしては、グループを編成しているマスタ端末ＭＴの端末ＩＤを採用してもよい。
【００７７】
また、マスタ端末項目には、グループＩＤが示すグループを編成しているマスタ端末ＭＴの情報が記憶されている。マスタ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００７８】
また、スレーブ端末項目には、グループＩＤが示すグループに登録されているスレーブ端末ＭＴの情報が記憶されている。スレーブ端末ＭＴの情報とは、端末ＩＤと位置情報であり、図４に示したメイングループ端末項目に記憶されるスレーブ端末ＭＴの情報と同様の情報であるため、ここでは、詳細な説明を省略する。
【００７９】
（マスタ端末ＭＴの機能例）
次に、マスタ端末ＭＴの機能例について説明する。図９は、マスタ端末ＭＴの機能例を示すブロック図である。マスタ端末ＭＴは、検出部９０１と、判定部９０２と、登録部９０３と、処理部９０４と、比較部９０５と、同期部９０６と、通知部９０７と、抽出部９０８と、削除部９０９と、検知部９１０と、比較部９１１と、解除部９１２と、監視部９１３と、取得部９１４と、検知部９１５と、回収部９１６と、を含む。この制御部となる機能（検出部９０１〜回収部９１６）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。
【００８０】
検出部９０１は、複数の装置を含む第１グループへの第１装置の追加要求を検出する機能を有する。ここで、複数の装置を含む第１グループとは、分散処理をおこなうグループであり、例えば、上述したグループＧ１，Ｇ２である。第１装置の追加要求とは、第１グループへの第１装置の登録の要求であり、例えば、基地局ＢＳが検出した第１グループの近隣の第１装置の第１グループへの登録の要求である。
【００８１】
具体的には、例えば、検出部９０１は、基地局ＢＳから、グループの近隣にあるスレーブ端末ＭＴの存在の通知を受信することにより、自端末ＭＴのグループへのスレーブ端末ＭＴの登録の要求を検出する。端末ＭＴの登録の要求には、メイングループ情報ＤＢ４００のメイングループ端末項目の内容、または、サブグループ情報ＤＢ５００のサブグループ端末項目の内容となる端末ＩＤ、位置情報の情報が含まれる。なお、検出された登録の要求は、ＲＡＭ３０３などの記憶領域に記憶される。
【００８２】
判定部９０２は、第１装置が第１グループと異なる第２グループに属するか否かを判定する機能を有する。ここで、第２グループとは、分散処理をおこなうグループである。例えば、第１グループが、上述したグループＧ１であれば、第２グループは、上述したグループＧ２である。
【００８３】
具体的には、判定部９０２は、検出部９０１によって検出された端末ＭＴが有するマスタ端末情報ＤＢ６００の内容を取得して、他のグループに所属している端末ＭＴであるか否かを判定する。なお、判定結果は、ＲＡＭ３０３などの記憶領域に記憶される。
【００８４】
登録部９０３は、第１装置が第１グループと異なる第２グループに属しないときは、第１グループの複数の装置を登録するメイングループに登録する機能を有する。ここで、メイングループとは、グループのマスタ端末ＭＴからの処理依頼を常時受け付けるスレーブ端末ＭＴが登録されるグループである。
【００８５】
具体的には、例えば、登録部９０３は、判定部９０２によって、検出されたスレーブ端末ＭＴが、他のグループに所属していないスレーブ端末ＭＴであると判定された場合、メイングループに登録する。即ち、登録部９０３は、メイングループ情報ＤＢ４００に、検出されたスレーブ端末ＭＴのレコードを登録する。これにより、他のグループの分散処理をおこなうことなく、常時、分散処理の依頼を受け付けることができるスレーブ端末ＭＴをメイングループに登録することができる。
【００８６】
登録部９０３は、第１装置が第２グループに属するときは、第１装置をサブグループに登録する機能を有する。ここで、サブグループとは、グループのマスタ端末ＭＴからの処理依頼を臨時に受け付けるスレーブ端末ＭＴが登録されるグループである。
【００８７】
具体的には、例えば、登録部９０３は、判定部９０２によって、検出されたスレーブ端末ＭＴが、他のグループに所属しているスレーブ端末ＭＴであると判定された場合は、サブグループに登録する。即ち、サブグループ情報ＤＢ５００に、検出されたスレーブ端末ＭＴのレコードが登録される。これにより、専ら他のグループの分散処理の並列処理をおこなうため、分散処理の依頼をしても実行されにくいスレーブ端末ＭＴをメイングループから除外することができる。
【００８８】
登録部９０３は、複数の装置の数である第１数が複数のタスクの数である第２数以上であるとき、第２装置をサブグループに登録する機能を有する。ここで、第１数とは、メイングループに登録されている端末ＭＴ数である。タスクとは、処理の１単位であり、例えば、上述した処理１ａ〜１ｄ，２ａ〜２ｃである。第２数とは、グループの分散処理に含まれる処理数である。具体的には、例えば、登録部９０３は、比較部９０５によって比較された結果、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上であるとき、スレーブ端末ＭＴをサブグループに登録する。
【００８９】
ここで、分散処理を並列処理するためには、処理数と同数のスレーブ端末ＭＴがあればよく、処理数以上のスレーブ端末ＭＴには割り振る処理が存在しない。そのため、処理数以上のスレーブ端末ＭＴについては、サブグループに登録してメイングループには登録しないようにすることにより、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を残しておくことができる。
【００９０】
登録部９０３は、複数の装置の数である第１数が複数のタスクの数である第２数よりも小さいとき、第２装置をメイングループに登録する機能を有する。
【００９１】
具体的には、例えば、登録部９０３は、比較部９０５によって比較された結果、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数よりも小さいとき、スレーブ端末ＭＴをメイングループに登録する。これにより、メイングループに登録されている端末ＭＴ数が処理数と同数になるまでは、スレーブ端末ＭＴをメイングループに登録することにより、分散処理の並列処理の効率化を図る。
【００９２】
処理部９０４は、メイングループに登録される複数の装置によって複数のタスクを含む分散処理をおこなう機能を有する。具体的には、例えば、処理部９０４は、自端末ＭＴとメイングループ内のスレーブ端末ＭＴとに分散処理に含まれる複数の処理を割り振って、並列処理させる。これにより、大量のデータを扱う分散処理であっても、実行時間を短縮することができる。また、大量のデータを扱うために１端末で処理する際には高い処理能力を要求される処理を、複数の端末ＭＴで分散処理することにより個々の端末ＭＴの処理能力が低くても処理できる。
【００９３】
比較部９０５は、複数の装置の数である第１数と複数のタスクの数である第２数とを比較する機能を有する。具体的には、例えば、比較部９０５は、現在メイングループに登録されている端末ＭＴ数と、分散処理に含まれる処理数と、を比較する。これにより、現在メイングループに登録されている端末ＭＴ数が、分散処理に含まれる複数の処理を割り振るのに十分な数となっているかを判断することができる。なお、現在登録されている端末ＭＴ数は、メイングループ情報ＤＢ４００のレコードの総数を計測して求められる。なお、比較結果は、ＲＡＭ３０３などの記憶領域に記憶される。
【００９４】
同期部９０６は、第１装置がサブグループに登録されるとき、第２グループに含まれる他の装置からの第１装置に対する同期要求をサブグループのマスタ端末に登録する機能を有する。具体的には、同期部９０６は、他のグループの分散処理を実行中のスレーブ端末ＭＴが、他のグループの同期処理により、実行を停止し、アイドル状態になっているか否かを登録する。すなわち、同期部９０６は、サブグループ情報ＤＢ５００の処理依頼受付可能状態項目の内容を更新する。これにより、サブグループのスレーブ端末ＭＴに処理依頼が可能かを判断することができる。
【００９５】
通知部９０７は、メイングループへの登録または不登録を基地局に通知する機能を有する。また、通知部９０７は、メイングループの登録の削除を基地局に通知する機能を有する。具体的には、例えば、通知部９０７は、登録、不登録、または登録の削除をしたスレーブ端末ＭＴの端末ＩＤを基地局に通知する。これにより、グループ情報ＤＢ８００を更新することができる。
【００９６】
抽出部９０８は、複数のタスク内のタスクが割り当てられていない第３装置をメイングループから抽出する機能を有する。具体的には、例えば、抽出部９０８は、メイングループ情報ＤＢ４００に登録されているスレーブ端末ＭＴの中から、メイングループ情報ＤＢ４００の分散処理配布状況項目を参照して、処理が割り振られていないスレーブ端末ＭＴを抽出する。これにより、処理を実行していないスレーブ端末ＭＴを抽出することができる。
【００９７】
削除部９０９は、第１数が第２数よりも大きいとき、複数のタスク内のタスクが割り当てられていない第３装置のメイングループの登録を削除する機能を有する。具体的には、例えば、削除部９０９は、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数より大きいとき、抽出部９０８によって抽出された処理が割り当てられていないスレーブ端末ＭＴの登録を削除する。より具体的には、例えば、削除部９０９は、メイングループ情報ＤＢ４００のレコードを削除する。これにより、処理数以上のスレーブ端末ＭＴが登録されている場合、処理数以上のスレーブ端末ＭＴの登録は削除するようにして、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を作成することができる。
【００９８】
削除部９０９は、メイングループに登録される第４装置の通信能力の低下を検出するときまたは第４装置のタスクの実行結果を取得するとき、第４装置のメイングループの登録を削除する機能を有する。具体的には、例えば、削除部９０９は、監視部９１３によってスレーブ端末ＭＴの通信能力の低下が検出された場合に、通信能力の低下したスレーブ端末ＭＴのメイングループへの登録を削除する。これにより、通信能力の低下したスレーブ端末ＭＴをグループから除外して、分散処理を安定して実行できるようにすることができる。
【００９９】
また、具体的には、例えば、削除部９０９は、取得部９１４によって途中処理結果が取得された場合に、途中処理結果を取得したスレーブ端末ＭＴのメイングループへの登録を削除する。より具体的には、例えば、削除部９０９は、メイングループ情報ＤＢ４００のレコードを削除する。これにより、途中処理結果を返却してきたスレーブ端末ＭＴをグループから除外することができる。
【０１００】
削除部９０９は、複数の装置で共有される共有メモリＭｃの第３装置に設定されるメモリ領域が使用されているときは、第３装置のメイングループの登録を削除しない機能を有する。メモリ領域とは、分散処理の途中処理結果の退避のためのメモリ内の領域であり、上述した分散共有メモリ領域Ｍｄである。
【０１０１】
具体的には、削除部９０９は、抽出部９０８によって抽出されたスレーブ端末ＭＴであっても、検知部９１０によって分散共有メモリ領域Ｍｄにデータがあると検知された場合には、スレーブ端末ＭＴのメイングループの登録を削除しない。これにより、メイングループから登録を削除されたスレーブ端末ＭＴの分散共有メモリ領域Ｍｄにある分散処理の途中処理結果を回収できなくなることを防止できる。
【０１０２】
検知部９１０は、抽出部９０８によって抽出された処理が割り当てられていないスレーブ端末ＭＴのメモリ領域が使用されていることを検知する機能を有する。具体的には、例えば、検知部９１０は、メイングループ情報ＤＢ４００の分散共有メモリ領域情報項目の使用量を参照して、スレーブ端末ＭＴの分散共有メモリ領域Ｍｄが使用されていることを検知する。これにより、スレーブ端末ＭＴの登録の削除により、分散処理の途中処理結果が参照できなくなる虞があることを検知できる。
【０１０３】
比較部９１１は、複数のタスク内の一のタスクが使用するメモリＭの大きさと、複数の装置で共有される共有メモリＭｃの大きさと、を比較する機能を有する。具体的には、例えば、比較部９１１は、分散処理に含まれる複数の処理の中の１タスクが使用するメモリＭのサイズと、共有メモリＭｃのサイズとを比較する。これにより、共有メモリＭｃが、途中処理結果を退避可能なサイズであるかを判断できる。
【０１０４】
解除部９１２は、複数のタスク内の一のタスクが使用するメモリＭの大きさが複数の装置で共有される共有メモリＭｃの大きさよりも大きいとき、共有メモリＭｃの設定を解除する機能を有する。具体的には、例えば、解除部９１２は、比較部９１１の比較結果を参照して、分散処理に含まれる複数の処理の中の各処理が使用するメモリＭのサイズが共有メモリＭｃのサイズより大きい場合は、グループ内の各端末ＭＴの分散共有メモリ領域Ｍｄを解放する。
【０１０５】
これにより、共有メモリＭｃとして処理結果を退避可能なサイズが確保されていない場合は、分散共有メモリ領域Ｍｄを解放することにより、スレーブ端末ＭＴのワークエリアを確保して処理を効率化する。
【０１０６】
監視部９１３は、メイングループに登録される第４装置の通信能力の低下を検出する機能を有する。具体的には、例えば、監視部９１３は、スレーブ端末ＭＴから受信した電波強度に基づいて、スレーブ端末ＭＴの通信能力を監視して、通信能力の低下を検出する。これにより、データの送受信が困難になる虞のあるスレーブ端末ＭＴを検出することができる。
【０１０７】
取得部９１４は、第４装置のタスクの実行結果を取得する機能を有する。具体的には、例えば、取得部９１４は、割り振った処理を中止したスレーブ端末ＭＴから送信された途中処理結果を受信する。これにより、途中処理結果を回収して、分散処理を続行できる。
【０１０８】
検知部９１５は、削除部９０９によって登録の削除の対象になったスレーブ端末ＭＴのメモリ領域が使用されていることを検知する機能を有する。具体的には、例えば、検知部９１５は、メイングループ情報ＤＢ４００の分散共有メモリ領域情報項目の使用量を参照して、スレーブ端末ＭＴの分散共有メモリ領域Ｍｄが使用されていることを検知する。これにより、スレーブ端末ＭＴの登録の削除の際に、分散共有メモリ領域Ｍｄに回収すべき途中処理結果があることを検知できる。
【０１０９】
回収部９１６は、複数の装置で共有される共有メモリＭｃの第４装置に設定されるメモリ領域が使用されているときはメモリ領域のデータを回収する機能を有する。具体的には、例えば、回収部９１６は、検知部９１５によって分散共有メモリ領域Ｍｄが使用されていることが検知された場合、分散共有メモリ領域Ｍｄのデータを回収する。これにより、分散処理の途中処理結果を回収して、分散処理を続行することができる。
【０１１０】
（スレーブ端末ＭＴの機能例）
次に、スレーブ端末ＭＴの機能例について説明する。図１０は、スレーブ端末ＭＴの機能例を示すブロック図である。スレーブ端末ＭＴは、検出部１００１と、通知部１００２と、受信部１００３と、検知部１００４と、移行部１００５と、を含む。この制御部となる機能（検出部１００１〜移行部１００５）は、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。
【０１１１】
検出部１００１は、第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出する機能を有する。ここで、第１グループとは、分散処理をおこなうグループである。同期要求とは、第２装置から第１装置への処理の中断の要求である。
【０１１２】
具体的には、例えば、検出部１００１は、自端末ＭＴと、所属しているメイングループの他の端末ＭＴと、がそれぞれ実行している処理が、同期制御の対象になる処理である場合に、処理の中断の要求を検出する。これにより、同期制御をおこない、分散処理を正常に実行する。
【０１１３】
また、検出部１００１は、第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行の開始を検出する。具体的には、検出部１００１は、マスタ端末ＭＴから割り振られた処理よりも、優先して実行すべき処理が発生したことを検出する。これにより、マスタ端末ＭＴから割り振られた処理より優先度の高い処理が、自端末ＭＴ内で発生した場合は、優先度の高い処理を優先して実行することができる。
【０１１４】
第１装置が、第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録される。このとき、通知部１００２は、サブグループに登録するためにメイングループおよびサブグループを管理する装置に同期要求を通知する機能を有する。ここで、第１装置は、メイングループと、サブグループと、に所属している。
【０１１５】
具体的には、通知部１００２は、同期要求を検出して、処理を中断したことにより、ＣＰＵ３０１がアイドル状態となり、サブグループからの処理依頼を受付可能な状態になったことを、サブグループのマスタ端末ＭＴに通知する。これにより、アイドル状態となったＣＰＵ３０１を、サブグループの分散処理に提供することで、サブグループの分散処理の効率化を図ることができる。
【０１１６】
受信部１００３は、第１グループからの削除要求を受信する機能を有する。具体的には、受信部１００３は、メイングループのマスタ端末ＭＴからの登録の削除要求を受信する。これにより、メイングループからの登録の削除を把握できる。
【０１１７】
また、受信部１００３は、第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行依頼を受信する機能を有する。具体的には、受信部１００３は、メイングループのマスタ端末ＭＴからの処理依頼を受信する。これにより、メイングループの分散処理の実行を開始することができる。
【０１１８】
検知部１００４は、第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクが第１装置に割り当てられていることを検知する機能を有する。具体的には、検知部１００４は、メイングループの分散処理が割り振られていることを検知する。これにより、メイングループからの登録を削除する際に、メイングループのマスタ端末ＭＴに返却する途中処理結果を保持しているかを検知することができる。
【０１１９】
また、検知部１００４は、第１グループに含まれる複数の装置で共有される共有メモリＭｃのメモリ領域が使用されていることを検知する機能を有する。ここで、メモリ領域とは、上述した分散共有メモリ領域Ｍｄである。具体的には、検知部１００４は、メイングループの共有メモリＭｃに提供している分散共有メモリ領域Ｍｄにデータが保持されていることを検知する。これにより、メイングループからの登録を削除する際に、メイングループのマスタ端末ＭＴに返却するデータを保持しているかを検知することができる。
【０１２０】
また、検知部１００４は、第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが第１装置に割り当てられていることを検知する機能を有する。具体的には、検知部１００４は、サブグループの分散処理が割り振られていることを検知する。これにより、実行中の処理がサブグループの処理であることを検知できる。
【０１２１】
移行部１００５は、タスクを第１グループに含まれる複数の装置の一の装置に移行する機能を有する。具体的には、移行部１００５は、検知部１００４によってメイングループの分散処理に含まれる処理が割り当てられていることが検知された場合に、途中処理結果をメイングループの他の端末ＭＴに移行する。これにより、メイングループからの登録を削除された場合であっても、メイングループの分散処理を続行させることができる。
【０１２２】
また、移行部１００５は、メモリ領域のデータを第１グループに含まれる複数の装置の一の装置に移行する機能を有する。具体的には、移行部１００５は、検知部１００４によって分散共有メモリ領域Ｍｄにデータが保持されていることが検知された場合に、分散共有メモリ領域Ｍｄのデータをメイングループの他の端末ＭＴに移行する。これにより、メイングループからの登録を削除された場合であっても、メイングループの分散処理を続行させることができる。
【０１２３】
また、移行部１００５は、タスクを第２グループに含まれる複数の装置の一の装置に移行する機能を有する。具体的には、例えば、移行部１００５は、受信部１００３によって受信された処理依頼によりメイングループの処理の実行を開始する際に、実行中のサブグループの処理の途中処理結果をサブグループの他の端末ＭＴに移行することができる。
【０１２４】
また、具体的には、例えば、移行部１００５は、検出部１００１によって自端末ＭＴ内で処理すべき処理が発生した際に、実行中のサブグループの処理の途中処理結果をサブグループの他の端末ＭＴに移行することができる。これにより、サブグループの処理より優先して処理すべき処理が自端末ＭＴ内で発生した場合に、途中処理結果を返却することでサブグループの分散処理を続行させることができる。
【０１２５】
（グループの編成の内容）
ここで、図１１〜図１５を用いて、図１に示したマスタ端末ＭＴによる分散処理をおこなうグループの編成において、マスタ端末ＭＴ、スレーブ端末ＭＴ、および基地局がおこなう処理の内容について説明する。
【０１２６】
まず、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理について説明する。マスタ端末ＭＴは、スレーブ端末ＭＴの登録処理を、図１１で示す登録処理１か、図１２で示す登録処理２か、のいずれか一方を採用して実行する。
【０１２７】
（マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１）
ここで、図１１を用いて、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１の詳細について説明する。登録処理１は、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録した場合に、処理を終了する場合のマスタ端末ＭＴの処理例を示す。
【０１２８】
図１１は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理１の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、通信圏内の端末ＭＴを検出する（ステップＳ１１０１）。次に、ＣＰＵ３０１は、検出された端末ＭＴの中に、グループに所属可能な端末ＭＴが存在するか否かを判定する（ステップＳ１１０２）。
【０１２９】
ここで、グループに所属可能な端末ＭＴが存在する場合（ステップＳ１１０２：Ｙｅｓ）、ＣＰＵ３０１は、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下であるか否かを判定する（ステップＳ１１０３）。
【０１３０】
ここで、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数より大きい場合（ステップＳ１１０３：Ｎｏ）、ＣＰＵ３０１は、グループ所属確認通知を端末ＭＴに送信する（ステップＳ１１０４）。そして、ＣＰＵ３０１は、グループ所属確認通知に対する応答を受信したか否かを判定する（ステップＳ１１０５）。
【０１３１】
ここで、応答を受信していない場合（ステップＳ１１０５：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１１０５に戻り、応答の受信を待つ。一方、応答を受信した場合（ステップＳ１１０５：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴが既に他のメイングループに所属しているか否かを判定する（ステップＳ１１０６）。
【０１３２】
ここで、端末ＭＴがまだ他のメイングループに所属していない場合（ステップＳ１１０６：Ｎｏ）、ＣＰＵ３０１は、端末ＭＴをメイングループに登録して（ステップＳ１１０７）、ステップＳ１１０２に戻る。
【０１３３】
一方、端末ＭＴが既に他のメイングループに所属している場合（ステップＳ１１０６：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴをサブグループに登録して（ステップＳ１１０８）、ステップＳ１１０２に戻る。
【０１３４】
また、ステップＳ１１０２にて、グループに所属可能な端末ＭＴが存在しない場合（ステップＳ１１０２：Ｎｏ）、ＣＰＵ３０１は、グループ情報を送信して（ステップＳ１１０９）、登録処理を終了する。
【０１３５】
また、ステップＳ１１０３にて、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下である場合（ステップＳ１１０３：Ｙｅｓ）、ＣＰＵ３０１は、グループ情報を送信して（ステップＳ１１０９）、登録処理を終了する。
【０１３６】
これにより、マスタ端末ＭＴは、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録することができる。また、マスタ端末ＭＴは、他のグループに所属している端末ＭＴは、メイングループに登録せず、サブグループに登録する。そのため、専ら他のグループの分散処理にＣＰＵ３０１を使用する端末ＭＴには、極力分散処理の処理を割り振らないようにできる。
【０１３７】
また、この際、マスタ端末ＭＴは、グループ内の端末ＭＴに共有メモリＭｃの作成を通知して、各端末ＭＴから提供された分散共有メモリ領域Ｍｄの集合となる共有メモリＭｃを作成してもよい。共有メモリＭｃを作成した場合、マスタ端末ＭＴは、共有メモリＭｃをアドレッシングしておく。
【０１３８】
（マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２）
次に、図１２を用いて、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２の詳細について説明する。登録処理２は、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録した場合であっても、登録可能な端末ＭＴが残っている限り登録処理を続行する場合のマスタ端末ＭＴの処理例を示す。
【０１３９】
図１２は、マスタ端末ＭＴによるスレーブ端末ＭＴの登録処理２の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、通信圏内の端末ＭＴを検出する（ステップＳ１２０１）。次に、ＣＰＵ３０１は、検出された端末ＭＴの中に、グループに所属可能な端末ＭＴが存在するか否かを判定する（ステップＳ１２０２）。
【０１４０】
ここで、グループに所属可能な端末ＭＴが存在する場合（ステップＳ１２０２：Ｙｅｓ）、ＣＰＵ３０１は、グループ所属確認通知を端末ＭＴに送信する（ステップＳ１２０３）。そして、ＣＰＵ３０１は、グループ所属確認通知に対する応答を受信したか否かを判定する（ステップＳ１２０４）。
【０１４１】
ここで、応答を受信していない場合（ステップＳ１２０４：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１２０４に戻り、応答の受信を待つ。一方、応答を受信した場合（ステップＳ１２０４：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴが既に他のメイングループに所属しているか否かを判定する（ステップＳ１２０５）。
【０１４２】
ここで、端末ＭＴが既に他のメイングループに所属している場合（ステップＳ１２０５：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴをサブグループに登録して（ステップＳ１２０８）、ステップＳ１２０２に戻る。
【０１４３】
一方、端末ＭＴがまだ他のメイングループに所属していない場合（ステップＳ１２０５：Ｎｏ）、ＣＰＵ３０１は、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下であるか否かを判定する（ステップＳ１２０６）。
【０１４４】
ここで、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数より大きい場合（ステップＳ１２０６：Ｎｏ）、ＣＰＵ３０１は、端末ＭＴをメイングループに登録して（ステップＳ１２０７）、ステップＳ１２０２に戻る。
【０１４５】
一方、分散処理に含まれる処理数が現在メイングループに登録されている端末ＭＴ数以下である場合（ステップＳ１２０６：Ｙｅｓ）、ＣＰＵ３０１は、端末ＭＴをサブグループに登録して（ステップＳ１２０８）、ステップＳ１２０２に戻る。
【０１４６】
また、ステップＳ１２０２にて、グループに所属可能な端末ＭＴが存在しない場合（ステップＳ１２０２：Ｎｏ）、ＣＰＵ３０１は、グループ情報を送信して（ステップＳ１２０９）、登録処理を終了する。
【０１４７】
これにより、マスタ端末ＭＴは、分散処理に含まれる全処理を並列処理するのに十分な数の端末ＭＴをメイングループに登録することができる。また、マスタ端末ＭＴは、グループに登録可能な端末ＭＴが存在する限り、サブグループに登録を続行することができる。また、マスタ端末ＭＴは、他のグループに所属している端末ＭＴは、メイングループに登録せず、サブグループに登録する。そのため、専ら他のグループの分散処理にＣＰＵ３０１を使用する端末ＭＴには、極力分散処理の処理を割り振らないようにできる。
【０１４８】
（マスタ端末ＭＴからのグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理）
次に、図１３を用いて、ステップＳ１１０４またはステップＳ１２０３においてマスタ端末ＭＴにより送信されたグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理の内容について説明する。
【０１４９】
図１３は、マスタ端末ＭＴからのグループ所属確認通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、マスタ端末ＭＴからのグループ所属確認通知を受信したか否かを判定する（ステップＳ１３０１）。
【０１５０】
ここで、グループ所属確認通知を受信していない場合（ステップＳ１３０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１３０１に戻り、グループ所属確認通知の受信を待つ。一方、グループ所属確認通知を受信した場合（ステップＳ１３０１：Ｙｅｓ）、ＣＰＵ３０１は、自端末ＭＴが既に他のメイングループに所属しているか否かを判定する（ステップＳ１３０２）。
【０１５１】
ここで、他のメイングループに所属していない場合（ステップＳ１３０２：Ｎｏ）、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴをメイングループのマスタ端末ＭＴとして登録する（ステップＳ１３０３）。そして、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴに、他のメイングループに所属していないことを通知して（ステップＳ１３０４）、ステップＳ１３０１に戻る。
【０１５２】
一方、他のメイングループに所属している場合（ステップＳ１３０２：Ｙｅｓ）、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴをサブグループのマスタ端末ＭＴとして登録する（ステップＳ１３０５）。そして、ＣＰＵ３０１は、グループ所属確認通知の送信元のマスタ端末ＭＴに、他のメイングループに所属していることを通知して（ステップＳ１３０６）、ステップＳ１３０１に戻る。
【０１５３】
これにより、スレーブ端末ＭＴは、自端末ＭＴのグループへの所属状況を、マスタ端末ＭＴに通知することができる。
【０１５４】
（基地局ＢＳによる端末ＭＴの位置情報の送信処理）
次に、図１４を用いて、基地局ＢＳによる端末ＭＴの位置情報の送信処理について説明する。ここで、送信された端末ＭＴの位置情報が、ステップＳ１１０１またはステップＳ１２０１においてマスタ端末ＭＴにより受信される。
【０１５５】
図１４は、基地局ＢＳによる端末ＭＴの位置情報の送信処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴが存在するか否かを判定する（ステップＳ１４０１）。ここで、グループに所属していない端末ＭＴが存在しない場合（ステップＳ１４０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１４０１に戻り、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴがないか判定を続ける。
【０１５６】
一方、ＣＰＵ３０１は、グループに所属していない端末ＭＴが存在する場合（ステップＳ１４０１：Ｙｅｓ）、端末ＭＴの位置情報を取得する（ステップＳ１４０２）。次に、ＣＰＵ３０１は、取得した位置情報に最も近い位置にあるグループを特定する（ステップＳ１４０３）。そして、ＣＰＵ３０１は、特定したグループのマスタ端末ＭＴに、グループに所属していない端末ＭＴが存在することを通知する（ステップＳ１４０４）。
【０１５７】
次に、ＣＰＵ３０１は、特定したグループに、所属していない端末ＭＴが登録されたか否かを判定する（ステップＳ１４０５）。ここで、登録された場合（ステップＳ１４０５：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ１４０１に戻り、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴがないか判定を続ける。
【０１５８】
一方、登録されていない場合（ステップＳ１４０５：Ｎｏ）、ＣＰＵ３０１は、取得した位置情報に近い位置にある別のグループが存在するか否かを判定する（ステップＳ１４０６）。ここで、別のグループが存在しない場合（ステップＳ１４０６：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１４０１に戻り、基地局ＢＳの通信圏Ｃ内にグループに所属していない端末ＭＴがないか判定を続ける。
【０１５９】
一方、別のグループが存在する場合（ステップＳ１４０６：Ｙｅｓ）、ＣＰＵ３０１は、別のグループのマスタ端末ＭＴに、グループに所属していない端末ＭＴが存在することを通知する（ステップＳ１４０７）。そして、ＣＰＵ３０１は、ステップＳ１４０５に戻り、別のグループに登録されるか否かの判定をおこなう。
【０１６０】
これにより、グループに所属していない端末ＭＴの存在を、最も位置が近いグループのマスタ端末ＭＴに通知して、グループへの登録処理を開始させることができる。そのため、グループに所属していない端末ＭＴとのアドホック通信が最も高速におこなえると解されるマスタ端末ＭＴに、最初にグループへの登録処理を開始させることができる。
【０１６１】
また、１グループに登録されなかった場合、他のグループのマスタ端末ＭＴに再度通知して、グループへの登録処理を開始させることができる。そのため、最も近いグループ以外で、分散処理に端末ＭＴを使用するグループがあれば、登録させることができる。
【０１６２】
（基地局ＢＳによるグループ情報の登録処理）
次に、図１５を用いて、ステップＳ１１０９またはステップＳ１２０９においてマスタ端末ＭＴにより送信されたグループ情報を受信した基地局ＢＳによるグループ情報の登録処理について説明する。
【０１６３】
図１５は、基地局ＢＳによるグループ情報の登録処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、マスタ端末ＭＴからグループ情報を受信したか否かを判定する（ステップＳ１５０１）。
【０１６４】
ここで、グループ情報を受信していない場合（ステップＳ１５０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１５０１に戻り、グループ情報の受信を待つ。一方、グループ情報を受信した場合（ステップＳ１５０１：Ｙｅｓ）、ＣＰＵ３０１は、グループ情報の更新をおこない（ステップＳ１５０２）、ステップＳ１５０１に戻り、グループ情報の受信を待つ。
【０１６５】
これにより、グループ情報を最新の状態に保ち、基地局ＢＳの通信圏Ｃ内に存在する端末ＭＴが、グループに所属している端末ＭＴか否かを判定することができる。
【０１６６】
（分散処理をおこなうグループの再編成の内容）
次に、図１６〜図２６を用いて、分散処理の実行を開始した後におけるグループの再編成の内容について説明する。
【０１６７】
（基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入った場合におけるグループの再編成の内容）
まず、図１６を用いて、基地局ＢＳの通信圏Ｃ内にグループに所属していないあらたな端末ＭＴが入った場合におけるグループの再編成の内容について説明する。
【０１６８】
図１６は、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入った場合におけるグループの再編成の内容を示す説明図である。図１６では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ５が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３とを含むグループＧ１を編成している。
【０１６９】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｂを自端末ＭＴ１に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。
【０１７０】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４とを含むグループＧ２を編成している。
【０１７１】
グループＧ２において、マスタ端末ＭＴ５は、処理２ｂを端末ＭＴ４に割り振り、処理２ａを自端末ＭＴ５に割り振り、それぞれ並列処理させている。また、処理２ｃは、まだ実行されていない。
【０１７２】
（１）ここで、端末ＭＴ６が移動して、基地局ＢＳの通信圏外から通信圏Ｃ内へと入ってきた場合を想定する。
【０１７３】
（２）端末ＭＴ６が基地局ＢＳの通信圏Ｃ内へと入ってくると、基地局ＢＳは、端末ＭＴ６の位置情報を取得する。（３）そして、基地局ＢＳは、取得した位置情報に最も近い位置にあるグループＧ１に、端末ＭＴ６の位置情報を通知する。
【０１７４】
（４）通知を受信したマスタ端末ＭＴ１は、端末ＭＴ６のグループＧ１への登録処理を開始する。ここで、グループＧ１では、既に、処理１ａは終了しており、処理１ｂ〜１ｄは端末ＭＴ１〜ＭＴ３において実行中である。即ち、端末ＭＴ６をグループＧ１に登録しても割り振る処理が存在しない。そのため、マスタ端末ＭＴ１は、基地局ＢＳに登録不要の通知を送信する。
【０１７５】
（５）基地局ＢＳは、登録不要の通知を受信すると、グループＧ１の次に端末ＭＴ６に近い位置にあるグループＧ２に、端末ＭＴ６の位置情報を通知する。
【０１７６】
（６）通知を受信したマスタ端末ＭＴ５は、端末ＭＴ６のグループＧ２への登録処理を開始する。ここで、グループＧ２では、まだ実行されていない処理２ｃが残っている。そのため、マスタ端末ＭＴ５は、端末ＭＴ６をグループＧ２に登録して、グループを再編成し、処理２ｃを端末ＭＴ６に割り振って、分散処理２の並列処理をおこなう。
【０１７７】
このように、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入ってきた場合は、分散処理に含まれる複数の処理の中に、実行が開始されていない処理が残っているグループにあらたな端末ＭＴを登録させて、グループを再編成させることができる。そのため、再編成したグループは、あらたな端末ＭＴに、処理を割り振って、効率よく分散処理をおこなうことができる。
【０１７８】
（マスタ端末ＭＴによるグループの再編成処理）
ここで、図１７を用いて、図１６に示したマスタ端末ＭＴによるグループの再編成処理について説明する。
【０１７９】
図１７は、マスタ端末ＭＴによるグループの再編成処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、基地局ＢＳからのあらたな端末ＭＴの位置情報の通知を受信したか否かを判定する（ステップＳ１７０１）。ここで、通知を受信していない場合（ステップＳ１７０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１７０１に戻り、基地局ＢＳからの通知を待つ。
【０１８０】
一方、通知を受信した場合（ステップＳ１７０１：Ｙｅｓ）、ＣＰＵ３０１は、分散処理内の実行が終了していない処理数がグループに所属している端末ＭＴ数より多いか否かを判定する（ステップＳ１７０２）。
【０１８１】
ここで、実行が終了していない処理数がグループに所属している端末ＭＴ数より多い場合（ステップＳ１７０２：Ｙｅｓ）、ＣＰＵ３０１は、通知された端末ＭＴをメイングループに登録する（ステップＳ１７０３）。次に、ＣＰＵ３０１は、登録した端末ＭＴと基地局ＢＳとにメイングループへの登録を通知する（ステップＳ１７０４）。そして、ＣＰＵ３０１は、登録した端末ＭＴを含むグループ内において共有メモリＭｃを作成し（ステップＳ１７０５）、ステップＳ１７０１に戻り、基地局ＢＳからの通知を待つ。
【０１８２】
一方、実行が終了していない処理数がグループに所属している端末ＭＴ数以下である場合（ステップＳ１７０２：Ｎｏ）、ＣＰＵ３０１は、メイングループに登録しないことを示す通知を、登録しなかった端末ＭＴと基地局ＢＳとに送信する（ステップＳ１７０６）。そして、ＣＰＵ３０１は、ステップＳ１７０１に戻り、基地局ＢＳからの通知を待つ。
【０１８３】
これにより、基地局ＢＳの通信圏Ｃ内にあらたな端末ＭＴが入ってきた場合は、分散処理に含まれる複数の処理の中に、実行が開始されていない処理が残っているグループにあらたな端末ＭＴを登録させて、グループを再編成させることができる。
【０１８４】
なお、図１６に示した基地局ＢＳの送信処理および登録処理と、スレーブ端末ＭＴの応答処理とは、図１３〜図１５に示した処理と同様のため、ここでは、詳細な説明を省略する。
【０１８５】
（グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容）
次に、図１８を用いて、グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容について説明する。
【０１８６】
図１８は、グループ内のスレーブ端末ＭＴが割り振られた処理の実行を終了した場合におけるグループの再編成の内容を示す説明図である。図１８では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ６が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３，ＭＴ６とを含むグループＧ１を編成している。
【０１８７】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｂを端末ＭＴ６に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。
【０１８８】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４とを含むグループＧ２を編成している。
【０１８９】
グループＧ２において、マスタ端末ＭＴ５は、処理２ｂを端末ＭＴ４に割り振り、処理２ａを自端末ＭＴ５に割り振り、それぞれ並列処理させている。また、処理２ｃは、まだ実行されていない。
【０１９０】
（１）ここで、グループＧ１内の端末ＭＴ６が、処理１ｂの実行を終了した場合を想定する。端末ＭＴ６は、処理１ｂの実行を終了すると、処理１ｂの処理結果をマスタ端末ＭＴ１に返却する。
【０１９１】
（２）処理１ｂの処理結果を返却されたマスタ端末ＭＴ１は、端末ＭＴ６にさらに割り振ることができる処理が残っているか否かを判定する。グループＧ１では、実行が開始されていない処理は残っていないため、端末ＭＴ６に割り振る処理が存在しない。そのため、マスタ端末ＭＴ１は、端末ＭＴ６をグループＧ１から除外する。
【０１９２】
（３）そして、マスタ端末ＭＴ１は、端末ＭＴ６の登録が削除されたグループＧ１のグループ情報を基地局ＢＳに送信する。これにより、基地局ＢＳは、基地局ＢＳに記憶されているグループ情報を更新する。
【０１９３】
（４）グループ情報を更新した基地局ＢＳは、グループＧ１から除外された端末ＭＴ６の近い位置にあるグループＧ１以外のグループのマスタ端末ＭＴに、端末ＭＴ６の位置情報を通知する。ここでは、基地局ＢＳは、グループＧ２のマスタ端末ＭＴ５に、端末ＭＴ６の位置情報を通知する。
【０１９４】
（５）通知を受信したマスタ端末ＭＴ５は、端末ＭＴ６のグループＧ２への登録処理を開始する。ここで、グループＧ２では、まだ実行されていない処理２ｃが残っている。そのため、マスタ端末ＭＴ５は、端末ＭＴ６をグループＧ２に登録して、グループを再編成し、処理２ｃを端末ＭＴ６に割り振って、分散処理２の並列処理をおこなう。
【０１９５】
このように、マスタ端末ＭＴは、処理を終了した端末ＭＴをグループから除外する。そのため、分散処理に含まれる複数の処理の中に、実行が開始されていない処理が残っている他のグループに除外された端末ＭＴを登録させて、グループを再編成させることができる。そのため、再編成したグループは、あらたな端末ＭＴに、処理を割り振って、効率よく分散処理をおこなうことができる。
【０１９６】
（マスタ端末ＭＴによるグループの登録の削除処理）
ここで、図１９を用いて、図１８に示したマスタ端末ＭＴによるグループの登録の削除処理について説明する。
【０１９７】
図１９は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、実行を終了していない処理数がグループに所属している端末ＭＴ数より少ないか否かを判定する（ステップＳ１９０１）。ここで、実行を終了していない処理数がグループに所属している端末ＭＴ数以上の場合（ステップＳ１９０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１９０１に戻る。
【０１９８】
一方、実行を終了していない処理数がグループに所属している端末ＭＴ数より少ない場合（ステップＳ１９０１：Ｙｅｓ）、ＣＰＵ３０１は、処理を実行していない端末ＭＴの分散共有メモリ領域Ｍｄが使用中か否かを判定する（ステップＳ１９０２）。ここで、使用中の場合（ステップＳ１９０２：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ１９０１に戻る。
【０１９９】
一方、使用中ではない場合（ステップＳ１９０２：Ｎｏ）、ＣＰＵ３０１は、処理を実行していない端末ＭＴに、登録の削除通知と処理終了通知を送信する（ステップＳ１９０３）。そして、ＣＰＵ３０１は、基地局ＢＳに、グループ情報を送信する（ステップＳ１９０４）。
【０２００】
次に、ＣＰＵ３０１は、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きいか否かを判定する（ステップＳ１９０５）。ここで、処理中の処理のサイズが共有メモリＭｃのサイズ以下である場合（ステップＳ１９０５：Ｎｏ）、ＣＰＵ３０１は、ステップＳ１９０１に戻る。
【０２０１】
一方、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きい場合（ステップＳ１９０５：Ｙｅｓ）、ＣＰＵ３０１は、グループ内に共有メモリＭｃを使用中の端末ＭＴが存在するか否かを判定する（ステップＳ１９０６）。
【０２０２】
ここで、共有メモリＭｃを使用中の端末ＭＴが存在する場合（ステップＳ１９０６：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ１９０６に戻る。一方、共有メモリＭｃを使用中の端末ＭＴが存在しない場合（ステップＳ１９０６：Ｎｏ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄの解消通知を送信して（ステップＳ１９０７）、ステップＳ１９０１に戻る。これにより、割り振る処理がない端末ＭＴの登録を削除することができる。
【０２０３】
（マスタ端末ＭＴからの登録の削除通知を受信したスレーブ端末ＭＴによる応答処理）
ここで、図２０を用いて、ステップＳ１９０３においてマスタ端末ＭＴにより送信された登録の削除通知を受信したスレーブ端末ＭＴによる応答処理について説明する。
【０２０４】
図２０は、マスタ端末ＭＴからの登録の削除通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、登録の削除通知を受信したか否かを判定する（ステップＳ２００１）。ここで、登録の削除通知を受信していない場合（ステップＳ２００１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２００１に戻り、登録の削除通知の受信を待つ。
【０２０５】
一方、登録の削除通知を受信した場合（ステップＳ２００１：Ｙｅｓ）、ＣＰＵ３０１は、分散処理に含まれる処理を所持しているか否かを判定する（ステップＳ２００２）。ここで、処理を所持していない場合（ステップＳ２００２：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２００４に移行する。
【０２０６】
一方、処理を所持している場合（ステップＳ２００２：Ｙｅｓ）、ＣＰＵ３０１は、マスタ端末ＭＴへ所持している処理の処理結果を返却して（ステップＳ２００３）、ステップＳ２００４に移行する。
【０２０７】
そして、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄが使用中か否かを判定する（ステップＳ２００４）。ここで、使用中でない場合（ステップＳ２００４：Ｎｏ）、ＣＰＵ３０１は、応答処理を終了する。
【０２０８】
一方、使用中の場合（ステップＳ２００４：Ｙｅｓ）、ＣＰＵ３０１は、マスタ端末ＭＴへ分散共有メモリ領域Ｍｄにあるデータを送信して（ステップＳ２００５）、応答処理を終了する。
【０２０９】
これにより、グループから登録を削除されたスレーブ端末ＭＴは、自端末ＭＴが有していた処理結果や分散共有メモリ領域Ｍｄのデータを、マスタ端末ＭＴに返却することができる。そのため、分散処理中にグループから端末ＭＴの登録が削除されても、分散処理を続行できる。
【０２１０】
（マスタ端末ＭＴからの処理終了通知を受信したスレーブ端末ＭＴによる応答処理）
ここで、図２１を用いて、ステップＳ１９０３においてマスタ端末ＭＴにより送信された処理終了通知を受信したスレーブ端末ＭＴによる応答処理について説明する。
【０２１１】
図２１は、マスタ端末ＭＴからの処理終了通知を受信したスレーブ端末ＭＴによる応答処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、処理終了通知を受信したか否かを判定する（ステップＳ２１０１）。ここで、処理終了通知を受信していない場合（ステップＳ２１０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２１０１に戻り、処理終了通知の受信を待つ。
【０２１２】
一方、処理終了通知を受信した場合（ステップＳ２１０１：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄの解消通知を受信したか否かを判定する（ステップＳ２１０２）。ここで、解消通知を受信していない場合（ステップＳ２１０２：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２１０２に戻り、解消通知の受信を待つ。
【０２１３】
一方、解消通知を受信した場合（ステップＳ２１０２：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄを解放し（ステップＳ２１０３）、応答処理を終了する。これにより、グループから登録を削除された端末ＭＴは、分散共有メモリ領域Ｍｄを解放して、解放したメモリ領域を、自端末ＭＴが発生させた処理に使用することができるようになる。
【０２１４】
なお、図１８に示したマスタ端末ＭＴの再編成処理と、基地局ＢＳの送信処理および登録処理とは、図１４，図１５および図１７に示した処理と同様のため、ここでは、詳細な説明を省略する。
【０２１５】
（グループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容）
次に、図２２を用いて、マスタ端末ＭＴとグループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容について説明する。
【０２１６】
図２２は、グループ内の端末ＭＴとの通信状況が悪化した場合におけるグループの再編成の内容を示す説明図である。図２２では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ３が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３とを含むグループＧ１を編成している。
【０２１７】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｂを自端末ＭＴ１に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。
【０２１８】
（１）ここで、端末ＭＴ２が移動することにより、端末ＭＴ２とマスタ端末ＭＴ１との距離が離れてしまい、通信状況が悪化した場合を想定する。
【０２１９】
（２）マスタ端末ＭＴ１は、通信状況を監視することにより、端末ＭＴ２との通信状況の悪化を検出する。具体的には、マスタ端末ＭＴ１は、通信強度を監視することにより通信状況の悪化を検出する。
【０２２０】
（３）通信状況の悪化を検出すると、マスタ端末ＭＴ１は、端末ＭＴ２から途中処理結果を回収し、グループＧ１から端末ＭＴ２を除外する。
【０２２１】
（４）そして、マスタ端末ＭＴ１は、端末ＭＴ２の登録が削除されたグループＧ１のグループ情報を基地局ＢＳに送信する。これにより、基地局ＢＳは、基地局ＢＳに記憶されているグループ情報を更新する。
【０２２２】
これにより、通信状況の悪化により、途中処理結果を回収できなくなってしまう前に、途中処理結果を回収することができる。また、途中処理結果を回収できなくなるおそれがある端末ＭＴをグループから除外することにより、安定した分散処理をすることができる。なお、マスタ端末ＭＴ１が移動することにより、通信状況が悪化した場合であっても、同様にグループを再編成する。
【０２２３】
（マスタ端末ＭＴによるグループの登録の削除処理）
ここで、図２３を用いて、図２２に示したマスタ端末ＭＴによるグループの登録の削除処理について説明する。
【０２２４】
図２３は、マスタ端末ＭＴによるグループの登録の削除処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、通信状況を監視し、通信状況が悪化したか否かを判定する（ステップＳ２３０１）。ここで、通信状況が悪化していない場合（ステップＳ２３０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２３０１に戻り、通信状況の監視を続ける。
【０２２５】
一方、通信状況が悪化した場合（ステップＳ２３０１：Ｙｅｓ）、ＣＰＵ３０１は、途中処理結果の回収通知を送信する（ステップＳ２３０２）。次に、ＣＰＵ３０１は、端末ＭＴの分散共有メモリ領域Ｍｄが使用中か否かを判定する（ステップＳ２３０３）。ここで、分散共有メモリ領域Ｍｄが使用中である場合（ステップＳ２３０３：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ２３０５に移行する。
【０２２６】
一方、分散共有メモリ領域Ｍｄが使用中ではない場合（ステップＳ２３０３：Ｎｏ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄのデータを回収して（ステップＳ２３０４）、ステップＳ２３０５に移行する。
【０２２７】
次に、ＣＰＵ３０１は、グループの登録を削除して、登録の削除通知と処理終了通知を送信する（ステップＳ２３０５）。そして、ＣＰＵ３０１は、グループ情報を基地局ＢＳに送信する（ステップＳ２３０６）。
【０２２８】
次に、ＣＰＵ３０１は、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きいか否かを判定する（ステップＳ２３０７）。ここで、処理中の処理のサイズが共有メモリＭｃのサイズ以下である場合（ステップＳ２３０７：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２３０１に戻る。
【０２２９】
一方、分散処理に含まれる複数の処理のうち処理中の処理のサイズが共有メモリＭｃのサイズより大きい場合（ステップＳ２３０７：Ｙｅｓ）、ＣＰＵ３０１は、グループ内に共有メモリＭｃを使用中の端末ＭＴが存在するか否かを判定する（ステップＳ２３０８）。
【０２３０】
ここで、共有メモリＭｃを使用中の端末ＭＴが存在する場合（ステップＳ２３０８：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ２３０８に戻る。一方、共有メモリＭｃを使用中の端末ＭＴが存在しない場合（ステップＳ２３０８：Ｎｏ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄの解消通知を送信して（ステップＳ２３０９）、ステップＳ２３０１に戻る。
【０２３１】
これにより、通信状況が悪化した端末ＭＴの登録を削除することができる。また、通信状況が悪化した端末ＭＴが有する途中処理結果や分散共有メモリ領域Ｍｄのデータを回収することができる。
【０２３２】
（サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容）
次に、図２４を用いて、サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容について説明する。
【０２３３】
図２４は、サブグループの分散処理を実行中の端末ＭＴによるメイングループの分散処理の実行の開始の内容を示す説明図である。図２４では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ５が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３とを含むグループＧ１を編成している。
【０２３４】
グループＧ１において、マスタ端末ＭＴ１は、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。また、処理１ａは、既に実行を終了している。そして、処理１ｂは、まだ実行されていない。
【０２３５】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４と、マスタ端末ＭＴ５のスレーブ端末ＭＴにもなる端末ＭＴ１とを含むグループＧ２を編成している。
【０２３６】
グループＧ２において、マスタ端末ＭＴ５は、処理２ａを自端末ＭＴ５に割り振り、処理２ｂを端末ＭＴ４に割り振り、処理２ｃを端末ＭＴ１に割り振り、それぞれ並列処理させている。
【０２３７】
このように、端末ＭＴ１が、自端末ＭＴ１のグループＧ１のメイングループであり、かつ、端末ＭＴ５のグループＧ２のサブグループである場合を例に挙げて、端末ＭＴ１によるメイングループの分散処理の実行の開始について説明する。
【０２３８】
（１）ここで、端末ＭＴ１が、処理２ｃの実行中に、メイングループの処理１ｂの実行を開始しようとする場合を想定する。
【０２３９】
（２）処理１ｂの実行の開始の前に、端末ＭＴ１は、処理１ｂの実行の開始のために、処理２ｃの途中処理結果をマスタ端末ＭＴ５に返却する。そして、端末ＭＴ１は、処理１ｂの実行を開始する。
【０２４０】
これにより、端末ＭＴ１は、メイングループの処理を優先して実行することができる。また、メイングループの処理を開始する前に、サブグループのマスタ端末ＭＴ５に途中処理結果を返却する。そのため、マスタ端末ＭＴ５の分散処理が中断されることがないようにできる。
【０２４１】
（メイングループの分散処理の実行の開始処理）
ここで、図２５を用いて、図２４に示した一方のグループのメイングループと、他方のグループのサブグループと、の両方に所属している端末ＭＴによるメイングループの分散処理の実行の開始処理について説明する。
【０２４２】
図２５は、メイングループの分散処理の実行の開始処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、自端末ＭＴでメイングループの分散処理を開始するか否かを判定する（ステップＳ２５０１）。ここで、分散処理を開始しない場合（ステップＳ２５０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２５０１に戻り、分散処理の開始を待つ。
【０２４３】
一方、分散処理を開始する場合（ステップＳ２５０１：Ｙｅｓ）、ＣＰＵ３０１は、サブグループの分散処理を所持しているか否かを判定する（ステップＳ２５０２）。ここで、サブグループの分散処理を所持していない場合（ステップＳ２５０２：Ｎｏ）、ＣＰＵ３０１は、メイングループの分散処理の実行の開始処理を終了する。
【０２４４】
一方、サブグループの分散処理を所持している場合（ステップＳ２５０２：Ｙｅｓ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴに途中処理結果の返却通知を送信し（ステップＳ２５０３）、途中処理結果を返却する（ステップＳ２５０４）。そして、ＣＰＵ３０１は、メイングループの分散処理の実行の開始処理を終了する。
【０２４５】
これにより、サブグループの分散処理の実行より、メイングループの分散処理を優先して実行を開始することができる。また、メイングループの分散処理の実行の開始の際に、サブグループの分散処理の途中処理結果と、分散共有メモリ領域Ｍｄのデータを返却する。そのため、サブグループの分散処理を続行させることができる。
【０２４６】
（サブグループのマスタ端末ＭＴによるデータ回収処理）
ここで、図２６を用いて、ステップＳ２５０３において端末ＭＴにより送信された返却通知を受信したサブグループのマスタ端末ＭＴによるデータ回収処理について説明する。ただし、ステップＳ２６０２の処理は、図２３に示したステップＳ２３０２の処理と同様の処理であるため、ここでは詳細な説明を省略する。
【０２４７】
図２６は、サブグループのマスタ端末ＭＴによるデータ回収処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、端末ＭＴから返却通知を受信したか否かを判定する（ステップＳ２６０１）。ここで、返却通知を受信していない場合（ステップＳ２６０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２６０１に戻り、返却通知の受信を待つ。
【０２４８】
一方、返却通知を受信した場合（ステップＳ２６０１：Ｙｅｓ）、ＣＰＵ３０１は、ステップＳ２６０２に移行する。そして、ＣＰＵ３０１は、ステップＳ２６０２の処理をおこなう。
【０２４９】
これにより、端末ＭＴからの分散処理の途中処理結果を回収して、分散処理を続行することができる。
【０２５０】
（マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼の内容）
次に、図２７を用いて、メイングループのスレーブ端末ＭＴのみでは分散処理に含まれるすべての処理を同時に並列処理することができない場合におけるマスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼について説明する。
【０２５１】
図２７は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの処理依頼の内容を示す説明図である。図２７では、基地局ＢＳの通信圏Ｃ内には、複数の端末ＭＴ１〜ＭＴ６が存在する。端末ＭＴ１は、処理１ａ，処理１ｂ，処理１ｃ，および処理１ｄを含む分散処理１の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ１は、自端末ＭＴ１と、スレーブ端末ＭＴ２，ＭＴ３，ＭＴ６とを含むグループＧ１を編成している。
【０２５２】
グループＧ１において、マスタ端末ＭＴ１は、処理１ａを自端末ＭＴ１に割り振り、処理１ｂを端末ＭＴ６に割り振り、処理１ｃを端末ＭＴ３に割り振り、処理１ｄを端末ＭＴ２に割り振り、それぞれ並列処理させている。なお、処理１ａと処理１ｂとは、同期制御の対象になる処理であり、一方の処理の実行中には、他方の処理が中断される。
【０２５３】
一方、マスタ端末ＭＴ５は、処理２ａ，処理２ｂ，および処理２ｃを含む分散処理２の実行を制御するマスタ端末ＭＴである。また、マスタ端末ＭＴ５は、自端末ＭＴ５と、スレーブ端末ＭＴ４，ＭＴ６とを含むグループＧ２を編成している。グループＧ２において、スレーブ端末ＭＴ４は、メイングループに所属している。また、グループＧ２において、スレーブ端末ＭＴ６は、サブグループに所属している。
【０２５４】
グループＧ２において、マスタ端末ＭＴ５は、処理２ａを自端末ＭＴ５に割り振り、処理２ｂを端末ＭＴ４に割り振り、それぞれ並列処理させている。処理２ｃは、まだ実行されていない。
【０２５５】
（１）ここで、マスタ端末ＭＴ１が処理１ａを実行中であるため、スレーブ端末ＭＴ６が処理１ｂの実行を中断した場合を想定する。処理１ｂの実行を中断すると、スレーブ端末ＭＴ６のＣＰＵ３０１は、アイドル状態になり、サブグループの分散処理を実行することができるようになる。
【０２５６】
（２）そのため、処理１ｂの実行を中断すると、スレーブ端末ＭＴ６は、マスタ端末情報ＤＢ６００を参照して、サブグループのマスタ端末ＭＴ５に、処理依頼の受付が可能になった旨の通知（以下、「受付可能通知」という）を送信する。
【０２５７】
（３）受付可能通知を受信したマスタ端末ＭＴ５は、分散処理に含まれる処理の中からまだ実行されていない処理２ｃを選択して、スレーブ端末ＭＴ６に処理依頼を送信する。
【０２５８】
（４）処理依頼を受信すると、スレーブ端末ＭＴ６は、処理１ｂの途中処理結果をグループＧ１の共有メモリＭｃ１に退避させて、処理２ｃを実行する。なお、スレーブ端末ＭＴ６のメモリＭのサイズが処理１ｂの途中処理結果と、処理２ｃの処理結果と、を保持できるサイズであれば、共有メモリＭｃ１に途中処理結果を退避させなくてもよい。
【０２５９】
このように、ＣＰＵ３０１がアイドル状態になったサブグループのスレーブ端末ＭＴを、分散処理の並列処理に使用することにより、分散処理の効率化ができる。また、スレーブ端末ＭＴのＣＰＵ３０１の使用率をあげることができるため、ネットワークシステム２００全体での処理の効率化を図ることができる。
【０２６０】
（マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理）
ここで、図２８を用いて、図２７に示したマスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理について説明する。
【０２６１】
図２８は、マスタ端末ＭＴによるサブグループのスレーブ端末ＭＴへの分散処理の処理依頼処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、処理依頼する処理が存在するか否かを判定する（ステップＳ２８０１）。処理依頼する処理が存在しない場合（ステップＳ２８０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２８０１に戻り、処理依頼する処理が存在するか否かの判定を続ける。
【０２６２】
一方、処理依頼する処理が存在する場合（ステップＳ２８０１：Ｙｅｓ）、ＣＰＵ３０１は、サブグループに所属するスレーブ端末ＭＴに依頼可能なスレーブ端末ＭＴが存在するか否かを判定する（ステップＳ２８０２）。ここで、依頼可能なスレーブ端末ＭＴが存在しない場合（ステップＳ２８０２：Ｎｏ）、ＣＰＵ３０１は、処理依頼処理を終了する。
【０２６３】
一方、依頼可能なスレーブ端末ＭＴが存在する場合（ステップＳ２８０２：Ｙｅｓ）、ＣＰＵ３０１は、依頼可能なスレーブ端末ＭＴから受付可能通知を受信すると、処理依頼を送信し、処理依頼が受信されると処理を送信して（ステップＳ２８０３）、ステップＳ２８０１に戻る。
【０２６４】
これにより、分散処理に含まれる複数の処理の中で割り振ることができる処理があり、かつ、依頼可能なスレーブ端末ＭＴが存在すれば、処理を割り振って実行させることができるため、分散処理の効率化を図ることができる。
【０２６５】
（スレーブ端末ＭＴによる処理依頼の受付処理の詳細）
ここで、図２９を用いて、ステップＳ２８０３においてマスタ端末ＭＴにより送信された処理依頼を受信したスレーブ端末ＭＴによる処理依頼の受付処理について説明する。
【０２６６】
図２９は、スレーブ端末ＭＴによる処理依頼の受付処理の詳細を示すフローチャートである。まず、ＣＰＵ３０１は、メイングループのマスタ端末ＭＴから、排他制御にかかる同期待ちを検出したか否かを判定する（ステップＳ２９０１）。同期待ちを検出していない場合（ステップＳ２９０１：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２９０１に戻り、同期待ちの検出を待つ。
【０２６７】
一方、同期待ちを検出した場合（ステップＳ２９０１：Ｙｅｓ）、ＣＰＵ３０１は、実行中の処理を同期待ちにして中断する。そして、ＣＰＵ３０１は、所属しているサブグループがあるか否か判定する（ステップＳ２９０２）。ここで、所属しているサブグループがない場合（ステップＳ２９０２：Ｎｏ）、ＣＰＵ３０１は、処理依頼の受付処理を終了する。
【０２６８】
一方、所属しているサブグループがある場合（ステップＳ２９０２：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄが利用可能であるか判定する（ステップＳ２９０３）。ここで、分散共有メモリ領域Ｍｄが利用不可能である場合（ステップＳ２９０３：Ｎｏ）、ＣＰＵ３０１は、処理依頼の受付処理を終了する。
【０２６９】
一方、分散共有メモリ領域Ｍｄが利用可能である場合（ステップＳ２９０３：Ｙｅｓ）、ＣＰＵ３０１は、退避用の分散共有メモリ領域Ｍｄを確保し、サブグループのマスタ端末ＭＴに、受付可能通知を送信する（ステップＳ２９０４）。
【０２７０】
次に、ＣＰＵ３０１は、同期待ちが終了したか否かを判定する（ステップＳ２９０５）。同期待ちの終了は、例えば、メイングループのマスタ端末ＭＴからの同期待ちの解除通知を受信することによりおこなわれる。ここで、同期待ちが終了した場合（ステップＳ２９０５：Ｙｅｓ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴに、受付可能通知の取消通知を送信し（ステップＳ２９０６）、処理依頼の受付処理を終了する。
【０２７１】
一方、同期待ちが終了していない場合（ステップＳ２９０５：Ｎｏ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴからの処理依頼を受信したか否かを判定する（ステップＳ２９０７）。ここで、処理依頼を受信していない場合（ステップＳ２９０７：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２９０５に戻る。
【０２７２】
一方、処理依頼を受信した場合（ステップＳ２９０７：Ｙｅｓ）、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄに途中処理結果を退避させ、処理依頼の受信を通知し、処理を受信する（ステップＳ２９０８）。そして、ＣＰＵ３０１は、サブグループからの処理依頼に基づいて、処理を開始する（ステップＳ２９０９）。
【０２７３】
次に、ＣＰＵ３０１は、同期待ちが終了したか否かを判定する（ステップＳ２９１０）。同期待ちの終了は、例えば、メイングループのマスタ端末ＭＴからの同期待ちの解除通知を受信することによりおこなわれる。
【０２７４】
ここで、同期待ちが終了した場合（ステップＳ２９１０：Ｙｅｓ）、ＣＰＵ３０１は、他に所属しているグループのマスタ端末ＭＴとなる端末ＭＴに、ステップＳ２９０９にて開始した処理の処理結果を送信する（ステップＳ２９１１）。そして、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄに退避させた途中処理結果を復帰させ（ステップＳ２９１２）、処理依頼の受付処理を終了する。
【０２７５】
一方、同期待ちが終了していない場合（ステップＳ２９１０：Ｎｏ）、ＣＰＵ３０１は、ステップＳ２９０９にて開始した処理が終了したか否かを判定する（ステップＳ２９１３）。ここで、処理が終了していない場合（ステップＳ２９１３：Ｎｏ）、ステップＳ２９１０に戻る。
【０２７６】
一方、処理が終了した場合（ステップＳ２９１３：Ｙｅｓ）、ＣＰＵ３０１は、サブグループのマスタ端末ＭＴに、ステップＳ２９０９にて開始した処理の処理結果を送信し（ステップＳ２９１４）、ステップＳ２９０３に戻る。
【０２７７】
ただし、ステップＳ２９０９にて開始した処理の終了に伴って、ＣＰＵ３０１は、分散共有メモリ領域Ｍｄに退避させた途中処理結果を復帰させてもよい。そして、ＣＰＵ３０１は、同期待ちの終了を待って、中断していた処理を再開してもよい。
【０２７８】
これにより、スレーブ端末ＭＴは、途中処理結果を分散共有メモリ領域Ｍｄに退避させて、サブグループのマスタ端末ＭＴから依頼される処理に使用するＲＡＭ３０３のワークエリアを確保することができる。また、端末ＭＴは、分散共有メモリ領域Ｍｄに退避させた途中処理結果をＲＡＭ３０３のワークエリアに復帰させて、処理を再開することができる。
【０２７９】
以上説明したように、データ処理方法によれば、他のグループに所属していないスレーブ端末ＭＴをメイングループに登録する。また、データ処理方法によれば、他のグループに所属しているスレーブ端末ＭＴは、メイングループに登録せず、サブグループに登録する。
【０２８０】
これにより、専らマスタ端末ＭＴの処理依頼に従って処理を実行可能なスレーブ端末ＭＴを選択してメイングループに登録できるため、分散処理の並列処理を効率よくおこなえるグループを編成できる。また、メイングループに含まれないサブグループのスレーブ端末ＭＴには、自グループからの処理依頼を極力おこなわずに当該スレーブ端末ＭＴの負荷が増大することを防止できる。
【０２８１】
また、サブグループとして、臨時に処理依頼をおこなうスレーブ端末ＭＴを登録しておく。これにより、端末ＭＴが可搬であることに起因するメイングループのスレーブ端末ＭＴの状況の変化に対応して、臨時に処理を割り振って、並列処理をおこなうことができる。また、サブグループに登録されたスレーブ端末が、他のグループの分散処理の終了後、または、他のグループの分散処理の中断中であって、ＣＰＵがアイドル状態になっているときには、臨時に処理依頼をして分散処理の効率化を図ることができる。
【０２８２】
また、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数と、分散処理に含まれる処理数と、の比較結果を参照して、メイングループまたはサブグループへのスレーブ端末ＭＴの登録処理を開始する。
【０２８３】
例えば、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上である場合、スレーブ端末ＭＴの登録をおこなわない。これにより、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を残しておくことができる。
【０２８４】
また、例えば、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数より小さい場合、スレーブ端末ＭＴをメイングループに登録する。これにより、メイングループに登録されている端末ＭＴ数が処理数と同数になるまでは、スレーブ端末ＭＴをメイングループに登録することにより、分散処理の並列処理の効率化を図る。
【０２８５】
また、例えば、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上であるとき、スレーブ端末ＭＴをサブグループに登録する。これにより、スレーブ端末ＭＴをサブグループに登録してメイングループには登録しないようにして、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を残しておくことができる。
【０２８６】
また、データ処理方法によれば、サブグループに登録されたスレーブ端末ＭＴへの同期要求を登録しておくことにより、スレーブ端末ＭＴが処理依頼を受付可能な状態であるかを登録しておくことができる。
【０２８７】
また、データ処理方法によれば、メイングループへのスレーブ端末ＭＴの登録または不登録を基地局ＢＳに通知することにより、基地局ＢＳのグループ情報ＤＢ８００を更新する。これにより、基地局ＢＳは、通信圏Ｃ内にあるスレーブ端末ＭＴのグループへの所属状況を把握することができる。
【０２８８】
また、データ処理方法によれば、現在メイングループに登録されている端末ＭＴ数が分散処理に含まれる処理数以上であるとき、グループに登録されているスレーブ端末ＭＴの登録を削除する。これにより、現在メイングループに登録されている端末ＭＴ数が、分散処理に含まれる複数の処理を割り振るのに十分な数を超えているときは、超過分の登録を削除して、他のグループがスレーブ端末ＭＴをメイングループに登録する余地を作ることができる。
【０２８９】
また、データ処理方法によれば、分散共有メモリ領域Ｍｄにデータがあるスレーブ端末ＭＴのメイングループの登録を削除しない。これにより、メイングループから登録を削除されたスレーブ端末ＭＴの分散共有メモリ領域Ｍｄにある分散処理の途中処理結果を回収できなくなることを防止できる。
【０２９０】
また、データ処理方法によれば、分散処理に含まれる複数の処理の中の１処理が使用するメモリＭのサイズが共有メモリＭｃのサイズより大きい場合は、グループ内の各端末ＭＴの分散共有メモリ領域Ｍｄを解放する。これにより、共有メモリＭｃとして途中処理結果を退避可能なサイズが確保されていない場合は、分散共有メモリ領域Ｍｄを解放することにより、スレーブ端末ＭＴのワークエリアを確保して処理を効率化する。
【０２９１】
また、データ処理方法によれば、スレーブ端末ＭＴの通信能力の低下が検出された場合に、通信能力の低下したスレーブ端末ＭＴのメイングループへの登録を削除する。これにより、通信能力が低下し、データの送受信ができなくなる虞があるスレーブ端末ＭＴをグループから除外して、分散処理を安定して実行できる。
【０２９２】
また、データ処理方法によれば、分散処理を中止したスレーブ端末ＭＴから途中処理結果が返却された場合に、途中処理結果を返却したスレーブ端末ＭＴのメイングループへの登録を削除する。これにより、分散処理を中止したスレーブ端末ＭＴをグループから除外することができ、また、返却された途中処理結果により分散処理を続行できる。
【０２９３】
また、データ処理方法によれば、分散共有メモリ領域Ｍｄが使用されている場合、分散共有メモリ領域Ｍｄのデータを回収する。これにより、分散処理の途中処理結果を回収して、分散処理を続行することができる。
【０２９４】
なお、本実施の形態で説明したデータ処理方法は、予め用意されたデータ処理プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本データ処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２９５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２９６】
（付記１）複数の装置を含む第１グループへの第１装置の追加要求を検出し、
前記第１装置が前記第１グループと異なる第２グループに属しないときは、前記第１グループの複数の装置を登録するメイングループに登録し、
前記第１装置が前記第２グループに属するときは、前記第１装置をサブグループに登録し、
前記メイングループに登録される複数の装置によって複数のタスクを含む分散処理がおこなわれること
を特徴とするデータ処理方法。
【０２９７】
（付記２）前記第１グループへの第２装置の追加要求を検出し、
前記複数の装置の数である第１数と前記複数のタスクの数である第２数とを比較し、
前記比較結果に基づいて前記第２装置を前記メイングループおよび前記サブグループの何れかに登録すること
を特徴とする付記１に記載のデータ処理方法。
【０２９８】
（付記３）前記第１数が前記第２数以上であるとき、前記第２装置を前記サブグループに登録し、
前記第１数が前記第２数よりも小さいとき、前記第２装置を前記メイングループに登録すること
を特徴とする付記２に記載のデータ処理方法。
【０２９９】
（付記４）前記第１装置が前記サブグループに登録されるとき、前記第２グループに含まれる他の装置からの前記第１装置に対する同期要求が前記サブグループのマスタ端末に登録されること
を特徴とする付記１乃至付記３の何れか一に記載のデータ処理方法。
【０３００】
（付記５）前記メイングループへの登録または不登録を基地局に通知すること
を特徴とする付記１乃至付記４の何れか一に記載のデータ処理方法。
【０３０１】
（付記６）前記複数の装置の数である第１数が前記複数のタスクの数である第２数よりも大きいとき、前記複数のタスク内のタスクが割り当てられていない第３装置のメイングループの登録を削除すること
を特徴とする付記１乃至付記５の何れか一に記載のデータ処理方法。
【０３０２】
（付記７）前記複数の装置で共有される共有メモリの前記第３装置に設定されるメモリ領域が使用されているときは、前記第３装置のメイングループの登録を削除しないこと
を特徴とする付記６に記載のデータ処理方法。
【０３０３】
（付記８）前記複数のタスク内の各タスクが使用するメモリの大きさが前記複数の装置で共有される共有メモリの大きさよりも大きいとき、前記共有メモリの設定を解除すること
を特徴とする付記６または付記７に記載のデータ処理方法。
【０３０４】
（付記９）前記メイングループに登録される第４装置の通信能力の低下を検出するときまたは前記第４装置のタスクの実行結果を取得するとき、前記第４装置の前記メイングループの登録または前記サブグループの登録を削除すること
を特徴とする付記１乃至付記８の何れか一に記載のデータ処理方法。
【０３０５】
（付記１０）前記複数の装置で共有される共有メモリの前記第４装置に設定されるメモリ領域が使用されているときは前記メモリ領域のデータを回収すること
を特徴とする付記９に記載のデータ処理方法。
【０３０６】
（付記１１）前記複数のタスク内の各タスクが使用するメモリの大きさが前記複数の装置で共有される共有メモリの大きさよりも大きいとき、前記共有メモリの設定を解除すること
を特徴とする付記９または付記１０に記載のデータ処理方法。
【０３０７】
（付記１２）前記メイングループの登録の削除を基地局に通知すること
を特徴とする付記６乃至付記１１の何れか一に記載のデータ処理方法。
【０３０８】
（付記１３）第１グループに含まれる複数の装置の第２装置から第１装置への同期要求を検出し、
前記第１装置が、前記第１グループとは異なる第２グループに含まれるとともに複数のタスクを含む分散処理を実行する複数の装置が登録されるメイングループに対応するサブグループに登録されるとき、
前記サブグループに登録するために前記メイングループおよび前記サブグループを管理する装置に前記同期要求を通知すること
を特徴とするデータ処理方法。
【０３０９】
（付記１４）前記第１グループからの削除要求を受信し、
前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第１グループに含まれる複数の装置の一の装置に移行すること
を特徴とする付記１３に記載のデータ処理方法。
【０３１０】
（付記１５）前記第１グループに含まれる複数の装置で共有される共有メモリのメモリ領域が使用されているときは前記メモリ領域のデータを前記第１グループに含まれる複数の装置の一の装置に移行すること
を特徴とする付記１３または付記１４に記載のデータ処理方法。
【０３１１】
（付記１６）前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行依頼を受信し、
前記第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第２グループに含まれる複数の装置の一の装置に移行すること
を特徴とする付記１３乃至付記１５の何れか一に記載のデータ処理方法。
【０３１２】
（付記１７）前記第１グループに含まれる複数の装置が実行する分散処理に含まれるタスクの実行を開始するときに、前記第２グループに含まれる複数の装置が実行する分散処理に含まれるタスクが前記第１装置に割り当てられているときは前記タスクを前記第２グループに含まれる複数の装置の一の装置に移行すること
を特徴とする付記１３乃至付記１６の何れか一に記載のデータ処理方法。
【符号の説明】
【０３１３】
ＭＴ，ＭＴ１〜ＭＴ８  端末
ＢＳ，ＢＳ１，ＢＳ２  基地局
１，２  分散処理
１ａ〜１ｄ，２ａ〜２ｃ  処理
Ｇ１，Ｇ２  グループ
９０１  検出部
９０２  判定部
９０３  登録部
９０４  処理部
９０５  第１の比較部
９０６  同期部
９０７  通知部
９０８  抽出部
９０９  削除部
９１０  第１の検知部
９１１  第２の比較部
９１２  解除部
９１３  監視部
９１４  取得部
９１５  第２の検知部
９１６  回収部
１００１  検出部
１００２  通知部
１００３  受信部
１００４  検知部
１００５  移行部
【国際調査報告】
2012160629.tif 000032
2012160629.tif 000033