(57)【要約】  システムは、データを分割し並列処理する複数の通信端末（３００）を含む。並列処理を開始する親の通信端末（３００）は、データの配置時にＣＰＵ（３０１）が分割されたデータを、通信速度と、データの参照量に基づいて各通信端末（３００）に優先度を付して割り当てる。並列処理実行中には、優先度が高い通信端末（３００）の通信速度が変化すると、つぎの優先度の通信端末（３００）の通信速度を参照し、これらの通信端末相互間でデータを入れ替えるか否かを判断する。
2012147206.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、
前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と、前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報と、を入れ替えること
を特徴とするデータ割り当て方法。
【請求項２】
前記第１通信速度が前記複数の処理装置に含まれる第３処理装置の第３通信速度より大きいとき、前記第１処理装置に割り当てられるデータの通信量情報が示す頻度は、前記第３処理装置に割り当てられるデータの通信量情報が示す頻度よりも大きいこと
を特徴とする請求項１に記載のデータ割り当て方法。
【請求項３】
前記第１通信速度が第３処理装置の第３通信速度より大きいとき、前記第１優先度情報が示す優先度は前記第３処理装置に付される第３優先度情報が示す優先度よりも高いこと
を特徴とする請求項１に記載のデータ割り当て方法。
【請求項４】
前記第２通信速度が前記第１通信速度より大きくなるとき、前記第１優先度情報と前記第２優先度情報とを入れ替えること
を特徴とする請求項１乃至請求項３の何れか一に記載のデータ割り当て方法。
【請求項５】
前記第１通信速度が前記第１通信速度に対応する第１閾値より小さくなるとともに前記第２優先度情報が示す優先度が前記第１優先度情報が示す優先度よりも高いとき、前記第１通信速度と前記第２通信速度に対応する第２閾値とを比較すること
を特徴とする請求項１乃至請求項４の何れか一に記載のデータ割り当て方法。
【請求項６】
前記第１通信速度が前記第２閾値より大きいとき、前記第１処理装置のデータと前記第２処理装置のデータとを入れ替えること
を特徴とする請求項５に記載のデータ割り当て方法。
【請求項７】
前記第１処理装置が実行するプログラムを停止し、停止したときのプログラムコードの停止位置を前記第１処理装置に割り当てられたデータに記録して前記データを前記第２処理装置に送信すること
を特徴とする請求項６に記載のデータ割り当て方法。
【請求項８】
前記第１通信速度が前記第２閾値より小さいとき、データの入れ替えをおこなわないこと
を特徴とする請求項５に記載のデータ割り当て方法。
【請求項９】
複数の前記処理装置の間でのデータの入れ替えをおこなわないときには、複数の前記処理装置に対する前記データの割り当て直しをおこなうとともに、前記通信速度に基づき前記閾値を再設定すること
を特徴とする請求項８に記載のデータ割り当て方法。
【請求項１０】
前記第１通信速度が低下するとともに前記第２優先度情報が示す優先度が前記第１優先度情報が示す優先度より高いとき、前記第１処理装置に割り当てられたデータのサイズ、前記第２処理装置に割り当てられたデータのサイズ、前記第１通信速度、前記第２通信速度、および前記第１通信速度の低下分に基づいて、前記第１処理装置のデータと前記第２処理装置のデータとの入れ替えを判断すること
を特徴とする請求項１乃至請求項４の何れか一に記載のデータ割り当て方法。
【請求項１１】
前記複数の処理装置に含まれる所定の処理装置、または当該処理装置を管理する上位の管理装置が、データおよび優先度情報の割り当てをおこなうこと
を特徴とする請求項１乃至請求項１０の何れか一に記載のデータ割り当て方法。
【請求項１２】
複数の処理装置との間でデータ転送をおこなう処理装置内のＣＰＵを含み、
前記ＣＰＵは、
複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、
前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報とを入れ替えること
を特徴とするデータ割り当てシステム。
【請求項１３】
複数の前記処理装置は、基地局を介して相互に無線通信をおこなう通信端末であること
を特徴とする請求項１２に記載のデータ割り当てシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信端末を利用して並列処理をおこなう場合に端末間で共有するデータのデータ割り当て方法およびデータ割り当てシステムに関する。
【背景技術】
【０００２】
複数の携帯電話機等の通信端末を利用して並列処理をおこなう手法としては、並列処理の受け入れが可能な通信端末を中央のサーバ等の処理管理装置が検索し、通信端末に実行依頼する手法（たとえば、下記特許文献１参照。）や、通信端末が搭載するＣＰＵの処理能力やメモリ容量によって、通信端末に割り当てる処理を処理管理装置が決定する手法（たとえば、下記特許文献２参照。）が提案されている。【０００３】
従来の通信端末は、通信帯域が狭く通信の遅延時間も大きかったため、通信端末同士の間で頻繁に通信をおこなうような並列処理には適していない。このため、処理の開始から処理の完了までの間は、通信端末同士の間で通信をおこなわない完全分散型の並列処理をおこなうことを想定していた。【０００４】
近年では、通信技術の発達により通信端末間の通信が高速かつ低遅延でおこなえるようになってきている。このため、ある通信端末で生成したデータを別の通信端末で頻繁に参照しながら処理をおこなうような並列処理が可能になる。この場合、それぞれの通信端末の通信能力は同一ではないため通信端末の通信能力を考慮して各通信端末に対するデータの配置（割り当て）を決定する必要がある。【０００５】
大型計算機などの分野では、分散メモリ型のマルチプロセッサシステムにおいて、処理ノード間の通信能力を考慮してデータ配置（割り当て）を決定する処理がおこなわれているが、通信端末では基地局との距離等の通信環境の要因により、通信端末の通信能力が常に変化するため、通信環境を考慮したデータ配置（割り当て）が必要となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２０１８９６号公報
【特許文献２】特開２００７−２４１３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、複数の通信端末の通信能力を考慮した並列処理をおこなうことができず、複数の通信端末を用い、通信能力や通信環境等の通信状態の変化に対応して並列処理を効率的に実行できる手法が望まれていた。【０００８】
たとえば、通信端末間でデータを移動するためには、通信端末間で通信してデータを受け渡すだけではなく、データを持っている通信端末が変更したことを他の通信端末に広報するなど、通信端末内でいくつかの処理をおこなったり、通信端末同士で相互の通信をおこなう必要が生じる。このようなデータの移動には、時間等の移動コストが発生する。このため、単純に通信端末の通信速度が変わるたびに速度が速い通信端末と遅い通信端末との間でデータを入れ替えるだけの処理をおこなうと、通信端末間のデータ移動にかかるコストの方が大きくなる。このため、なるべく低い移動頻度で通信速度の変化に対応する必要がある。【０００９】
開示のデータ割り当て方法およびデータ割り当てシステムは、上述した問題点を解消するものであり、複数の処理装置の通信状態の変化に対応して並列処理を効率的に実行できることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、開示技術は、複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と、前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報と、を入れ替える。
【発明の効果】
【００１１】
開示のデータ割り当て方法およびデータ割り当てシステムによれば、複数の処理装置の通信状態の変化に対応して並列処理を効率的に実行できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかるデータ割り当て方法の処理概要を示すフローチャートである。
【図２】図２は、設計フェーズにおける処理およびデータの分割の工程を示す説明図である。
【図３】図３は、実施の形態１にかかるデータ割り当てシステムに含まれる通信端末の構成例を示すブロック図である。
【図４】図４は、通信速度が変化した場合の通信端末間での入れ替え処理を説明する図である。
【図５】図５は、並列処理を開始する通信端末の処理内容を示すフローチャートである。
【図６】図６は、入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。
【図７−１】図７−１は、並列処理用情報入れ替え部の情報送信時の処理内容を示すフローチャートである。
【図７−２】図７−２は、並列処理用情報入れ替え部の情報受信時の処理内容を示すフローチャートである。
【図８】図８は、実施の形態２における入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。開示技術は、複数の処理装置を用いてデータを並列処理するにあたり事前にデータを分割するデータ割り当てをおこなっておき、実際に複数の処理装置を用いてデータを並列処理する。複数の処理装置は、たとえば基地局を介して無線通信をおこなう携帯電話機等の複数の通信端末を用いることができる。そして、通信状態の変化に対応して通信端末同士の間でデータの入れ替えが必要であるか判断する。この際、データの入れ替えが適切であるかを自通信端末と他の通信端末の通信速度等の情報を用いて判断してからおこなうことにより、無駄にデータの入れ替えをおこなうことが無く、システム全体における並列処理を効率的におこなう。
【００１４】
（実施の形態１）
（データ割り当て方法の処理概要）
図１は、実施の形態１にかかるデータ割り当て方法の処理概要を示すフローチャートである。データ割り当ての実施は、並列処理用に処理とデータを分割する設計フェーズ（ステップＳ１０）と、並列処理開始時に複数の処理装置（通信端末）に配置するデータを決定する配置フェーズ（ステップＳ１１）と、並列処理開始後に複数の通信端末の通信状態を監視して再配置をおこなう稼働フェーズ（ステップＳ１２）の３フェーズからなる。
【００１５】
設計フェーズ（ステップＳ１０）は、プログラム作成時等にＰＣ等のコンピュータ装置が実行する工程である。はじめに、並列処理用にデータ分割する（ステップＳ１０１）。すなわち、並列化対象の処理を解析し、複数の通信端末で並列化できるように処理とデータを並列化対象の通信端末数に分割する。つぎに、分割した各データの他の通信端末から参照されている通信量情報としての参照量を解析する（ステップＳ１０２）。この通信量情報は、複数の処理装置がデータにアクセスする頻度に関する情報である。また、分割された各データに対してペアとした処理以外からの参照量の総量を被参照量として算出して記録する。
【００１６】
配置フェーズ（ステップＳ１１）は、並列処理を開始する親の通信端末が実行する工程である。配置フェーズ（ステップＳ１１）では、並列処理対象となる割り当て対象の通信端末を決定する。並列処理を受け入れ可能な通信端末を設計フェーズ（ステップＳ１０）で設定した通信端末数分だけ選定する。
【００１７】
そして、選定された対象の通信端末の通信速度を取得し（ステップＳ１０３）、各通信端末に通信速度が高い順に被参照量の大きなデータと処理のペアを割り当てていく。具体的には、各通信端末に通信速度順に通信端末の優先度を設定し（ステップＳ１０４）、各通信端末に対して優先度が上位と下位の通信端末へアクセスするための端末識別情報（上位端末識別情報および下位端末識別情報）を設定する（ステップＳ１０５）。これら優先度と端末識別情報は、優先度情報を構成している。そして、優先度順（すなわち通信速度が大きい順）に被参照量の多い処理とデータを割り当てる（ステップＳ１０６）。
【００１８】
この配置フェーズ（ステップＳ１１）の処理は、並列処理を開始する親の通信端末が実行するに限らず、複数の通信端末の上位装置、たとえば、基地局あるいは基地局に接続される処理管理装置が各通信端末の情報を収集して実行することもできる。
【００１９】
稼働フェーズ（ステップＳ１２）は、並列処理をおこなう各通信端末が実行する工程である。ステップＳ１０６により、処理とデータが割り当てられた各通信端末は、通信速度と通信量から閾値を算出し、自通信端末に設定する（ステップＳ１０７）。このため、各通信端末は、自通信端末と、上位および下位の通信端末の通信速度を監視する。
【００２０】
処理の詳細は後述するが、自通信端末の通信速度（第１処理装置）と、他の上位および下位の通信端末（第２処理装置）の通信速度を監視することにより、通信速度の変化時に、自通信端末と他の通信端末との間で相互に優先度の入れ替え、処理とデータの交換等の処理をおこない、複数の通信端末による並列処理を実行していく。
【００２１】
たとえば、自通信端末の通信速度が上位の通信端末を上回った場合は、上位の通信端末との間で優先度の入れ替えと、通信端末の端末識別情報（上位端末識別情報および下位端末識別情報）の並び替えをおこなう。自通信端末の通信速度が下位の通信端末より下回ったが、閾値よりは下回っていない場合も下位の通信端末との間で優先度の入れ替えと端末識別情報の並び替えをおこなう。
【００２２】
通信速度が閾値よりも下回った場合は、上位の通信端末との間でそれぞれの通信速度と割り当てられたデータの閾値を比較し、データを交換するとそれぞれの通信端末で通信速度が閾値以内に収まる場合は上位の通信端末と処理とデータのペアを交換する。交換しても閾値以内に収まらない場合は、上位の通信端末が持つ上位の通信端末の端末識別情報（上位端末識別情報）を取得してさらに上位の通信端末と同様の比較をおこなう。この比較を最上位（優先度が１）の通信端末まで繰り返して交換可能な通信端末が見つからなければ、並列処理を開始したときの性能が維持できないとして、再度、並列処理を開始した親の通信端末は並列処理の必要性を判断し、並列処理が必要な場合には初期配置と同様に配置変更をおこなう。
【００２３】
（設計フェーズにおける処理およびデータの分割の詳細）
図２は、設計フェーズにおける処理およびデータの分割の工程を示す説明図である。処理の分割は、はじめに対象処理のプログラムコード２０１を参照し、データ２０１ａを解析して、並列化可能な複数の処理ブロック（処理ブロック１，２，…ｎ）に分割する。また、各処理ブロック１〜ｎが利用するデータ２０２を解析して複数のデータブロック（データブロック１，２，…，ｎ）に分割し、各処理ブロック１〜ｎがどのデータブロックに対してどれだけのデータ量をアクセスするかを参照量として解析しておく。
【００２４】
そして、各処理ブロックからみて最も参照量が大きな処理ブロックとデータブロックの組をペアとして、各データブロックにおいてペアとされた処理ブロック以外の処理ブロックからの参照量の総計を被参照量として設定する。
【００２５】
図２に示す例では、処理ブロック１は、データブロック１には２００の参照量、データブロック２には１５０の参照量となっているため、処理ブロック１とデータブロック１をペアとする。データブロック１は、処理ブロック１以外に処理ブロック２からも参照量５０でアクセスされているため、データブロック１の被参照量は５０となる。同じように処理ブロック２は、データブロック２への参照量が最も大きくなるため、処理ブロック２とデータブロック２をペアとする、データブロック２の被参照量は、処理ブロック１からの１５０となる。
【００２６】
配置フェーズ（ステップＳ１１）では、設計フェーズ（ステップＳ１０）で分割した処理ブロック（プログラムブロックに相当）と、この処理ブロックにペアとなるデータブロックとデータブロックの被参照量を記録した情報を並列処理用情報としてまとめ、この並列処理用情報と、上記処理とデータを各通信端末に割り当てる。
【００２７】
（割り当てシステムの構成例）
図３は、実施の形態１にかかるデータ割り当てシステムに含まれる通信端末の構成例を示すブロック図である。通信端末３００は、上述したように、基地局を介して親となる通信端末３００との間で処理対象のデータ、および並列処理のための情報を無線により送受信する。この通信端末３００は、ソフトウェアとハードウェアとを含む。ハードウェアは、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ等のメモリ３０３と、通信モジュール３０４と、これらＣＰＵ３０１〜通信モジュール３０４を相互に接続するバス（ＢＵＳ）３０５とを含む。ソフトウェアは、並列処理実行管理プログラム３１０からなり、ＲＯＭ３０２にあらかじめ記録されている。
【００２８】
ＣＰＵ３０１は、ＲＯＭ３０２に記録された並列処理実行管理プログラム３１０を実行することにより、複数の通信端末３００におけるデータの並列処理を実行する。この際、ＣＰＵ３０１は、メモリ３０３を作業用領域として用い並列処理を実行する。また、ＣＰＵ３０１は、この並列処理実行時に、通信モジュール３０４により、基地局を介して親となる通信端末３００と相互通信し、他の通信端末３００との並列処理の実行に必要な情報をやりとりする。
【００２９】
メモリ３０３には、並列処理時に必要な並列処理用情報３２０と、優先度情報３２１が格納される。優先度情報３２１は、通信モジュール３０４を介して受信した並列処理用情報３２０と、この並列処理用情報３２０に基づき、受信した通信端末３００が生成する優先度情報３２１と、を含む。
【００３０】
並列処理実行管理プログラム３１０は、並列処理用情報受入部３１０ａと、処理ブロック実行制御部３１０ｂと、通信速度監視部３１０ｃと、閾値決定部３１０ｄと、入れ替え判断部３１０ｅと、優先度入れ替え部３１０ｆと、並列処理用情報入れ替え部３１０ｇとを含む。
【００３１】
並列処理用情報受入部３１０ａは、通信モジュール３０４により受信した並列処理用情報３２０を取り込む。処理ブロック実行制御部３１０ｂは、通信端末３００に割り当てられた処理ブロックに対応する処理を実行する。通信速度監視部３１０ｃは、通信端末３００の通信速度を監視する。閾値決定部３１０ｄは、通信速度等に対応した値を決定する。入れ替え判断部３１０ｅは、通信速度の変化に基づき、自通信端末３００と他の通信端末との間で優先度、あるいは並列処理用情報３２０を入れ替えるか否かを判断する。優先度入れ替え部３１０ｆは、入れ替え判断部３１０ｅにより、優先度を入れ替えると判断された場合に、自通信端末３００と他の通信端末に設定された優先度を入れ替える。並列処理用情報入れ替え部３１０ｇは、入れ替え判断部３１０ｅにより、並列処理用情報３２０を入れ替えると判断された場合に、自通信端末３００と他の通信端末との間で並列処理用情報３２０を入れ替える。
【００３２】
並列処理用情報３２０は、処理ブロックに対応するプログラムコード３２０ａと、被参照量（通信量）、および閾値、処理の停止位置等の付随情報３２０ｂと、処理対象のデータブロック３２０ｃとを含む。優先度情報３２１は、自通信端末３００の優先度と、自通信端末３００に対して優先度が高い上位端末識別情報と、優先度が低い下位端末識別情報とを含む。
【００３３】
（稼働フェーズにおける通信端末の処理の概要）
上記構成の通信端末３００は、ＣＰＵ３０１が並列処理実行管理プログラム３１０を実行する。そして、通信端末３００に対して、並列処理を開始した親となる通信端末３００から並列処理用情報３２０が割り当てられると、並列処理実行管理プログラム３１０の並列処理用情報受入部３１０ａが通信モジュール３０４を介して送られてきた並列処理用情報３２０をメモリ３０３に配置する。また、並列処理用情報３２０とともに送られてきた優先度情報３２１である、自通信端末３００の優先度と、端末識別情報（自通信端末３００からみて上位の端末識別情報および下位の端末識別情報）をメモリ３０３に記録する。
【００３４】
その後、閾値決定部３１０ｄが閾値を算出して、並列処理用情報３２０内に記録し、処理ブロック実行制御部３１０ｂが割り当てられた処理ブロックに対応する処理を実行する。処理実行開始後は、通信速度監視部３１０ｃが通信モジュール３０４を利用して通信速度を監視し、通信速度が変化した場合は、入れ替え判断部３１０ｅで優先度のみを入れ替えるか、並列処理用情報３２０を入れ替えるか、入れ替えをおこなわないかを判断し、優先度のみを入れ替える場合は、優先度入れ替え部３１０ｆが対象の通信端末３００と優先度情報の入れ替えをおこない、並列処理用情報を入れ替える場合は並列処理用情報入れ替え部３１０ｇで対象通信端末と並列処理用情報を入れ替える。
【００３５】
（通信速度が変化したときの入れ替え処理）
図４は、通信速度が変化した場合の通信端末間での入れ替え処理を説明する図である。入れ替えとは、以下に説明するように、優先度情報３２１の優先度の入れ替え、および並列処理用情報３２０の入れ替えである。図示の例では３台の通信端末３００を利用して並列処理をおこなっている例である。図の上外方向が時刻の軸である。図中、通信端末は端末と表記し、上位（下位）の通信端末は上位（下位）端末と表記している。
【００３６】
時刻Ｔ１は、割り当てをおこなった直後の状態であり、このときの各通信端末の通信速度は通信端末１が１０Ｍｂｐｓ、通信端末２が８Ｍｂｐｓ、通信端末３が５Ｍｂｐｓであるとする。これにより、一番通信速度が速い通信端末１が優先度１となり、この通信端末１に最も被参照量の大きな並列処理用情報１を割り当てる。このとき、閾値は、たとえば、割り当て時の通信速度の８０％の値となる８Ｍｂｐｓを設定する。通信端末１からみて、上位の優先度の通信端末は無いため「無し」と設定され、下位の通信端末として２番目に通信速度の速い通信端末２を設定する。
【００３７】
同様に通信端末２には２番目に被参照量の大きな並列処理用情報２を割り当て、閾値は８Ｍｂｐｓの８０％で６．４Ｍｂｐｓ、優先度は２で上位の通信端末は通信端末１、下位の通信端末は通信端末３となる。また、通信端末３には並列処理用情報３を割り当て、閾値は４Ｍｂｐｓ、優先度は３で上位通信端末は通信端末２、下位通信端末はこの例ではこの３台で並列処理をするため「無し」となる。
【００３８】
つぎに、時刻Ｔ２のときに、通信端末３の通信速度が上昇し、９Ｍｂｐｓに変化したとする。この場合、通信速度監視部３１０ｃが通信速度の上昇を検出する。そして、入れ替え判断部３１０ｅでは、通信速度が上昇したため、上位通信端末である通信端末２の通信速度を通信端末２から取得する。通信端末２の通信速度は８Ｍｂｐｓで変わらないため、通信端末３の通信速度が通信端末２を上回ったことになる。これにより、通信端末３の入れ替え判断部３１０ｅは、通信端末２との優先度の入れ替えをおこなうと判断する。対応して、優先度入れ替え部３１０ｆは、通信端末２の優先度２と上位通信端末１の情報を取得して、自通信端末３の優先度を２とし上位通信端末を１と設定し、さらに下位通信端末として通信端末２を設定する。また、変更前の自通信端末３の優先度と、下位通信端末「無し」を通信端末２に通知する。通信端末２では、通知を受けて優先度を３とし、下位通信端末「無し」の値に変更し、さらに上位通信端末を通信端末３に変更する。
【００３９】
その後、時刻Ｔ３になったとき、通信端末２の通信速度が５Ｍｂｐｓに低下したとする。これにより、通信端末２は、通信速度が並列処理用情報２に記録された閾値よりも下回ったことになる。このとき、通信端末２は、上位の通信端末である通信端末３に割り当てられている並列処理用情報３の閾値を取得する。通信端末２の通信速度が５Ｍｂｐｓで割り当てられている並列処理用情報２の閾値が６．４Ｍｂｐｓなのに対して、通信端末３の通信速度が９Ｍｂｐｓで割り当てられている並列処理用情報３の閾値が４Ｍｂｐｓであるため、通信端末２と通信端末３の間で並列処理用情報を入れ替えると互いの閾値に収まることになる。そこで、通信端末３の入れ替え判断部３１０ｅは、並列処理用情報３２０の入れ替えをおこなうと判断する。
【００４０】
そして、通信端末２の並列処理用情報入れ替え部３１０ｇは、処理ブロック実行制御部３１０ｂに対し、実行している処理ブロックの実行を停止させる。処理ブロックが停止すると、プログラムコード中の停止した位置を並列処理用情報３２０の付随情報３２０ｂに記録し、自通信端末２の並列処理用情報３２０を通信端末３に送る。また、通信端末３に並列処理用情報３２０の送信を依頼する。通信端末２は、通信端末３から並列処理用情報３２０を受け取ると、この並列処理用情報３２０をメモリ３０３に配置し、並列処理用情報３２０の付随情報３２０ｂに記録された停止位置から処理ブロックの実行を再開する。
【００４１】
上記処理によれば、通信速度が上昇した場合は、並列処理用情報３２０の入れ替えをおこなわないため、時刻Ｔ３における通信端末２のように、より通信速度が速い通信端末の中に通信端末２よりも被参照量の小さな並列処理用情報３２０を持っている通信端末が存在する可能性がある。そこで、優先度を利用してより通信速度が速い通信端末を検索し、閾値により交換可能かどうかを判断する。このように、閾値を用いることにより、あえて通信速度が上位の他の通信端末から被参照量が最小の並列処理用情報３２０を検索しなくても、データの処理性能を確保できる他の対象の通信端末を簡単に決定できるようになる。
【００４２】
この後、時刻Ｔ４では通信端末３の通信速度が６Ｍｂｐｓに低下したとする。これにより通信端末３に割り当てられている並列処理用情報２の閾値を下回るが、通信端末３の上位となる通信端末１に割り当てられている並列処理用情報１の閾値は８Ｍｂｐｓのため、入れ替えても閾値を満足できない。このような場合は、並列処理を開始した親の通信端末に、通信端末３と上位の他の通信端末（ここでは通信端末１）内での並列処理用情報３２０の再配置を依頼する。
【００４３】
データの再配置では、一旦、並列処理対象の複数の通信端末で処理ブロックの実行を停止させ、並列処理を開始した通信端末が並列処理用情報３２０を回収し、配置フェーズと同様に通信速度順に被参照量の大きな並列処理用情報３２０を割り当てる。割り当てられた通信端末は閾値を再設定し、並列処理用情報３２０の付随情報３２０ｂに記録されている停止位置から処理ブロックの処理を再開する。この例では、通信端末１は優先度、および通信速度ともに変わっていないため、そのまま並列処理用情報１が割り当てられ、閾値も８Ｍｂｐｓのままとなる。通信端末３は、並列処理用情報２が割り当てられ、閾値は現在の通信速度が６Ｍｂｐｓのため、その８０％の４．８Ｍｂｐｓに変更される。
【００４４】
また、上記処理例では、再配置時に通信端末の変更はおこなわなかったが、現在の並列処理対象の複数の通信端末では十分な性能が期待できない場合には、配置フェーズでおこなったときと同様に対象の通信端末を選び直したり、場合によっては並列処理をおこなっても意味が無いとして並列処理そのものを取りやめることもできる。
【００４５】
（並列処理を開始する通信端末における処理）
図５は、並列処理を開始する通信端末の処理内容を示すフローチャートである。上記の配置フェーズ（ステップＳ１１）における並列処理を開始する通信端末３００の処理を説明する。はじめに、並列処理対象となる複数の通信端末３００を決定する（ステップＳ５０１）。この決定は、上記特許文献等に開示された技術を用いることができ、たとえば、並列処理を受け入れ可能な性能を有する通信端末３００を設計フェーズ（ステップＳ１０）で設定した通信端末数分だけ選定すればよい。選定された全ての通信端末３００は、設計フェーズ（ステップＳ１０）で分割した各処理および各データを受け入れられるだけの処理能力とメモリ容量を持っていることとする。
【００４６】
つぎに、選定された複数の通信端末３００から通信速度が最も早い未選択の通信端末３００を選択し（ステップＳ５０２）、選択した通信端末３００に最も被参照量の大きな未割り当ての並列処理用情報３２０を割り当てる（ステップＳ５０３）。この後、未選択の通信端末３００があるか判断し（ステップＳ５０４）、未選択の通信端末３００があれば（ステップＳ５０４：Ｙｅｓ）、ステップＳ５０２に戻り同様の処理を実行する。未選択の通信端末３００が無ければ（ステップＳ５０４：Ｎｏ）、配置フェーズの処理を終了する。なお、上述した再配置の場合においても、図５と同様の処理をおこなう。
【００４７】
（入れ替え判断部の処理）
図６は、入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。通信端末３００の通信速度監視部３１０ｃは、通信速度が上昇したか否かを判断する（ステップＳ６０１）。通信速度が上昇していなければ（ステップＳ６０１：Ｎｏ）、下位通信端末の通信速度を取得する（ステップＳ６０２）。そして、下位通信端末の通信速度より通信速度が下であるか判断する（ステップＳ６０３）。判断結果、通信速度が下であれば（ステップＳ６０３：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、下位通信端末との間で優先度情報３２１の優先度と識別情報の並び替えを指示し（ステップＳ６０４）、ステップＳ６０２に戻る。
【００４８】
一方、ステップＳ６０３の判断結果、通信速度が同じあるいは上であれば（ステップＳ６０３：Ｎｏ）、つぎに、閾値が通信速度より上であるかを判断する（ステップＳ６０５）。閾値が通信速度より上であれば（ステップＳ６０５：Ｙｅｓ）、優先度情報３２１から上位端末識別情報を取得するが（ステップＳ６０６）、閾値が通信速度と同じあるいは下であれば（ステップＳ６０５：Ｎｏ）、処理を終了する。
【００４９】
ステップＳ６０６の実行により、入れ替え判断部３１０ｅは、上位通信端末に対応する通信端末があるか判断する（ステップＳ６０７）。対応する通信端末があれば（ステップＳ６０７：Ｙｅｓ）、対応する通信端末の通信速度と閾値を取得するが（ステップＳ６０８）、対応する通信端末が無ければ（ステップＳ６０７：Ｎｏ）、並列処理を開始した親となる通信端末に再配置を依頼し（ステップＳ６０９）、処理を終了する。
【００５０】
ステップＳ６０８の実行後、上位通信端末の閾値が自通信端末の通信速度以下であり、かつ、自通信端末の閾値が上位通信端末の通信速度以下の条件を満たすかを判断する（ステップＳ６１０）。判断の結果、条件を満たしている場合には（ステップＳ６１０：Ｙｅｓ）、並列処理用情報入れ替え部３１０ｇに対し、対応する通信端末との間で並列処理用情報３２０の入れ替えを指示し（ステップＳ６１１）、処理を終了する。ステップＳ６１０による判断の結果、条件を満たしていない場合には（ステップＳ６１０：Ｎｏ）、対応する通信端末の優先度情報３２１の上位端末識別情報を取得し（ステップＳ６１２）、ステップＳ６０７に戻る。
【００５１】
また、ステップＳ６０１において、通信速度が上昇している場合には（ステップＳ６０１：Ｙｅｓ）、上位通信端末の通信速度を取得し（ステップＳ６１３）、そして、上位通信端末の通信速度より通信速度が上であるか判断する（ステップＳ６１４）。判断結果、通信速度が上であれば（ステップＳ６１４：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、上位通信端末との間で優先度と識別情報の並び替えを指示し（ステップＳ６１５）、ステップＳ６１３に戻る。一方、ステップＳ６１４の判断結果、通信速度が同じあるいは下であれば（ステップＳ６１４：Ｎｏ）、処理を終了する。
【００５２】
（並列処理用情報の入れ替え処理）
図７−１は、並列処理用情報入れ替え部の情報送信時の処理内容を示すフローチャートである。並列処理用情報入れ替え部３１０ｇは、入れ替え判断部３１０ｅにより、並列処理用情報３２０を他の通信端末３００に送信する入れ替えが指示されると、処理ブロックの実行を停止する（ステップＳ７０１）。そして、停止時に処理していたプログラムコード上の位置を付随情報３２０ｂに記録し（ステップＳ７０２）、並列処理用情報３２０を指示された通信端末に送信する（ステップＳ７０３）。また、指示された通信端末に入れ替えのための並列処理用情報３２０の送付を要求し（ステップＳ７０４）、処理を終了する。
【００５３】
図７−２は、並列処理用情報入れ替え部の情報受信時の処理内容を示すフローチャートである。並列処理用情報入れ替え部３１０ｇは、他の通信端末３００から並列処理用情報３２０を受信すると、この受信した並列処理用情報３２０をメモリ３０３に配置し（ステップＳ７１０）、並列処理用情報３２０の付随情報３２０ｂに記録されている停止位置から処理ブロックの実行を再開し（ステップＳ７１１）、処理を終了する。
【００５４】
上記の実施の形態１によれば、並列処理をおこなう複数の通信端末には、閾値と、並列処理をしている複数の通信端末内での通信速度の順位（優先度）を設定しておき、通信端末の通信速度が変化したときには、閾値を用いて他の通信端末の通信速度等の情報を得るか否かを判断し、他の通信端末の情報を得るときには、通信端末ごとの優先度に基づき、対象となる通信端末を判断するようにしている。そして、他の通信端末から得た通信速度が閾値内あれば、データの移動はおこなわずに順位（優先度）だけを更新し、通信速度が閾値を下回った場合にのみデータの移動をおこなうようにしている。これにより、端末の通信速度に応じて最適なデータ配置をおこなうのではなく、極力少ないデータの移動で初期もしくは直前に行った再配置時の性能を維持するようにすることで、データの移動に伴う移動コストの増加を抑えることができる。
【００５５】
また、データの移動をおこなう場合は、順位（優先度）が上位の他の通信端末の中からデータを交換しても互いの閾値に収まる通信端末があれば、この通信端末間でデータの交換をおこない、交換可能な通信端末が無い場合には、データの再配置と閾値の再設定をおこなうようにしたので、複数の通信端末の通信状態を考慮して効率的に並列処理をおこなうことができるようになる。
【００５６】
（実施の形態２）
実施の形態２は、実施の形態１同様に処理を分割して通信端末３００の速度順に配置する。実施の形態１と異なる点は、通信速度に対応してあらかじめ設定した閾値を用いず、代わりに並列処理用情報３２０に並列処理用情報３２０のサイズを処理の分割時（設計フェーズ、図１のステップＳ１０）に記録しておく。また、それぞれの通信端末３００には、配置フェーズ（ステップＳ１１）の際に通信速度を優先度情報３２１に記録しておく。
【００５７】
そして、稼働フェーズ（ステップＳ１２）において、通信端末３００の通信速度が変化し、速度が上昇した場合については実施の形態１と同様の処理をおこなう。一方、速度が低下した場合は、実施の形態１と同様に優先度の入れ替えをおこなう。また、推定移動コストと参照時間低下分を算出し、推定移動コスト÷参照時間低下分があらかじめ設定された閾値を下回った場合に並列処理用情報３２０の移動を判断する。この推定移動コストは、並列処理用情報３２０のサイズ÷通信速度で算出する。また、参照時間低下分は、被参照量÷（配置時の通信速度−現在の通信速度）で算出する。
【００５８】
並列処理用情報３２０の移動の判断については、上位通信端末それぞれに対して移動コストと参照時間変化分を算出し、参照時間変化分が０より大きく、かつ移動コスト÷参照時間変化分が最小となる通信端末との間で移動をおこなう。この移動コストは（自通信端末の並列処理用情報３２０のサイズ＋移動候補通信端末の並列処理用情報３２０のサイズ）÷自通信端末の通信速度で算出する。参照時間変化分は、（自通信端末のデータブロック３２０ｃの被参照量−移動候補通信端末のデータブロック３２０ｃの被参照量）÷自通信端末の通信速度＋（移動候補通信端末のデータブロック３２０ｃの被参照量−自通信端末のデータブロック３２０ｃの被参照量）÷移動候補通信端末の通信速度で算出する。入れ替えをおこなった場合は、双方の通信端末でそのときの通信速度を配置時の通信速度として優先度情報３２１に記録する。
【００５９】
図８は、実施の形態２における入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。通信端末３００の通信速度監視部３１０ｃは、通信速度が上昇したか否かを判断する（ステップＳ８０１）。通信速度が上昇していなければ（ステップＳ８０１：Ｎｏ）、下位通信端末の通信速度を取得する（ステップＳ８０２）。そして、下位通信端末の通信速度より通信速度が下であるか判断する（ステップＳ８０３）。判断結果、通信速度が下であれば（ステップＳ８０３：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、下位通信端末との間で優先度と識別情報の並び替えを指示し（ステップＳ８０４）、ステップＳ８０２に戻る。
【００６０】
一方、ステップＳ８０３の判断結果、通信速度が同じあるいは上であれば（ステップＳ８０３：Ｎｏ）、つぎに、推定移動コストと、参照時間低下分を算出する（ステップＳ８０５）。そして、推定移動コスト÷参照時間低下分があらかじめ設定された閾値を下回ったか判断し（ステップＳ８０６）、閾値を下回った場合には（ステップＳ８０６：Ｙｅｓ）、全上位通信端末との間で移動コストと参照時間変化分を算出する（ステップＳ８０７）。そして、参照時間変化分が０より大きな通信端末があるか判断し（ステップＳ８０８）、ある場合には（ステップＳ８０８：Ｙｅｓ）、移動コスト÷参照時間変化分が最小となる上位端末を決定し（ステップＳ８０９）、並列処理用情報入れ替え部３１０ｇに対し、決定した通信端末との間で並列処理用情報３２０の入れ替えを指示し（ステップＳ８１０）、処理を終了する。
【００６１】
上記のステップＳ８０６，ステップＳ８０８において、それぞれ判断結果がＮｏである場合には（ステップＳ８０６：Ｎｏ），（ステップＳ８０８：Ｎｏ）、処理を終了する。
【００６２】
また、ステップＳ８０１において、通信速度が上昇している場合には（ステップＳ８０１：Ｙｅｓ）、上位通信端末の通信速度を取得し（ステップＳ８１１）、そして、上位通信端末の通信速度より通信速度が上であるか判断する（ステップＳ８１２）。判断結果、通信速度が上であれば（ステップＳ８１２：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、上位通信端末との間で優先度と識別情報の並び替えを指示し（ステップＳ８１３）、ステップＳ８１１に戻る。一方、ステップＳ８１２の判断結果、通信速度が同じあるいは下であれば（ステップＳ８１２：Ｎｏ）、処理を終了する。
【００６３】
上記の実施の形態２によれば、優先度の入れ替えは、通信速度に対応した固定の閾値を用いずに、速度変化時に推定移動コストと参照時間低下分の情報を用いて判断する。これら推定移動コストと参照時間低下分の情報は、稼働フェーズ時における通信速度を用いて判断するため、実際の通信速度の変化に対応して、より効率的に並列処理できるようになる。
【００６４】
また、以上説明した各実施の形態で説明した通信端末は、基地局との間で無線通信する携帯電話機を例に説明したが、開示の技術は、このような携帯電話網に適用するに限らない。たとえば、他の無線経路、たとえば、無線ＬＡＮ等のアクセスポイントに切り替えて接続可能な通信端末にも同様に適用できる。この場合、携帯電話網と無線ＬＡＮとでは通信速度が異なる場合があり、対応して実施の形態１で説明した上記の閾値は、たとえば、配置フェーズ（ステップＳ１１）のとき携帯電話網と無線ＬＡＮのそれぞれで異なる値を設定し、稼働フェーズ（ステップＳ１２）のときには、無線経路の通信速度に対応した閾値を用いて処理することができる。この他、無線経路の種別に限らず、共通の閾値を用いることもできる。
【００６５】
以上説明した開示技術によれば、並列処理を実行中の通信端末の通信状態が変化しても、データの移動を直ぐにおこなうことはせず、自通信端末の通信速度の変化の程度や、他の通信端末の通信速度等の情報を得てから判断するので、無駄な処理をおこなわずに処理実行できるようになる。特に、極力少ないデータの移動で並列処理の実行開始時等に行ったデータ分割時の性能を維持でき、データの移動に伴う移動コスト（時間）の増加を抑え、複数の通信端末により実行する並列処理全体の効率を向上できるようになる。
【符号の説明】
【００６６】
３００  通信端末
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  メモリ
３０４  通信モジュール
３０５  バス
３１０  並列処理実行管理プログラム
３１０ａ  並列処理用情報受入部
３１０ｂ  処理ブロック実行制御部
３１０ｃ  通信速度監視部
３１０ｄ  閾値決定部
３１０ｅ  入れ替え判断部
３１０ｆ  優先度入れ替え部
３１０ｇ  並列処理用情報入れ替え部
３２０  並列処理用情報
３２１  優先度情報
【図１】
2012147206.tif 000003
【図２】
2012147206.tif 000004
【図３】
2012147206.tif 000005
【図４】
2012147206.tif 000006
【図５】
2012147206.tif 000007
【図６】
2012147206.tif 000008
【図７−１】
2012147206.tif 000009
【図７−２】
2012147206.tif 000010
【図８】
2012147206.tif 000011
【手続補正書】
【提出日】平成25年10月31日(2013.10.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、
前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と、前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報と、を入れ替えること
を特徴とするデータ割り当て方法。
【請求項２】
前記第１通信速度が前記複数の処理装置に含まれる第３処理装置の第３通信速度より大きいとき、前記第１処理装置に割り当てられるデータの通信量情報が示す頻度は、前記第３処理装置に割り当てられるデータの通信量情報が示す頻度よりも大きいこと
を特徴とする請求項１に記載のデータ割り当て方法。
【請求項３】
前記第１通信速度が第３処理装置の第３通信速度より大きいとき、前記第１優先度情報が示す優先度は前記第３処理装置に付される第３優先度情報が示す優先度よりも高いこと
を特徴とする請求項１に記載のデータ割り当て方法。
【請求項４】
前記第２通信速度が前記第１通信速度より大きくなるとき、前記第１優先度情報と前記第２優先度情報とを入れ替えること
を特徴とする請求項１乃至請求項３の何れか一に記載のデータ割り当て方法。
【請求項５】
前記第１通信速度が前記第１通信速度に対応する第１閾値より小さくなるとともに前記第２優先度情報が示す優先度が前記第１優先度情報が示す優先度よりも高いとき、前記第１通信速度と前記第２通信速度に対応する第２閾値とを比較すること
を特徴とする請求項１乃至請求項４の何れか一に記載のデータ割り当て方法。
【請求項６】
前記第１通信速度が前記第２閾値より大きいとき、前記第１処理装置のデータと前記第２処理装置のデータとを入れ替えること
を特徴とする請求項５に記載のデータ割り当て方法。
【請求項７】
前記第１処理装置が実行するプログラムを停止し、停止したときのプログラムコードの停止位置を前記第１処理装置に割り当てられたデータに記録して前記データを前記第２処理装置に送信すること
を特徴とする請求項６に記載のデータ割り当て方法。
【請求項８】
前記第１通信速度が前記第２閾値より小さいとき、データの入れ替えをおこなわないこと
を特徴とする請求項５に記載のデータ割り当て方法。
【請求項９】
前記複数の処理装置の間でのデータの入れ替えをおこなわないときには、前記複数の処理装置に対する前記データの割り当て直しをおこなうとともに、前記通信速度に基づき前記第２閾値を再設定すること
を特徴とする請求項８に記載のデータ割り当て方法。
【請求項１０】
前記第１通信速度が低下するとともに前記第２優先度情報が示す優先度が前記第１優先度情報が示す優先度より高いとき、前記第１処理装置に割り当てられたデータのサイズ、前記第２処理装置に割り当てられたデータのサイズ、前記第１通信速度、前記第２通信速度、および前記第１通信速度の低下分に基づいて、前記第１処理装置のデータと前記第２処理装置のデータとの入れ替えを判断すること
を特徴とする請求項１乃至請求項４の何れか一に記載のデータ割り当て方法。
【請求項１１】
前記複数の処理装置に含まれる所定の処理装置、または当該処理装置を管理する上位の管理装置が、データおよび優先度情報の割り当てをおこなうこと
を特徴とする請求項１乃至請求項１０の何れか一に記載のデータ割り当て方法。
【請求項１２】
複数の処理装置との間でデータ転送をおこなう処理装置内のＣＰＵを含み、
前記ＣＰＵは、
複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、
前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報とを入れ替えること
を特徴とするデータ割り当てシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信端末を利用して並列処理をおこなう場合に端末間で共有するデータのデータ割り当て方法およびデータ割り当てシステムに関する。
【背景技術】
【０００２】
複数の携帯電話機等の通信端末を利用して並列処理をおこなう手法としては、並列処理の受け入れが可能な通信端末を中央のサーバ等の処理管理装置が検索し、通信端末に実行依頼する手法（たとえば、下記特許文献１参照。）や、通信端末が搭載するＣＰＵの処理能力やメモリ容量によって、通信端末に割り当てる処理を処理管理装置が決定する手法（たとえば、下記特許文献２参照。）が提案されている。
【０００３】
従来の通信端末は、通信帯域が狭く通信の遅延時間も大きかったため、通信端末同士の間で頻繁に通信をおこなうような並列処理には適していない。このため、処理の開始から処理の完了までの間は、通信端末同士の間で通信をおこなわない完全分散型の並列処理をおこなうことを想定していた。
【０００４】
近年では、通信技術の発達により通信端末間の通信が高速かつ低遅延でおこなえるようになってきている。このため、ある通信端末で生成したデータを別の通信端末で頻繁に参照しながら処理をおこなうような並列処理が可能になる。この場合、それぞれの通信端末の通信能力は同一ではないため通信端末の通信能力を考慮して各通信端末に対するデータの配置（割り当て）を決定する必要がある。
【０００５】
大型計算機などの分野では、分散メモリ型のマルチプロセッサシステムにおいて、処理ノード間の通信能力を考慮してデータ配置（割り当て）を決定する処理がおこなわれているが、通信端末では基地局との距離等の通信環境の要因により、通信端末の通信能力が常に変化するため、通信環境を考慮したデータ配置（割り当て）が必要となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２０１８９６号公報
【特許文献２】特開２００７−２４１３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、複数の通信端末の通信能力を考慮した並列処理をおこなうことができず、複数の通信端末を用い、通信能力や通信環境等の通信状態の変化に対応して並列処理を効率的に実行できる手法が望まれていた。
【０００８】
たとえば、通信端末間でデータを移動するためには、通信端末間で通信してデータを受け渡すだけではなく、データを持っている通信端末が変更したことを他の通信端末に広報するなど、通信端末内でいくつかの処理をおこなったり、通信端末同士で相互の通信をおこなう必要が生じる。このようなデータの移動には、時間等の移動コストが発生する。このため、単純に通信端末の通信速度が変わるたびに速度が速い通信端末と遅い通信端末との間でデータを入れ替えるだけの処理をおこなうと、通信端末間のデータ移動にかかるコストの方が大きくなる。このため、なるべく低い移動頻度で通信速度の変化に対応する必要がある。
【０００９】
開示のデータ割り当て方法およびデータ割り当てシステムは、上述した問題点を解消するものであり、複数の処理装置の通信状態の変化に対応して並列処理を効率的に実行できることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、開示技術は、複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と、前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報と、を入れ替える。
【発明の効果】
【００１１】
開示のデータ割り当て方法およびデータ割り当てシステムによれば、複数の処理装置の通信状態の変化に対応して並列処理を効率的に実行できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかるデータ割り当て方法の処理概要を示すフローチャートである。
【図２】図２は、設計フェーズにおける処理およびデータの分割の工程を示す説明図である。
【図３】図３は、実施の形態１にかかるデータ割り当てシステムに含まれる通信端末の構成例を示すブロック図である。
【図４】図４は、通信速度が変化した場合の通信端末間での入れ替え処理を説明する図である。
【図５】図５は、並列処理を開始する通信端末の処理内容を示すフローチャートである。
【図６】図６は、入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。
【図７−１】図７−１は、並列処理用情報入れ替え部の情報送信時の処理内容を示すフローチャートである。
【図７−２】図７−２は、並列処理用情報入れ替え部の情報受信時の処理内容を示すフローチャートである。
【図８】図８は、実施の形態２における入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。開示技術は、複数の処理装置を用いてデータを並列処理するにあたり事前にデータを分割するデータ割り当てをおこなっておき、実際に複数の処理装置を用いてデータを並列処理する。複数の処理装置は、たとえば基地局を介して無線通信をおこなう携帯電話機等の複数の通信端末を用いることができる。そして、通信状態の変化に対応して通信端末同士の間でデータの入れ替えが必要であるか判断する。この際、データの入れ替えが適切であるかを自通信端末と他の通信端末の通信速度等の情報を用いて判断してからおこなうことにより、無駄にデータの入れ替えをおこなうことが無く、システム全体における並列処理を効率的におこなう。
【００１４】
（実施の形態１）
（データ割り当て方法の処理概要）
図１は、実施の形態１にかかるデータ割り当て方法の処理概要を示すフローチャートである。データ割り当ての実施は、並列処理用に処理とデータを分割する設計フェーズ（ステップＳ１０）と、並列処理開始時に複数の処理装置（通信端末）に配置するデータを決定する配置フェーズ（ステップＳ１１）と、並列処理開始後に複数の通信端末の通信状態を監視して再配置をおこなう稼働フェーズ（ステップＳ１２）の３フェーズからなる。
【００１５】
設計フェーズ（ステップＳ１０）は、プログラム作成時等にＰＣ等のコンピュータ装置が実行する工程である。はじめに、並列処理用にデータ分割する（ステップＳ１０１）。すなわち、並列化対象の処理を解析し、複数の通信端末で並列化できるように処理とデータを並列化対象の通信端末数に分割する。つぎに、分割した各データの他の通信端末から参照されている通信量情報としての参照量を解析する（ステップＳ１０２）。この通信量情報は、複数の処理装置がデータにアクセスする頻度に関する情報である。また、分割された各データに対してペアとした処理以外からの参照量の総量を被参照量として算出して記録する。
【００１６】
配置フェーズ（ステップＳ１１）は、並列処理を開始する親の通信端末が実行する工程である。配置フェーズ（ステップＳ１１）では、並列処理対象となる割り当て対象の通信端末を決定する。並列処理を受け入れ可能な通信端末を設計フェーズ（ステップＳ１０）で設定した通信端末数分だけ選定する。
【００１７】
そして、選定された対象の通信端末の通信速度を取得し（ステップＳ１０３）、各通信端末に通信速度が高い順に被参照量の大きなデータと処理のペアを割り当てていく。具体的には、各通信端末に通信速度順に通信端末の優先度を設定し（ステップＳ１０４）、各通信端末に対して優先度が上位と下位の通信端末へアクセスするための端末識別情報（上位端末識別情報および下位端末識別情報）を設定する（ステップＳ１０５）。これら優先度と端末識別情報は、優先度情報を構成している。そして、優先度順（すなわち通信速度が大きい順）に被参照量の多い処理とデータを割り当てる（ステップＳ１０６）。
【００１８】
この配置フェーズ（ステップＳ１１）の処理は、並列処理を開始する親の通信端末が実行するに限らず、複数の通信端末の上位装置、たとえば、基地局あるいは基地局に接続される処理管理装置が各通信端末の情報を収集して実行することもできる。
【００１９】
稼働フェーズ（ステップＳ１２）は、並列処理をおこなう各通信端末が実行する工程である。ステップＳ１０６により、処理とデータが割り当てられた各通信端末は、通信速度と通信量から閾値を算出し、自通信端末に設定する（ステップＳ１０７）。このため、各通信端末は、自通信端末と、上位および下位の通信端末の通信速度を監視する。
【００２０】
処理の詳細は後述するが、自通信端末の通信速度（第１処理装置）と、他の上位および下位の通信端末（第２処理装置）の通信速度を監視することにより、通信速度の変化時に、自通信端末と他の通信端末との間で相互に優先度の入れ替え、処理とデータの交換等の処理をおこない、複数の通信端末による並列処理を実行していく。
【００２１】
たとえば、自通信端末の通信速度が上位の通信端末を上回った場合は、上位の通信端末との間で優先度の入れ替えと、通信端末の端末識別情報（上位端末識別情報および下位端末識別情報）の並び替えをおこなう。自通信端末の通信速度が下位の通信端末より下回ったが、閾値よりは下回っていない場合も下位の通信端末との間で優先度の入れ替えと端末識別情報の並び替えをおこなう。
【００２２】
通信速度が閾値よりも下回った場合は、上位の通信端末との間でそれぞれの通信速度と割り当てられたデータの閾値を比較し、データを交換するとそれぞれの通信端末で通信速度が閾値以内に収まる場合は上位の通信端末と処理とデータのペアを交換する。交換しても閾値以内に収まらない場合は、上位の通信端末が持つ上位の通信端末の端末識別情報（上位端末識別情報）を取得してさらに上位の通信端末と同様の比較をおこなう。この比較を最上位（優先度が１）の通信端末まで繰り返して交換可能な通信端末が見つからなければ、並列処理を開始したときの性能が維持できないとして、再度、並列処理を開始した親の通信端末は並列処理の必要性を判断し、並列処理が必要な場合には初期配置と同様に配置変更をおこなう。
【００２３】
（設計フェーズにおける処理およびデータの分割の詳細）
図２は、設計フェーズにおける処理およびデータの分割の工程を示す説明図である。処理の分割は、はじめに対象処理のプログラムコード２０１を参照し、データ２０１ａを解析して、並列化可能な複数の処理ブロック（処理ブロック１，２，…ｎ）に分割する。また、各処理ブロック１〜ｎが利用するデータ２０２を解析して複数のデータブロック（データブロック１，２，…，ｎ）に分割し、各処理ブロック１〜ｎがどのデータブロックに対してどれだけのデータ量をアクセスするかを参照量として解析しておく。
【００２４】
そして、各処理ブロックからみて最も参照量が大きな処理ブロックとデータブロックの組をペアとして、各データブロックにおいてペアとされた処理ブロック以外の処理ブロックからの参照量の総計を被参照量として設定する。
【００２５】
図２に示す例では、処理ブロック１は、データブロック１には２００の参照量、データブロック２には１５０の参照量となっているため、処理ブロック１とデータブロック１をペアとする。データブロック１は、処理ブロック１以外に処理ブロック２からも参照量５０でアクセスされているため、データブロック１の被参照量は５０となる。同じように処理ブロック２は、データブロック２への参照量が最も大きくなるため、処理ブロック２とデータブロック２をペアとする、データブロック２の被参照量は、処理ブロック１からの１５０となる。
【００２６】
配置フェーズ（ステップＳ１１）では、設計フェーズ（ステップＳ１０）で分割した処理ブロック（プログラムブロックに相当）と、この処理ブロックにペアとなるデータブロックとデータブロックの被参照量を記録した情報を並列処理用情報としてまとめ、この並列処理用情報と、上記処理とデータを各通信端末に割り当てる。
【００２７】
（割り当てシステムの構成例）
図３は、実施の形態１にかかるデータ割り当てシステムに含まれる通信端末の構成例を示すブロック図である。通信端末３００は、上述したように、基地局を介して親となる通信端末３００との間で処理対象のデータ、および並列処理のための情報を無線により送受信する。この通信端末３００は、ソフトウェアとハードウェアとを含む。ハードウェアは、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ等のメモリ３０３と、通信モジュール３０４と、これらＣＰＵ３０１〜通信モジュール３０４を相互に接続するバス（ＢＵＳ）３０５とを含む。ソフトウェアは、並列処理実行管理プログラム３１０からなり、ＲＯＭ３０２にあらかじめ記録されている。
【００２８】
ＣＰＵ３０１は、ＲＯＭ３０２に記録された並列処理実行管理プログラム３１０を実行することにより、複数の通信端末３００におけるデータの並列処理を実行する。この際、ＣＰＵ３０１は、メモリ３０３を作業用領域として用い並列処理を実行する。また、ＣＰＵ３０１は、この並列処理実行時に、通信モジュール３０４により、基地局を介して親となる通信端末３００と相互通信し、他の通信端末３００との並列処理の実行に必要な情報をやりとりする。
【００２９】
メモリ３０３には、並列処理時に必要な並列処理用情報３２０と、優先度情報３２１が格納される。優先度情報３２１は、通信モジュール３０４を介して受信した並列処理用情報３２０と、この並列処理用情報３２０に基づき、受信した通信端末３００が生成する優先度情報３２１と、を含む。
【００３０】
並列処理実行管理プログラム３１０は、並列処理用情報受入部３１０ａと、処理ブロック実行制御部３１０ｂと、通信速度監視部３１０ｃと、閾値決定部３１０ｄと、入れ替え判断部３１０ｅと、優先度入れ替え部３１０ｆと、並列処理用情報入れ替え部３１０ｇとを含む。
【００３１】
並列処理用情報受入部３１０ａは、通信モジュール３０４により受信した並列処理用情報３２０を取り込む。処理ブロック実行制御部３１０ｂは、通信端末３００に割り当てられた処理ブロックに対応する処理を実行する。通信速度監視部３１０ｃは、通信端末３００の通信速度を監視する。閾値決定部３１０ｄは、通信速度等に対応した値を決定する。入れ替え判断部３１０ｅは、通信速度の変化に基づき、自通信端末３００と他の通信端末との間で優先度、あるいは並列処理用情報３２０を入れ替えるか否かを判断する。優先度入れ替え部３１０ｆは、入れ替え判断部３１０ｅにより、優先度を入れ替えると判断された場合に、自通信端末３００と他の通信端末に設定された優先度を入れ替える。並列処理用情報入れ替え部３１０ｇは、入れ替え判断部３１０ｅにより、並列処理用情報３２０を入れ替えると判断された場合に、自通信端末３００と他の通信端末との間で並列処理用情報３２０を入れ替える。
【００３２】
並列処理用情報３２０は、処理ブロックに対応するプログラムコード３２０ａと、被参照量（通信量）、および閾値、処理の停止位置等の付随情報３２０ｂと、処理対象のデータブロック３２０ｃとを含む。優先度情報３２１は、自通信端末３００の優先度と、自通信端末３００に対して優先度が高い上位端末識別情報と、優先度が低い下位端末識別情報とを含む。
【００３３】
（稼働フェーズにおける通信端末の処理の概要）
上記構成の通信端末３００は、ＣＰＵ３０１が並列処理実行管理プログラム３１０を実行する。そして、通信端末３００に対して、並列処理を開始した親となる通信端末３００から並列処理用情報３２０が割り当てられると、並列処理実行管理プログラム３１０の並列処理用情報受入部３１０ａが通信モジュール３０４を介して送られてきた並列処理用情報３２０をメモリ３０３に配置する。また、並列処理用情報３２０とともに送られてきた優先度情報３２１である、自通信端末３００の優先度と、端末識別情報（自通信端末３００からみて上位の端末識別情報および下位の端末識別情報）をメモリ３０３に記録する。
【００３４】
その後、閾値決定部３１０ｄが閾値を算出して、並列処理用情報３２０内に記録し、処理ブロック実行制御部３１０ｂが割り当てられた処理ブロックに対応する処理を実行する。処理実行開始後は、通信速度監視部３１０ｃが通信モジュール３０４を利用して通信速度を監視し、通信速度が変化した場合は、入れ替え判断部３１０ｅで優先度のみを入れ替えるか、並列処理用情報３２０を入れ替えるか、入れ替えをおこなわないかを判断し、優先度のみを入れ替える場合は、優先度入れ替え部３１０ｆが対象の通信端末３００と優先度情報の入れ替えをおこない、並列処理用情報を入れ替える場合は並列処理用情報入れ替え部３１０ｇで対象通信端末と並列処理用情報を入れ替える。
【００３５】
（通信速度が変化したときの入れ替え処理）
図４は、通信速度が変化した場合の通信端末間での入れ替え処理を説明する図である。入れ替えとは、以下に説明するように、優先度情報３２１の優先度の入れ替え、および並列処理用情報３２０の入れ替えである。図示の例では３台の通信端末３００を利用して並列処理をおこなっている例である。図の上外方向が時刻の軸である。図中、通信端末は端末と表記し、上位（下位）の通信端末は上位（下位）端末と表記している。
【００３６】
時刻Ｔ１は、割り当てをおこなった直後の状態であり、このときの各通信端末の通信速度は通信端末１が１０Ｍｂｐｓ、通信端末２が８Ｍｂｐｓ、通信端末３が５Ｍｂｐｓであるとする。これにより、一番通信速度が速い通信端末１が優先度１となり、この通信端末１に最も被参照量の大きな並列処理用情報１を割り当てる。このとき、閾値は、たとえば、割り当て時の通信速度の８０％の値となる８Ｍｂｐｓを設定する。通信端末１からみて、上位の優先度の通信端末は無いため「無し」と設定され、下位の通信端末として２番目に通信速度の速い通信端末２を設定する。
【００３７】
同様に通信端末２には２番目に被参照量の大きな並列処理用情報２を割り当て、閾値は８Ｍｂｐｓの８０％で６．４Ｍｂｐｓ、優先度は２で上位の通信端末は通信端末１、下位の通信端末は通信端末３となる。また、通信端末３には並列処理用情報３を割り当て、閾値は４Ｍｂｐｓ、優先度は３で上位通信端末は通信端末２、下位通信端末はこの例ではこの３台で並列処理をするため「無し」となる。
【００３８】
つぎに、時刻Ｔ２のときに、通信端末３の通信速度が上昇し、９Ｍｂｐｓに変化したとする。この場合、通信速度監視部３１０ｃが通信速度の上昇を検出する。そして、入れ替え判断部３１０ｅでは、通信速度が上昇したため、上位通信端末である通信端末２の通信速度を通信端末２から取得する。通信端末２の通信速度は８Ｍｂｐｓで変わらないため、通信端末３の通信速度が通信端末２を上回ったことになる。これにより、通信端末３の入れ替え判断部３１０ｅは、通信端末２との優先度の入れ替えをおこなうと判断する。対応して、優先度入れ替え部３１０ｆは、通信端末２の優先度２と上位通信端末１の情報を取得して、自通信端末３の優先度を２とし上位通信端末を１と設定し、さらに下位通信端末として通信端末２を設定する。また、変更前の自通信端末３の優先度と、下位通信端末「無し」を通信端末２に通知する。通信端末２では、通知を受けて優先度を３とし、下位通信端末「無し」の値に変更し、さらに上位通信端末を通信端末３に変更する。
【００３９】
その後、時刻Ｔ３になったとき、通信端末２の通信速度が５Ｍｂｐｓに低下したとする。これにより、通信端末２は、通信速度が並列処理用情報２に記録された閾値よりも下回ったことになる。このとき、通信端末２は、上位の通信端末である通信端末３に割り当てられている並列処理用情報３の閾値を取得する。通信端末２の通信速度が５Ｍｂｐｓで割り当てられている並列処理用情報２の閾値が６．４Ｍｂｐｓなのに対して、通信端末３の通信速度が９Ｍｂｐｓで割り当てられている並列処理用情報３の閾値が４Ｍｂｐｓであるため、通信端末２と通信端末３の間で並列処理用情報を入れ替えると互いの閾値に収まることになる。そこで、通信端末３の入れ替え判断部３１０ｅは、並列処理用情報３２０の入れ替えをおこなうと判断する。
【００４０】
そして、通信端末２の並列処理用情報入れ替え部３１０ｇは、処理ブロック実行制御部３１０ｂに対し、実行している処理ブロックの実行を停止させる。処理ブロックが停止すると、プログラムコード中の停止した位置を並列処理用情報３２０の付随情報３２０ｂに記録し、自通信端末２の並列処理用情報３２０を通信端末３に送る。また、通信端末３に並列処理用情報３２０の送信を依頼する。通信端末２は、通信端末３から並列処理用情報３２０を受け取ると、この並列処理用情報３２０をメモリ３０３に配置し、並列処理用情報３２０の付随情報３２０ｂに記録された停止位置から処理ブロックの実行を再開する。
【００４１】
上記処理によれば、通信速度が上昇した場合は、並列処理用情報３２０の入れ替えをおこなわないため、時刻Ｔ３における通信端末２のように、より通信速度が速い通信端末の中に通信端末２よりも被参照量の小さな並列処理用情報３２０を持っている通信端末が存在する可能性がある。そこで、優先度を利用してより通信速度が速い通信端末を検索し、閾値により交換可能かどうかを判断する。このように、閾値を用いることにより、あえて通信速度が上位の他の通信端末から被参照量が最小の並列処理用情報３２０を検索しなくても、データの処理性能を確保できる他の対象の通信端末を簡単に決定できるようになる。
【００４２】
この後、時刻Ｔ４では通信端末３の通信速度が６Ｍｂｐｓに低下したとする。これにより通信端末３に割り当てられている並列処理用情報２の閾値を下回るが、通信端末３の上位となる通信端末１に割り当てられている並列処理用情報１の閾値は８Ｍｂｐｓのため、入れ替えても閾値を満足できない。このような場合は、並列処理を開始した親の通信端末に、通信端末３と上位の他の通信端末（ここでは通信端末１）内での並列処理用情報３２０の再配置を依頼する。
【００４３】
データの再配置では、一旦、並列処理対象の複数の通信端末で処理ブロックの実行を停止させ、並列処理を開始した通信端末が並列処理用情報３２０を回収し、配置フェーズと同様に通信速度順に被参照量の大きな並列処理用情報３２０を割り当てる。割り当てられた通信端末は閾値を再設定し、並列処理用情報３２０の付随情報３２０ｂに記録されている停止位置から処理ブロックの処理を再開する。この例では、通信端末１は優先度、および通信速度ともに変わっていないため、そのまま並列処理用情報１が割り当てられ、閾値も８Ｍｂｐｓのままとなる。通信端末３は、並列処理用情報２が割り当てられ、閾値は現在の通信速度が６Ｍｂｐｓのため、その８０％の４．８Ｍｂｐｓに変更される。
【００４４】
また、上記処理例では、再配置時に通信端末の変更はおこなわなかったが、現在の並列処理対象の複数の通信端末では十分な性能が期待できない場合には、配置フェーズでおこなったときと同様に対象の通信端末を選び直したり、場合によっては並列処理をおこなっても意味が無いとして並列処理そのものを取りやめることもできる。
【００４５】
（並列処理を開始する通信端末における処理）
図５は、並列処理を開始する通信端末の処理内容を示すフローチャートである。上記の配置フェーズ（ステップＳ１１）における並列処理を開始する通信端末３００の処理を説明する。はじめに、並列処理対象となる複数の通信端末３００を決定する（ステップＳ５０１）。この決定は、上記特許文献等に開示された技術を用いることができ、たとえば、並列処理を受け入れ可能な性能を有する通信端末３００を設計フェーズ（ステップＳ１０）で設定した通信端末数分だけ選定すればよい。選定された全ての通信端末３００は、設計フェーズ（ステップＳ１０）で分割した各処理および各データを受け入れられるだけの処理能力とメモリ容量を持っていることとする。
【００４６】
つぎに、選定された複数の通信端末３００から通信速度が最も早い未選択の通信端末３００を選択し（ステップＳ５０２）、選択した通信端末３００に最も被参照量の大きな未割り当ての並列処理用情報３２０を割り当てる（ステップＳ５０３）。この後、未選択の通信端末３００があるか判断し（ステップＳ５０４）、未選択の通信端末３００があれば（ステップＳ５０４：Ｙｅｓ）、ステップＳ５０２に戻り同様の処理を実行する。未選択の通信端末３００が無ければ（ステップＳ５０４：Ｎｏ）、配置フェーズの処理を終了する。なお、上述した再配置の場合においても、図５と同様の処理をおこなう。
【００４７】
（入れ替え判断部の処理）
図６は、入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。通信端末３００の通信速度監視部３１０ｃは、通信速度が上昇したか否かを判断する（ステップＳ６０１）。通信速度が上昇していなければ（ステップＳ６０１：Ｎｏ）、下位通信端末の通信速度を取得する（ステップＳ６０２）。そして、下位通信端末の通信速度より通信速度が下であるか判断する（ステップＳ６０３）。判断結果、通信速度が下であれば（ステップＳ６０３：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、下位通信端末との間で優先度情報３２１の優先度と識別情報の並び替えを指示し（ステップＳ６０４）、ステップＳ６０２に戻る。
【００４８】
一方、ステップＳ６０３の判断結果、通信速度が同じあるいは上であれば（ステップＳ６０３：Ｎｏ）、つぎに、閾値が通信速度より上であるかを判断する（ステップＳ６０５）。閾値が通信速度より上であれば（ステップＳ６０５：Ｙｅｓ）、優先度情報３２１から上位端末識別情報を取得するが（ステップＳ６０６）、閾値が通信速度と同じあるいは下であれば（ステップＳ６０５：Ｎｏ）、処理を終了する。
【００４９】
ステップＳ６０６の実行により、入れ替え判断部３１０ｅは、上位通信端末に対応する通信端末があるか判断する（ステップＳ６０７）。対応する通信端末があれば（ステップＳ６０７：Ｙｅｓ）、対応する通信端末の通信速度と閾値を取得するが（ステップＳ６０８）、対応する通信端末が無ければ（ステップＳ６０７：Ｎｏ）、並列処理を開始した親となる通信端末に再配置を依頼し（ステップＳ６０９）、処理を終了する。
【００５０】
ステップＳ６０８の実行後、上位通信端末の閾値が自通信端末の通信速度以下であり、かつ、自通信端末の閾値が上位通信端末の通信速度以下の条件を満たすかを判断する（ステップＳ６１０）。判断の結果、条件を満たしている場合には（ステップＳ６１０：Ｙｅｓ）、並列処理用情報入れ替え部３１０ｇに対し、対応する通信端末との間で並列処理用情報３２０の入れ替えを指示し（ステップＳ６１１）、処理を終了する。ステップＳ６１０による判断の結果、条件を満たしていない場合には（ステップＳ６１０：Ｎｏ）、対応する通信端末の優先度情報３２１の上位端末識別情報を取得し（ステップＳ６１２）、ステップＳ６０７に戻る。
【００５１】
また、ステップＳ６０１において、通信速度が上昇している場合には（ステップＳ６０１：Ｙｅｓ）、上位通信端末の通信速度を取得し（ステップＳ６１３）、そして、上位通信端末の通信速度より通信速度が上であるか判断する（ステップＳ６１４）。判断結果、通信速度が上であれば（ステップＳ６１４：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、上位通信端末との間で優先度と識別情報の並び替えを指示し（ステップＳ６１５）、ステップＳ６１３に戻る。一方、ステップＳ６１４の判断結果、通信速度が同じあるいは下であれば（ステップＳ６１４：Ｎｏ）、処理を終了する。
【００５２】
（並列処理用情報の入れ替え処理）
図７−１は、並列処理用情報入れ替え部の情報送信時の処理内容を示すフローチャートである。並列処理用情報入れ替え部３１０ｇは、入れ替え判断部３１０ｅにより、並列処理用情報３２０を他の通信端末３００に送信する入れ替えが指示されると、処理ブロックの実行を停止する（ステップＳ７０１）。そして、停止時に処理していたプログラムコード上の位置を付随情報３２０ｂに記録し（ステップＳ７０２）、並列処理用情報３２０を指示された通信端末に送信する（ステップＳ７０３）。また、指示された通信端末に入れ替えのための並列処理用情報３２０の送付を要求し（ステップＳ７０４）、処理を終了する。
【００５３】
図７−２は、並列処理用情報入れ替え部の情報受信時の処理内容を示すフローチャートである。並列処理用情報入れ替え部３１０ｇは、他の通信端末３００から並列処理用情報３２０を受信すると、この受信した並列処理用情報３２０をメモリ３０３に配置し（ステップＳ７１０）、並列処理用情報３２０の付随情報３２０ｂに記録されている停止位置から処理ブロックの実行を再開し（ステップＳ７１１）、処理を終了する。
【００５４】
上記の実施の形態１によれば、並列処理をおこなう複数の通信端末には、閾値と、並列処理をしている複数の通信端末内での通信速度の順位（優先度）を設定しておき、通信端末の通信速度が変化したときには、閾値を用いて他の通信端末の通信速度等の情報を得るか否かを判断し、他の通信端末の情報を得るときには、通信端末ごとの優先度に基づき、対象となる通信端末を判断するようにしている。そして、他の通信端末から得た通信速度が閾値内あれば、データの移動はおこなわずに順位（優先度）だけを更新し、通信速度が閾値を下回った場合にのみデータの移動をおこなうようにしている。これにより、端末の通信速度に応じて最適なデータ配置をおこなうのではなく、極力少ないデータの移動で初期もしくは直前に行った再配置時の性能を維持するようにすることで、データの移動に伴う移動コストの増加を抑えることができる。
【００５５】
また、データの移動をおこなう場合は、順位（優先度）が上位の他の通信端末の中からデータを交換しても互いの閾値に収まる通信端末があれば、この通信端末間でデータの交換をおこない、交換可能な通信端末が無い場合には、データの再配置と閾値の再設定をおこなうようにしたので、複数の通信端末の通信状態を考慮して効率的に並列処理をおこなうことができるようになる。
【００５６】
（実施の形態２）
実施の形態２は、実施の形態１同様に処理を分割して通信端末３００の速度順に配置する。実施の形態１と異なる点は、通信速度に対応してあらかじめ設定した閾値を用いず、代わりに並列処理用情報３２０に並列処理用情報３２０のサイズを処理の分割時（設計フェーズ、図１のステップＳ１０）に記録しておく。また、それぞれの通信端末３００には、配置フェーズ（ステップＳ１１）の際に通信速度を優先度情報３２１に記録しておく。
【００５７】
そして、稼働フェーズ（ステップＳ１２）において、通信端末３００の通信速度が変化し、速度が上昇した場合については実施の形態１と同様の処理をおこなう。一方、速度が低下した場合は、実施の形態１と同様に優先度の入れ替えをおこなう。また、推定移動コストと参照時間低下分を算出し、推定移動コスト÷参照時間低下分があらかじめ設定された閾値を下回った場合に並列処理用情報３２０の移動を判断する。この推定移動コストは、並列処理用情報３２０のサイズ÷通信速度で算出する。また、参照時間低下分は、被参照量÷（配置時の通信速度−現在の通信速度）で算出する。
【００５８】
並列処理用情報３２０の移動の判断については、上位通信端末それぞれに対して移動コストと参照時間変化分を算出し、参照時間変化分が０より大きく、かつ移動コスト÷参照時間変化分が最小となる通信端末との間で移動をおこなう。この移動コストは（自通信端末の並列処理用情報３２０のサイズ＋移動候補通信端末の並列処理用情報３２０のサイズ）÷自通信端末の通信速度で算出する。参照時間変化分は、（自通信端末のデータブロック３２０ｃの被参照量−移動候補通信端末のデータブロック３２０ｃの被参照量）÷自通信端末の通信速度＋（移動候補通信端末のデータブロック３２０ｃの被参照量−自通信端末のデータブロック３２０ｃの被参照量）÷移動候補通信端末の通信速度で算出する。入れ替えをおこなった場合は、双方の通信端末でそのときの通信速度を配置時の通信速度として優先度情報３２１に記録する。
【００５９】
図８は、実施の形態２における入れ替え判断部がおこなう入れ替え判断の処理内容を示すフローチャートである。通信端末３００の通信速度監視部３１０ｃは、通信速度が上昇したか否かを判断する（ステップＳ８０１）。通信速度が上昇していなければ（ステップＳ８０１：Ｎｏ）、下位通信端末の通信速度を取得する（ステップＳ８０２）。そして、下位通信端末の通信速度より通信速度が下であるか判断する（ステップＳ８０３）。判断結果、通信速度が下であれば（ステップＳ８０３：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、下位通信端末との間で優先度と識別情報の並び替えを指示し（ステップＳ８０４）、ステップＳ８０２に戻る。
【００６０】
一方、ステップＳ８０３の判断結果、通信速度が同じあるいは上であれば（ステップＳ８０３：Ｎｏ）、つぎに、推定移動コストと、参照時間低下分を算出する（ステップＳ８０５）。そして、推定移動コスト÷参照時間低下分があらかじめ設定された閾値を下回ったか判断し（ステップＳ８０６）、閾値を下回った場合には（ステップＳ８０６：Ｙｅｓ）、全上位通信端末との間で移動コストと参照時間変化分を算出する（ステップＳ８０７）。そして、参照時間変化分が０より大きな通信端末があるか判断し（ステップＳ８０８）、ある場合には（ステップＳ８０８：Ｙｅｓ）、移動コスト÷参照時間変化分が最小となる上位端末を決定し（ステップＳ８０９）、並列処理用情報入れ替え部３１０ｇに対し、決定した通信端末との間で並列処理用情報３２０の入れ替えを指示し（ステップＳ８１０）、処理を終了する。
【００６１】
上記のステップＳ８０６，ステップＳ８０８において、それぞれ判断結果がＮｏである場合には（ステップＳ８０６：Ｎｏ），（ステップＳ８０８：Ｎｏ）、処理を終了する。
【００６２】
また、ステップＳ８０１において、通信速度が上昇している場合には（ステップＳ８０１：Ｙｅｓ）、上位通信端末の通信速度を取得し（ステップＳ８１１）、そして、上位通信端末の通信速度より通信速度が上であるか判断する（ステップＳ８１２）。判断結果、通信速度が上であれば（ステップＳ８１２：Ｙｅｓ）、優先度入れ替え部３１０ｆに対し、上位通信端末との間で優先度と識別情報の並び替えを指示し（ステップＳ８１３）、ステップＳ８１１に戻る。一方、ステップＳ８１２の判断結果、通信速度が同じあるいは下であれば（ステップＳ８１２：Ｎｏ）、処理を終了する。
【００６３】
上記の実施の形態２によれば、優先度の入れ替えは、通信速度に対応した固定の閾値を用いずに、速度変化時に推定移動コストと参照時間低下分の情報を用いて判断する。これら推定移動コストと参照時間低下分の情報は、稼働フェーズ時における通信速度を用いて判断するため、実際の通信速度の変化に対応して、より効率的に並列処理できるようになる。
【００６４】
また、以上説明した各実施の形態で説明した通信端末は、基地局との間で無線通信する携帯電話機を例に説明したが、開示の技術は、このような携帯電話網に適用するに限らない。たとえば、他の無線経路、たとえば、無線ＬＡＮ等のアクセスポイントに切り替えて接続可能な通信端末にも同様に適用できる。この場合、携帯電話網と無線ＬＡＮとでは通信速度が異なる場合があり、対応して実施の形態１で説明した上記の閾値は、たとえば、配置フェーズ（ステップＳ１１）のとき携帯電話網と無線ＬＡＮのそれぞれで異なる値を設定し、稼働フェーズ（ステップＳ１２）のときには、無線経路の通信速度に対応した閾値を用いて処理することができる。この他、無線経路の種別に限らず、共通の閾値を用いることもできる。
【００６５】
以上説明した開示技術によれば、並列処理を実行中の通信端末の通信状態が変化しても、データの移動を直ぐにおこなうことはせず、自通信端末の通信速度の変化の程度や、他の通信端末の通信速度等の情報を得てから判断するので、無駄な処理をおこなわずに処理実行できるようになる。特に、極力少ないデータの移動で並列処理の実行開始時等に行ったデータ分割時の性能を維持でき、データの移動に伴う移動コスト（時間）の増加を抑え、複数の通信端末により実行する並列処理全体の効率を向上できるようになる。
【００６６】
上述した本実施の形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、
前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と、前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報と、を入れ替えること
を特徴とするデータ割り当て方法。
【００６８】
（付記２）前記第１通信速度が前記複数の処理装置に含まれる第３処理装置の第３通信速度より大きいとき、前記第１処理装置に割り当てられるデータの通信量情報が示す頻度は、前記第３処理装置に割り当てられるデータの通信量情報が示す頻度よりも大きいこと
を特徴とする付記１に記載のデータ割り当て方法。
【００６９】
（付記３）前記第１通信速度が第３処理装置の第３通信速度より大きいとき、前記第１優先度情報が示す優先度は前記第３処理装置に付される第３優先度情報が示す優先度よりも高いこと
を特徴とする付記１に記載のデータ割り当て方法。
【００７０】
（付記４）前記第２通信速度が前記第１通信速度より大きくなるとき、前記第１優先度情報と前記第２優先度情報とを入れ替えること
を特徴とする付記１乃至付記３の何れか一に記載のデータ割り当て方法。
【００７１】
（付記５）前記第１通信速度が前記第１通信速度に対応する第１閾値より小さくなるとともに前記第２優先度情報が示す優先度が前記第１優先度情報が示す優先度よりも高いとき、前記第１通信速度と前記第２通信速度に対応する第２閾値とを比較すること
を特徴とする付記１乃至付記４の何れか一に記載のデータ割り当て方法。
【００７２】
（付記６）前記第１通信速度が前記第２閾値より大きいとき、前記第１処理装置のデータと前記第２処理装置のデータとを入れ替えること
を特徴とする付記５に記載のデータ割り当て方法。
【００７３】
（付記７）前記第１処理装置が実行するプログラムを停止し、停止したときのプログラムコードの停止位置を前記第１処理装置に割り当てられたデータに記録して前記データを前記第２処理装置に送信すること
を特徴とする付記６に記載のデータ割り当て方法。
【００７４】
（付記８）前記第１通信速度が前記第２閾値より小さいとき、データの入れ替えをおこなわないこと
を特徴とする付記５に記載のデータ割り当て方法。
【００７５】
（付記９）前記複数の処理装置の間でのデータの入れ替えをおこなわないときには、前記複数の処理装置に対する前記データの割り当て直しをおこなうとともに、前記通信速度に基づき前記第２閾値を再設定すること
を特徴とする付記８に記載のデータ割り当て方法。
【００７６】
（付記１０）前記第１通信速度が低下するとともに前記第２優先度情報が示す優先度が前記第１優先度情報が示す優先度より高いとき、前記第１処理装置に割り当てられたデータのサイズ、前記第２処理装置に割り当てられたデータのサイズ、前記第１通信速度、前記第２通信速度、および前記第１通信速度の低下分に基づいて、前記第１処理装置のデータと前記第２処理装置のデータとの入れ替えを判断すること
を特徴とする付記１乃至付記４の何れか一に記載のデータ割り当て方法。
【００７７】
（付記１１）前記複数の処理装置に含まれる所定の処理装置、または当該処理装置を管理する上位の管理装置が、データおよび優先度情報の割り当てをおこなうこと
を特徴とする付記１乃至付記１０の何れか一に記載のデータ割り当て方法。
【００７８】
（付記１２）複数の処理装置との間でデータ転送をおこなう処理装置内のＣＰＵを含み、
前記ＣＰＵは、
複数の処理装置がデータにアクセスする頻度に関する通信量情報を有する前記データを、前記複数の処理装置に含まれる第１処理装置に、前記第１処理装置の第１通信速度に基づいて割り当てるとともに第１優先度情報を付し、
前記複数の処理装置の少なくとも一の処理装置の通信速度の変化に基づいて、前記データまたは前記第１優先度情報と前記複数の処理装置に含まれるとともに第２通信速度を有する第２処理装置に割り当てられたデータまたは第２優先度情報とを入れ替えること
を特徴とするデータ割り当てシステム。
【００７９】
（付記１３）前記複数の処理装置は、基地局を介して相互に無線通信をおこなう通信端末であること
を特徴とする付記１２に記載のデータ割り当てシステム。
【符号の説明】
【００８０】
３００  通信端末
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  メモリ
３０４  通信モジュール
３０５  バス
３１０  並列処理実行管理プログラム
３１０ａ  並列処理用情報受入部
３１０ｂ  処理ブロック実行制御部
３１０ｃ  通信速度監視部
３１０ｄ  閾値決定部
３１０ｅ  入れ替え判断部
３１０ｆ  優先度入れ替え部
３１０ｇ  並列処理用情報入れ替え部
３２０  並列処理用情報
３２１  優先度情報
【国際調査報告】
2012147206.tif 000012
2012147206.tif 000013
2012147206.tif 000014
2012147206.tif 000015