(57)【要約】  データ処理にかかる時間を短くすることができる分散処理システム、情報処理装置、分散処理プログラム及び分散処理方法を提供することを課題とする。処理対象のデータを有する情報処理装置が、かかる処理対象のデータを所定の数で分割し、分割データを他の情報処理装置に転送し、分割データを有する複数の情報処理装置が、データ要素を各情報処理装置に分配する処理を行い、各情報処理装置が、分配されたデータ要素を処理することで、データ処理にかかる時間を短くすることを実現する。
2010106677.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置を有する分散処理システムであって、
前記複数の情報処理装置は、
各々処理する情報処理装置が決められているデータ要素を含む処理対象のデータを分割し、分割したデータである分割データを分散処理システム内の全て又は一部の情報処理装置に割り当て、他の情報処理装置に割り当てた分割データを前記他の情報処理装置へ転送する転送部と、
自身の転送部あるいは他の情報処理装置の転送部によって自身に割り当てられた分割データに含まれるデータ要素を、該データ要素を処理する情報処理装置に分配する分配部と、
自身の分配部によって分配されたデータ要素と、前記他の情報処理装置から分配されたデータ要素とを処理するデータ処理部と
を備えたことを特徴とする分散処理システム。
【請求項２】
前記転送部は、前記分割データに含まれるデータ要素の中で処理すべきデータ要素の数が多い情報処理装置に該分割データを割り当てることを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記転送部は、性能の高い情報処理装置に前記分割データを割り当てることを特徴とする請求項１に記載の分散処理システム。
【請求項４】
前記転送部は、前記処理対象のデータのサイズに基づいて、前記処理対象のデータを分割する数を決定することを特徴とする請求項１〜３のいずれか一つに記載の分散処理システム。
【請求項５】
前記分配部は、自情報処理装置に割り当てられた分割データに含まれるデータ要素を、該データ要素が処理される順に連結して、連結したデータ要素を、該データ要素を処理する情報処理装置に分配ることを特徴とする請求項１に記載の分散処理システム。
【請求項６】
他の情報処理装置と分散して処理を行う情報処理装置であって、
処理する情報処理装置が決められているデータであるデータ要素を含む処理対象のデータを分割し、分割したデータである分割データを自身を含む情報処理装置の全て又は一部に割り当て、他の情報処理装置に割り当てた分割データを前記他の情報処理装置へ転送する転送部と、
自情報処理装置あるいは他の情報処理装置の転送部によって自情報処理装置に割り当てられた分割データに含まれるデータ要素を、該データ要素を処理する情報処理装置に分配する分配部と、
自情報処理装置の分配部によって分配されたデータ要素と、前記他の情報処理装置から分配されたデータ要素とを処理するデータ処理部と
を備えたことを特徴とする情報処理装置。
【請求項７】
前記分配部は、前記他の情報処理装置から転送された分割データに含まれるデータ要素を、該データ要素を処理する情報処理装置に分配することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
他の情報処理装置と分散して処理を行う情報処理装置において実行される分散処理プログラムであって、
処理する情報処理装置が決められているデータであるデータ要素を含む処理対象のデータを分割し、分割したデータである分割データを、自身が実行される情報処理装置を含む情報処理装置の全て又は一部に割り当て、他の情報処理装置に割り当てた分割データを前記他の情報処理装置へ転送する転送手順と、
自身が実行される情報処理装置あるいは他の情報処理装置から前記転送手順によって自身が実行される情報処理装置に割り当てられた分割データに含まれるデータ要素を、該データ要素を処理する情報処理装置に分配する分配手順と、
自身が実行される情報処理装置の前記分配手順によって分配されたデータ要素と、前記他の情報処理装置から分配されたデータ要素とを処理するデータ処理手順と
を含んだことを特徴とする分散処理プログラム。
【請求項９】
複数の情報処理装置を有する分散処理システムにおいて実行される分散処理方法であって、
前記複数の情報処理装置の１つが、各々処理する情報処理装置が決められているデータ要素を含む処理対象のデータを分割し、分割したデータである分割データを分散処理システム内の全て又は一部の情報処理装置に割り当て、他の情報処理装置に割り当てた分割データを前記他の情報処理装置へ転送する転送ステップと、
前記転送ステップにおいて前記分割データを割り当てられた情報処理装置が、自身に割り当てられた分割データに含まれるデータ要素を、該データ要素を処理する情報処理装置に分配する分配ステップと、
前記分配ステップにおいて前記データ要素を分配された情報処理装置が、自身に分配されたデータ要素を処理するデータ処理ステップと
を含んだことを特徴とする分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、情報処理装置、分散処理プログラム及び分散処理方法に関する。
【背景技術】
【０００２】
従来、分散コンピューティングと呼ばれる情報処理の手法が用いられている。分散コンピューティングを採用する分散処理システムは、所定の処理を行う場合に、処理対象のデータを分散して、分散したデータを複数の情報処理装置に並行して処理させる。【０００３】
図９及び図１０を用いて、従来の分散処理について、２個の例を挙げて説明する。図９及び図１０は、従来の分散処理の一例を示す図である。図９に示した例において、情報処理装置１０ａは、データＤ１０を有する。データＤ１０は、大容量のデータであり、所定の処理単位のデータであるデータ要素Ａ１〜Ａ４、Ｂ１〜Ｂ４及びＣ１〜Ｃ４を含む。【０００４】
情報処理装置１０ａ〜１０ｃは、データ要素Ａ１〜Ａ４、Ｂ１〜Ｂ４及びＣ１〜Ｃ４のうち、処理するデータ要素が決められている。ここでは、情報処理装置１０ａは、データＤ１０のうち、データ要素Ａ１〜Ａ４を処理するものとする。また、情報処理装置１０ｂは、データ要素Ｂ１〜Ｂ４を処理するものとし、情報処理装置１０ｃは、データ要素Ｃ１〜Ｃ４を処理するものとする。【０００５】
かかる場合に、情報処理装置１０ａは、図９に示すように、データＤ１０を情報処理装置１０ｂ及び情報処理装置１０ｃへ送信する。続いて、情報処理装置１０ａは、データＤ１０からデータ要素Ａ１〜Ａ４を取り出す。そして、情報処理装置１０ａは、取り出したデータＤ１０Ａを処理する。また、情報処理装置１０ｂは、情報処理装置１０ａからデータＤ１０を受信した場合に、かかるデータＤ１０からデータ要素Ｂ１〜Ｂ４を取り出して、取り出したデータＤ１０Ｂを処理する。また、情報処理装置１０ｃは、データＤ１０からデータ要素Ｃ１〜Ｃ４を取り出して、取り出したデータＤ１０Ｃを処理する。【０００６】
次に、図１０を用いて、従来の分散処理の他の例について説明する。図１０に示した例において、情報処理装置１０ａ〜１０ｃは、図９に示した例と同様に、処理するデータ要素が決められているものとする。かかる場合に、情報処理装置１０ａは、データＤ１０からデータ要素Ａ１〜Ａ４を取り出す。また、情報処理装置１０ａは、データＤ１０からデータ要素Ｂ１〜Ｂ４を取り出して、取り出したデータＤ１０Ｂを情報処理装置１０ｂに分配する。また、情報処理装置１０ａは、データＤ１０からデータ要素Ｃ１〜Ｃ４を取り出して、取り出したデータＤ１０Ｃを情報処理装置１０ｃに分配する。そして、情報処理装置１０ａはデータＤ１０Ａを処理し、情報処理装置１０ｂはデータＤ１０Ｂを処理し、情報処理装置１０ｃはデータＤ１０Ｃを処理する。【０００７】
【特許文献１】特開平１０−２０７８５３号公報
【特許文献２】特開平７−２５３９５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術には、データ処理にかかる時間が長いという問題があった。具体的には、図９に示した分散処理を用いると、データ送信処理に時間がかかるので、データ処理にかかる時間が長くなる。図９に示した例を用いて説明すると、情報処理装置１０ａは、大容量のデータＤ１０を情報処理装置１０ｂ及び１０ｃへ送信する。このため、図９に示した分散処理では、データＤ１０を送信する処理に時間がかかるので、データ処理にかかる時間が長くなる。【０００９】
また、図１０に示した分散処理を用いると、データ要素を分配する情報処理装置の負荷が高くなるので、データ処理にかかる時間が長くなる。図１０に示した例を用いて説明すると、情報処理装置１０ａは、データＤ１０からデータ要素を取り出す処理と、取り出したデータ要素を情報処理装置１０ｂ及び１０ｃに分配する処理とを担う。したがって、図１０に示した分散処理では、情報処理装置１０ａにかかる負荷が高くなり、データ要素を分配する処理に時間がかかる。このため、図１０に示した分散処理では、データ処理にかかる時間が長くなる。【００１０】
なお、図９及び図１０では、情報処理装置が３個である例を示したが、実際の分散処理システムは、数百個〜数万個の情報処理装置を有する場合がある。また、分散処理システムで処理されるデータのサイズは、一般に膨大である。そのため、上記の従来技術を用いると、データ送信処理やデータ要素を分配する処理に時間がかかるので、データ処理にかかる時間を遅延させる。【００１１】
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、データ処理にかかる時間を短くすることができる分散処理システム、情報処理装置、分散処理プログラム及び分散処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本願に開示する分散処理システムは、複数の情報処理装置を有する分散処理システムであって、前記複数の情報処理装置は、各々処理する情報処理装置が決められているデータ要素を含む処理対象のデータを分割し、分割したデータである分割データを分散処理システム内の全て又は一部の情報処理装置に割り当て、他の情報処理装置に割り当てた分割データを前記他の情報処理装置へ転送する転送部と、自身の転送部あるいは他の情報処理装置の転送部によって自身に割り当てられた分割データに含まれるデータ要素を、該データ要素を処理する情報処理装置に分配する分配部と、自身の分配部によって分配されたデータ要素と、前記他の情報処理装置から分配されたデータ要素とを処理するデータ処理部とを備えたことを要件とする。【００１３】
なお、本願に開示する分散処理システムの構成要素、表現又は構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
【発明の効果】
【００１４】
本願に開示した分散処理システムによれば、データ処理にかかる時間を短くすることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係る分散処理システムによる分散処理の一例を説明するための図である。
【図２】図２は、実施例１に係る分散処理システムによって処理されるデータの一例を説明するための図である。
【図３】図３は、実施例１における情報処理装置の構成を示す図である。
【図４】図４は、処理対象のデータを有する情報処理装置による処理手順を示すフローチャートである。
【図５】図５は、他の情報処理装置から分割データを転送される情報処理装置による処理手順を示すフローチャートである。
【図６】図６は、実施例２に係る分散処理システムによる分散処理の一例を説明するための図である。
【図７】図７は、実施例２に係る分散処理システムによる分散処理の一例を説明するための図である。
【図８】図８は、分散処理プログラムを実行するコンピュータを示す図である。
【図９】図９は、従来の分散処理の一例を示す図である。
【図１０】図１０は、従来の分散処理の一例を示す図である。
【符号の説明】
【００１６】
１〜３              分散処理システム
１０ａ〜１０ｃ      情報処理装置
１００              情報処理装置
１００ａ〜１００ｃ  情報処理装置
２００ａ〜２００ｃ  情報処理装置
３００ａ〜３００ｃ  情報処理装置
１１０              Ｉ／Ｆ
１２０              一次記憶部
１３０              二次記憶部
１３１              データ記憶部
１４０              制御部
１４１              転送部
１４２              分配部
１４３              データ処理部
１０００            コンピュータ
１０２０            キャッシュ
１０３０            ＨＤＤ
１０４０            ＲＯＭ
１０４１            転送プログラム
１０４２            分配プログラム
１０４３            データ処理プログラム
１０５０            ＣＰＵ
１０５１            転送プロセス
１０５２            分配プロセス
１０５３            データ処理プロセス
１０６０            バス
【発明を実施するための最良の形態】
【００１７】
以下に、本願に開示する分散処理システム、情報処理装置、分散処理プログラム及び分散処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願に開示する分散処理システム、情報処理装置、分散処理プログラム及び分散処理方法が限定されるものではない。
【実施例１】
【００１８】
［実施例１に係る分散処理システム１による分散処理］
まず、実施例１に係る分散処理システム１による分散処理について説明する。実施例１に係る分散処理システム１は、データ要素を分散処理システム１内の情報処理装置に分配する処理を、複数の情報処理装置によって行う。【００１９】
実施例１における情報処理装置（ここでは、「第一の情報処理装置」と呼ぶこととする）は、処理対象のデータを分割し、分割したデータ（以下、「分割データ」と言う）を分散処理システム１内の情報処理装置の全て又は一部に割り当てる。そして、第一の情報処理装置は、他の情報処理装置に割り当てられた分割データを、かかる分割データが割り当てられた他の情報処理装置へ転送する。そして、第一の情報処理装置は、自装置に割り当てた分割データに含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する。また、他の情報処理装置は、第一の情報処理装置から転送された分割データに含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する。そして、第一の情報処理装置及び他の情報処理装置は、自装置に分配されたデータ要素を処理する。【００２０】
上述した分散処理について図１を用いて具体的に説明する。図１は、実施例１に係る分散処理システム１による分散処理の一例を説明するための図である。図１に示す分散処理システム１は、情報処理装置１００ａ〜１００ｃを有する。【００２１】
情報処理装置１００ａ〜１００ｃは、データ要素Ａ１〜Ａ４、Ｂ１〜Ｂ４及びＣ１〜Ｃ４を含むデータＤ１００を分散して処理する。図１の例では、情報処理装置１００ａは、情報処理装置１００ａ〜１００ｃが処理するデータ要素を決定する。そして、情報処理装置１００ａ〜１００ｃは、自身による処理対象のデータ要素を処理する。【００２２】
ここで、図２を用いて、分散処理システム１によって処理されるデータＤ１００について説明する。図２は、実施例１に係る分散処理システム１によって処理されるデータＤ１００の一例を説明するための図である。図２に示した例において、データ要素Ａ１〜Ａ４、Ｂ１〜Ｂ４及びＣ１〜Ｃ４は、符号化された画像データである。そして、データ要素Ａ１〜Ａ４、Ｂ１〜Ｂ４及びＣ１〜Ｃ４は、復号化などの処理が行われることにより、画像Ｇ１００となる。【００２３】
このようなデータＤ１００を処理する場合に、情報処理装置１００ａ〜１００ｃは、それぞれ画像Ｇ１００の列ごとにデータ要素を処理する場合がある。例えば、実施例１では、情報処理装置１００ａは、画像Ｇ１００の列Ｃ１１に対応するデータ要素を処理し、情報処理装置１００ｂは、列Ｃ１２に対応するデータ要素を処理し、情報処理装置１００ｃは、列Ｃ１３に対応するデータ要素を処理する。【００２４】
図１では、上記例のように、情報処理装置１００ａ〜１００ｃは、それぞれ列Ｃ１１〜Ｃ１３に対応するデータ要素を処理するものとする。すなわち、情報処理装置１００ａは、データＤ１００のうち、データ要素Ａ１〜Ａ４を処理し、情報処理装置１００ｂは、データ要素Ｂ１〜Ｂ４を処理し、情報処理装置１００ｃは、データ要素Ｃ１〜Ｃ４を処理するものとする。【００２５】
このような構成の下、情報処理装置１００ａは、データＤ１００を分割し、分割データを情報処理装置１００ａ〜１００ｃの全て又は一部に割り当てる。そして、情報処理装置１００ａは、分割データを、かかる分割データが割り当てられた情報処理装置１００ｂや１００ｃへ転送する。図１に示した例では、情報処理装置１００ａは、データＤ１００を、分割データＤ１１０と分割データＤ１２０とに分割して、分割データＤ１１０を情報処理装置１００ａに割り当て、分割データＤ１２０を情報処理装置１００ｂに割り当てている。そして、情報処理装置１００ａは、情報処理装置１００ｂに割り当てた分割データＤ１２０を情報処理装置１００ｂへ転送している。【００２６】
続いて、情報処理装置１００ａは、自装置に割り当てた分割データＤ１１０に含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する。具体的には、図１に示すように、情報処理装置１００ａは、分割データＤ１１０からデータ要素Ａ１及びＡ２を取り出して、取り出したデータ要素Ａ１及びＡ２を自身、即ち情報処理装置１００ａに分配する。また、情報処理装置１００ａは、分割データＤ１１０のうち、データ要素Ｂ１及びＢ２を情報処理装置１００ｂに分配し、データ要素Ｃ１及びＣ２を情報処理装置１００ｃに分配する。【００２７】
また、情報処理装置１００ｂは、情報処理装置１００ａから転送された分割データＤ１２０に含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する。具体的には、図１に示すように、情報処理装置１００ｂは、分割データＤ１２０からデータ要素Ａ３及びＡ４を取り出して、取り出したデータ要素Ａ３及びＡ４を情報処理装置１００ａに分配する。また、情報処理装置１００ｂは、分割データＤ１２０からデータ要素Ｃ３及びＣ４を取り出して、取り出したデータ要素Ｃ３及びＣ４を情報処理装置１００ｃに分配する。【００２８】
なお、情報処理装置１００ａ〜１００ｃは、取り出したデータ要素を連結した後に、連結したデータ要素を他の情報処理装置に分配することが好ましい。例えば、図１に示した例において、情報処理装置１００ａは、データ要素Ｂ１及びＢ２を連結して、連結したデータ要素Ｂ１及びＢ２を情報処理装置１００ｂに分配する。情報処理装置１００ａ〜１００ｃは、連結したデータ要素をまとめてそれぞれの情報処理装置に分配することにより、通信効率を向上させることができる。【００２９】
そして、情報処理装置１００ａ〜１００ｃは、各情報処理装置によって分配されたデータ要素を処理する。具体的には、情報処理装置１００ａは、自装置によって分配されたデータ要素Ａ１及びＡ２と、情報処理装置１００ｂによって分配されたデータ要素Ａ３及びＡ４とを処理する。また、情報処理装置１００ｂは、情報処理装置１００ａによって分配されたデータ要素Ｂ１及びＢ２と、自装置によって分配されたデータ要素Ｂ３及びＢ４とを処理する。また、情報処理装置１００ｃは、情報処理装置１００ａによって分配されたデータ要素Ｃ１及びＣ２と、情報処理装置１００ｂによって分配されたデータ要素Ｃ３及びＣ４とを処理する。【００３０】
このように、実施例１に係る分散処理システム１は、分割された処理対象のデータの一部を他の情報処理へ転送し、複数の情報処理装置によってデータ要素を、データ要素に対する処理を実行する情報処理装置に分配する処理を行うので、図９に示した分散処理と比較して、データの通信量を減らすことができる。これにより、実施例１に係る分散処理システム１は、図９に示した分散処理と比較して、データ送信処理にかかる時間を短くすることができるので、データ処理にかかる時間を短くすることができる。【００３１】
また、実施例１に係る分散処理システム１は、上記のように、処理を行なう情報処理装置に対してデータ要素を分配する処理を複数の情報処理装置によって行うので、データ要素を分配する処理にかかる負荷を複数の情報処理装置に分散させることができる。これにより、実施例１に係る分散処理システム１は、図１０に示した分散処理と比較して、データ要素を分配する処理を高速化することができるので、データ処理にかかる時間を短くすることができる。【００３２】
また、実施例１に係る分散処理システム１は、情報処理装置間で処理対象の全データを送受しないので、図９に示した分散処理と比較して、メモリ使用量を減らすことができる。【００３３】
［実施例１における情報処理装置１００の構成］
次に、図３を用いて、実施例１における情報処理装置１００の構成について説明する。図３は、実施例１における情報処理装置１００の構成を示す図である。なお、図３に示した情報処理装置１００は、図１に示した情報処理装置１００ａ〜１００ｃに対応する。【００３４】
図３に示すように、情報処理装置１００は、インタフェース（以下、「Ｉ／Ｆ」と言う）１１０と、一次記憶部１２０と、二次記憶部１３０と、制御部１４０とを有する。【００３５】
Ｉ／Ｆ１１０は、他の情報処理装置との間で各種データを送受する。例えば、図１に示した例において、情報処理装置１００ａは、Ｉ／Ｆ１１０を介して、情報処理装置１００ｂ及び１００ｃとの間で各種データを送受する。【００３６】
一次記憶部１２０は、各種情報を記憶する記憶デバイスであり、例えば、メモリである。後述する制御部１４０は、一次記憶部１２０に各種情報を一時的に記憶させながら、各種処理を行う。【００３７】
二次記憶部１３０は、各種情報を記憶する記憶デバイスであり、例えば、ハードディスクである。実施例１における二次記憶部１３０は、データ記憶部１３１を有する。データ記憶部１３１は、処理対象のデータを記憶する。例えば、データ記憶部１３１は、図１及び図２に示したデータＤ１００を記憶する。【００３８】
制御部１４０は、情報処理装置１００を全体制御する。実施例１における制御部１４０は、転送部１４１と、分配部１４２と、データ処理部１４３とを有する。【００３９】
転送部１４１は、処理対象のデータを分割し、分割データを分散処理システム１内の情報処理装置の全て又は一部に割り当て、他の情報処理装置に割り当てた分割データを他の情報処理装置へ転送する。【００４０】
具体的には、転送部１４１は、データ記憶部１３１に記憶されている処理対象のデータを読み出す。続いて、転送部１４１は、読み出したデータを所定の数に分割する。データの分割数は任意である。そして、転送部１４１は、分割データを分散処理システム１内の情報処理装置の全て又は一部に割り当てる。そして、転送部１４１は、他の情報処理装置に割り当てた分割データを、かかる分割データが割り当てられた情報処理装置へ転送する。なお、実施例１では、転送部１４１が処理対象のデータを分割する数は、予め決められているものとする。【００４１】
図１に示した例を用いて、転送部１４１による分割データの転送処理を説明する。図１に示した例において、情報処理装置１００ａの転送部１４１は、データＤ１００を２個の分割データＤ１１０と分割データＤ１２０とに分割する。続いて、転送部１４１は、分割データＤ１１０を自装置である情報処理装置１００ａに割り当て、分割データＤ１２０を情報処理装置１００ｂに割り当てる。そして、情報処理装置１００ａは、情報処理装置１００ｂに割り当てた分割データＤ１２０を情報処理装置１００ｂへ転送する。【００４２】
なお、転送部１４１による転送処理は、図１に示した例に限られない。例えば、転送部１４１は、分割データＤ１２０を情報処理装置１００ｃに割り当てて転送してもよい。また、転送部１４１は、分割データＤ１１０を自装置以外の情報処理装置１００ｂ又は１００ｃに割り当てて転送してもよい。また、転送部１４１は、分割データＤ１１０を情報処理装置１００ｂに割り当てて転送するとともに、分割データＤ１２０を情報処理装置１００ｃに割り当てて転送してもよい。【００４３】
分配部１４２は、転送部１４１によって自装置に割り当てられた分割データ、または、他の情報処理装置から転送された分割データに含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する。【００４４】
具体的には、分配部１４２は、転送部１４１によって自装置に分割データが割り当てられた場合に、かかる分割データからデータ要素を取り出して、取り出した各データ要素を、かかるデータ要素を処理する情報処理装置に分配する。ここで、本実施例では前述のように、データ要素を処理する情報処理装置がデータ要素毎に定まっているため、分配部１４２は定められた情報処理装置に対して対応するデータ要素を分配する。【００４５】
また、分配部１４２は、他の情報処理装置の転送部１４１から分割データが転送された場合に、転送された分割データからデータ要素を取り出して、取り出した各データ要素を、かかるデータ要素を処理する情報処理装置に分配する。なお、上述したように、分配部１４２は、データ要素を連結した後に、連結したデータ要素を分配してもよい。【００４６】
図１に示した例を用いて、分配部１４２によるデータ要素の分配処理を説明する。図１に示した例において、情報処理装置１００ａの転送部１４１は、分割データＤ１１０を情報処理装置１００ａに割り当てている。したがって、情報処理装置１００ａの分配部１４２は、分割データＤ１１０から各データ要素を取り出して、対応する情報処理装置にそれぞれのデータ要素を分配する。具体的には、情報処理装置１００ａの分配部１４２は、分割データＤ１１０からデータ要素Ａ１及びＡ２を取り出して、取り出したデータ要素Ａ１及びＡ２を自身である情報処理装置１００ａに分配する。また、情報処理装置１００ａの分配部１４２は、分割データＤ１１０からデータ要素Ｂ１及びＢ２を取り出して、取り出したデータ要素Ｂ１及びＢ２を情報処理装置１００ｂに分配する。また、情報処理装置１００ａの分配部１４２は、分割データＤ１１０からデータ要素Ｃ１及びＣ２を取り出して、取り出したデータ要素Ｃ１及びＣ２を情報処理装置１００ｃに分配する。【００４７】
また、図１に示した例において、情報処理装置１００ｂは、情報処理装置１００ａから分割データＤ１２０を受け付けている。したがって、情報処理装置１００ｂの分配部１４２は、受け付けた分割データＤ１２０からデータ要素Ａ３及びＡ４を取り出して、取り出したデータ要素Ａ３及びＡ４を情報処理装置１００ａに分配する。また、情報処理装置１００ｂの分配部１４２は、分割データＤ１２０からデータ要素Ｂ３及びＢ４を取り出して、取り出したデータ要素Ｂ３及びＢ４を情報処理装置１００ｂに分配する。また、情報処理装置１００ｂの分配部１４２は、分割データＤ１２０から、データ要素Ｃ３及びＣ４を取り出して、取り出したデータ要素Ｃ３及びＣ４を情報処理装置１００ｃに分配する。【００４８】
データ処理部１４３は、自装置内の分配部１４２によって分配されたデータ要素と、他の情報処理装置の分配部１４２によって分配されたデータ要素とを処理する。具体的には、データ処理部１４３は、自装置内の分配部１４２によってデータ要素が分配された場合に、分配されたデータ要素を処理する。また、データ処理部１４３は、他の情報処理装置の分配部１４２によってデータ要素が分配された場合に、他の情報処理装置から分配されたデータ要素を処理する。【００４９】
図１に示した例を用いて、データ処理部１４３によるデータ処理を説明する。図１に示した例において、情報処理装置１００ａのデータ処理部１４３は、自装置の分配部１４２によって分配されたデータ要素Ａ１及びＡ２を処理する。また、情報処理装置１００ａのデータ処理部１４３は、他の情報処理装置１００ｂの分配部１４２によって分配されたデータ要素Ａ３及びＡ４を処理する。【００５０】
また、図１に示した例において、情報処理装置１００ｂのデータ処理部１４３は、他の情報処理装置１００ａの分配部１４２によって分配されたデータ要素Ｂ１及びＢ２を処理する。また、情報処理装置１００ｂのデータ処理部１４３は、自装置の分配部１４２によって分配されたデータ要素Ｂ３及びＢ４を処理する。【００５１】
また、図１に示した例において、情報処理装置１００ｃのデータ処理部１４３は、他の情報処理装置１００ａの分配部１４２によって分配されたデータ要素Ｃ１及びＣ２を処理する。また、情報処理装置１００ｃのデータ処理部１４３は、他の情報処理装置１００ｂの分配部１４２によって分配されたデータ要素Ｃ３及びＣ４を処理する。【００５２】
［実施例１に係る分散処理システム１による分散処理手順］
次に、図４及び図５を用いて、実施例１に係る分散処理システム１による分散処理の手順を説明する。図４は、処理対象のデータを有する情報処理装置１００による処理手順を示すフローチャートである。図５は、他の情報処理装置から分割データが転送される情報処理装置１００による処理手順を示すフローチャートである。例えば、図４に示した処理手順は、図１に示した情報処理装置１００ａによる処理手順であり、図５に示した処理手順は、図１に示した情報処理装置１００ｂ及び１００ｃによる処理手順である。【００５３】
図４に示すように、情報処理装置１００の転送部１４１は、データ記憶部１３１に処理対象のデータが記憶されている場合に（ステップＳ１０１肯定）、かかるデータを予め決められている数に分割する（ステップＳ１０２）。そして、転送部１４１は、分割データを分散処理システム１内の情報処理装置の全て又は一部に割り当て、他の情報処理装置に割り当てた分割データを、かかる他の情報処理装置へ転送する（ステップＳ１０３）。【００５４】
図１に示した例では、情報処理装置１００ａの転送部１４１は、データＤ１００を２個の分割データＤ１１０と分割データＤ１２０とに分割する。そして、転送部１４１は、分割したＤ１２０を情報処理装置１００ｂに割り当て、かかる分割データＤ１２０を情報処理装置１００ｂへ転送する。【００５５】
続いて、分配部１４２は、上記ステップＳ１０３において自装置に割り当てた分割データに含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する（ステップＳ１０４）。【００５６】
図１に示した例では、情報処理装置１００ａの分配部１４２は、分割データＤ１１０に含まれるデータ要素のうち、情報処理装置１００ａが処理するデータ要素Ａ１及びＡ２を自装置である情報処理装置１００ａに分配する。また、情報処理装置１００ａの分配部１４２は、情報処理装置１００ｂが処理するデータ要素Ｂ１及びＢ２を情報処理装置１００ｂに分配し、情報処理装置１００ｃが処理するデータ要素Ｃ１及びＣ２を情報処理装置１００ｃに分配する。【００５７】
そして、データ処理部１４３は、各情報処理装置の分配部１４２によって自装置に分配されたデータ要素を処理する（ステップＳ１０５）。具体的には、データ処理部１４３は、上記ステップＳ１０４において自装置に分配したデータ要素と、他の情報処理装置の分配部１４２によって自装置に分配されたデータ要素とを処理する。【００５８】
図１に示した例では、情報処理装置１００ａのデータ処理部１４３は、分割データＤ１１０のうち、自装置の分配部１４２によって分配されたデータ要素Ａ１及びＡ２を処理する。また、情報処理装置１００ａのデータ処理部１４３は、情報処理装置１００ｂの分配部１４２によって自装置に分配されたデータ要素Ａ３及びＡ４を処理する。【００５９】
次に、図５に示した処理手順について説明する。図５に示すように、情報処理装置１００の分配部１４２は、他の情報処理装置から分割データが転送された場合に（ステップＳ２０１肯定）、転送された分割データに含まれるデータ要素を、かかるデータ要素を処理する情報処理装置に分配する（ステップＳ２０２）。【００６０】
図１に示した例では、情報処理装置１００ｂは、情報処理装置１００ａから分割データＤ１２０が転送されている。したがって、情報処理装置１００ｂの分配部１４２は、分割データＤ１２０に含まれるデータ要素のうち、情報処理装置１００ａが処理するデータ要素Ａ３及びＡ４を情報処理装置１００ａに分配する。また、情報処理装置１００ｂの分配部１４２は、情報処理装置１００ｂが処理するデータ要素Ｂ３及びＢ４を情報処理装置１００ｂに分配し、データ要素Ｃ３及びＣ４を情報処理装置１００ｃに分配する。【００６１】
分配部１４２によってデータ要素が対応する情報処理装置に分配された後（ステップＳ２０２）、データ処理部１４３は、各情報処理装置の分配部１４２によって自装置に分配されたデータ要素を処理する（ステップＳ２０３）。具体的には、データ処理部１４３は、自装置の分配部１４２によって分配されたデータ要素と、他の情報処理装置の分配部１４２によって自装置に分配されたデータ要素とを処理する。【００６２】
一方、他の情報処理装置から分割データが転送されなかった場合に（ステップＳ２０１否定）、データ処理部１４３は分割データの分配処理は行なわず、他の情報処理装置の分配部１４２によって自装置に分配されたデータ要素を処理する（ステップＳ２０３）。【００６３】
図１に示した例では、情報処理装置１００ｂのデータ処理部１４３は、情報処理装置１００ａの分配部１４２によって自装置に分配されたデータ要素Ｂ１及びＢ２を処理する。また、情報処理装置１００ｂのデータ処理部１４３は、自装置の分配部１４２によって分配されたデータ要素Ｂ３及びＢ４を処理する。【００６４】
また、図１に示した例において、情報処理装置１００ｃのデータ処理部１４３は、情報処理装置１００ａから分割データを転送されていないので、分割データの分配処理を行なうことなく、情報処理装置１００ａの分配部１４２によって自装置に分配されたデータ要素Ｃ１及びＣ２を処理する。また、情報処理装置１００ｃのデータ処理部１４３は、情報処理装置１００ｂの分配部１４２によって自装置に分配されたデータ要素Ｃ３及びＣ４を処理する。【００６５】
［実施例１の効果］
上述してきたように、実施例１に係る分散処理システム１は、処理対象のデータを複数の情報処理装置１００へ転送して、複数の情報処理装置１００によってデータ要素を分散する処理を行う。これにより、実施例１に係る分散処理システム１は、データ分散処理にかかる負荷を複数の情報処理装置に分散させることができる。その結果、実施例１に係る分散処理システム１は、データ処理にかかる時間を短くすることができる。
【実施例２】
【００６６】
ところで、本願に開示する分散処理システム等は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例２では、本願に開示する分散処理システム等の他の実施例について説明する。【００６７】
［転送処理１］
上記実施例１で説明したように、情報処理装置１００は処理対象のデータを分割して、他の情報処理装置に割り当てた分割データを他の情報処理装置へ転送する。このとき、情報処理装置は、分散処理システム内の情報処理装置のうち、分割データに含まれるデータ要素の中で処理すべきデータ要素の数が多い情報処理装置に、かかる分割データを割り当てて転送してもよい。図６を用いて具体的に説明する。図６は、実施例２に係る分散処理システム２による分散処理の一例を説明するための図である。【００６８】
図６に示すように、分散処理システム２は、情報処理装置２００ａ〜２００ｃを有する。ここでは、情報処理装置２００ａは、データＤ２００のうち、データ要素Ａ１〜Ａ４を処理し、情報処理装置２００ｂは、データ要素Ｂ１〜Ｂ４を処理し、情報処理装置２００ｃは、データ要素Ｃ１〜Ｃ４を処理するものとする。【００６９】
そして、情報処理装置２００ａは、図６に示すように、データＤ２００を、分割データＤ２１０と分割データＤ２２０とに分割して、分割データＤ２２０を他の情報処理装置へ転送するものとする。ここで、分割データＤ２２０は、データ要素Ａ４、Ｂ３及びＢ４、Ｃ２〜Ｃ４を含む。すなわち、分割データＤ２２０は、情報処理装置２００ａが処理するデータ要素を１個含み、情報処理装置２００ａが処理するデータ要素を２個含み、情報処理装置２００ｃが処理するデータ要素を３個含む。かかる場合に、情報処理装置２００ａは、分割データ２２０に含まれるデータ要素のうち、処理するデータ要素の数が最も多い情報処理装置２００ｃに分割データＤ２２０を割り当てて転送する。【００７０】
分散処理システム２は、上記のように処理対象の分割データを転送することにより、データ通信量を減らすことができる。かかる効果を明確にするために、分割データＤ２２０が情報処理装置２００ｂへ転送される場合と、分割データＤ２２０が情報処理装置２００ｃへ転送される場合とを比較して、双方のケースにおけるデータの通信量について説明する。【００７１】
まず、分割データＤ２２０が情報処理装置２００ｂへ転送された場合、情報処理装置２００ｂは、分割データＤ２２０のうち、データ要素Ａ４を情報処理装置２００ａに分配し、データ要素Ｃ２〜Ｃ４を情報処理装置２００ｃに分配する。すなわち、かかる場合には、情報処理装置２００ｂは、４個のデータ要素を他の情報処理装置に分配することになる。【００７２】
一方、図６に示すように、分割データＤ２２０が情報処理装置２００ｃへ転送された場合、情報処理装置２００ｃは、分割データＤ２２０のうち、データ要素Ａ４を情報処理装置２００ａに分配し、データ要素Ｂ３及びＢ４を情報処理装置２００ｂに分配する。すなわち、情報処理装置２００ｃは、３個のデータ要素を他の情報処理装置に分配する。【００７３】
このことから、分割データＤ２２０を情報処理装置２００ｃへ転送した方が、分割データＤ２２０を情報処理装置２００ｂへ転送するよりも、全体のデータの通信量が少ないことが分かる。なお、図６に示した例では、説明を簡単にするために、分割データＤ２００のサイズが小さい場合を例に挙げたが、実際には分割データＤ２００のサイズは膨大である。したがって、分割データＤ２２０を情報処理装置２００ｂへ転送した場合と、分割データＤ２２０を情報処理装置２００ｃへ転送した場合とでは、データ通信量に大きな差が発生することがある。【００７４】
このように、分散処理システム２は、データの通信量を減らすことができるので、データ要素を分配する処理を高速化することができる。その結果、分散処理システム２は、データ処理にかかる時間を短くすることができる。【００７５】
［転送処理２］
また、情報処理装置は、処理性能の高い情報処理装置に分割データを割り当ててもよい。例えば、図１に示した例において、情報処理装置１００ｃよりも情報処理装置１００ｂの方が高性能である場合、情報処理装置１００ａは、分割データＤ１２０を情報処理装置１００ｂに割り当てて、分割データＤ１２０を情報処理装置１００ｂへ転送する。一方、情報処理装置１００ｂよりも情報処理装置１００ｃの方が高性能である場合、情報処理装置１００ａは、分割データＤ１２０を情報処理装置１００ｃに割り当てて、分割データＤ１２０を情報処理装置１００ｃへ転送する。これにより、データ要素を分配する処理を高速化することができるので、データ処理にかかる時間を短くすることができる。【００７６】
［転送処理３］
また、上記では、処理対象のデータを分割する数が予め決められていることを前提として説明したが、情報処理装置は、処理対象のデータのサイズによって、分割する数を決定してもよい。例えば、情報処理装置は、データサイズが１０［ＭＢ（メガバイト）］未満である場合には、処理対象のデータを２個に分割し、データサイズが１０［ＭＢ］以上であり１００［ＭＢ］未満である場合には、処理対象のデータを３個に分割してもよい。また、例えば、情報処理装置は、データサイズが５［ＭＢ（メガバイト）］未満である場合には、処理対象のデータを分割せずに、自装置内のみでデータ要素を各情報処理装置に分配する処理を行ってもよい。これにより、分散処理システムは、データ要素を分配する処理を効率的に行うことができる。例えば、データサイズが小さい場合には、１台の情報処理装置がデータ要素を各情報処理装置に分配する処理を行うことにより、データの通信量を減らすことができる。【００７７】
なお、情報処理装置は、処理対象のデータを、「１」〜「分散処理システムが有する情報処理装置の数」の範囲で分割する。すなわち、図１に示した例では、情報処理装置１００ａは、データＤ１００を最大で３個に分割する。【００７８】
［連結処理］
また、上記実施例１では、データ要素を処理する順番が決められていないことを前提として説明したが、データ要素を処理する順番が決められている場合、情報処理装置１００は、データ要素を処理順に対応して並び替えた後にデータ処理を行う。具体的には、情報処理装置１００は、他の情報処理装置から、自装置に割り当てられているデータ要素を全て受信した後に、データ要素を処理する順番に並び替える。【００７９】
以下の説明において、データ要素は、符号の最後に付した数字の小さい順に処理されるものとする。例えば、図１に示した例において、情報処理装置１００ａは、データ要素Ａ１、Ａ２、Ａ３、Ａ４の順に処理することが決められているものとする。同様に、情報処理装置１００ｂは、データ要素Ｂ１、Ｂ２、Ｂ３、Ｂ４の順に処理し、情報処理装置１００ｃは、データ要素Ｃ１、Ｃ２、Ｃ３、Ｃ４の順に処理することが決められているものとする。【００８０】
かかる場合に、情報処理装置１００ａは、情報処理装置１００ｂからデータ要素Ａ３及びＡ４を受信した後に、データ要素をデータ要素Ａ１、Ａ２、Ａ３、Ａ４の順に連結する。また、情報処理装置１００ｂは、情報処理装置１００ａからデータ要素Ｂ１及びＢ２を受信した後に、データ要素をデータ要素Ｂ１、Ｂ２、Ｂ３、Ｂ４の順に連結する。また、情報処理装置１００ｃは、情報処理装置１００ａからデータ要素Ｃ１及びＣ２を受信し、さらに、情報処理装置１００ｂからデータ要素Ｃ３及びＣ４を受信した後に、データ要素をデータ要素Ｃ１、Ｃ２、Ｃ３、Ｃ４の順に連結する。【００８１】
また、情報処理装置１００は、データ要素を処理順に連結した後に、連結したデータ要素を分配してもよい。例えば、図１に示した例において、情報処理装置１００ａは、データ要素をデータ要素Ｂ１、Ｂ２の順に連結した後に、連結したデータ要素Ｂ１及びＢ２を情報処理装置１００ｂに分配する。同様に、情報処理装置１００ａは、データ要素をデータ要素Ｃ１、Ｃ２の順に連結した後に、連結したデータ要素Ｃ１及びＣ２を情報処理装置１００ｃに分配する。これにより、各情報処理装置は、データ要素を並び替える処理を効率よく行うことができる。【００８２】
また、情報処理装置１００は、データ連結処理を複数の情報処理装置によって段階的に行ってもよい。図７を用いて具体的に説明する。図７は、実施例２に係る分散処理システム３による分散処理の一例を説明するための図である。【００８３】
図７に示すように、分散処理システム３は、情報処理装置３００ａ〜３００ｃを有する。ここでは、情報処理装置３００ａは、データＤ３００のうちデータ要素Ａ１〜Ａ５を処理し、情報処理装置３００ｂはデータ要素Ｂ１〜Ｂ５を処理し、情報処理装置３００ｃはデータ要素Ｃ１〜Ｃ４を処理するものとする。【００８４】
図７に示した例において、情報処理装置３００ａは、データＤ３００を、分割データＤ３１０と分割データＤ３２０と分割データＤ３３０とに分割している。そして、情報処理装置３００ａは、分割データＤ３２０を情報処理装置３００ｂへ転送し、分割データＤ３３０を情報処理装置３００ｃへ転送している。【００８５】
そして、情報処理装置３００ｃは、分割データＤ３３０のうち、データ要素Ａ４及びＡ５を情報処理装置３００ｂに分配する。情報処理装置３００ｂは、分割データＤ３２０に含まれるデータ要素Ａ３と、情報処理装置３００ｃから分配されたデータ要素Ａ４及びＡ５とを、処理される順番に連結する。具体的には、情報処理装置３００ｂは、データ要素をデータ要素Ａ３、Ａ４、Ａ５の順に連結する。そして、情報処理装置３００ｂは、連結したデータ要素Ａ３、Ａ４、Ａ５を情報処理装置３００ａに分配する。【００８６】
図７に例示したデータ連結処理は、例えば、情報処理装置の性能に差がある分散処理システムに適用することが有効である。例えば、図７に示した例において、情報処理装置３００ｃよりも情報処理装置３００ｂの方が高性能である場合、情報処理装置３００ｂがデータ連結処理を行うことにより、かかるデータ連結処理を高速化することができる。【００８７】
また、図７に例示したデータ連結処理は、情報処理装置の性能に差がない場合であっても適用することができる。例えば、図７に示した例において、情報処理装置３００ｃが情報処理装置３００ｂよりも高負荷状態である場合、情報処理装置３００ｂがデータ連結処理を行うことにより、情報処理装置３００ｃにかかる負荷を低減することができる。これにより、データ処理にかかる時間を短くすることができる。【００８８】
［マルチプロセッサ］
また、上述してきたデータ分散処理は、複数のプロセッサ間でデータを分割して処理する情報処理装置や、マルチコアプロセッサを有する情報処理装置に適用することもできる。【００８９】
［プログラム］
また、上記実施例１で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図８を用いて、上記の実施例１における情報処理装置１００と同様の機能を有する分散処理プログラムを実行するコンピュータの一例を説明する。【００９０】
図８は、分散処理プログラムを実行するコンピュータを示す図である。図８に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０、キャッシュ１０２０、ＨＤＤ１０３０、ＲＯＭ（Read  Only  Memory）１０４０、およびＣＰＵ（Central  Processing  Unit）１０５０が、バス１０６０によって接続されている。【００９１】
ＲＯＭ１０４０には、上記の実施例１における情報処理装置１００と同様の機能を発揮する分散処理プログラムが予め記憶されている。具体的には、ＲＯＭ１０４０には、転送プログラム１０４１と、分配プログラム１０４２と、データ処理プログラム１０４３とが記憶されている。【００９２】
そして、ＣＰＵ１０５０は、これらの転送プログラム１０４１と、分配プログラム１０４２と、データ処理プログラム１０４３を読み出して実行する。これにより、図８に示すように、転送プログラム１０４１は、転送プロセス１０５１になり、分配プログラム１０４２は、分配プロセス１０５２になり、データ処理プログラム１０４３は、データ処理プロセス１０５３になる。【００９３】
なお、転送プロセス１０５１は、図３に示した転送部１４１に対応し、分配プロセス１０５２は、図３に示した分配部１４２に対応し、データ処理プロセス１０５３は、図３に示したデータ処理部１４３に対応する。【００９４】
また、ＨＤＤ１０３０には、図８に示すように、図３に示したデータ記憶部１３１が設けられる。【００９５】
なお、上記した各プログラム１０４１〜１０４３については、必ずしもＲＯＭ１０４０に記憶させなくてもよい。例えば、コンピュータ１０００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラム１０４１等を記憶させてもよい。または、コンピュータ１０００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」にプログラム１０４１等を記憶させてもよい。または、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１０００に接続される「他のコンピュータ（またはサーバ）」にプログラム１０４１等を記憶させてもよい。そして、コンピュータ１０００は、上述したフレキシブルディスク等から各プログラムを読み出して実行するようにしてもよい。
【図１】
2010106677.tif 000003
【図２】
2010106677.tif 000004
【図３】
2010106677.tif 000005
【図４】
2010106677.tif 000006
【図５】
2010106677.tif 000007
【図６】
2010106677.tif 000008
【図７】
2010106677.tif 000009
【図８】
2010106677.tif 000010
【図９】
2010106677.tif 000011
【図１０】
2010106677.tif 000012
【国際調査報告】
2010106677.tif 000013
2010106677.tif 000014
2010106677.tif 000015
2010106677.tif 000016