(57)【特許請求の範囲】
【請求項１】
各プロセッサエレメントが、遠隔書き込みの制御を行うリモートメモリコントロール手段と、メッセージを送信する制御を行うとともに、メッセージをその到着順に受信する制御を行うメッセージコントロール手段と、メモリとを有するように構成される複数のプロセッサエレメントからなる並列計算機で用いられるメッセージ通信方法であって、
送信側プロセッサエレメントでは、
リモートメモリコントロール手段が、受信側プロセッサエレメントの持つ共有メモリ上に割り当てられる自エレメント用の遠隔書込領域を書込先として、該受信側プロセッサエレメントに送信するメッセージを書込先の情報を指定して送信することにより遠隔書き込みを要求し、一方、メッセージコントロール手段が、該メッセージの識別子情報と該メッセージの書込先情報とを該受信側プロセッサエレメントに送信し、
これを受けて、受信側プロセッサエレメントでは、
リモートメモリコントロール手段が、送信側プロセッサエレメントから遠隔書き込みの要求されるメッセージを、自エレメントの持つ上記共有メモリ上の上記指定される書込先情報の指す上記遠隔書込領域に書き込み、一方、メッセージコントロール手段が、送信側プロセッサエレメントから送信されてくる上記識別子情報及び上記書込先情報を、その到着順に受信して、それらの情報の書込用に設けられるメモリ域に、その受信順に書き込むことを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【請求項２】
請求項１記載の並列計算機で用いられるメッセージ通信方法において、
受信側プロセッサエレメントでは、上記共有メモリ上の遠隔書込領域を割り当てる生成手段が備えられて、該生成手段が、送信側プロセッサエレメントからのリクエストに応答して、該送信側プロセッサエレメントに対し、上記共有メモリ上の遠隔書込領域を新たに割り当てることを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【請求項３】
請求項１記載の並列計算機で用いられるメッセージ通信方法において、
受信側プロセッサエレメントでは、上記共有メモリ上の遠隔書込領域を解放する解放手段が備えられて、該解放手段が、送信側プロセッサエレメントからのリクエストに応答して、該送信側プロセッサエレメントが使用していた上記共有メモリ上の遠隔書込領域を解放することを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【請求項４】
請求項１ないし３のいずれか１項に記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、リモートメモリコントロール手段が、メッセージを分割して遠隔書き込みを要求することを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【請求項５】
請求項１ないし３のいずれか１項に記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、リモートメモリコントロール手段が、メッセージ全体の完成を待つことなく、作成済みのメッセージ部分の遠隔書き込みを要求することを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【請求項６】
請求項５記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、メッセージコントロール手段が、メッセージの遠隔書き込みの要求に先立って、該メッセージの識別子情報と該メッセージの書込先情報とを受信側プロセッサエレメントに送信することを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【請求項７】
請求項１ないし６のいずれか１項に記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、メッセージが規定の長さよりも短い場合には、リモートメモリコントロール手段が、遠隔書き込みの要求を行わずに、メッセージコントロール手段が、該メッセージと該メッセージの識別子情報とを受信側プロセッサエレメントに送信することを、
特徴とする並列計算機で用いられるメッセージ通信方法。
【発明の詳細な説明】
【０００１】
本発明は、並列計算機で用いられるメッセージ通信方法に関し、特に、柔軟なバッファ管理を実現するとともに、オーバーヘッドの削減を実現する並列計算機で用いられるメッセージ通信方法に関する。
【０００２】
複数のプロセッサエレメントから構成される並列計算機では、データを分割して保持する構成を採って、メッセージ通信に従って他プロセッサエレメントの保持データを使用しながら計算処理を実行していくという構成を採っている。
【０００３】
これから、並列計算機のデータ処理効率を高めるためにも、メッセージ通信の効率を高めていく必要がある。
【０００４】
【従来の技術】
従来では、並列計算機におけるメッセージ通信を実現する方法として、メッセージ通信用のハードウェアを用いる方法と、プロセッサ間で共有メモリを持って、その上でソフトウェアによってメッセージ通信を実現する方法という２つが用いられていた。後者の方法は、共有バス結合の並列計算機で広く用いられている方法である。
【０００５】
このメッセージ通信用のハードウェアを用いる従来技術では、送信プロセッサエレメントが、メッセージにヘッダを付け送信デバイスを使って受信プロセッサエレメントに送信し、受信プロセッサエレメントが、受信デバイスを使ってメッセージを受信してメモリ上のバッファに書き込む。そして、受信プロセッサエレメントが、受信関数でバッファ内のメッセージをサーチして目的のメッセージを探し出し、それをユーザの受信領域に転送していくことでメッセージの送受信を実行している。なお、ヘッダとは、送信プロセッサエレメントから受信プロセッサエレメントまでのルーティング情報や、受信プロセッサエレメントがメッセージを選択するために用いる識別子を集めたものである。
【０００６】
ここで、各プロセッサエレメントから送信されてくる複数のメッセージ間の順序が保存される必要があるが、この方法では、受信デバイスがバッファの先頭から順番に受信メッセージを保存していくことで、その順序性を実現する構成を採っている。
【０００７】
一方、プロセッサ間で共有メモリを持って、その上でソフトウェアによってメッセージ通信を実現するという従来技術では、送信プロセッサエレメントが、共有メモリ上にバッファを確保してメッセージを書き込み、メッセージのアドレスとヘッダとを共有メモリ上のメッセージキューにキューイングする。そして、受信プロセッサエレメントが、そのメッセージキューをサーチして目的のメッセージのヘッダを探し出し、それが指すメッセージをユーザの受信領域に転送していくことでメッセージの送受信を実行している。
【０００８】
ここで、各プロセッサエレメントから送信されてくる複数のメッセージ間の順序が保存される必要があるが、この方法では、メッセージキューに書き込むときに排他制御を実行することで、その順序性を実現する構成を採っている。
【０００９】
図９に、前者の従来技術で用いるメッセージ通信機構の回路構成、図１０に、後者の従来技術で用いる遠隔書込機構の回路構成を図示する。
【００１０】
【発明が解決しようとする課題】
しかしながら、メッセージ通信用のハードウェアを用いる従来技術では、受信デバイスが、バッファの管理からメッセージの書き込みまで行っているために、柔軟なバッファ管理を行うことができないという問題点がある。
【００１１】
例えば、長いメッセージを分割して通信する場合、それを可能にするためには受信デバイスに専用の複雑な回路が必要となる。また、ＯＳやアプリケーションプログラムの要請により新たなバッファ管理が必要となるときに、それに対処することができない。
【００１２】
なお、受信デバイスが割り込みを起こし、ＣＰＵがバッファを獲得してＤＭＡを起動する方法もあるが、この方法を用いると、メッセージ通信のレイテンシ（送信開始から受信開始までの遅れ）が増大し、メッセージ通信の性能そのものが低下するというもっと大きな問題点が出てくることになる。
【００１３】
一方、プロセッサ間で共有メモリを持って、その上でソフトウェアによってメッセージ通信を実現するという従来技術では、メッセージキューにキューイングするときに排他制御を行わなくてはならないことからオーバーヘッドが大きいという問題点がある。
【００１４】
更に、メッセージキューへのキューイングの排他制御に従って、キューイング処理中のプロセッサエレメント以外のキューイング要求プロセッサエレメントが、アイドル状態になるという問題点もある。なお、メッセージ通信用のハードウェアを用いる場合には、メッセージが集中してもアイドルになるのはメッセージ通信用のハードウェアであって、プロセッサエレメントは、他の仕事を実行することができることから、このような問題は起こらない。
【００１５】
本発明はかかる事情に鑑みてなされたものであって、柔軟なバッファ管理を実現するとともに、オーバーヘッドの削減を実現する新たな並列計算機で用いられるメッセージ通信方法の提供を目的とする。
【００１６】
【課題を解決するための手段】
図１に本発明の原理構成を図示する。
図中、１は並列計算機を構成する複数のプロセッサエレメント、２はプロセッサエレメント１を接続するバスやネットワーク等の接続路である。ここで、この原理構成図では、各プロセッサエレメント１にローカルに配置されるメモリ（図中の１９）は、分散型の共有メモリとしても機能することを想定している。
【００１７】
１０は各プロセッサエレメント１の備えるリモートメモリコントロール手段であって、他プロセッサエレメント１の持つ共有メモリ上に割り当てられる自エレメント用の遠隔書込領域を書込先として、その他プロセッサエレメント１に送信するメッセージを書込先の情報を指定して送信することにより遠隔書き込みを要求する遠隔書込手段１１と、他プロセッサエレメント１の遠隔書込手段１１から遠隔書き込みの要求されるメッセージを、自エレメントの持つ共有メモリ上のその遠隔書込手段１１が指定する書込先情報の指す遠隔書込領域に書き込む受信書込手段１２とを備えるものである。
【００１８】
１３は各プロセッサエレメント１の備えるメッセージコントロール手段であって、他プロセッサエレメント１から送信されてくるメッセージをその到着順に受信して、到着順に従って受信メッセージを自エレメント用に用意されるメモリ領域（共有メモリのメモリ領域のこともあるし、ローカルメモリのメモリ領域のこともある）に書き込むメッセージ受信手段１４と、他プロセッサエレメント１のメッセージ受信手段１４に対してメッセージを送信するメッセージ送信手段１５とを備えるものである。
【００１９】
１６は送信プロセッサエレメント１に展開されるメッセージ作成手段であって、他プロセッサエレメント１に送信するメッセージを作成するもの、１７は例えば受信プロセッサエレメント１に展開される解放手段であって、メモリの利用効率を図るべく、送信プロセッサエレメント１からのリクエストに応答して、その送信プロセッサエレメント１の使用していた遠隔書込手段１１の書込先となる書込領域を解放するものである。
【００２０】
１８は例えば受信プロセッサエレメント１に展開される生成手段であって、送信プロセッサエレメント１の遠隔書込手段１１の書込先となる書込領域が溢れるときに、その送信プロセッサエレメント１からのリクエストに応答してその書込領域を生成するもの、１９は受信プロセッサエレメント１に展開されるメモリであって、一部は他プロセッサエレメント１がアクセス可能となる共有メモリとして機能し、一部は他プロセッサエレメント１がアクセス不可能となるローカルメモリとして機能する。
【００２１】
【作用】
本発明では、送信プロセッサエレメント１は、メッセージ作成手段１６がメッセージを作成すると、遠隔書込手段１１を使って、メッセージの本体を、共有メモリとして機能する受信プロセッサエレメント１のメモリ１９に書き込むとともに、メッセージ送信手段１５を使って、受信プロセッサエレメント１のメッセージ受信手段１４に対して、メッセージの識別子情報とメッセージ本体へのポインタ情報（メッセージ本体の書込先情報）とを送信する。
【００２２】
この送信処理に従って、メッセージ本体は、遠隔書込手段１１に従って、共有メモリとして機能する受信プロセッサエレメント１のメモリ領域に直接書き込まれるとともに、そのメッセージ本体の順序性は、メッセージ受信手段１４に従って、小さいデータ量のメッセージの識別子情報のみでもって保証され、そして、そのメッセージ本体は、受信プロセッサエレメント１の備える図示しないデータ処理機能が、目的のメッセージの識別子情報を特定していくときに、その識別子情報と対応付けられるポインタ情報に従って読み出されていくことになる。
【００２３】
このように、本発明では、メッセージ本体のためのバッファ管理と、メッセージの順序性の保証処理とを分離する構成を採ることから、柔軟なバッファ管理を実現できるようになるとともに、ソフトウェアによる排他制御処理が不要となることで、オーバーヘッドの削減を実現できるようになるのである。
【００２６】
本発明では、メッセージデータが分割可能なときに、その分割するメッセージデータをその都度ヘッダを付けずに送信することが可能になり、これにより大きな有効性を発揮できることになる。
【００２７】
例えば、送信プロセッサエレメント１は、メッセージ作成手段１６によりメッセージ本体が作成されていくときに、その作成処理と並行させながら、メッセージ本体を分割しつつ、遠隔書込手段１１を使って、共有メモリとして機能する受信プロセッサエレメント１のメモリ１９に書き込んでいって（すなわち、メッセージ全体の完成を待つことなく書き込んでいって）、最後に、メッセージ送信手段１５を使って、受信プロセッサエレメント１のメッセージ受信手段１４に対して、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを送信していくという構成を採ることが可能となって、メッセージの作成処理と送信処理とを並行して実行できるようになるからである。
【００２８】
このとき、受信プロセッサエレメント１でメッセージ本体分割部分の到達の有無が判定可能となる場合には、送信プロセッサエレメント１は、メッセージ送信手段１５を使って、メッセージ本体の送信に先立って、受信プロセッサエレメント１のメッセージ受信手段１４に対して、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを送信していく構成を採ることで、メッセージ本体分割部分が到着されると同時に参照可能となるようにする構成を採ることも可能である。
【００２９】
【実施例】
以下、実施例に従って本発明を詳細に説明する。
図２に、本発明を実装する並列計算機のハードウェア構成の一実施例を図示する。
【００３０】
この図に示すように、本発明を実装する並列計算機は、複数のプロセッサエレメント１と、それらを接続するネットワーク２ａとから構成され、各プロセッサエレメント１は、ＣＰＵ２０と、メモリ２１と、メッセージ通信回路２２と、リモートメモリコントーラ２３とを備える。ここで、各プロセッサエレメント１に展開されるメモリ２１は、一部は他プロセッサエレメント１がアクセス可能となる分散型の共有メモリとして機能し、一部は他プロセッサエレメント１がアクセス不可能となるローカルメモリとして機能する。
【００３１】
このメッセージ通信回路２２は、ハードウェアにより構成されて、到着順に従って受信メッセージを自メモリ２１（共有メモリのメモリ領域のこともあるし、ローカルメモリのメモリ領域のこともある）に書き込むとともに、他プロセッサエレメント１のメッセージ通信回路２２に対してメッセージを送信するよう動作する。
【００３２】
リモートメモリコントローラ２３は、データレジスタと、アドレスレジスタと、データ変換回路とから構成されて、ＣＰＵ２０上で走行するソフトウェアが発行するデータとアドレスとを受け取り、それらをマージしてネットワーク２ａを介して他プロセッサエレメント１に送信することで、そのデータをそのアドレスの指す共有メモリとして機能する他プロセッサエレメント１のメモリ２１に書き込むとともに、他プロセッサエレメント１から送信されてくるデータとアドレスとを受け取って、そのデータをそのアドレスの指す共有メモリとして機能する自メモリ２１に書き込むよう動作する。
【００３３】
メモリ２１は、図３に示すように、メッセージ通信回路２２の受信するメッセージデータを受信順に書き込む第１の書込領域３０と、他プロセッサエレメント１対応に用意される複数の書込領域から構成されて、リモートメモリコントローラ２３の受信するメッセージデータを図４に示すようにリング形態で書き込む第２の書込領域３１とを備える。
【００３４】
この第２の書込領域３１を構成する各書込領域は、送信側となる他プロセッサエレメント１からのリクエストに応答して作成されるとともに消去されることになる。
【００３５】
図５に、このように構成される並列計算機で実行される本発明のメッセージ通信処理の一実施例を図示する。ここで、図中、１ａはメッセージを送信する送信プロセッサエレメント、１ｂはメッセージを受信する受信プロセッサエレメントである。
【００３６】
この実施例に示すように、本発明のメッセージ通信処理では、送信プロセッサエレメント１ａは、送信対象のメッセージが作成されると、図中の破線で示すように、リモートメモリコントローラ２３を使って、メッセージの本体を、共有メモリとして機能する受信プロセッサエレメント１ｂのメモリ２１の第２の書込領域３１に書き込むとともに、図中の実線で示すように、受信プロセッサエレメント１ｂのメッセージ通信回路２２に対して、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを送信する構成を採る。
【００３７】
このようにして、本発明のメッセージ通信処理では、メッセージ本体については、共有メモリとして機能する受信プロセッサエレメント１ｂのメモリ２１に直接どんどん書き込んでいくとともに、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを受信プロセッサエレメント１ｂのメッセージ通信回路２２に送信する構成を採って、そのメッセージ通信回路２２が、受信順に、メッセージの識別子情報と、メッセージ本体へのポインタ情報とをメモリ２１の第１の書込領域３０に書き込んでいくことを利用して、書き込んだメッセージ本体の順序性を保存することを実現するものである。
【００３８】
ここで、このメッセージ本体の遠隔書込処理では、送信プロセッサエレメント１ａは、第２の書込領域３１の内の自エレメントに割り当てられた書込領域をリングバッファとして用いつつメッセージ本体の書き込みを実行することで、メッセージ通信にあたってのオーバーヘッドを削減している。すなわち、本発明では、メッセージの書込先が書込側でローカルに管理され、これにより、メッセージ通信にあたってのオーバーヘッドが削減されることになる。
【００３９】
次に、図６を参照しつつ、この本発明のメッセージ通信処理を更に具体的に説明する。
送信プロセッサエレメント１ａは、先ず最初に、受信プロセッサエレメント１ｂに要求を発行することで、メッセージ本体を書き込むための書込領域を受信プロセッサエレメント１ｂの第２の書込領域３１に確保する。なお、この書込領域の確保は、動的に行われることもあるし、静的に行われることもある。
【００４０】
この書込領域が確保されると、続いて、送信プロセッサエレメント１ａは、確保した書込領域の開始アドレスをローカルな変数ＬＡＲに保存するとともに、終端アドレスをローカルな変数ＬＡＲＬＩＭＩＴに保存し、続いて、書込処理の先頭を表示するローカルな変数ＷＴＰに開始アドレスを書き込む。
【００４１】
続いて、送信プロセッサエレメント１ａは、メッセージ本体の送信に入って、送信するメッセージ本体に対して、受信プロセッサエレメント１ｂに確保した書込領域の中からメッセージ本体長分の領域を割り当て、続いて、その割り当てた書込領域にメッセージ本体を遠隔書き込みして、送信したメッセージ本体の終端アドレスをローカルな変数ＷＴＰに設定する。
【００４２】
続いて、送信プロセッサエレメント１ａは、メッセージの識別子情報と、送信したメッセージ本体へのポインタ情報とを受信プロセッサエレメント１ｂのメッセージ通信回路２２に送信して送信処理を終了する。
【００４３】
一方、受信プロセッサエレメント１ｂは、送信プロセッサエレメント１ａからメッセージ本体の書込領域の確保要求があると、指定されるメモリ容量分の書込領域を第２の書込領域３１に確保して、送信プロセッサエレメント１ａに対して、その確保した書込領域の開始アドレス及び終端アドレスを通知してから、送信プロセッサエレメント１ａの持つ読込完了個所を表示するローカルな変数ＲＤＰに開始アドレスを遠隔書き込みする。
【００４４】
また、受信プロセッサエレメント１ｂのメッセージ通信回路２２は、送信プロセッサエレメント１ａから、自メモリ２１の第２の書込領域３１に遠隔書き込みされたメッセージ本体のメッセージの識別子情報と、そのメッセージ本体へのポインタ情報とが送られてくると、それを順番に受信して、受信順に、それらを自メモリ２１の第１の書込領域３０に書き込むことでキューイングする。
【００４５】
そして、受信プロセッサエレメント１ｂは、自ＣＰＵ２０で走行するデータ処理プログラムから、他プロセッサエレメント１のメッセージの読込要求があると、第１の書込領域３０のキューイングデータを参照することで目的のメッセージの識別子情報がキューイングされているか否かをチェックして、目的のメッセージの識別子情報がキューイングされていることを判断するときには、その識別子情報に対応付けられるポインタ情報に従って、第２の書込領域３１に書き込まれている目的のメッセージのメッセージ本体を特定し、それをユーザの受信領域にコピーしてから、ローカルな変数ＲＤＰにメッセージ本体の終端アドレスを遠隔書き込みする。
【００４６】
このようにして、本発明では、メッセージ本体は、共有メモリとして機能する受信プロセッサエレメント１ｂのメモリ２１に直接書き込まれるとともに、そのメッセージ本体の順序性は、小さいデータ量のメッセージの識別子情報のみでもって保証され、そして、そのメッセージ本体は、メッセージの識別子情報に従って目的のメッセージであることが検出されるときに、その識別子情報と対応付けられるポインタ情報に従って読み出されていくのである。
【００４７】
次に、送信プロセッサエレメント１ａの実行するバッファ管理について説明する。
送信プロセッサエレメント１ａは、上述したように、メッセージ本体の遠隔書込領域をリングバッファとして用いる構成を採る。
【００４８】
これから、送信プロセッサエレメント１ａは、変数ＷＴＰの指すアドレスを開始点としてメッセージ本体を遠隔書込領域に書き込んでいくのであるが、このときにあって、変数ＷＴＰの指すアドレスと送信するメッセージ本体サイズとの和が、変数ＬＡＲＬＩＭＩＴの指すアドレスを超える場合には、変数ＷＴＰの指すアドレスにメッセージが制限値を超えるという短いメッセージを書き込んでから、変数ＬＡＲＬＩＭＩＴの指すアドレスに続けて、リングバッファの先頭となる変数ＬＡＲの指すアドレスからメッセージを遠隔書込領域に書き込んでいくことになる。
【００４９】
また、変数ＷＴＰの指すアドレスと送信するメッセージ本体サイズとの和が、受信プロセッサエレメント１ｂのリードしているアドレスを示す変数ＲＤＰの指すアドレスを追い越すときには、新たにリングバッファの遠隔書込領域を確保する必要がある。これから、このときには、最初に、今まで使用していた遠隔書込領域を解放するために、遠隔書込領域の解放メッセージを受信プロセッサエレメント１ｂに送信し、続いて、遠隔書込領域の確保要求のメッセージを受信プロセッサエレメント１ｂに送信していくことになる。
【００５０】
本発明では、メッセージデータが分割可能なときに、その分割するメッセージデータをその都度ヘッダを付けずに送信することが可能になり、これにより大きな有効性を発揮できることになる。次に、この点について説明する。
【００５１】
並列計算機では、送信プロセッサエレメント１ａは、データを計算してその結果を受信プロセッサエレメント１ｂにメッセージ送信し、受信プロセッサエレメント１ｂは、メッセージの到着を待って、目的とするメッセージであることを確認すると、そのデータを使って計算を始めていくことになる。
【００５２】
この処理にあって、メッセージ全体の結果が同時に作成されるようなことはまず起こらず、通常は、順番に作成されていくことになる。
これに対して、従来技術では、メッセージ全体が作成されてから、それにヘッダ（メッセージの識別子情報）を付けて送信する構成を採っていることから、図７（ａ）（ｂ）に示すように、送信可能なデータが存在していてもメッセージ全体が作成されるまでその送信が待たされるとともに、受信側は、メッセージ全体が作成されるまで受信待ちの状態になってしまう。
【００５３】
これに対して、本発明を用いると、図８（ａ）に示すように、送信プロセッサエレメント１ａは、メッセージを作成しながら、それと並行して作成されたメッセージ部分を遠隔書込処理に従って共有メモリに書き込んでいって、最後に、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを受信プロセッサエレメント１ｂのメッセージ通信回路２２に送信する構成を採ることが可能となる。これにより、メッセージの作成処理と送信処理とを並行して実行できるようになる。
【００５４】
この場合にあって、メッセージの内容によって、受信プロセッサエレメント１ｂで、メッセージが既に書き込まれているか否かを知ることができる場合には、一層の高速処理が可能である。
【００５５】
例えば、メッセージの内容が必ず非ゼロ値を示すときには、受信プロセッサエレメント１ｂは、メッセージを読むことでメッセージが到着したか否かを知ることができる。このようなときには、図８（ｂ）に示すように、送信プロセッサエレメント１ａは、メッセージを書き込む前に、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを受信プロセッサエレメント１ｂのメッセージ通信回路２２に送信し、それに続いて、メッセージを作成しながら、それと並行して作成されたメッセージ部分を遠隔書込処理に従って共有メモリに書き込んていく構成を採ることが可能になる。これにより、メッセージの作成処理と、その送信処理と、そのメッセージを使った演算処理とを並行して実行できるようになる。
【００５６】
この図８（ａ）（ｂ）では、遠隔書き込みに対してのアクリッジを要求しない突き放しのメッセージ送信処理に適用した例を示したが、突き放しでないメッセージ送信処理に適用することも可能である。
【００５７】
なお、メッセージを分割して送信していく方法は、その都度ヘッダを付けていけば従来技術でも実現できる。しかし、その都度ヘッダを付けると、ヘッダの送信や、メッセージのサーチや、メッセージの並び替えや、メッセージの組み立てや、メッセージのコピー等の処理が必要となって、メッセージ通信のオーバーヘッドが著しく大きくなって現実性のないものとなってしまうのである。
【００５８】
図示実施例について説明したが、本発明はこれに限られるものではない。例えば、実施例では、送信プロセッサエレメント１ａは、メッセージ本体の全てを遠隔書き込みの対象とする構成を開示したが、本発明はこれに限られるものではないのであって、メッセージ本体一部、あるいは、メッセージ本体及びメッセージ識別子情報一部、あるいは、メッセージ本体一部及びメッセージ識別子情報一部を遠隔書き込みの対象とする構成を採ることも可能である。
【００５９】
このとき、送信プロセッサエレメント１ａは、メッセージ本体一部を遠隔書き込みの対象とするときには、受信プロセッサエレメント１ｂのメッセージ通信回路２２に対して、メッセージ識別子情報と、メッセージ本体の残りと、メッセージ本体一部へのポインタ情報とを送信し、メッセージ本体及びメッセージ識別子情報一部を遠隔書き込みの対象とするときには、メッセージ識別子情報の残りと、メッセージ本体及びメッセージ識別情報子一部へのポインタ情報とを送信し、メッセージ本体一部及びメッセージ識別子情報一部を遠隔書き込みの対象とするときには、メッセージ識別子情報の残りと、メッセージ本体の残りと、メッセージ本体一部及びメッセージ識別子情報一部へのポインタ情報とを送信することになる。
【００６０】
ここで、メッセージ本体一部を遠隔書き込みの対象とする構成は、メッセージ通信回路２２によるメッセージ送信の方が、遠隔書き込みによるメッセージ送信よりも高速のときに有効であり、メッセージ本体及びメッセージ識別子情報一部を遠隔書き込みの対象とする構成は、遠隔書き込みによるメッセージ送信の方が、メッセージ通信回路２２によるメッセージ送信よりも高速のときに有効である。
【００６１】
なお、実施例では、メッセージ本体を遠隔書き込みする構成を開示したが、メッセージが規定の長さよりも短いときには、遠隔書き込みを使わずに、従来技術のように、メッセージ本体及びメッセージ識別子情報を受信プロセッサエレメント１ｂのメッセージ通信回路２２に送信していってもよい。この方法は、メッセージ通信回路２２の方が遠隔書き込みよりも高速にメッセージを送信できるときに、特に有効である。
【００６２】
また、実施例では、各プロセッサエレメントにローカルに配置されるメモリ１９を共有メモリして用いていく構成を開示したが、本発明はこれに限られるものではないのであって、ローカルに配置されるメモリ１９とは別に用意される特定の共有メモリを用いる構成を採ってもよいのである。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、メッセージ本体のためのバッファ管理と、メッセージの順序性の保証処理とが分離されることから、柔軟なバッファ管理を実現できるようになるとともに、ソフトウェアによる排他制御処理が不要となることで、オーバーヘッドの削減を実現できるとともに、プロセッサエレメントのアイドル時間を抑えられるようになる。
【００６４】
そして、メッセージの識別子情報を狭い間隔で集めたり、固定された間隔で集めることができるようになることから、メッセージの検索を高速化できるようになる。また、送信側でメッセージの書込領域を管理できるので、低レイテンシと通信の集中に対してより速い処理が可能になる。
【００６５】
そして、メッセージを分割しつつその都度ヘッダを付けずに送信することが可能になり、これにより、相互結合網を長時間占有させることなく大きなメッセージを通信できるようになって、後から発生する優先順位の高いメッセージを長く待たせることがなくなる。また、送信側の計算時間と送信時間とを重ねることできたり、送信側の計算時間／送信時間と受信側の計算時間とを重ねることができるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明を実装する並列計算機の説明図である。
【図３】メモリ構成の説明図である。
【図４】第２の書込領域の説明図である。
【図５】本発明のメッセージ通信処理の一実施例である。
【図６】本発明のメッセージ通信処理の説明図である。
【図７】従来のメッセージ通信処理の説明図である。
【図８】本発明のメッセージ通信処理の説明図である。
【図９】従来技術の説明図である。
【図１０】従来技術の説明図である。
【符号の説明】
１    プロセッサエレメント
２    接続路
１０  リモートメモリコントロール手段
１１  遠隔書込手段
１２  受信書込手段
１３  メッセージコントロール手段
１４  メッセージ受信手段
１５  メッセージ送信手段
１６  メッセージ作成手段
１７  解放手段
１８  生成手段
１９  メモリ
【図１】
0003544390.tif 000002
【図２】
0003544390.tif 000003
【図３】
0003544390.tif 000004
【図４】
0003544390.tif 000005
【図５】
0003544390.tif 000006
【図６】
0003544390.tif 000007
【図７】
0003544390.tif 000008
【図８】
0003544390.tif 000009
【図９】
0003544390.tif 000010
【図１０】
0003544390.tif 000011