JP3544390B2 - 並列計算機で用いられるメッセージ通信方法 - Google Patents
並列計算機で用いられるメッセージ通信方法 Download PDFInfo
- Publication number
- JP3544390B2 JP3544390B2 JP14737094A JP14737094A JP3544390B2 JP 3544390 B2 JP3544390 B2 JP 3544390B2 JP 14737094 A JP14737094 A JP 14737094A JP 14737094 A JP14737094 A JP 14737094A JP 3544390 B2 JP3544390 B2 JP 3544390B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- processor element
- remote
- communication method
- method used
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Description
本発明は、並列計算機で用いられるメッセージ通信方法に関し、特に、柔軟なバッファ管理を実現するとともに、オーバーヘッドの削減を実現する並列計算機で用いられるメッセージ通信方法に関する。
【0002】
複数のプロセッサエレメントから構成される並列計算機では、データを分割して保持する構成を採って、メッセージ通信に従って他プロセッサエレメントの保持データを使用しながら計算処理を実行していくという構成を採っている。
【0003】
これから、並列計算機のデータ処理効率を高めるためにも、メッセージ通信の効率を高めていく必要がある。
【0004】
【従来の技術】
従来では、並列計算機におけるメッセージ通信を実現する方法として、メッセージ通信用のハードウェアを用いる方法と、プロセッサ間で共有メモリを持って、その上でソフトウェアによってメッセージ通信を実現する方法という2つが用いられていた。後者の方法は、共有バス結合の並列計算機で広く用いられている方法である。
【0005】
このメッセージ通信用のハードウェアを用いる従来技術では、送信プロセッサエレメントが、メッセージにヘッダを付け送信デバイスを使って受信プロセッサエレメントに送信し、受信プロセッサエレメントが、受信デバイスを使ってメッセージを受信してメモリ上のバッファに書き込む。そして、受信プロセッサエレメントが、受信関数でバッファ内のメッセージをサーチして目的のメッセージを探し出し、それをユーザの受信領域に転送していくことでメッセージの送受信を実行している。なお、ヘッダとは、送信プロセッサエレメントから受信プロセッサエレメントまでのルーティング情報や、受信プロセッサエレメントがメッセージを選択するために用いる識別子を集めたものである。
【0006】
ここで、各プロセッサエレメントから送信されてくる複数のメッセージ間の順序が保存される必要があるが、この方法では、受信デバイスがバッファの先頭から順番に受信メッセージを保存していくことで、その順序性を実現する構成を採っている。
【0007】
一方、プロセッサ間で共有メモリを持って、その上でソフトウェアによってメッセージ通信を実現するという従来技術では、送信プロセッサエレメントが、共有メモリ上にバッファを確保してメッセージを書き込み、メッセージのアドレスとヘッダとを共有メモリ上のメッセージキューにキューイングする。そして、受信プロセッサエレメントが、そのメッセージキューをサーチして目的のメッセージのヘッダを探し出し、それが指すメッセージをユーザの受信領域に転送していくことでメッセージの送受信を実行している。
【0008】
ここで、各プロセッサエレメントから送信されてくる複数のメッセージ間の順序が保存される必要があるが、この方法では、メッセージキューに書き込むときに排他制御を実行することで、その順序性を実現する構成を採っている。
【0009】
図9に、前者の従来技術で用いるメッセージ通信機構の回路構成、図10に、後者の従来技術で用いる遠隔書込機構の回路構成を図示する。
【0010】
【発明が解決しようとする課題】
しかしながら、メッセージ通信用のハードウェアを用いる従来技術では、受信デバイスが、バッファの管理からメッセージの書き込みまで行っているために、柔軟なバッファ管理を行うことができないという問題点がある。
【0011】
例えば、長いメッセージを分割して通信する場合、それを可能にするためには受信デバイスに専用の複雑な回路が必要となる。また、OSやアプリケーションプログラムの要請により新たなバッファ管理が必要となるときに、それに対処することができない。
【0012】
なお、受信デバイスが割り込みを起こし、CPUがバッファを獲得してDMAを起動する方法もあるが、この方法を用いると、メッセージ通信のレイテンシ(送信開始から受信開始までの遅れ)が増大し、メッセージ通信の性能そのものが低下するというもっと大きな問題点が出てくることになる。
【0013】
一方、プロセッサ間で共有メモリを持って、その上でソフトウェアによってメッセージ通信を実現するという従来技術では、メッセージキューにキューイングするときに排他制御を行わなくてはならないことからオーバーヘッドが大きいという問題点がある。
【0014】
更に、メッセージキューへのキューイングの排他制御に従って、キューイング処理中のプロセッサエレメント以外のキューイング要求プロセッサエレメントが、アイドル状態になるという問題点もある。なお、メッセージ通信用のハードウェアを用いる場合には、メッセージが集中してもアイドルになるのはメッセージ通信用のハードウェアであって、プロセッサエレメントは、他の仕事を実行することができることから、このような問題は起こらない。
【0015】
本発明はかかる事情に鑑みてなされたものであって、柔軟なバッファ管理を実現するとともに、オーバーヘッドの削減を実現する新たな並列計算機で用いられるメッセージ通信方法の提供を目的とする。
【0016】
【課題を解決するための手段】
図1に本発明の原理構成を図示する。
図中、1は並列計算機を構成する複数のプロセッサエレメント、2はプロセッサエレメント1を接続するバスやネットワーク等の接続路である。ここで、この原理構成図では、各プロセッサエレメント1にローカルに配置されるメモリ(図中の19)は、分散型の共有メモリとしても機能することを想定している。
【0017】
10は各プロセッサエレメント1の備えるリモートメモリコントロール手段であって、他プロセッサエレメント1の持つ共有メモリ上に割り当てられる自エレメント用の遠隔書込領域を書込先として、その他プロセッサエレメント1に送信するメッセージを書込先の情報を指定して送信することにより遠隔書き込みを要求する遠隔書込手段11と、他プロセッサエレメント1の遠隔書込手段11から遠隔書き込みの要求されるメッセージを、自エレメントの持つ共有メモリ上のその遠隔書込手段11が指定する書込先情報の指す遠隔書込領域に書き込む受信書込手段12とを備えるものである。
【0018】
13は各プロセッサエレメント1の備えるメッセージコントロール手段であって、他プロセッサエレメント1から送信されてくるメッセージをその到着順に受信して、到着順に従って受信メッセージを自エレメント用に用意されるメモリ領域(共有メモリのメモリ領域のこともあるし、ローカルメモリのメモリ領域のこともある)に書き込むメッセージ受信手段14と、他プロセッサエレメント1のメッセージ受信手段14に対してメッセージを送信するメッセージ送信手段15とを備えるものである。
【0019】
16は送信プロセッサエレメント1に展開されるメッセージ作成手段であって、他プロセッサエレメント1に送信するメッセージを作成するもの、17は例えば受信プロセッサエレメント1に展開される解放手段であって、メモリの利用効率を図るべく、送信プロセッサエレメント1からのリクエストに応答して、その送信プロセッサエレメント1の使用していた遠隔書込手段11の書込先となる書込領域を解放するものである。
【0020】
18は例えば受信プロセッサエレメント1に展開される生成手段であって、送信プロセッサエレメント1の遠隔書込手段11の書込先となる書込領域が溢れるときに、その送信プロセッサエレメント1からのリクエストに応答してその書込領域を生成するもの、19は受信プロセッサエレメント1に展開されるメモリであって、一部は他プロセッサエレメント1がアクセス可能となる共有メモリとして機能し、一部は他プロセッサエレメント1がアクセス不可能となるローカルメモリとして機能する。
【0021】
【作用】
本発明では、送信プロセッサエレメント1は、メッセージ作成手段16がメッセージを作成すると、遠隔書込手段11を使って、メッセージの本体を、共有メモリとして機能する受信プロセッサエレメント1のメモリ19に書き込むとともに、メッセージ送信手段15を使って、受信プロセッサエレメント1のメッセージ受信手段14に対して、メッセージの識別子情報とメッセージ本体へのポインタ情報(メッセージ本体の書込先情報)とを送信する。
【0022】
この送信処理に従って、メッセージ本体は、遠隔書込手段11に従って、共有メモリとして機能する受信プロセッサエレメント1のメモリ領域に直接書き込まれるとともに、そのメッセージ本体の順序性は、メッセージ受信手段14に従って、小さいデータ量のメッセージの識別子情報のみでもって保証され、そして、そのメッセージ本体は、受信プロセッサエレメント1の備える図示しないデータ処理機能が、目的のメッセージの識別子情報を特定していくときに、その識別子情報と対応付けられるポインタ情報に従って読み出されていくことになる。
【0023】
このように、本発明では、メッセージ本体のためのバッファ管理と、メッセージの順序性の保証処理とを分離する構成を採ることから、柔軟なバッファ管理を実現できるようになるとともに、ソフトウェアによる排他制御処理が不要となることで、オーバーヘッドの削減を実現できるようになるのである。
【0026】
本発明では、メッセージデータが分割可能なときに、その分割するメッセージデータをその都度ヘッダを付けずに送信することが可能になり、これにより大きな有効性を発揮できることになる。
【0027】
例えば、送信プロセッサエレメント1は、メッセージ作成手段16によりメッセージ本体が作成されていくときに、その作成処理と並行させながら、メッセージ本体を分割しつつ、遠隔書込手段11を使って、共有メモリとして機能する受信プロセッサエレメント1のメモリ19に書き込んでいって(すなわち、メッセージ全体の完成を待つことなく書き込んでいって)、最後に、メッセージ送信手段15を使って、受信プロセッサエレメント1のメッセージ受信手段14に対して、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを送信していくという構成を採ることが可能となって、メッセージの作成処理と送信処理とを並行して実行できるようになるからである。
【0028】
このとき、受信プロセッサエレメント1でメッセージ本体分割部分の到達の有無が判定可能となる場合には、送信プロセッサエレメント1は、メッセージ送信手段15を使って、メッセージ本体の送信に先立って、受信プロセッサエレメント1のメッセージ受信手段14に対して、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを送信していく構成を採ることで、メッセージ本体分割部分が到着されると同時に参照可能となるようにする構成を採ることも可能である。
【0029】
【実施例】
以下、実施例に従って本発明を詳細に説明する。
図2に、本発明を実装する並列計算機のハードウェア構成の一実施例を図示する。
【0030】
この図に示すように、本発明を実装する並列計算機は、複数のプロセッサエレメント1と、それらを接続するネットワーク2aとから構成され、各プロセッサエレメント1は、CPU20と、メモリ21と、メッセージ通信回路22と、リモートメモリコントーラ23とを備える。ここで、各プロセッサエレメント1に展開されるメモリ21は、一部は他プロセッサエレメント1がアクセス可能となる分散型の共有メモリとして機能し、一部は他プロセッサエレメント1がアクセス不可能となるローカルメモリとして機能する。
【0031】
このメッセージ通信回路22は、ハードウェアにより構成されて、到着順に従って受信メッセージを自メモリ21(共有メモリのメモリ領域のこともあるし、ローカルメモリのメモリ領域のこともある)に書き込むとともに、他プロセッサエレメント1のメッセージ通信回路22に対してメッセージを送信するよう動作する。
【0032】
リモートメモリコントローラ23は、データレジスタと、アドレスレジスタと、データ変換回路とから構成されて、CPU20上で走行するソフトウェアが発行するデータとアドレスとを受け取り、それらをマージしてネットワーク2aを介して他プロセッサエレメント1に送信することで、そのデータをそのアドレスの指す共有メモリとして機能する他プロセッサエレメント1のメモリ21に書き込むとともに、他プロセッサエレメント1から送信されてくるデータとアドレスとを受け取って、そのデータをそのアドレスの指す共有メモリとして機能する自メモリ21に書き込むよう動作する。
【0033】
メモリ21は、図3に示すように、メッセージ通信回路22の受信するメッセージデータを受信順に書き込む第1の書込領域30と、他プロセッサエレメント1対応に用意される複数の書込領域から構成されて、リモートメモリコントローラ23の受信するメッセージデータを図4に示すようにリング形態で書き込む第2の書込領域31とを備える。
【0034】
この第2の書込領域31を構成する各書込領域は、送信側となる他プロセッサエレメント1からのリクエストに応答して作成されるとともに消去されることになる。
【0035】
図5に、このように構成される並列計算機で実行される本発明のメッセージ通信処理の一実施例を図示する。ここで、図中、1aはメッセージを送信する送信プロセッサエレメント、1bはメッセージを受信する受信プロセッサエレメントである。
【0036】
この実施例に示すように、本発明のメッセージ通信処理では、送信プロセッサエレメント1aは、送信対象のメッセージが作成されると、図中の破線で示すように、リモートメモリコントローラ23を使って、メッセージの本体を、共有メモリとして機能する受信プロセッサエレメント1bのメモリ21の第2の書込領域31に書き込むとともに、図中の実線で示すように、受信プロセッサエレメント1bのメッセージ通信回路22に対して、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを送信する構成を採る。
【0037】
このようにして、本発明のメッセージ通信処理では、メッセージ本体については、共有メモリとして機能する受信プロセッサエレメント1bのメモリ21に直接どんどん書き込んでいくとともに、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを受信プロセッサエレメント1bのメッセージ通信回路22に送信する構成を採って、そのメッセージ通信回路22が、受信順に、メッセージの識別子情報と、メッセージ本体へのポインタ情報とをメモリ21の第1の書込領域30に書き込んでいくことを利用して、書き込んだメッセージ本体の順序性を保存することを実現するものである。
【0038】
ここで、このメッセージ本体の遠隔書込処理では、送信プロセッサエレメント1aは、第2の書込領域31の内の自エレメントに割り当てられた書込領域をリングバッファとして用いつつメッセージ本体の書き込みを実行することで、メッセージ通信にあたってのオーバーヘッドを削減している。すなわち、本発明では、メッセージの書込先が書込側でローカルに管理され、これにより、メッセージ通信にあたってのオーバーヘッドが削減されることになる。
【0039】
次に、図6を参照しつつ、この本発明のメッセージ通信処理を更に具体的に説明する。
送信プロセッサエレメント1aは、先ず最初に、受信プロセッサエレメント1bに要求を発行することで、メッセージ本体を書き込むための書込領域を受信プロセッサエレメント1bの第2の書込領域31に確保する。なお、この書込領域の確保は、動的に行われることもあるし、静的に行われることもある。
【0040】
この書込領域が確保されると、続いて、送信プロセッサエレメント1aは、確保した書込領域の開始アドレスをローカルな変数LARに保存するとともに、終端アドレスをローカルな変数LARLIMITに保存し、続いて、書込処理の先頭を表示するローカルな変数WTPに開始アドレスを書き込む。
【0041】
続いて、送信プロセッサエレメント1aは、メッセージ本体の送信に入って、送信するメッセージ本体に対して、受信プロセッサエレメント1bに確保した書込領域の中からメッセージ本体長分の領域を割り当て、続いて、その割り当てた書込領域にメッセージ本体を遠隔書き込みして、送信したメッセージ本体の終端アドレスをローカルな変数WTPに設定する。
【0042】
続いて、送信プロセッサエレメント1aは、メッセージの識別子情報と、送信したメッセージ本体へのポインタ情報とを受信プロセッサエレメント1bのメッセージ通信回路22に送信して送信処理を終了する。
【0043】
一方、受信プロセッサエレメント1bは、送信プロセッサエレメント1aからメッセージ本体の書込領域の確保要求があると、指定されるメモリ容量分の書込領域を第2の書込領域31に確保して、送信プロセッサエレメント1aに対して、その確保した書込領域の開始アドレス及び終端アドレスを通知してから、送信プロセッサエレメント1aの持つ読込完了個所を表示するローカルな変数RDPに開始アドレスを遠隔書き込みする。
【0044】
また、受信プロセッサエレメント1bのメッセージ通信回路22は、送信プロセッサエレメント1aから、自メモリ21の第2の書込領域31に遠隔書き込みされたメッセージ本体のメッセージの識別子情報と、そのメッセージ本体へのポインタ情報とが送られてくると、それを順番に受信して、受信順に、それらを自メモリ21の第1の書込領域30に書き込むことでキューイングする。
【0045】
そして、受信プロセッサエレメント1bは、自CPU20で走行するデータ処理プログラムから、他プロセッサエレメント1のメッセージの読込要求があると、第1の書込領域30のキューイングデータを参照することで目的のメッセージの識別子情報がキューイングされているか否かをチェックして、目的のメッセージの識別子情報がキューイングされていることを判断するときには、その識別子情報に対応付けられるポインタ情報に従って、第2の書込領域31に書き込まれている目的のメッセージのメッセージ本体を特定し、それをユーザの受信領域にコピーしてから、ローカルな変数RDPにメッセージ本体の終端アドレスを遠隔書き込みする。
【0046】
このようにして、本発明では、メッセージ本体は、共有メモリとして機能する受信プロセッサエレメント1bのメモリ21に直接書き込まれるとともに、そのメッセージ本体の順序性は、小さいデータ量のメッセージの識別子情報のみでもって保証され、そして、そのメッセージ本体は、メッセージの識別子情報に従って目的のメッセージであることが検出されるときに、その識別子情報と対応付けられるポインタ情報に従って読み出されていくのである。
【0047】
次に、送信プロセッサエレメント1aの実行するバッファ管理について説明する。
送信プロセッサエレメント1aは、上述したように、メッセージ本体の遠隔書込領域をリングバッファとして用いる構成を採る。
【0048】
これから、送信プロセッサエレメント1aは、変数WTPの指すアドレスを開始点としてメッセージ本体を遠隔書込領域に書き込んでいくのであるが、このときにあって、変数WTPの指すアドレスと送信するメッセージ本体サイズとの和が、変数LARLIMITの指すアドレスを超える場合には、変数WTPの指すアドレスにメッセージが制限値を超えるという短いメッセージを書き込んでから、変数LARLIMITの指すアドレスに続けて、リングバッファの先頭となる変数LARの指すアドレスからメッセージを遠隔書込領域に書き込んでいくことになる。
【0049】
また、変数WTPの指すアドレスと送信するメッセージ本体サイズとの和が、受信プロセッサエレメント1bのリードしているアドレスを示す変数RDPの指すアドレスを追い越すときには、新たにリングバッファの遠隔書込領域を確保する必要がある。これから、このときには、最初に、今まで使用していた遠隔書込領域を解放するために、遠隔書込領域の解放メッセージを受信プロセッサエレメント1bに送信し、続いて、遠隔書込領域の確保要求のメッセージを受信プロセッサエレメント1bに送信していくことになる。
【0050】
本発明では、メッセージデータが分割可能なときに、その分割するメッセージデータをその都度ヘッダを付けずに送信することが可能になり、これにより大きな有効性を発揮できることになる。次に、この点について説明する。
【0051】
並列計算機では、送信プロセッサエレメント1aは、データを計算してその結果を受信プロセッサエレメント1bにメッセージ送信し、受信プロセッサエレメント1bは、メッセージの到着を待って、目的とするメッセージであることを確認すると、そのデータを使って計算を始めていくことになる。
【0052】
この処理にあって、メッセージ全体の結果が同時に作成されるようなことはまず起こらず、通常は、順番に作成されていくことになる。
これに対して、従来技術では、メッセージ全体が作成されてから、それにヘッダ(メッセージの識別子情報)を付けて送信する構成を採っていることから、図7(a)(b)に示すように、送信可能なデータが存在していてもメッセージ全体が作成されるまでその送信が待たされるとともに、受信側は、メッセージ全体が作成されるまで受信待ちの状態になってしまう。
【0053】
これに対して、本発明を用いると、図8(a)に示すように、送信プロセッサエレメント1aは、メッセージを作成しながら、それと並行して作成されたメッセージ部分を遠隔書込処理に従って共有メモリに書き込んでいって、最後に、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを受信プロセッサエレメント1bのメッセージ通信回路22に送信する構成を採ることが可能となる。これにより、メッセージの作成処理と送信処理とを並行して実行できるようになる。
【0054】
この場合にあって、メッセージの内容によって、受信プロセッサエレメント1bで、メッセージが既に書き込まれているか否かを知ることができる場合には、一層の高速処理が可能である。
【0055】
例えば、メッセージの内容が必ず非ゼロ値を示すときには、受信プロセッサエレメント1bは、メッセージを読むことでメッセージが到着したか否かを知ることができる。このようなときには、図8(b)に示すように、送信プロセッサエレメント1aは、メッセージを書き込む前に、メッセージの識別子情報と、メッセージ本体へのポインタ情報とを受信プロセッサエレメント1bのメッセージ通信回路22に送信し、それに続いて、メッセージを作成しながら、それと並行して作成されたメッセージ部分を遠隔書込処理に従って共有メモリに書き込んていく構成を採ることが可能になる。これにより、メッセージの作成処理と、その送信処理と、そのメッセージを使った演算処理とを並行して実行できるようになる。
【0056】
この図8(a)(b)では、遠隔書き込みに対してのアクリッジを要求しない突き放しのメッセージ送信処理に適用した例を示したが、突き放しでないメッセージ送信処理に適用することも可能である。
【0057】
なお、メッセージを分割して送信していく方法は、その都度ヘッダを付けていけば従来技術でも実現できる。しかし、その都度ヘッダを付けると、ヘッダの送信や、メッセージのサーチや、メッセージの並び替えや、メッセージの組み立てや、メッセージのコピー等の処理が必要となって、メッセージ通信のオーバーヘッドが著しく大きくなって現実性のないものとなってしまうのである。
【0058】
図示実施例について説明したが、本発明はこれに限られるものではない。例えば、実施例では、送信プロセッサエレメント1aは、メッセージ本体の全てを遠隔書き込みの対象とする構成を開示したが、本発明はこれに限られるものではないのであって、メッセージ本体一部、あるいは、メッセージ本体及びメッセージ識別子情報一部、あるいは、メッセージ本体一部及びメッセージ識別子情報一部を遠隔書き込みの対象とする構成を採ることも可能である。
【0059】
このとき、送信プロセッサエレメント1aは、メッセージ本体一部を遠隔書き込みの対象とするときには、受信プロセッサエレメント1bのメッセージ通信回路22に対して、メッセージ識別子情報と、メッセージ本体の残りと、メッセージ本体一部へのポインタ情報とを送信し、メッセージ本体及びメッセージ識別子情報一部を遠隔書き込みの対象とするときには、メッセージ識別子情報の残りと、メッセージ本体及びメッセージ識別情報子一部へのポインタ情報とを送信し、メッセージ本体一部及びメッセージ識別子情報一部を遠隔書き込みの対象とするときには、メッセージ識別子情報の残りと、メッセージ本体の残りと、メッセージ本体一部及びメッセージ識別子情報一部へのポインタ情報とを送信することになる。
【0060】
ここで、メッセージ本体一部を遠隔書き込みの対象とする構成は、メッセージ通信回路22によるメッセージ送信の方が、遠隔書き込みによるメッセージ送信よりも高速のときに有効であり、メッセージ本体及びメッセージ識別子情報一部を遠隔書き込みの対象とする構成は、遠隔書き込みによるメッセージ送信の方が、メッセージ通信回路22によるメッセージ送信よりも高速のときに有効である。
【0061】
なお、実施例では、メッセージ本体を遠隔書き込みする構成を開示したが、メッセージが規定の長さよりも短いときには、遠隔書き込みを使わずに、従来技術のように、メッセージ本体及びメッセージ識別子情報を受信プロセッサエレメント1bのメッセージ通信回路22に送信していってもよい。この方法は、メッセージ通信回路22の方が遠隔書き込みよりも高速にメッセージを送信できるときに、特に有効である。
【0062】
また、実施例では、各プロセッサエレメントにローカルに配置されるメモリ19を共有メモリして用いていく構成を開示したが、本発明はこれに限られるものではないのであって、ローカルに配置されるメモリ19とは別に用意される特定の共有メモリを用いる構成を採ってもよいのである。
【0063】
【発明の効果】
以上説明したように、本発明によれば、メッセージ本体のためのバッファ管理と、メッセージの順序性の保証処理とが分離されることから、柔軟なバッファ管理を実現できるようになるとともに、ソフトウェアによる排他制御処理が不要となることで、オーバーヘッドの削減を実現できるとともに、プロセッサエレメントのアイドル時間を抑えられるようになる。
【0064】
そして、メッセージの識別子情報を狭い間隔で集めたり、固定された間隔で集めることができるようになることから、メッセージの検索を高速化できるようになる。また、送信側でメッセージの書込領域を管理できるので、低レイテンシと通信の集中に対してより速い処理が可能になる。
【0065】
そして、メッセージを分割しつつその都度ヘッダを付けずに送信することが可能になり、これにより、相互結合網を長時間占有させることなく大きなメッセージを通信できるようになって、後から発生する優先順位の高いメッセージを長く待たせることがなくなる。また、送信側の計算時間と送信時間とを重ねることできたり、送信側の計算時間/送信時間と受信側の計算時間とを重ねることができるようになる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明を実装する並列計算機の説明図である。
【図3】メモリ構成の説明図である。
【図4】第2の書込領域の説明図である。
【図5】本発明のメッセージ通信処理の一実施例である。
【図6】本発明のメッセージ通信処理の説明図である。
【図7】従来のメッセージ通信処理の説明図である。
【図8】本発明のメッセージ通信処理の説明図である。
【図9】従来技術の説明図である。
【図10】従来技術の説明図である。
【符号の説明】
1 プロセッサエレメント
2 接続路
10 リモートメモリコントロール手段
11 遠隔書込手段
12 受信書込手段
13 メッセージコントロール手段
14 メッセージ受信手段
15 メッセージ送信手段
16 メッセージ作成手段
17 解放手段
18 生成手段
19 メモリ
Claims (7)
- 各プロセッサエレメントが、遠隔書き込みの制御を行うリモートメモリコントロール手段と、メッセージを送信する制御を行うとともに、メッセージをその到着順に受信する制御を行うメッセージコントロール手段と、メモリとを有するように構成される複数のプロセッサエレメントからなる並列計算機で用いられるメッセージ通信方法であって、
送信側プロセッサエレメントでは、
リモートメモリコントロール手段が、受信側プロセッサエレメントの持つ共有メモリ上に割り当てられる自エレメント用の遠隔書込領域を書込先として、該受信側プロセッサエレメントに送信するメッセージを書込先の情報を指定して送信することにより遠隔書き込みを要求し、一方、メッセージコントロール手段が、該メッセージの識別子情報と該メッセージの書込先情報とを該受信側プロセッサエレメントに送信し、
これを受けて、受信側プロセッサエレメントでは、
リモートメモリコントロール手段が、送信側プロセッサエレメントから遠隔書き込みの要求されるメッセージを、自エレメントの持つ上記共有メモリ上の上記指定される書込先情報の指す上記遠隔書込領域に書き込み、一方、メッセージコントロール手段が、送信側プロセッサエレメントから送信されてくる上記識別子情報及び上記書込先情報を、その到着順に受信して、それらの情報の書込用に設けられるメモリ域に、その受信順に書き込むことを、
特徴とする並列計算機で用いられるメッセージ通信方法。 - 請求項1記載の並列計算機で用いられるメッセージ通信方法において、
受信側プロセッサエレメントでは、上記共有メモリ上の遠隔書込領域を割り当てる生成手段が備えられて、該生成手段が、送信側プロセッサエレメントからのリクエストに応答して、該送信側プロセッサエレメントに対し、上記共有メモリ上の遠隔書込領域を新たに割り当てることを、
特徴とする並列計算機で用いられるメッセージ通信方法。 - 請求項1記載の並列計算機で用いられるメッセージ通信方法において、
受信側プロセッサエレメントでは、上記共有メモリ上の遠隔書込領域を解放する解放手段が備えられて、該解放手段が、送信側プロセッサエレメントからのリクエストに応答して、該送信側プロセッサエレメントが使用していた上記共有メモリ上の遠隔書込領域を解放することを、
特徴とする並列計算機で用いられるメッセージ通信方法。 - 請求項1ないし3のいずれか1項に記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、リモートメモリコントロール手段が、メッセージを分割して遠隔書き込みを要求することを、
特徴とする並列計算機で用いられるメッセージ通信方法。 - 請求項1ないし3のいずれか1項に記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、リモートメモリコントロール手段が、メッセージ全体の完成を待つことなく、作成済みのメッセージ部分の遠隔書き込みを要求することを、
特徴とする並列計算機で用いられるメッセージ通信方法。 - 請求項5記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、メッセージコントロール手段が、メッセージの遠隔書き込みの要求に先立って、該メッセージの識別子情報と該メッセージの書込先情報とを受信側プロセッサエレメントに送信することを、
特徴とする並列計算機で用いられるメッセージ通信方法。 - 請求項1ないし6のいずれか1項に記載の並列計算機で用いられるメッセージ通信方法において、
送信側プロセッサエレメントでは、メッセージが規定の長さよりも短い場合には、リモートメモリコントロール手段が、遠隔書き込みの要求を行わずに、メッセージコントロール手段が、該メッセージと該メッセージの識別子情報とを受信側プロセッサエレメントに送信することを、
特徴とする並列計算機で用いられるメッセージ通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14737094A JP3544390B2 (ja) | 1994-06-29 | 1994-06-29 | 並列計算機で用いられるメッセージ通信方法 |
US08/496,781 US5781741A (en) | 1994-06-29 | 1995-06-29 | Message communications system in a parallel computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14737094A JP3544390B2 (ja) | 1994-06-29 | 1994-06-29 | 並列計算機で用いられるメッセージ通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0816540A JPH0816540A (ja) | 1996-01-19 |
JP3544390B2 true JP3544390B2 (ja) | 2004-07-21 |
Family
ID=15428699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14737094A Expired - Fee Related JP3544390B2 (ja) | 1994-06-29 | 1994-06-29 | 並列計算機で用いられるメッセージ通信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5781741A (ja) |
JP (1) | JP3544390B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6377978B1 (en) * | 1996-09-13 | 2002-04-23 | Planetweb, Inc. | Dynamic downloading of hypertext electronic mail messages |
US6584498B2 (en) | 1996-09-13 | 2003-06-24 | Planet Web, Inc. | Dynamic preloading of web pages |
US6170045B1 (en) * | 1997-04-30 | 2001-01-02 | International Business Machines Corporation | Cross-system data piping using an external shared memory |
US5878226A (en) * | 1997-05-13 | 1999-03-02 | International Business Machines Corporation | System for processing early arrival messages within a multinode asynchronous data communications system |
US6014710A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | System and method for message transmission between network nodes using remote wires |
US6542923B2 (en) | 1997-08-21 | 2003-04-01 | Planet Web, Inc. | Active electronic mail |
US7325077B1 (en) * | 1997-08-21 | 2008-01-29 | Beryl Technical Assays Llc | Miniclient for internet appliance |
US6564250B1 (en) | 1997-08-21 | 2003-05-13 | Planetweb, Inc. | Miniclient for internet appliance |
US6032150A (en) * | 1997-08-25 | 2000-02-29 | Planetweb, Inc. | Secure graphical objects in web documents with a program applet placed to present further information upon selected conditions |
JPH11120156A (ja) * | 1997-10-17 | 1999-04-30 | Nec Corp | マルチプロセッサシステムにおけるデータ通信方式 |
US6684211B1 (en) | 1998-04-01 | 2004-01-27 | Planetweb, Inc. | Multimedia communication and presentation |
US6799317B1 (en) * | 2000-06-27 | 2004-09-28 | International Business Machines Corporation | Interrupt mechanism for shared memory message passing |
US20030014516A1 (en) * | 2001-07-13 | 2003-01-16 | International Business Machines Corporation | Recovery support for reliable messaging |
US20030023775A1 (en) * | 2001-07-13 | 2003-01-30 | International Business Machines Corporation | Efficient notification of multiple message completions in message passing multi-node data processing systems |
US7743065B2 (en) * | 2002-06-27 | 2010-06-22 | Siebel Systems, Inc. | System and method for cross-referencing information in an enterprise system |
US20050047440A1 (en) * | 2003-08-25 | 2005-03-03 | Jerome Plun | Division of data structures for efficient simulation |
US7610345B2 (en) | 2005-07-28 | 2009-10-27 | Vaporstream Incorporated | Reduced traceability electronic message system and method |
US9282081B2 (en) | 2005-07-28 | 2016-03-08 | Vaporstream Incorporated | Reduced traceability electronic message system and method |
JP4734348B2 (ja) * | 2006-01-31 | 2011-07-27 | 富士通株式会社 | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 |
JP5163128B2 (ja) * | 2006-01-31 | 2013-03-13 | 富士通株式会社 | 共有メモリ型マルチプロセッサにおける手続の呼び出し方法、手続の呼び出しプログラム、記録媒体、およびマルチプロセッサ |
JP4942375B2 (ja) * | 2006-03-27 | 2012-05-30 | 株式会社ソニー・コンピュータエンタテインメント | ネットワーク処理装置 |
US7870306B2 (en) * | 2006-08-31 | 2011-01-11 | Cisco Technology, Inc. | Shared memory message switch and cache |
US7949815B2 (en) | 2006-09-27 | 2011-05-24 | Intel Corporation | Virtual heterogeneous channel for message passing |
US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
US8234420B2 (en) * | 2010-07-14 | 2012-07-31 | Ge Intelligent Platforms, Inc. | Method, system, and apparatus for communicating using multiple controllers |
US11782635B2 (en) | 2021-11-12 | 2023-10-10 | Western Digital Technologies, Inc. | Method to ensure message arrival before a message pointer |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4590554A (en) * | 1982-11-23 | 1986-05-20 | Parallel Computers Systems, Inc. | Backup fault tolerant computer system |
US5047917A (en) * | 1985-07-12 | 1991-09-10 | The California Institute Of Technology | Apparatus for intrasystem communications within a binary n-cube including buffer lock bit |
US5161156A (en) * | 1990-02-02 | 1992-11-03 | International Business Machines Corporation | Multiprocessing packet switching connection system having provision for error correction and recovery |
JPH0775353B2 (ja) * | 1993-02-23 | 1995-08-09 | 日本電気株式会社 | パケット交換方式 |
-
1994
- 1994-06-29 JP JP14737094A patent/JP3544390B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-29 US US08/496,781 patent/US5781741A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5781741A (en) | 1998-07-14 |
JPH0816540A (ja) | 1996-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3544390B2 (ja) | 並列計算機で用いられるメッセージ通信方法 | |
JP3606541B2 (ja) | 複数ノードの非同期データ通信システム内で早期到達メッセージを処理する方法 | |
US5991797A (en) | Method for directing I/O transactions between an I/O device and a memory | |
KR101006260B1 (ko) | 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법 | |
JP2677744B2 (ja) | 分散メモリ式デジタル計算システム | |
KR100992282B1 (ko) | 통신 접속 수립 방법과 시스템, 데이터 전송 방법과 시스템, 및 컴퓨터 판독 가능한 저장 매체 | |
JP3208397B2 (ja) | 制御要素転送システム | |
US20080133654A1 (en) | Network block device using network asynchronous i/o | |
JPH06309252A (ja) | 相互接続インタフェース | |
JPH1196127A (ja) | 第1のコンピュータと第2のコンピュータとの間で遠隔ディスク読取り操作を実施する方法と装置 | |
JPH08288941A (ja) | コンピュータ・システム及びメッセージ転送方法 | |
JP3322754B2 (ja) | 並列計算機 | |
US10721302B2 (en) | Network storage protocol and adaptive batching apparatuses, methods, and systems | |
JPH065524B2 (ja) | 記憶装置管理方法 | |
JPH07210519A (ja) | データ転送制御方法および送受信制御装置 | |
US5878226A (en) | System for processing early arrival messages within a multinode asynchronous data communications system | |
JPH06301655A (ja) | 分散処理システム | |
JP5772132B2 (ja) | データ転送装置、データ転送方法および情報処理装置 | |
JP3328872B2 (ja) | 計算機ネットワーク通信方法およびネットワーク計算機システム | |
JP3644158B2 (ja) | 並列計算機におけるデータ送受信方法 | |
JP3678036B2 (ja) | 並列計算機システムにおけるモニタデータ収集方法 | |
JPH11149455A (ja) | メモリディスク共有方法及びその実施装置 | |
TW200422840A (en) | Method and related circuit for increasing network transmission efficiency by speeding data updating rate of memory | |
JP2664827B2 (ja) | 実時間情報転送制御方法 | |
Nanri et al. | Channel interface: a primitive model for memory efficient communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040217 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040402 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080416 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |