(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して複数個のプロセッサエレメントを接続した並列計算機のプロセッサエレメントであって、
ソフトウェアとローカルデータとを格納する分散型メモリと、
ソフトウェアの指示により局所的演算処理と通信処理部の制御とを行う計算処理部と、
他のプロセッサエレメントとの通信を行い大域的演算処理を行う通信処理部とを有し、
通信処理部は、
計算処理部で実行されるソフトウェアの指示により、全体のプロセッサエレメント数と、自己のプロセッサエレメントの論理アドレスと、大域的演算処理の種類とを受け取り保持するレジスタと、
計算処理部から受け取るローカルデータ、通信ネットワークを介して他のプロセッサエレメントから受け取る通信データを保持するレジスタと、
バイナリーツリー手順による処理に必要な演算器と、
バイナリーツリー手順による制御を行い、何番目の処理であるかを示すシーケンス番号を示すコントロールシーケンサと
を有し、
指示された大域的演算処理の種類と、設定されたプロセッサエレメント数と論理アドレスと、シーケンス番号とで定まる、ローカルデータと通信データとの演算と、他のプロセッサエレメントの通信処理部との通信処理とを実行する
ことを特徴とするプロセッサエレメント。
【請求項２】
大域的演算処理は最大最小値探索、大域的論理演算、総和計算、データ列の連結のいずれかであり、
通信処理部の演算器は、大小比較演算と論理演算と加算と連結演算とを行うものである、
ことを特徴とする請求項１に記載のプロセッサエレメント。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、分散型メモリを備えた並列計算機における通信処理方法に関し、特に、並列計算機を構成している複数個の全プロセッサエレメント(PE1, 〜) 上でのデータを参照して行う大域的な処理を行う際の通信処理回路に関する。
【０００２】
あらゆる工業分野、技術開発分野で設計を行う際には、偏微分方程式を解いたり、構造を解析したりして、実験によらずに数値シミュレーションにより、製品の特性、性能を予測することが重要となってきている。しかも、この数値シミュレーションには、年々より高速のコンピュータが必要となってきており、中央処理装置(CPU) を数多く連ねた並列コンピュータは、計算能力に対する増大する要求に答える手段として、その利用が検討されはじめている。
【０００３】
分散メモリ型並列計算機は処理装置（プロセッサエレメント）を多数連ね、並列に処理を行う計算機であるが、このような数値シミュレーションの並列処理を行う時には、ホストからデータ用の配列を、各プロセッサエレメントに分割配置してデータの更新を行う。
【０００４】
このような並列処理で必要となる通信処理は、数値モデル上で相互作用の及ぶ範囲のデータを持つプロセッサエレメントから参照すべきデータのコピーを受け取る局所的な処理と、全プロセッサエレメント上のデータを参照して演算を行なう、大域的処理とがある。
通信処理を含めた並列処理全体としても、プロセッサエレメント単独の局所処理とプロセッサエレメント間にまたがる大域的な処理とによって処理が完成することが多い。
例えば、ベクトルの内積処理を並列処理する場合では、２つのベクトルＡとＢの部分列が並列計算機の複数のプロセッサエレメントに分散して配置され、この状態から並列処理によって内積処理を行う。
まず、分散配置されたベクトルＡ、Ｂの部分列について、プロセッサエレメントに局所的な内積処理を行なう。この結果、局所的な内積処理の結果である単一のデータが各プロセッサエレメントに生成される。次に、各プロセッサエレメントのデータをプロセッサエレメント間で足し合わせる大域的な処理を行なう。これによって、ベクトルＡとＢの内積処理が完成する。
プロセッサエレメント内のソフトウェア(即ち、アプリケーション)は、その結果を用いて次の演算処理に移り、あるいは同様の処理を繰り返すことになる。
【０００５】
このような、大域的な処理においては、プロセッサエレメントの数が多くなると、処理時間に含まれる通信処理時間も無視できなくなること、又、大域的な処理においては、他のプロセッサエレメントからデータをもらって、所定の演算をした後、別のプロセッサエレメントに送信するといった処理であるが、データを受信する毎に、プロセッサエレメント内のソフトウェア (即ち、アプリケーション) に割り込みが発生して、アプリケーションが擾乱され、並列計算機全体としての処理能力が低下することから、プロセッサエレメント内で実行されているアプリケーション等に対する影響の少ない通信処理が要求される。
【０００６】
【従来の技術】
図３は、並列計算機での従来の通信処理方法を説明する図であり、図３(a) はメモリ分散型並列計算機の構成例を示し、図３(b) は、プロセッサエレメント間で送受信されるデータのフオーマット例を示している。
【０００７】
先ず、図３(b) に示したデータフオーマットにおいて、先頭のヘッダ部は、通信先のプロセッサエレメント(PE1, 〜) 1 のアドレス(SA)と、該通信先のプロセッサエレメント(PE1, 〜) 1 に対する割り込み(INT) の有無と、データのクラス (アプリケーションが優先して処理する必要のあるデータか否かを識別するクラス) 等の制御情報で構成されている。
【０００８】
送信側のプロセッサエレメント(PEn) 1 のアプリケーション、例えば、通信ライブラリが、プロセッサエレメント(PE1) 1 にデータの送信を行う場合、所定のデータを、主記憶装置 12 上に用意した後、所定の条件を指示して、通信処理部 11 内の、例えば、ダイレクトメモリアクセス機構(DMA) 110 を起動する。
【０００９】
該ダイレクトメモリアクセス機構(DMA) 110 は、指示された条件の元で、プロセッサエレメント(PEn) 1 の主記憶装置 12 の所定のアドレスから、所定のデータ長のデータを読み取り、通信ネットワーク 3を介して、プロセッサエレメント(PE1) 1 にデータを転送する。
【００１０】
プロセッサエレメント(PE1) 1 の通信処理部 11 では、送信されてきた通信データ▲３▼のヘッダ部を参照して、自己のプロセッサエレメント(PE1) 1 に対する送信データであって、且つ、割り込みフラグ(INT) が“１”になっていると、本体部 (計算処理部) 10で実行されているオペレーションシステム(OS)に割り込みを発生する。
【００１１】
本体部 10 で実行されるオペレーションシステム(OS)では、上記割り込みを受け付けると、通信データ▲３▼の、上記ヘッダ部を取り込み、通信先のチェックをした後、データ長等を参照して、ダイレクトメモリアクセス機構(DMA) 110 を起動する。
【００１２】
起動されたダイレクトメモリアクセス機構(DMA) 110 では、指示されたデータ転送条件の元で、通信ネットワーク 3から通信データ▲３▼のデータ部を読み取り、主記憶装置 12 に転送する。
【００１３】
このように、従来の通信処理では、所定のプロセッサエレメント(PEi) 1 からのデータ転送がある毎に、通信先のプロセッサエレメント(PEj) 1 の本体部 10 で実行されているオペレーションシステム(OS)に割り込まれ、少なくとも、ヘッダ部を読み取る為に、通信データ▲３▼を通信処理部 11 から本体部 10 まで転送する動作が実行される。
【００１４】
【発明が解決しようとする課題】
従って、現在の並列計算機では、主記憶装置 12 に対するメモリアクセスに比べて、通信処理のスループットが格段に遅いため、並列処理の効果を得るためには、出来るだけ通信処理, 及び、通信に関連する処理の時間を短くする工夫が必要である。
【００１５】
前記数値シミュレーションを並列処理する際に必要な、通信を要する大域的処理の例は、次のようなものである。
ａ）最大最小値探索（大小比較）
ｂ）大域的論理演算（論理和，排他的論理和等）
ｃ）総和計算（浮動少数点，整数の加算）
ｄ）処理要素に分割された全てのデータの共有（合同）
これらの複合的な通信処理を、従来の計算処理部 10 と通信処理部 11 とから成り立つプロセッサエレメント(PEi) 1 で、上記の如きメッセージパッシング (メッセージ受け渡し) 機構、例えば、ダイレクトメモリアクセス機構(DMA) 110,割り込み機構等により行う際には、通信そのものよりも、通信を起動するソフトウェアや、通信データ▲３▼、例えば、ヘッダ部、の受け取り、送出に関わるプロセッサエレメント(PEi) 1 内の処理に時間を多く費やされる。
【００１６】
上記の如き、大域的処理では、受け取ったデータに一つの演算を施した後、直ちに、再び、通信ネットワーク 3へ送出する決まった処理であるにもかかわらず、メッセージパッシング (データの受け渡し) による一般的な通信機構を用いることは、通信ソフトウェア (上記通信ライブラリ) 内の通信先チェックなどの処理の重複や、本体部 10 と通信処理部 11 との間のデータの移動などのオーバーヘッドを被りやすい。しかも、これらの大域的処理で、最も有効な、バイナリツリーアルゴリズム（後述の図２参照）では、演算処理が必要なのは、全てのプロセッサエレメント(PEi) 1 ではなく、一部のプロセッサエレメントである。このため、これらの処理を頻繁に行う数値シミュレーションでは、演算処理を行わない他のプロセッサエレメント(PEj) に待ちが生じて稼動率が下がり、並列処理の効果が出にくい。
【００１７】
本発明は上記従来の欠点に鑑み、並列計算機で行われる数値シミュレーション等の並列処理に必要であるが、数値シミュレーションの並列処理効果を下げる、複合通信処理を、高速に行うことができる通信処理の方法を提供することを目的とするものである。
【００１８】
【課題を解決するための手段】
図１は、本発明の一実施例を模式的に示した図であり、図２はバイナリーツリーによる大域的処理を説明する図である。上記の問題点は下記の如くに構成した並列計算機における通信処理方法によって解決される。
【００１９】
複数個のプロセッサエレメント１が通信ネットワーク３を介して接続されている並列計算機における、プロセッサエレメント１を以下のように構成する。
各プロセッサエレメント１は、
ソフトウェアとローカルデータとを格納する分散型メモリ12と、
ソフトウェアの指示により局所的演算処理と通信処理部11の制御とを行う計算処理部10と、
他のプロセッサエレメントとの通信と大域的演算処理とを行う通信処理部11とを有する。
通信処理部11は、
計算処理部10で実行されるソフトウェアの指示により、全体のプロセッサエレメント数と、自己のプロセッサエレメントの論理アドレスと、大域的演算処理の種類とを受け取り保持する手段（レジスタ）と、
計算処理部から受け取るローカルデータ、通信ネットワークを介して他のプロセッサエレメントから受け取る通信データを保持する手段（レジスタ）と、
バイナリーツリー手順による処理に必要な演算手段（演算器）と、
バイナリーツリー手順による制御を行い、何番目の処理であるかを示すシーケンス番号を示すコントロールシーケンサと
を有し、
指示された大域的演算処理の種類と、設定されたプロセッサエレメント数と論理アドレスと、コントロールシーケンサのシーケンス番号とで定まる、ローカルデータと通信データとの演算を演算手段（演算器）で行い、他のプロセッサエレメントの通信処理部と通信データの受け渡し（通信処理）を実行する。
【００２０】
前記のプロセッサエレメント１において、
大域的演算処理は、最大最小値探索、大域的論理演算、総和計算、データ列の連結のいずれかであり、
通信処理部11の演算手段（演算器）は、大小比較演算と論理演算と加算と連結演算とを行うものである、ことを特徴とする。
【００２１】
【作用】
前述のように、分散メモリ型並列計算機で、例えば、数値シミュレーションを並列処理する際に必要な、プロセッサエレメント(PEi) 間の通信を必要とする大域的な処理の例として、 a) 最大最小値探索（大小比較）、b) 大域的論理演算 (論理和, 排他的論理和等) 、 c) 総和計算（浮動少数点，整数の加算）、 d) データ列の合同 (繋ぎ合わせ:連結)等があるが、この大域的処理で最も有効な通信手段として、図２に示したバイナリーツリーアルゴリズムが知られている。
【００２２】
図２から明らかなように、バイナリーツリーによる通信処理では、該並列計算機を構成しているプロセッサエレメント(PE1,PE2, 〜) の数によって、該バイナリーツリーの構成が決められ、図２の構成例では、例えば、奇数番号のプロセッサエレメント(PE1,PE3,PE5, 〜) 1 では、通信ネットワーク 3から通信データ(3)を受信して、処理内容に従って計算処理部 10のソフトウェアにより予め定められている演算処理(OPRで示す)を実行するか、更に、実行した演算結果を、１つ，又は、２つ，又は、４つ若番のプロセッサエレメント(PEj) 1 に転送するかに定形化されており、どの通信処理を行うかは、上記バイナリーツリーの第何番目の通信であるかによって決まっている。
【００２３】
例えば、プロセッサエレメント(PE1) 1 は、データを受信して、所定の演算を繰り返すのみであるが、プロセッサエレメント(PE3,PE7, 〜) 1 では、第１回目の通信処理で、演算処理を行い、演算結果を他のプロセッサエレメント(PE1) 1 に送信するのみであり、プロセッサエレメント(PE5, 〜) 1 では、第１回目の通信処理では演算処理のみであり、第２回目の通信処理では、演算した結果を他のプロセッサエレメント(PE1) 1 に送信するといったように、プロセッサエレメント(PEi) のプロセッサエレメントアドレス (番号) ▲１▼と、第何回目の通信処理（これは、コントロールシーケンサ番号▲４▼で決まる）であるかにより、通信処理の内容が定形化されている。
【００２４】
又、偶数番号のプロセッサエレメント(PE2,PE4, 〜) 1 では、自己の持っているデータ (即ち、ホストから配分されているデータ、ローカルデータ) ▲５▼を他のプロセッサエレメント(PE1,PE3, 〜) 1 に送信するのみである。
【００２５】
本発明は、この点に着目して、各プロセッサエレメント 1内に、本体部である計算処理部 10 とは別に、プロセッサエレメントの論理アドレス▲１▼と，全プロセッサエレメントの数▲２▼と、自己の持っているローカルデータ▲５▼, ▲６▼と、通信ネットワーク 3から受信した通信データ▲３▼とを格納するレジスタ 110,111,112,120,113，バッファ 116,117と、各種の演算器 114,115と、通信制御を行うコントロールシーケンサ 118と、通信ネットワークインタフェーサ(119) とからなる通信処理部 11 を設け、
該計算処理部 10 で実行されるソフトウェアからの指示で、上記レジスタ 110,111にプロセッサエレメントの論理アドレス▲１▼、プロセッサエレメントの数▲２▼を設定した後、該設定された論理アドレス▲１▼と，プロセッサエレメント数▲２▼と，第何回目の通信であるかを指示しているコントロールシーケンサ 118のシーケンス番号▲４▼とで定まる通信処理（データの送信, 又は、データ受信，演算，又は、演算結果の送信）を、選択的に、上記計算処理部 10 での動作とは独立に実行するように構成したものである。
【００２６】
従って、従来のように、汎用的なメッセージパッシング（メッセージの受け渡し）の通信ソフトウェアを多数回実行することによるオーバヘッドを少なくでき、又、定形的な処理となるバイナリーツリーアルゴリズムを、簡単なハードウェア機構で実行することにより、プロセッサエレメント(PEi) の本体部である計算処理部でのメモリアクセス, 入出力処理と競合することなく、演算処理を実行でき、又、通信ネットワークの通信データ▲３▼を、各プロセッサエレメント(PEi) の計算処理部へ移動させずに済む為、通信処理を高速化できる。この結果、複合通信処理の時間を短縮することができ、全プロセッサエレメント(PEi) の稼働率を向上させることができる効果が得られる。
【００２７】
【実施例】
以下本発明の実施例を図面によって詳述する。前述の図１は、本発明の一実施例を模式的に示した図であり、図２は、バイナリーツリーによる大域的処理を説明する図である。
【００２８】
本発明においては、各プロセッサエレメント 1内に、本体部である計算処理部 10 とは別に、プロセッサエレメントの論理アドレス▲１▼と，全プロセッサエレメントの数▲２▼と、ローカルデータ▲５▼, ▲６▼と、通信ネットワークから受信した通信データ▲３▼とを格納するレジスタ 110,111,112,120,113，バッファ 116,117と、各種の演算器 114,115と、通信制御を行うコントロールシーケンサ 118と、通信ネットワークインタフェーサ(119) とからなる通信処理部 11 を設け、該計算処理部 10 で実行されるソフトウェアからの指示で、上記レジスタ 110,111にプロセッサエレメントの論理アドレス▲１▼、プロセッサエレメントの数▲２▼を設定した後、該設定された論理アドレス▲１▼と，プロセッサエレメント数▲２▼と，第何回目の通信であるかを指示しているコントロールシーケンサ 118のシーケンス番号▲４▼とで定まる通信処理（データの送信, 又は、データ受信，演算，又は、演算結果の送信）を、選択的に、上記計算処理部 10 での動作とは独立に実行する手段が、本発明を実施するのに必要な手段である。尚、全図を通して同じ符号は同じ対象物を示している。
【００２９】
以下、図１，図２によって、本発明の分散メモリ型並列計算機における通信処理回路の構成と動作を説明する。
分散メモリ型並列計算機のプロセッサエレメント(PE1,PE2, 〜) 1 は、図１に示されているように、計算処理部 10 と通信処理部 11 とから成り、通信処理部 11 に、大域的処理を行う専用のハードウェア機構として、プロセッサエレメントの論理アドレス▲１▼と，全プロセッサエレメントの数▲２▼と、ローカルデータ▲５▼, ▲６▼と、通信ネットワーク 3から受信した通信データ▲３▼とを格納するレジスタ 110,111,112,120,113，バッファ 116,117と、各種の演算器 114,115と、通信制御を行うコントロールシーケンサ 118と、通信ネットワークインタフェーサ 119を設け、計算処理部 10 で実行されるソフトウェア命令により起動された後は、全てハードウェアにより、計算処理部 10 とは独立に、大域的な通信処理が、以下に説明するハードウェア機構１，２で実行される。
【００３０】
「ハードウェア機構１」：バイナリーツリーによる通信先の決定と，送受信を制御する機構として、プロセッサエレメントの論理アドレス(1)を設定するレジスタ(R1) 110と、バイナリーツリーによる通信処理の定形化に関与する全プロセッサエレメントの数(2)を設定するレジスタ(R2) 111と、主記憶装置 12 上のデータ、即ち、ローカルデータ(5)を格納しておくレジスタ(R3) 112, 及び、バッファ(BUF) 116 と、ローカルデータのデータ長(6)を格納しておくレジスタ(R5) 120と、通信ネットワーク 3からの通信データを格納するレジスタ(R4)113, 及び、バッファ(BUF) 117 と、現在の通信処理が、上記バイナリーツリーによる通信処理における第何回目の通信処理であるか、即ち、シーケンス番号(4)を指示して、所定の制御信号を出力するコントロールシーケンサ 118とを通信処理部 11 内に設ける。
【００３１】
コントロールシーケンサ 118は、レジスタ(R1) 110にあるプロセッサエレメントアドレス▲１▼, 及び、レジスタ(R2) 111に設定されている全プロセッサエレメントの数▲２▼をもとに通信処理を制御する。
【００３２】
バイナリーツリーによる通信先の決定方法を図２示す。図２から明らかなように、バイナリーツリーによる通信処理では、例えば、奇数番号のプロセッサエレメント(PE1,PE3,PE5, 〜) 1 では、通信ネットワーク 3から通信データ(3)を受信して、処理内容に従って計算処理部 10のソフトウェアにより予め定められている演算処理(OPRで示す) を実行するか、更に、実行した演算結果を、１つ，又は、２つ，又は、４つ若番のプロセッサエレメント(PEj) 1 に転送するかに定形化されており、どの通信処理を行うかは、上記バイナリーツリーの第何番目の通信であるか、即ち、上記シーケンス番号(4)によって決まっている。
【００３３】
例えば、プロセッサエレメント(PE1) 1 は、データを受信して、所定の演算を繰り返すのみであるが、プロセッサエレメント(PE3,PE7, 〜) 1 では、第１回目の通信処理で、演算処理を行い、演算結果を他のプロセッサエレメント(PE1) 1 に送信するのみであり、プロセッサエレメント(PE5, 〜) 1 では、第１回目の通信処理では演算処理のみであり、第２回目の通信処理では、演算した結果を他のプロセッサエレメント(PE1) 1 に送信するといったように、プロセッサエレメント(PEi) のプロセッサエレメントアドレス (番号) ▲１▼と、第何回目の通信処理であるかを示すシーケンス番号▲４▼により、通信処理の内容が定形化されている。
【００３４】
又、偶数番号のプロセッサエレメント(PE2,PE4, 〜) 1 では、自己の持っているデータ (即ち、ホストから配分されているローカルデータ) ▲５▼を他のプロセッサエレメント(PE1,PE3, 〜) 1 に送信するのみである。
【００３５】
そこで、本発明においては、上記レジスタ(R1) 110に設定されている自己のプロセッサエレメントアドレス (プロセッサエレメント番号) ▲１▼と、レジスタ(R2) 111に設定されている、バイナリーツリーの全体の構成を決定する全プロセッサエレメントの数▲２▼と、該バイナリーツリーによる通信処理において、第何回目の通信処理であるかを指示するコントロールシーケンサ 118のシーケンス番号▲４▼とによって、自己の処理する通信処理の形態を決定する。
【００３６】
「ハードウェア機構２」: 上記ハードウェア機構１の制御により動作する浮動小数点加算器(FLOAT) 114 、整数加算器(INT) 115 、又は、演算処理時にアクセスされる、前述のレジスタ(R3) 112, レジスタ(R4) 113, レジスタ(R5) 120、及び、バッファ(BUF) 116,117 を通信処理部 11 に設ける。
【００３７】
上記レジスタ(R4) 113, 及びバッファ(BUF) 117 は、通信ネットワーク 3から直接通信データ▲３▼を受け取り、又、通信ネットワーク 3へ直接、ホストから配分されているローカルデータ▲５▼, 或いは、自己の通信処理部 11 内の上記浮動小数点加算器(FLOAT) 114 、整数加算器(INT) 115 での演算結果データを通信ネットワーク 3に送出させる。これらのハードウェア機構は、次の実施例のように動作して大域的処理を行う。
【００３８】
「段階１」：計算処理部 10 で実行されるソフトウェア、例えば、前述の通信ライブラリの指示により、上記「ハードウェア機構１」が動作を開始する。この時、ソフトウェアからプロセッサエレメントの論理アドレス▲１▼を受け取り、上記レジスタ(R1) 110に設定する。又、ソフトウェアから大域的処理を行う対象であるローカルデータ▲５▼を、前述の大域的処理ａ）、ｂ）、ｃ）の場合は、ローカルデータ用のレジスタ(R3) 112に受け取り、大域的処理ｄ）の場合は、バッファ(BUF) 116 に受け取る。又、前述の大域的処理ｄ）の場合は、ローカルデータの長さ▲５▼を、データ長用のレジスタ(R5) 120に受け取る。
【００３９】
「段階２」：演算を担当するプロセッサエレメント(PEi) 1 は、バイナリツリーアルゴリズムに従って、他のプロセッサ演算(PEj) 1 から通信データ▲３▼を受信し、次の処理を行う。
【００４０】
1）大域的処理ａ）、ｂ）、ｃ）｛大小比較, 論理和, 排他的論理和, 論理演算等｝の場合、レジスタ(R3) 112にあるローカルデータ▲５▼と、通信ネットワーク 3から転送され、レジスタ(R4) 113に格納されている通信データ▲３▼との間で、それぞれの演算を行い、結果は、バイナリツリーアルゴリズムに従って、ローカルデータ用レジスタ(R3) 112に格納するか、又は、他のプロセッサエレメント(PEj) 1 に送信する。
【００４１】
2) 大域的処理ｄ）｛合同、即ち、データの結合｝の場合、ネットワーク 3から転送され、バッファ(BUF) 117 に格納されている通信データ▲３▼を、上記データ長用のレジスタ(R5) 120を参照して、バッファ(BUF) 116 にあるローカルデータ▲５▼の最後尾に追加して書き込み、合計したデータ長を、上記データ長用のレジスタ(R5) 120に書き込む。
【００４２】
上記「段階１，２」での処理をバイナリーツリーが収束するまで繰り返す。
「段階３」：バイナリーツリーの頂点に立つプロセッサエレメント (例えば、図１に示したバイナリーツリー構成では、PE1) 1は、最終結果を他の全てのプロセッサエレメントに放送し、次の処理に備える。
【００４３】
このように、本発明においては、並列計算機における通信処理回路において、プロセッサエレメント内に、計算処理部とは別に、プロセッサエレメントの論理アドレス▲１▼と，全プロセッサエレメントの数▲２▼と、ローカルデータ▲５▼と、通信データ▲３▼とを格納するレジスタ，バッファと、各種の演算器と、通信制御を行うコントロールシーケンサとからなる通信処理部を設け、計算処理部で実行されるソフトウェアからの指示で、上記レジスタにプロセッサエレメントの論理アドレス▲１▼、プロセッサエレメントの数▲２▼を設定した後、該設定された論理アドレス▲１▼と，プロセッサエレメント数▲２▼と，第何回目の通信であるかを指示しているコントロールシーケンサのシーケンス番号▲４▼とで定まるバイナリーツリー方法による大域的な通信処理（データの送信，又は、データ受信，演算，又は、演算結果の送信）を、選択的に、計算処理部 (本体部) での動作とは独立に実行するように構成したところに特徴がある。
【００４４】
【発明の効果】
以上、詳細に説明したように、本発明の並列計算機における通信処理回路によれば、汎用的なメッセージパッシング (メッセージの受け渡し) の通信ソフトウェアを多数回実行することによるオーバーヘッドを避けることができ、又、定形的処理である、バイナリツリーアルゴリズムをハードウェア機構で実行することにより、プロセッサエレメント(PE1,PE2, 〜) の他の入出力やメモリアクセスと競合せずに、演算処理の制御を行わせることができ、また通信ネットワークからの通信データ▲３▼をプロセッサエレメント(PE1,PE2, 〜) の計算処理部 (本体部) へ移動せずに済むため、処理が高速化できる。この結果、複合通信処理の時間を短縮でき、全プロセッサエレメントの稼動率を向上させることができる効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例を模式的に示した図
【図２】バイナリーツリーによる大域的処理を説明する図
【図３】並列計算機での従来の通信処理方法を説明する図
【符号の説明】
1     プロセッサエレメント(PE1,PE2, 〜)
10    計算処理部 (本体部)         11    通信処理部
110   レジスタ(R1)                111   レジスタ(R2)
112   レジスタ(R3)                113   レジスタ(R4)
114   浮動小数点加算器(FLOAT)
115   整数加算器(INT)             116,117     バッファ(BUF)
118   コントロールシーケンサ
119   通信ネットワークインタフェーサ
120   レジスタ(R5)
12    分散型メモリ (主記憶装置)   3     通信ネットワーク
▲１▼    プロセッサエレメントアドレス (プロセッサエレメントの番号)
▲２▼    プロセッサエレメントの数
▲３▼    通信データ
▲４▼    シーケンス番号
▲５▼    ローカルデータ
▲６▼    ローカルデータ (データ長)
【図１】
0003684579.tif 000002
【図２】
0003684579.tif 000003
【図３】
0003684579.tif 000004