(57)【要約】【課題】多入力、多出力を有するプロセッシング・エレメントを用いた場合でも経路を構築できる分散処理システムを提供すること。【解決手段】一つ以上の入力と、一つ以上の出力とを有する複数のプロセッシング・エレメントと、  複数のプロセッシング・エレメントが接続されるコントロール・ユニットと、を備える分散処理システムであって、  コントロール・ユニットは、クライアントからのサービス実行要求に基づいて、特定のサービスを実行するために必要なプロセッシング・エレメントと、実行順序とを含んでいる実行遷移情報を生成することを特徴とする。【選択図】図１
2010224935.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上の入力と、一つ以上の出力とを有する複数のプロセッシング・エレメントと、
複数の前記プロセッシング・エレメントが接続されるコントロール・ユニットと、を備える分散処理システムであって、
前記コントロール・ユニットは、クライアントからのサービス実行要求に基づいて、特定のサービスを実行するために必要な前記プロセッシング・エレメントと、実行順序とを含んでいる実行遷移情報を生成することを特徴とする分散処理システム。
【請求項２】
処理経路の決定後に、前記コントロール・ユニットは、同一の前記実行遷移情報を、特定のサービスを実行するために必要な複数の前記プロセッシング・エレメントに対して、それぞれに送信することを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記コントロール・ユニットは、複数の前記プロセッシング・エレメントに対して、同時に送信することを特徴とする請求項２に記載の分散処理システム。
【請求項４】
前記実行遷移情報の送信は、実行順序が最初の前記プロセッシング・エレメントから、実行順序が最後の前記プロセッシング・エレメントまで順次送信されることを特徴とする請求項２に記載の分散処理システム。
ム。
【請求項５】
前記実行遷移情報の送信は、実行順序が最後の前記プロセッシング・エレメントから、実行順序が最初の前記プロセッシング・エレメントまで順次送信されることを特徴とする請求項２に記載の分散処理システム。
【請求項６】
処理経路の決定後に、前記コントロール・ユニットは、
前記実行遷移情報を、特定のサービスを実行するために必要な前記プロセッシング・エレメントのうち、実行順序が最初の前記プロセッシング・エレメントのみに対して送信することを特徴とする請求項１に記載の分散処理システム。
【請求項７】
処理経路の決定後に、前記コントロール・ユニットは、
前記実行遷移情報を、特定のサービスを実行するために必要な前記プロセッシング・エレメントのうち、実行順序が最後の前記プロセッシング・エレメントのみに対して送信することを特徴とする請求項１に記載の分散処理システム。
【請求項８】
前記実行遷移情報を受信した前記プロセッシング・エレメントは、次の他の前記プロセッシング・エレメントに対して、前記実行遷移情報を送信することを特徴とする請求項４または５に記載の分散処理システム。
【請求項９】
前記プロセッシング・エレメントは、一つの入力と複数の出力とを有し、他の複数の前記プロセッシング・エレメントに対して接続されることを特徴とする請求項２〜８のいずれか一項に記載の分散処理システム。
【請求項１０】
前記プロセッシング・エレメントは、複数の入力と一つの出力とを有し、他の複数の前記プロセッシング・エレメントに対して接続されることを特徴とする請求項２〜８のいずれか一項に記載の分散処理システム。
【請求項１１】
前記プロセッシング・エレメントは、複数の入力と複数の出力を有し、他の複数の前記プロセッシング・エレメントに対して接続されることを特徴とする請求項２〜８のいずれか一項に記載の分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システムに関するものである。
【背景技術】
【０００２】
従来、データフロー型分散処理において、処理に使われるプロセッシング・エレメント(以下、適宜「ＰＥ」という)群に対して、経路を決定するコントロール・ユニット（以下、適宜「ＣＵ」という）からプロセッシング・エレメントへのブロードキャスト方式の通信または１対１方式の通信により処理経路が確立される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−１６２２２８公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来は、各プロセッシング・エレメントが１入力、１出力を有する場合である。このため、多入力、多出力を有するプロセッシング・エレメントを用いる場合には対応していない。
【０００５】
本発明は、上記に鑑みてなされたものであって、多入力、多出力を有するプロセッシング・エレメントを用いた場合でも経路を構築できる分散処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の分散処理ユニットによれば、一つ以上の入力と、一つ以上の出力とを有する複数のプロセッシング・エレメントと、
複数の前記プロセッシング・エレメントが接続されるコントロール・ユニットと、を備える分散処理システムであって、
前記コントロール・ユニットは、クライアントからのサービス実行要求に基づいて、特定のサービスを実行するために必要な前記プロセッシング・エレメントと、実行順序とを含んでいる実行遷移情報を生成することを特徴とする。
【０００７】
また、本発明の好ましい態様によれば、処理経路の決定後に、前記コントロール・ユニットは、同一の前記実行遷移情報を、特定のサービスを実行するために必要な複数の前記プロセッシング・エレメントに対して、それぞれに送信することが望ましい。
【０００８】
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、複数の前記プロセッシング・エレメントに対して、同時に送信することが望ましい。
【０００９】
また、本発明の好ましい態様によれば、前記実行遷移情報の送信は、実行順序が最初の前記プロセッシング・エレメントから、実行順序が最後のプロセッシング・エレメントまで順次送信されることが望ましい。
【００１０】
また、本発明の好ましい態様によれば、前記実行遷移情報の送信は、実行順序が最後の前記プロセッシング・エレメントから、実行順序が最初の前記プロセッシング・エレメントまで順次送信されることが望ましい。
【００１１】
また、本発明の好ましい態様によれば、処理経路の決定後に、前記コントロール・ユニットは、
前記実行遷移情報を、特定のサービスを実行するために必要な前記プロセッシング・エレメントのうち、実行順序が最初のプロセッシング・エレメントのみに対して送信することが望ましい。
【００１２】
また、本発明の好ましい態様によれば、処理経路の決定後に、前記コントロール・ユニットは、
前記実行遷移情報を、特定のサービスを実行するために必要な前記プロセッシング・エレメントのうち、実行順序が最後の前記プロセッシング・エレメントのみに対して送信することが望ましい。
【００１３】
また、本発明の好ましい態様によれば、前記実行遷移情報を受信した前記プロセッシング・エレメントは、次の他の前記プロセッシング・エレメントに対して、前記実行遷移情報を送信することが望ましい。
【００１４】
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、一つの入力と複数の出力とを有し、他の複数の前記プロセッシング・エレメントに対して接続されることが望ましい。
【００１５】
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、複数の入力と一つの出力とを有し、他の複数の前記プロセッシング・エレメントに対して接続されることが望ましい。
【００１６】
前記プロセッシング・エレメントは、複数の入力と複数の出力を有し、他の複数の前記プロセッシング・エレメントに対して接続されることが望ましい。
【発明の効果】
【００１７】
本発明は、多入力、多出力を有するプロセッシング・エレメントを用いた場合でも経路を構築できる分散処理システムを提供できるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】経路構築の流れを示す図である。
【図２】使用するタスクと経路を示す図である。
【図３】実施例１における経路構築の手順を示すシーケンス図である。
【図４】実施例１におけるタスクへのインデックスの割り当てを示す図である。
【図５】実施例１におけるクライアントＣＬからコントロール・ユニットＣＵへのサービス実行要求のデータ構造を示す図である。
【図６】実施例１におけるコントロール・ユニットＣＵからプロセッシング・エレメントＰＥへ送る経路情報を示す図である。
【図７】実施例１におけるプロセッシング・エレメントＰＥからプロセッシング・エレメントＰＥへ送る情報を示す図である。
【図８】実施例１におけるプロセッシング・エレメントＰＥからコントロール・ユニットＣＵへの通信を示す図である。
【図９】実施例１におけるコントロール・ユニットＣＵからクライアントＣＬへの応答の内容を示している。
【図１０】実施例１におけるクライアントＣＬの手順を示すフローチャートである。
【図１１】実施例１におけるコントロール・ユニットＣＵの手順を示すフローチャートである。
【図１２】実施例１におけるプロセッシング・エレメントＰＥの手順を示すフローチャートである。
【図１３】実施例２における実行順序か前のＰＥから後ろのＰＥへ向かって送信する場合の経路構築のシーケンスを示す図である。
【図１４】実施例３におけるブロードキャスト(同報)で経路情報を送信する場合の経路構築のシーケンス図である。
【図１５】実施例３におけるコントロール・ユニットＣＵからプロセッシング・エレメントＰＥにブロードキャストする経路情報のデータ構造を示す図である。
【図１６】実施例４におけるコントロール・ユニットＣＵからバケツリレー方式で経路情報を送信する場合であって、実行順序が前から後ろのプロセッシング・エレメントＰＥへ送信する場合における経路構築を示すシーケンス図である。
【図１７】実施例４におけるバケツリレー方式における経路情報のデータ構造を示している。
【図１８】実施例４におけるコントロール・ユニットＣＵがプロセッシング・エレメントＰＥ１に送信する経路情報の内容を示す図である。
【図１９】実施例４におけるプロセッシング・エレメントＰＥ１がプロセッシング・エレメントＰＥ２へ送信する経路情報の内容を示す図である。
【図２０】実施例４におけるプロセッシング・エレメントＰＥ２がプロセッシング・エレメントＰＥ５へ送信する経路情報の内容を示す図である。
【図２１】実施例４におけるバケツリレー方式におけるコントロール・ユニットＣＵの手順を示すフローチャートである。
【図２２】実施例４におけるバケツリレー方式におけりプロセッシング・エレメントＰＥの手順を示すフローチャートである。
【図２３】実施例５におけるバケツリレー方式において、経路情報を実行順序が最後のプロセッシング・エレメントから最初のプロセッシング・エレメントへ送信する手順を示すジーケンス図である。
【発明を実施するための形態】
【００１９】
以下に、本発明にかかる分散処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００２０】
まず、実施例の説明に先立ち、以下の説明に用いる用語について定義する。
（クライアント）
クライントＣＬとは、ユーザが持っている端末である。ここからコントロール・ユニットやプロセッシング・エレメントに指示を送信できる。
【００２１】
（コントロール・ユニット）
コントロール・ユニットＣＵとは、プロセッシング・エレメントの情報を管理し、ユーザのサービス実行要求に応じて使用するプロセッシング・エレメントの決定、処理経路の管理、サービス実行時のタスク実行遷移の管理などを行う制御部をいう。
【００２２】
（プロセッシング・エレメント）
プロセッシング・エレメントＰＥは、計算で使われるノードである。プロセッシング・エレメントは、ある特定の処理、すなわちタスクを提供する。一つ以上のタスクを処理する機能と、処理に必要なデータ入出力機能やデータ格納機能を有している。
【００２３】
（データフロー型分散処理）
例えばＪＰＥＧのエンコード処理は、ダウンサンプリング、ＤＣＴ、ハフマン符号化などの複数の処理ブロックに分けられる。ＪＰＥＧエンコードを、一つのプログラムで実行するのではなく、処理ブロック毎のプログラム(ハードウェアでもよい)を用意する。一つの処理ブロックの入力が加工されて出力され、次の処理ブロックの入力となる。このように、データを次々と受け渡しながら処理し、全体として一つの大きな処理を実現する枠組みをデータフロー型分散処理という。データの受け渡しは、ハードウェアのバスのようなものでも、ネットワークでも構わない。
【００２４】
（タスク）
タスクとは、プロセッシング・エレメントが提供する処理をいう。例えばＪＰＥＧのエンコードで言えば「ダウンサンプリング」などがタスクの例である。各タスクにはタスク識別子(ＴＩＤ)と呼ぶ識別番号がつけられている。一般的によく使われるタスクには識別子が割り当てられている。そして、良く使用されるタスク識別子は、知られているとする。タスクは、プロセッシング・エレメント上で実行される。
【００２５】
（サービス）
サービスとは、一つ以上の関連を持つタスクの集合をいう。サービスは、タスクよりもまとまった意味のある処理を実現するものである。JPEGエンコード処理は、サービスの一例である。
【００２６】
（サービス番号）  
サービス番号とは、クライアントＣＬが要求したサービスを識別するためのユニークな番号をいう。サービス番号は、コントロール・ユニットが一意になるように生成し、管理する。
【００２７】
（サービス実行要求）
サービス実行要求とは、クライアントが実行したいサービスの準備を、コントロール・ユニットに依頼することをいう。
【００２８】
（経路情報）
データフロー型分散処理では、意味のある結果を生成するには、各タスクを実行するプロセッシング・エレメントを適切に接続する必要がある。このプロセッシング・エレメントの並べ方を経路情報という。経路を作り出すことを経路構築という。経路情報は、コントロール・ユニットが決定する。
【００２９】
（処理経路確立）
処理経路確立とは、タスク処理に関するデータなどを他のプロセッシング・エレメントと相互に通信できる状態にすることをいう。
【００３０】
次に、図１を参照して、経路を構築する手順を説明する。
（１）クライアントＣＬは、サービス実行要求として、処理に必要なタスクと順番を指定してコントロール・ユニットＣＵに送信する。タスクは、タスク識別子ＴＩＤと呼ばれる数値で表される。
【００３１】
（２）コントロール・ユニットＣＵには、予めプロセッシング・エレメントＰＥの情報、例えばアドレス、タスク識別子などが登録されている。コントロール・ユニットＣＵは、クライアントＣＬから送られてきた情報に基づいて使用するプロセッシング・エレメントＰＥを決定する。
【００３２】
（３）コントロール・ユニットＣＵは、経路情報をプロセッシング・エレメントＰＥに送信する。
（４）プロセッシング・エレメントＰＥ間の経路が確立する、なお、経路確立の詳細は後述する。
【００３３】
（５）経路構築が完了すると、コントロール・ユニットＣＵに応答が送信される。
（６）コントロール・ユニットＣＵは、クライアントＣＬに使用するプロセッシング・エレメントＰＥのアドレスを送信する。送信するアドレスは、タスクを実行する最初のプロセッシング・エレメントＰＥと、最後のプロセッシング・エレメントＰＥである。
（７）クライアントＣＬは、最初のプロセッシング・エレメントＰＥに接続する。
（８）クライアントＣＬは、最後のプロセッシング・エレメントＰＥに接続する。
（９）クライアントＣＬは、サービスに処理させるデータを送信する
【００３４】
クライアントＣＬ以外の経路はすでに確立している。このため、クライアントＣＬと最初のプロセッシング・エレメントＰＥ、ならびクライアントＣＬと最後のプロセッシング・エレメントＰＥが接続すればループが完成する。
【００３５】
クライアントＣＬから最後のプロセッシング・エレメントＰＥに接続するのは、通常の接続の向き(最初から最後)と逆方向である。これは、通常クライアントＣＬは、ファイアウォールが存在し、外部からの接続を許さないようになっているためである。
【実施例１】
【００３６】
次に、上述した手順を踏まえて、本発明の実施例１に係る分散処理システムについて説明する。ここで、クライアントは、図２に示すようにタスクを接続したいものとする。なお、ＰＥ間の接続は、以下の例に限定されるものではない。
最初に説明する実施例では、コントロール・ユニットＣＵが個々のプロセッシング・エレメントＰＥに、そのプロセッシング・エレメントＰＥの接続先、接続元の情報を送り経路を構築するものである。
【００３７】
各プロセッシング・エレメントＰＥの条件は、以下のとおりとする。通信にはＴＣＰ/ＩＰを使うものとする。しかしながら、通信プロトコルはＴＣＰ/ＩＰに限定されるものではない。また、１つのプロセッシング・エレメントＰＥでは、１つのタスクが提供される。
【００３８】
表１に、各プロセッシング・エレメントＰＥの情報を掲げる。
（表１）
PE        提供するタスク      ＰＥアドレス
PE1      タスク1              192.168.0.101
PE2      タスク2              192.168.0.102
PE3      タスク2              192.168.0.103
PE4      タスク2              192.168.0.104
PE5      タスク3              192.168.0.105
PE6      タスク4              192.168.0.106
PE7      タスク5              192.168.0.107
PE8      タスク6              192.168.0.108
【００３９】
表２に、各タスクとタスク識別子の定義を掲げる。
（表２）
提供するタスク      タスク識別子
タスク1            11
タスク2            12
タスク3            13
タスク4            14
タスク5            15
タスク6            16
【００４０】
表３に、クライアントのアドレスを掲げる。
（表３）
クライアント・アドレス
192.168.0.10
【００４１】
また、表４に使用するサービス番号を掲げる。
（表４）
サービス番号
199
【００４２】
コントロール・ユニットＣＵには、各プロセッシング・エレメントＰＥの情報が登録されており、既知とする。さらに、クライアントＣＬ、各プロセッシング・エレメントＰＥもコントロール・ユニットＣＵのアドレスは既知であるとする。
【００４３】
図３は、経路構築の手順を示すシーケンス図である。以降の図面において、接続が完了したプロセッシング・エレメントＰＥ間は、「握手マーク」で示している。
（１）  クライアントＣＬはサービス実行要求として必要なタスクを、コントロール・ユニットＣＵに送信する。エラーが生じた場合も含めて経路が構築されると、コントロール・ユニットＣＵから応答がある。このため、クライアントＣＬは、応答があるまでは待つ。
【００４４】
（２）  コントロール・ユニットＣＵは、クライアントＣＬからサービス実行要求を受け取る。コントロール・ユニットＣＵは、そのサービスを構成するタスクを提供するプロセッシング・エレメントＰＥを決定して、各プロセッシング・エレメントＰＥに送る経路情報を作成する。このクライアントＣＬからの処理を識別するための識別子「サービス番号」を生成する。
【００４５】
（３）  コントロール・ユニットＣＵは、実行順序が最後のプロセッシング・エレメントＰＥから順に経路情報を送信する(図中、一点鎖線で示す)。実行順序が最後のプロセッシング・エレメントＰＥから最初のプロセッシング・エレメントＰＥに向かって送信するのは、前段のプロセッシング・エレメントＰＥからの接続を待ち受けられるようにするためである。
【００４６】
経路情報には、サービス識別子、接続するプロセッシング・エレメントＰＥのアドレス、接続してくるプロセッシング・エレメントＰＥのアドレス、最初または最後のプロセッシング・エレメントＰＥであるかの情報、及び、クライアントのアドレスが記述されている。
【００４７】
プロセッシング・エレメントＰＥにより受信されたら、コントロール・ユニットＣＵとプロセッシング・エレメントＰＥ間の接続は切断する。
【００４８】
（４）  プロセッシング・エレメントＰＥは常に待ち受け状態にある。プロセッシング・エレメントＰＥ８は、コントロール・ユニットＣＵから経路情報を受信する。プロセッシング・エレメントＰＥ８は、実効順序が最後なので接続先はない。そして、プロセッシング・エレメントＰＥ６と、プロセッシング・エレメントＰＥ７からの接続を待つ。受信した経路情報は、後で使うので記憶しておく。
【００４９】
（５）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ７に経路情報を送信する。
【００５０】
（６）  コントロール・ユニットＣＵから経路情報を受け取ったプロセッシング・エレメントＰＥ７は、次のプロセッシング・エレメントＰＥ８に接続する(図中、実線で示す)。その時サービス番号を含んだ情報を送信する。接続されたプロセッシング・エレメントＰＥ８は、サービス番号を参照して、いずれのサービス実行要求に対する経路情報であるか、を識別することができる。これにより、プロセッシング・エレメントＰＥ７と、プロセッシング・エレメントＰＥ８との間の経路が確立される。次に、プロセッシング・エレメントＰＥ7は前のプロセッシング・エレメントＰＥからの接続待ち状態にはいる。
【００５１】
（７）  プロセッシング・エレメントＰＥ7から接続されたプロセッシング・エレメントＰＥ8はサービス番号と接続元アドレスを参照して、正しい接続か、をチェックする。プロセッシング・エレメントＰＥ７との接続は維持する。プロセッシング・エレメントＰＥ８はプロセッシング・エレメントＰＥ6からも接続されるので待つ。
【００５２】
（８）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ６に経路情報を送信する。
【００５３】
（９）  プロセッシング・エレメントＰＥ６は、コントロール・ユニットＣＵから経路情報を受け取り、プロセッシング・エレメントＰＥ８に接続する。そして、プロセッシング・エレメントＰＥ５からの接続を待つ。
【００５４】
（１０）  プロセッシング・エレメントＰＥ８は、プロセッシング・エレメントＰＥ６からの接続を受け入れる。
【００５５】
（１１）  プロセッシング・エレメントＰＥ８への入力が全て揃ったのでプロセッシング・エレメントＰＥ８は、コントロール・ユニットＣＵに接続が完了したことを通知する(図中、破線で示す)。
【００５６】
（１２）  コントロール・ユニットＣＵは、該当するサービス番号のプロセッシング・エレメントＰＥ８の接続完了を受け取ったことを記録する。すべてのプロセッシング・エレメントＰＥからの完了を受け取ってからクライアントに結果を送信する。このため、いずれのプロセッシング・エレメントＰＥから完了通知が来たかを記憶しておく必要があるためである。
【００５７】
（１３）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ５に経路情報を送信する。
（１４）  プロセッシング・エレメントＰＥ５は、コントロール・ユニットＣＵから経路情報を受け取り、出力先であるプロセッシング・エレメントＰＥ７に接続する。
【００５８】
（１５）  プロセッシング・エレメントＰＥ７は、プロセッシング・エレメントＰＥ５からの接続を受け入れる。
（１６）  プロセッシング・エレメントＰＥ７は、コントロール・ユニットＣＵに完了通知を送信する。
【００５９】
（１７）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ７からの接続完了を受け取り、それを記録する。
（１８）  プロセッシング・エレメントＰＥ５は、プロセッシング・エレメントＰＥ７に続いてプロセッシング・エレメントＰＥ６に接続する。そしてプロセッシング・エレメントＰＥ２、プロセッシング・エレメントＰＥ３、プロセッシング・エレメントＰＥ４からの接続を待つ。
【００６０】
（１９）  プロセッシング・エレメントＰＥ６は、プロセッシング・エレメントＰＥ５からの接続を受け入れる。
（２０）  プロセッシング・エレメントＰＥ６は、コントロール・ユニットＣＵに完了通知を送信する。
【００６１】
（２１）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ６からの接続完了を受け取り、それを記録する。
（２２）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ４に経路情報を送信する。
【００６２】
（２３）  プロセッシング・エレメントＰＥ４は、コントロール・ユニットＣＵから経路情報を受け取り、出力先であるプロセッシング・エレメントＰＥ５に接続する。
（２４）  プロセッシング・エレメントＰＥ５は、プロセッシング・エレメントＰＥ４からの接続を受け入れる。
【００６３】
（２５）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ３に経路情報を送信する。
（２６）  プロセッシング・エレメントＰＥ３は、コントロール・ユニットＣＵから経路情報を受け取り、出力先であるプロセッシング・エレメントＰＥ５に接続する。
【００６４】
（２７）  プロセッシング・エレメントＰＥ５は、プロセッシング・エレメントＰＥ３からの接続を受け入れる。
（２８）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ２に経路情報を送信する。
【００６５】
（２９）  プロセッシング・エレメントＰＥ２は、コントロール・ユニットＣＵから経路情報を受け取り、出力先であるプロセッシング・エレメントＰＥ５に接続する。
（３０）  プロセッシング・エレメントＰＥ５は、プロセッシング・エレメントＰＥ２からの接続を受け入れる。
【００６６】
（３１）  プロセッシング・エレメントＰＥ５は、コントロール・ユニットＣＵに完了通知を送信する。
（３２）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ５からの接続完了を受け取り、それを記録する。
【００６７】
（３３）  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥ１に経路情報を送信する。
（３４）  プロセッシング・エレメントＰＥ１は、コントロール・ユニットＣＵから経路情報を受け取り、出力先であるプロセッシング・エレメントＰＥ２に接続する。
【００６８】
（３５）  プロセッシング・エレメントＰＥ2はプロセッシング・エレメントＰＥ１からの接続を受け入れる。
（３６）  プロセッシング・エレメントＰＥ2はコントロール・ユニットＣＵに完了通知を送信する。
【００６９】
（３７）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ２からの接続完了を受け取り、それを記録する。
（３８）  プロセッシング・エレメントＰＥ１は、出力先であるプロセッシング・エレメントＰＥ３に接続する。
【００７０】
（３９）  プロセッシング・エレメントＰＥ３は、プロセッシング・エレメントＰＥ１からの接続を受け入れる。
（４０）  プロセッシング・エレメントＰＥ３は、コントロール・ユニットＣＵに完了通知を送信する。
【００７１】
（４１）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ３からの接続完了を受け取り、それを記録する。
（４２）  プロセッシング・エレメントＰＥ１は、出力先であるプロセッシング・エレメントＰＥ４に接続する。
【００７２】
（４３）  プロセッシング・エレメントＰＥ４は、プロセッシング・エレメントＰＥ１からの接続を受け入れる。
（４４）  プロセッシング・エレメントＰＥ４は、コントロール・ユニットＣＵに完了通知を送信する。
【００７３】
（４５）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ４からの接続完了を受け取り、それを記録する。
（４６）  プロセッシング・エレメントＰＥ１は、コントロール・ユニットＣＵに完了通知を送信する。この時点でプロセッシング・エレメントＰＥ間の経路は構築される。
【００７４】
（４７）  コントロール・ユニットＣＵは、該当タスクのプロセッシング・エレメントＰＥ１からの接続完了を受け取り、それを記録する。
（４８）  コントロール・ユニットＣＵは、全プロセッシング・エレメントＰＥから完了通知を受け取ったので、クライアントＣＬに結果を送信する(図中、破線で示す)。
【００７５】
（４９）  クライアントＣＬは、結果、すなわち最初のプロセッシング・エレメントと最後のプロセッシング・エレメントのＰＥアドレスを受信する。
（５０）  クライアントＣＬは、最初のプロセッシング・エレメントＰＥに接続する(図中、一点鎖線で示す）。
【００７６】
（５１）  プロセッシング・エレメントＰＥ１は、クライアントＣＬからの接続を受け入れる。
（５２）  クライアントＣＬは、最後のプロセッシング・エレメントＰＥに接続する(図中、二点鎖線で示す）。
（５３）  プロセッシング・エレメントＰＥ８は、クライアントＣＬからの接続を受け入れる。
【００７７】
（５４）  クライアントＣＬは、最初のプロセッシング・エレメントＰＥに処理するデータを送信する。
（５５）  プロセッシング・エレメントＰＥ１は、データを処理し、結果をプロセッシング・エレメントＰＥ２に送信する。
（５６）  プロセッシング・エレメントＰＥ１は、結果をプロセッシング・エレメントＰＥ３に送信する。
【００７８】
（５７）  プロセッシング・エレメントＰＥ１は、結果をプロセッシング・エレメントＰＥ４に送信する。プロセッシング・エレメントＰＥ１が３つのプロセッシング・エレメントＰＥに送信するとき、順次(１つずつ)送信する方式でも同報(ブロードキャスト)送信する方式でも構わない。このとき、送信する内容について、全て同じ内容であるか、またはプロセッシング・エレメントＰＥ毎に異なる内容であるかはアプリケーションに依存する。
【００７９】
（５８）  プロセッシング・エレメントＰＥ２は、データを処理し、結果をプロセッシング・エレメントＰＥ５に送信する。
（５９）  プロセッシング・エレメントＰＥ３は、データを処理し、結果をプロセッシング・エレメントＰＥ５に送信する。
【００８０】
（６０）  プロセッシング・エレメントＰＥ４は、データを処理し、結果をプロセッシング・エレメントＰＥ５に送信する。
（６１）  プロセッシング・エレメントＰＥ５は、前の３つのプロセッシング・エレメントＰＥからデータを受信したら処理し、結果をプロセッシング・エレメントＰＥ６に送信する。
【００８１】
（６２）  プロセッシング・エレメントＰＥ５は、結果をプロセッシング・エレメントＰＥ７に送信する。
（６３）  プロセッシング・エレメントＰＥ６は、データを処理し、結果をプロセッシング・エレメントＰＥ８に送信する。
【００８２】
（６４）  プロセッシング・エレメントＰＥ７は、データを処理し、結果をプロセッシング・エレメントＰＥ８に送信する。
（６５）  プロセッシング・エレメントＰＥ８は、プロセッシング・エレメントＰＥ6とプロセッシング・エレメントＰＥ７からデータを受け取り、処理し、結果をクライアントＣＬに送信する。
（６６）  クライアントＣＬは、結果を受信する
【００８３】
各プロセッシング・エレメントＰＥからコントロール・ユニットＣＵへの完了通知は、ここで示した順番でなくても構わない。また、各プロセッシング・エレメントＰＥが次のプロセッシング・エレメントＰＥに接続する場合も、ここで示した順番でなくても構わない。
【００８４】
（データ構造）
次に、データ構造について説明する。
データ構造の説明の前に、クライアントＣＬ側で各機能にユニークな番号(以下、適宜「インデックス」と呼ぶ)を付しておく。図４は、タスクへのインデックスの割り当てを示す図である。
【００８５】
図４において、三角で囲んだ数字は、入力ピン番号である。四角で囲んだ数字は、インデックスである。以下の図面において同様の表記を用いる。入力ピン番号は、プロセッシング・エレメントＰＥの入力につける番号で、クライアントＣＬが付番する。入力が1つしかないプロセッシング・エレメントＰＥは入力ピン番号０番のみが存在する。入力が複数存在する場合、入力ピン番号は、1、2、3、と続く。それぞれに対応する前段のプロセッシング・エレメントＰＥがある。
【００８６】
（クライアントＣＬからコントロール・ユニットＣＵへの通信、シーケンス（1）)
図５は、クライアントＣＬからコントロール・ユニットＣＵへのサービス実行要求のデータ構造を示している。
まず、最初に使用するタスク数を記述する。その後に使用するタスク識別子をその数だけ並べる。この順番がインデックスになる。その後に各プロセッシング・エレメントＰＥの出力、入力に関する情報を図に示すように記述する。
【００８７】
（コントロール・ユニットＣＵからプロセッシング・エレメントＰＥへの通信(シーケンス（３）)
図６は、コントロール・ユニットＣＵからプロセッシング・エレメントＰＥへ送る経路情報を示している。
【００８８】
サービス番号は、コントロール・ユニットＣＵが決めるユニークな数値であり、クライアントＣＬからの要求を識別するために用いる。本例ではコントロール・ユニットＣＵが１９９を割り当てたとする。
【００８９】
入力ピン数は、このプロセッシング・エレメントＰＥに接続してくる他のプロセッシング・エレメントＰＥの数量を示している。これにより、プロセッシング・エレメントＰＥは、いくつの接続を待てばいいのかが認識できる。
【００９０】
ここで、たまたま別のクライアントＣＬも、このプロセッシング・エレメントＰＥを使おうとしているかもしれない。このため、区別するために接続してくるプロセッシング・エレメントＰＥのアドレスも知っていなければならない。したがって、接続するプロセッシング・エレメントＰＥ数の後に、それらプロセッシング・エレメントのアドレスも含める。
【００９１】
出力数は、このプロセッシング・エレメントＰＥの接続先プロセッシング・エレメントＰＥがいくつあるかを示す数値である。最後のプロセッシング・エレメントＰＥ(この例ではプロセッシング・エレメントＰＥ８)は次のプロセッシング・エレメントＰＥがない。このため、出力数は０になる。この後に接続先プロセッシング・エレメントＰＥのアドレスが続くので、プロセッシング・エレメントＰＥはこの数だけ後続データを読み取って次のプロセッシング・エレメントのＰＥアドレスを得る。そして順に接続する。
【００９２】
本例では、１つのプロセッシング・エレメントＰＥにつき１タスクが動作していると仮定する。しかし、これに限られることなく、複数タスクが動いていても構わない。その場合、プロセッシング・エレメントＰＥが次のPEに接続するときには使用するタスク番号も指定しなければならない。このため、上記データ構造に使用するタスク番号も加えればよい。
【００９３】
次に、プロセッシング・エレメントＰＥからプロセッシング・エレメントＰＥへの通信（シーケンス（６））について説明する。
図７は、プロセッシング・エレメントＰＥからプロセッシング・エレメントＰＥへ送る情報を示している。
接続されるプロセッシング・エレメントＰＥは、サービス番号によりどのタスクに対する接続かを知る。接続されたプロセッシング・エレメントＰＥでは、接続してきたプロセッシング・エレメントＰＥのアドレスは、データとして受け取らなくても知ることができる。このため、データ中には接続元のアドレスは含めない。接続されるプロセッシング・エレメントＰＥでは、上述の「接続してくるプロセッシング・エレメントＰＥのアドレス」と接続時に送られてきたサービス番号から正しい接続であるかを知ることができる。
【００９４】
プロセッシング・エレメントＰＥからコントロール・ユニットＣＵへの通信(シーケンス（11）)について説明する。
各プロセッシング・エレメントＰＥは、全ての接続先につながり、指定された全てのプロセッシング・エレメントＰＥから接続されるとコントロール・ユニットＣＵに接続完了通知を送る。図８は、このときのデータ構造を示している。
【００９５】
コントロール・ユニットＣＵは、自身が送った経路情報を記憶する。そして、対応するサービス番号に対応する接続完了通知がプロセッシング・エレメントＰＥから送られるのを待つ。
【００９６】
コントロール・ユニットＣＵからクライアントCLへの通信(シーケンス（48）について説明する。
コントロール・ユニットＣＵは、全プロセッシング・エレメントＰＥから応答を受け取ると、プロセッシング・エレメントＰＥ間では経路が確立したのでクライアントＣＬに結果を送信する。そのデータ構造を図９に示す。図９は、コントロール・ユニットＣＵからクライアントＣＬへの応答の内容を示している。
クライアントＣＬは、指定したサービス番号で、最初のプロセッシング・エレメントＰＥと最後のプロセッシング・エレメントＰＥに接続することでループが完成する。
【００９７】
次に、クライントＣＬ、コントロール・ユニットＣＵ、プロセッシング・エレメントＰＥの経路完成までのフローを順番に説明する。
【００９８】
まず、クライントＣＬの手順を図１０を参照して説明する。図１０は、クライアントＣＬの手順を示すフローチャートである。
ステップＳ１００１において、クライアントＣＬは、サービス実行要求をコントロール・ユニットＣＵに送信する。
【００９９】
ステップＳ１００２において、クライアントＣＬは、応答がくるまで待ち状態となる。
ステップＳ１００３において、クライアントＣＬは、コントロール・ユニットＣＵから最初のプロセッシング・エレメントＰＥと最後のプロセッシング・エレメントＰＥのＰＥアドレスを受信する。
ステップＳ１００４において、クライアントＣＬは、最初のプロセッシング・エレメントＰＥと、最後のプロセッシング・エレメントＰＥとに接続する。
【０１００】
次に、コントロール・ユニットＣＵの手順を図１１を参照して説明する。図１１は、コントロール・ユニットＣＵの手順を示すフローチャートである。
ステップＳ１１０１において、コントロール・ユニットＣＵは、クライアントＣＬからサービス実行要求を受信する。
【０１０１】
ステップＳ１１０２において、コントロール・ユニットＣＵは、サービスの処理に使用するプロセッシング・エレメントＰＥを決定する。
ステップＳ１１０３において、コントロール・ユニットＣＵは、実行順序が最後のプロセッシング・エレメントＰＥから順番に接続情報を送信する。
【０１０２】
ステップＳ１１０４において、コントロール・ユニットＣＵは、接続情報を送信したプロセッシング・エレメントＰＥからの完了通知を受信する。
ステップＳ１１０５において、コントロール・ユニットＣＵは、全てのプロセッシング・エレメントＰＥから完了通知を受信したか、が判断される。
【０１０３】
ステップＳ１１０５の判断結果が真（Ｙｅｓ）のとき、S１１０６でクライアントＣＬに結果を送信して、処理を終了する。また、ステップＳ１１０５の判断結果が偽（Ｎｏ）のとき、Ｓ１１０４へ戻る。
【０１０４】
次に、プロセッシング・エレメントＰＥの手順を図１２を参照して説明する。図１２は、プロセッシング・エレメントＰＥの手順を示すフローチャートである。
ステップＳ１２０１において、プロセッシング・エレメントＰＥは、コントロール・ユニットＣＵから経路情報を受信する。
【０１０５】
ステップＳ１２０２において、プロセッシング・エレメントＰＥが、実行順序が最後のプロセッシング・エレメントＰＥであるか、が判断される。
ステップＳ１２０２の判断結果が偽のとき、ステップＳ１２０３へ進む。ステップＳ１２０３において、プロセッシング・エレメントＰＥは、次のプロセッシング・エレメントＰＥへ接続する。そして、ステップＳ１２０４へ進む。ステップＳ１２０２の判断結果が真のとき、ステップＳ１２０４へ進む。
【０１０６】
ステップＳ１２０４において、自分の前のプロセッシング・エレメントＰＥからの接続を待つ。
ステップＳ１２０５において、すべての接続がそろったか、が判断される。
ステップＳ１２０５の判断結果が偽のとき。ステップＳ１２０４へ戻る。
【０１０７】
ステップＳ１２０５の判断結果が真のとき、ステップＳ１２０６へ進む。ステップＳ１２０６において、プロセッシング・エレメントＰＥは、コントロール・ユニットＣＵに接続完了通知を送信する。
【０１０８】
ステップＳ１２０７において、プロセッシング・エレメントＰＥが最初または最後のプロセッシング・エレメントか、が判断される。ステップＳ１２０７の判断結果が偽のとき、処理を終了する。ステップＳ１２０７の判断結果が真のとき、ステップＳ１２０８におおいて、クライアントＣＬからの接続を待つ。
【実施例２】
【０１０９】
次に、本発明の実施例２に係る分散処理システムについて説明する。本実施例では、クライアントＣＵから各プロセッシング・エレメントＰＥに経路情報を送信する場合であって、実行順序が前のＰＥから後ろのＰＥへ向かって送信する場合について説明する。
【０１１０】
ここで、使用するサービスは前述したサービスと同じとする。
コントロール・ユニットＣＵが各プロセッシング・エレメントＰＥに経路情報を送信する上述の例において、コントロール・ユニットＣＵが前のプロセッシング・エレメントＰＥに先に経路情報を送信し、順に後ろのプロセッシング・エレメントＰＥに向かって送信する場合を説明する。シーケンスを図１３に示す。
【０１１１】
図１３は、実行順序が前（最初）のプロセッシング・エレメントＰＥから後ろ（最後）のプロセッシング・エレメントＰＥへ向かって送信する場合の経路構築のシーケンスを示す図である。
【０１１２】
図中の記号の意味は、上述した例における記号の意味と同じである。経路情報(一点鎖線)、接続(黒線)、接続(破線)など通信で使われるデータ構造も後ろから前に経路情報を送る実施例１のケースと同じである。
【０１１３】
後ろから前のプロセッシング・エレメントＰＥに経路を送るときと異なる点は、プロセッシング・エレメントＰＥが経路情報を受け取って次のプロセッシング・エレメントＰＥに接続したとき、次のプロセッシング・エレメントＰＥはまだ経路情報を受け取っていない可能性があることである。
【０１１４】
プロセッシング・エレメントＰＥが前のプロセッシング・エレメントPEから接続されるとサービス番号が送られてくる。次に、コントロール・ユニットＣＵから、このサービス番号に対応する経路情報が送られてくるものとして、保留にしておく。
【０１１５】
そして、コントロール・ユニットＣＵから経路情報が送られてきて、サービス番号が一致したならば次のプロセッシング・エレメントPEに接続する。すべての入力と出力がつながったとき、プロセッシング・エレメントＰＥは、コントロール・ユニットＣＵに完了通知を送信する。
【実施例３】
【０１１６】
次に、本発明の実施例３に係る分散処理システムについて説明する。本実施例では、コントロール・ユニットＣＵから全プロセッシング・エレメントＰＥにブロードキャスト(同報)で経路情報を送信する場合について説明する。
【０１１７】
使用するサービスは、上述したサービスと同じとする。  
コントロール・ユニットＣＵがサービスで使う全プロセッシング・エレメントＰＥに１回のブロードキャストで経路情報を送信した後に、経路を構築するケースを説明する。
【０１１８】
図１４は、ブロードキャスト(同報)で経路情報を送信する場合の経路構築のシーケンスを示している。
コントロール・ユニットＣＵは、経路を構成する全プロセッシング・エレメントＰＥにブロードキャストで経路情報を送信する。
【０１１９】
経路情報を受け取った各プロセッシング・エレメントＰＥは、出力先に接続するとともに入力してくるプロセッシング・エレメントＰＥの接続も受け入れる。
個々のプロセッシング・エレメントＰＥがすべての入力と出力が揃ったとき、コントロール・ユニットＣＵに接続完了を送信する。
【０１２０】
（データ構造）
図１５は、コントロール・ユニットＣＵからプロセッシング・エレメントＰＥにブロードキャストする経路情報のデータ構造を示している。
ブロードキャストで経路情報を送るため、１回の送信で全プロセッシング・エレメントＰＥの経路情報を持つ構造になっている。
【０１２１】
「使用するＰＥ数」は、このサービスで使用するプロセッシング・エレメントＰＥの数が記述されている。この直後に、各プロセッシング・エレメントＰＥのアドレスが「使用するＰＥ数」個だけインデックス順で並んでいる。
【０１２２】
各プロセッシング・エレメントＰＥは、自ＩＰアドレスと経路情報に記述されているＩＰアドレスを比較する。これにより、自インデックスを知ることができる。
プロセッシング・エレメントのＰＥアドレスの次には、各プロセッシング・エレメントＰＥの出力数、出力先のインデックス（ＰＥの出力数だけ並ぶ）、入力数、入力元のアドレス（ＰＥの入力数だけ並ぶ）がインデックス順に並んで記述されている。
【０１２３】
インデックスがわかれば自ＰＥの入出力記述部分を読み取って、出力先であるプロセッシング・エレメントＰＥに接続し、入力元のプロセッシング・エレメントＰＥからの接続を待つことができる。
【実施例４】
【０１２４】
次に、本発明の実施例４に係る分散処理システムについて説明する。本実施例では、コントロール・ユニットＣＵからバケツリレー方式で経路情報を送信する場合であって、実行順序が前から後ろのプロセッシング・エレメントＰＥへ送信する場合について説明する。
【０１２５】
使用するサービスは上述したサービスと同じとする。
バケツリレー方式は、コントロール・ユニットＣＵが最初のプロセッシング・エレメントＰＥに全経路情報を送信する。全経路情報を受け取ったプロセッシング・エレメントＰＥが、次のプロセッシング・エレメントＰＥに経路情報を送信する。このように、最後のプロセッシング・エレメントＰＥまで経路情報をバケツリレー方式で後ろのプロセッシング・エレメントＰＥに伝達する。クライアントＣＬが各プロセッシング・エレメントＰＥにインデックスを割り当てるのは同じである。この時のデータ構造は後述する。
【０１２６】
図１６は、コントロール・ユニットＣＵからバケツリレー方式で経路情報を送信する場合であって、実行順序が前から後ろのプロセッシング・エレメントＰＥへ送信する場合における経路構築を示すシーケンス図である。
【０１２７】
コントロール・ユニットＣＵは、最初のプロセッシング・エレメントＰＥ１に経路情報を送る。プロセッシング・エレメントＰＥ１は、経路情報を参照して、自ＰＥの次に来る全ての出力先に接続して、この経路情報を送信する。
【０１２８】
接続してくるプロセッシング・エレメントＰＥがあれば待ち受ける。例えば、プロセッシング・エレメントＰＥ１の場合は、クライアントＣＬが接続してくるものに相当する。このようにして、次々に経路情報を渡してゆく。最後のプロセッシング・エレメントＰＥは、コントロール・ユニットＣＵに最後まで到達したことを通知する。
【０１２９】
さらに手順を図１６にもとづいて説明する。
（１）クライアントＣＬは、サービス実行要求をコントロール・ユニットＣＵに送信する(図中、実線で示す)。エラーも含めて経路が構築されると、コントロール・ユニットＣＵから応答があるので、それまでは待つ。
【０１３０】
（２）コントロール・ユニットＣＵは、クライアントＣＬからサービス実行要求を受け取る。コントロール・ユニットＣＵは、それらのタスクを提供するプロセッシング・エレメントＰＥを決定して、プロセッシング・エレメントＰＥに送る経路情報を作成する。
【０１３１】
（３）コントロール・ユニットＣＵは、最初のプロセッシング・エレメントＰＥ１に経路情報を送信する(図中、一点鎖線で示す)。その後、最後のプロセッシング・エレメントＰＥから完了通知が送られてくるのを待つ。
【０１３２】
（４）プロセッシング・エレメントＰＥ１は、経路情報を受信し、そこに記述されている情報から経路情報をプロセッシング・エレメントＰＥ２に送信する。この接続は維持しておく。すなわち、経路情報を送るために接続すると同時に、それらプロセッシング・エレメントＰＥ間の経路も完成する。
【０１３３】
（５）プロセッシング・エレメントＰＥ１は、プロセッシング・エレメントＰＥ３にも接続する。このため、プロセッシング・エレメントＰＥ３にも経路情報を送信する。
（６）プロセッシング・エレメントＰＥ１は、プロセッシング・エレメントＰＥ４に接続する。このため、プロセッシング・エレメントＰＥ４にも経路情報を送信する。
【０１３４】
（７）プロセッシング・エレメントＰＥ２は、出力先であるプロセッシング・エレメントＰＥ５に接続し、経路情報を送信する。
（８）プロセッシング・エレメントＰＥ３は、出力先であるプロセッシング・エレメントＰＥ５に接続し、経路情報を送信する。
【０１３５】
（９）プロセッシング・エレメントＰＥ４は、出力先であるプロセッシング・エレメントＰＥ５に接続し、経路情報を送信する。
（１０）プロセッシング・エレメントＰＥ５は、全ての入力が揃ったので、出力先であるプロセッシング・エレメントＰＥ６に接続し、経路情報を送信する。
【０１３６】
（１１）プロセッシング・エレメントＰＥ５は、もう一つの出力先であるプロセッシング・エレメントＰＥ７に接続し、経路情報を送信する。
（１２）プロセッシング・エレメントＰＥ６は、出力先であるプロセッシング・エレメントＰＥ８に接続し、経路情報を送信する。
【０１３７】
（１３）プロセッシング・エレメントＰＥ７は、出力先であるプロセッシング・エレメントＰＥ８に接続し、経路情報を送信する。
（１４）プロセッシング・エレメントＰＥ８は最後のプロセッシング・エレメントＰＥであるので、コントロール・ユニットＣＵに経路が完成したことを返信する。
【０１３８】
（１５）コントロール・ユニットＣＵは、経路が完成したので、クライアントＣＬに最初と最後のＰＥアドレスを送信する。
（１６）クライアントＣＬは、最初のプロセッシング・エレメントＰＥに接続する。
（１７）クライアントＣＬは、最後のプロセッシング・エレメントＰＥに接続する。
【０１３９】
次に、データ構造について説明する。
クライアントＣＬからコントロール・ユニットＣＵへのサービス実行要求のデータ構造は最初の方式と同じである。
【０１４０】
図１７は、バケツリレー方式におけるコントロール・ユニットＣＵからプロセッシング・エレメントＰＥへ送る経路情報のデータ構造を示している。クライアントＣＬから送られてきたタスクの並びを元にしてコントロール・ユニットＣＵが作成する。
【０１４１】
「自分のインデックス」は、この経路情報を受け取ったプロセッシング・エレメントＰＥのインデックスである。経路内で各プロセッシング・エレメントＰＥは、ユニークなインデックス値を持つ。本実施例では、プロセッシング・エレメントＰＥに対するインデックスを、以下のように割り当てる。
【０１４２】
ＰＥ１  ０
ＰＥ２  １
ＰＥ３  ２
ＰＥ４  ３
ＰＥ５  ４
ＰＥ６  ５
ＰＥ７  ６
ＰＥ８  ７
【０１４３】
インデックス値は、コントロール・ユニットＣＵから最初のプロセッシング・エレメントＰＥであるプロセッシング・エレメントＰＥ１に送られるときは０である。そして、送信先プロセッシング・エレメントＰＥのインデックス値に合わせて、経路情報を送信するプロセッシング・エレメントＰＥが書き換える。他の部分は書き換えず、コントロール・ユニットＣＵから送られてきた内容をそのまま使う。
【０１４４】
プロセッシング・エレメントＰＥが経路情報を受信すると、現在のインデックスを見る。使用するプロセッシング・エレメントＰＥ数の後に各プロセッシング・エレメントＰＥのアドレスが記述されている。このため、これを見て接続先のアドレスを認識する。
【０１４５】
これらの後にインデックス順で各プロセッシング・エレメントＰＥの出力数とそれらのインデックス、自分に接続してくるプロセッシング・エレメントＰＥが記述されている。出力先のプロセッシング・エレメントＰＥに接続して、「現在のインデックス」をそのプロセッシング・エレメントＰＥのインデックス値に書き換えて経路情報を送る。それを出力数だけ繰り返す。そして前のプロセッシング・エレメントＰＥからの接続を待つ。
【０１４６】
プロセッシング・エレメントＰＥ１について、コントロール・ユニットＣＵから受け取った経路情報をどのように処理するかを図１８に従い説明する。
【０１４７】
図１８は、コントロール・ユニットＣＵがプロセッシング・エレメントＰＥ１に送信する経路情報の内容を示している。ここでは、この経路情報は図１７に示す経路情報に含まれていること、換言するとさらに具体化したものである。
プロセッシング・エレメントＰＥ１は、経路情報から自分のインデックスを読み取る。プロセッシング・エレメントＰＥ１は最初なので、０が記述されている。
【０１４８】
次に、使用するＰＥ数が記述されている。このため、その分スキップしてプロセッシング・エレメントＰＥ１の出力数を読む。ここで、ＰＥ１の出力数は、３と書いてあるので、３つのプロセッシング・エレメントＰＥに接続することがわかる。
【０１４９】
さらに、次からは接続先のインデックスが記述されている。このため、前のインデックスとＰＥアドレスの対応表を参照するとプロセッシング・エレメントＰＥのアドレスがわかる。
【０１５０】
したがって、プロセッシング・エレメントＰＥ１は、出力先の３つのプロセッシング・エレメントＰＥに接続できる。接続したら、コントロール・ユニットＣＵから受信した経路情報の「自分のインデックス」部分を相手のインデックスに書き換えて送信する。
【０１５１】
プロセッシング・エレメントＰＥ１は、経路情報で出力先の次に入力のプロセッシング・エレメントＰＥが記述されているので読み取る。プロセッシング・エレメントＰＥ１は最初のプロセッシング・エレメントＰＥであり、クライアントＣＵが接続してくる。このため、クライアントのアドレスが記述されている。プロセッシング・エレメントＰＥ１は、クライアントがこのサービス番号を持って接続してくるのを待つ。
【０１５２】
図１９は、プロセッシング・エレメントＰＥ１がプロセッシング・エレメントＰＥ２へ送信する経路情報の内容を示している。
プロセッシング・エレメントＰＥ２は、経路情報を受信すると自分のインデックス欄を見て、インデックス１の出力情報が書いてある部分まで読み飛ばす。出力先のＰＥインデックスは４、すなわちプロセッシング・エレメントＰＥ５であることがわかる。このため、プロセッシング・エレメントＰＥ５に接続する。
【０１５３】
このときプロセッシング・エレメントＰＥ２が受信した経路情報の「自分のインデックス」部分を４に変更して経路情報を送信する。プロセッシング・エレメントＰＥ２はプロセッシング・エレメントＰＥ２への入力部分を読み、インデックス０（ＰＥ１）のみから接続されることを知る。プロセッシング・エレメントＰＥ２は、プロセッシング・エレメントＰＥ１からサービス番号１９９での接続を待つ。
【０１５４】
次に、プロセッシング・エレメントＰＥ２が接続するプロセッシング・エレメントＰＥ５の動作を説明する。
図２０は、プロセッシング・エレメントＰＥ２がプロセッシング・エレメントＰＥ５へ送信する経路情報の内容を示している。
【０１５５】
プロセッシング・エレメントＰＥ５には３つのプロセッシング・エレメントＰＥから入力がある。このため、最初にどのプロセッシング・エレメントＰＥから接続されるかは不定である。そして、最初に受信した経路情報を見れば、どこから幾つ接続するかわかる。このため、他からの接続を待つことができる。
【０１５６】
したがって、接続される順番はどのような順番でも構わない。また、次のプロセッシング・エレメントＰＥへの接続は、プロセッシング・エレメントＰＥ１やＰＥ２などと同じ処理になる。
【０１５７】
ここで、他のプロセッシング・エレメントＰＥは、これらと同様な処理なので、重複する説明は省略する。最後のプロセッシング・エレメントＰＥは、すべての入力が揃うと経路情報が最後まで届いたことをコントロール・ユニットＣＵに通知する。
【０１５８】
本実施例におけるクライアントＣＬ、コントロール・ユニットＣＵ、プロセッシング・エレメントＰＥの経路完成までの手順を以下に説明する。また、クライアントＣＬは、コントロール・ユニットＣＵが各プロセッシング・エレメントＰＥに直接経路情報を送るケースと同じになる。
【０１５９】
図２１は、バケツリレー方式におけるコントロール・ユニットＣＵの手順を示すフローチャートである。
ステップＳ２１０１において、コントロール・ユニットＣＵは、クライアントＣＬからサービス実行要求を受信する。
【０１６０】
ステップＳ２１０２において、コントロール・ユニットＣＵは使用するプロセッシング・エレメントＰＥを決定する。
ステップＳ２１０３において、コントロール・ユニットＣＵは、実行順序が最初のプロセッシング・エレメントＰＥに経路情報を送信する。
【０１６１】
ステップＳ２１０４において、コントロール・ユニットＣＵは、バケツリレー方式で順々に経路情報が送信された後、最後のプロセッシング・エレメントＰＥからの通知を待つ。
ステップＳ２１０５において、コントロール・ユニットＣＵは、最後のプロセッシング・エレメントＰＥからの通知を受けたら、クライアントＣＬに結果を送信する。
【０１６２】
図２２は、バケツリレー方式におけりプロセッシング・エレメントＰＥの手順を示すフローチャートである。
ステップＳ２２０２において、プロセッシング・エレメントＰＥは、経路情報を受信する。ここで、プロセッシング・エレメントＰＥに対して、複数の入力が存在する場合、複数の全ての経路情報を受信する。
【０１６３】
ステップＳ２２０３において、最後のプロセッシング・エレメントＰＥであるか、が判断される。
ステップＳ２２０３の判断結果が真のとき、ステップＳ２２０６において、コントロール・ユニットへ完了通知を送信する。そして、ステップＳ２２０５へ進む。
【０１６４】
ステップＳ２２０３の判断結果が偽のとき、ステップＳ２２０４において、全ての出力先のプロセッシング・エレメントＰＥへ経路情報を送信する。
ステップＳ２２０５において、プロセッシング・エレメントＰＥは、接続を待つ。そして、処理を終了する。
【実施例５】
【０１６５】
次に、本発明の実施例５に係る分散処理システムについて説明する。本実施例では、コントロール・ユニットCUからバケツリレー方式で経路情報を送信する場合であって、実行順序が最後のプロセッシング・エレメントから最初のプロセッシング・エレメントへ送信する場合について説明する。
【０１６６】
本実施例では、後ろのプロセッシング・エレメントＰＥから前のプロセッシング・エレメントＰＥに順次経路情報を送り渡す方式を説明する。
図２３は、バケツリレー方式において、経路情報を実行順序が最後のプロセッシング・エレメントから最初のプロセッシング・エレメントへ送信する手順を示すジーケンス図である。
【０１６７】
経路情報のデータ構造は、上述したような最初のプロセッシング・エレメントから最後のプロセッシング・エレメントへ経路情報を送信する場合を同じものを用いる。
【０１６８】
コントロール・ユニットＣＵは、最後のプロセッシング・エレメントＰＥ８に経路情報を送信する。最初のプロセッシング・エレメントから最後のプロセッシング・エレメントへ送信する場合、コントロール・ユニットＣＵから送信されるときのインデックスは０であったが、最後のプロセッシング・エレメントから最初のプロセッシング・エレメントへ送信する場合は、プロセッシング・エレメントＰＥ数によって変化する。本実施例では、７にする。
【０１６９】
プロセッシング・エレメントＰＥ８は、プロセッシング・エレメントＰＥ８への入力であるプロセッシング・エレメントＰＥ６とプロセッシング・エレメントＰＥ７に接続する。他のプロセッシング・エレメントPEについても入力のプロセッシング・エレメントPEに向かって適切なインデックスに経路情報を書き換えつつ接続する。最初のプロセッシング・エレメントＰＥは、コントロール・ユニットＣＵに接続完了を送信する。
【０１７０】
上記各実施例においては、通信部分はＴＣＰ／ＩＰを用いて説明したが、ＵＤＰを使用してもよいし、有線、無線区別など問わず、上記通信が実現できれば通信方式には限定されない。
上記各実施例のシーケンス図において、完了通知が送られるタイミングはここで示した順番でなくても構わない。
上記各実施例のシーケンス図において、複数出力を持つプロセッシング・エレメントＰＥが次のプロセッシング・エレメントＰＥに経路情報を送る場合、ここで示した順番でなくても構わない。
上記各実施例のシーケンス図において、複数入力を持つプロセッシング・エレメントＰＥが前のプロセッシング・エレメントＰＥから経路情報を受信する場合、ここで示した順番でなくても構わない。
上記各実施例において示したデータ構造は、ここで述べる動作が実現可能であればこの形式に限定されない。
【０１７１】
以上説明したように、本発明により、1入力、1出力のプロセッシング・エレメントを順々に接続することで形成されていた処理経路が、途中で複数に分かれ、また複数の経路が一つに集まった経路も構築可能となることで経路の自由度が増し、様々なアプリケーションに応用できる。
【産業上の利用可能性】
【０１７２】
以上のように、本発明は、自由度の大きい分散処理システムに有用である。
【符号の説明】
【０１７３】
ＣＬ  クライアント
ＣＵ  コントロール・ユニット
ＰＥ  プロセッシング・エレメント
【図１】
2010224935.tif 000003
【図２】
2010224935.tif 000004
【図３】
2010224935.tif 000005
【図４】
2010224935.tif 000006
【図５】
2010224935.tif 000007
【図６】
2010224935.tif 000008
【図７】
2010224935.tif 000009
【図８】
2010224935.tif 000010
【図９】
2010224935.tif 000011
【図１０】
2010224935.tif 000012
【図１１】
2010224935.tif 000013
【図１２】
2010224935.tif 000014
【図１３】
2010224935.tif 000015
【図１４】
2010224935.tif 000016
【図１５】
2010224935.tif 000017
【図１６】
2010224935.tif 000018
【図１７】
2010224935.tif 000019
【図１８】
2010224935.tif 000020
【図１９】
2010224935.tif 000021
【図２０】
2010224935.tif 000022
【図２１】
2010224935.tif 000023
【図２２】
2010224935.tif 000024
【図２３】
2010224935.tif 000025