JP3940686B2 - 通信システム及び通信方法 - Google Patents
通信システム及び通信方法 Download PDFInfo
- Publication number
- JP3940686B2 JP3940686B2 JP2003062146A JP2003062146A JP3940686B2 JP 3940686 B2 JP3940686 B2 JP 3940686B2 JP 2003062146 A JP2003062146 A JP 2003062146A JP 2003062146 A JP2003062146 A JP 2003062146A JP 3940686 B2 JP3940686 B2 JP 3940686B2
- Authority
- JP
- Japan
- Prior art keywords
- communication device
- communication
- message
- buffer
- control variable
- 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
Landscapes
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は、複数の通信装置からなる通信システム及び通信方法に関する。
【0002】
【従来の技術】
並列計算機やパーソナルコンピュータやワークステーション等を構成要素とするクラスタにおける並列処理プログラムを記述するためのAPI(アプリケーションインタフェース)の一種であるMPI(メッセージパッシングインタフェース)等のメッセージ交換方式においては、通信相手のプロセス(MPIの場合はRANK)と通信バッファを指定した関数を、送信側および受信側で実行することにより、対応する通信相手とのメッセージのやり取りを行うことが一般的である。
【0003】
その代表的なAPIであるMPIのTCP/IPを用いた実装では、MPIのシステムが提供するFIFO状のメッセージ受信バッファに一旦全てのメッセージが受信され、そこから受信側の受信関数で指定されたプロセスからのメッセージを検索して、該当するメッセージが見つかった場合に受信関数で指定されたユーザーバッファにコピーをすることになる。よって、検索やコピーにより通信遅延時間が増加してしまう。
【0004】
一方、近年、遠隔書き込みや遠隔読み出しをハードウェアやソフトウェアにより実現し、その遠隔アクセス手段を用いてメッセージ交換を高速化するための方式がいくつか提案されている。
【0005】
例えば、情報処理学会論文誌Vol.40,No.5に掲載されているMPI/MBCFという実装においては、受信関数の実行が行われると送信側にMBCFというソフトウェアにより実現されたFIFOに受信バッファのアドレス等の情報が転送され、送信関数がその後で実行されると、上記FIFOを検索し、所望のプロセスからの受信側の準備完了通知を発見し、その情報を用いて遠隔書き込みを受信関数が指定したユーザーバッファに直接、遠隔書き込みを行うことにより高速化を図っている(非特許文献1参照)。ただし、送信関数の実行が先になった場合は、システムの一括管理のバッファに受信メッセージが入ってしまうため、高速化が得られない。さらに、送信関数実行と受信関数実行とがほぼ同時に行なわれた場合には一貫性維持のための制御が必要になる。
【0006】
これに類似する方式として情報処理学会論文誌Vol.40,No.5に掲載されているEMX−MPIという実装においては、送信関数に先立って実行された受信関数から送られてくるRANKやバッファアドレス等の情報をソフトウェアにより実現された連想メモリに記憶しておき、送信側での受信関数からの情報検索を高速化している(非特許文献2参照)。送信関数が受信関数よりも先に実行された場合は、メッセージ本体の送信は延期され、その代わりに送信メッセージのバッファアドレスを受信側に通知してソフトウェアにより実現された連想メモリに記憶しておき、受信関数が実行されたら上記の連想メモリから送信メッセージの情報を検索し、所望の情報があった場合はその情報をもとに遠隔読み出しを行い、高速化を図っている。ただし、この方式は連想メモリを実現するためのオーバーヘッドを伴う。さらに、送信関数実行と受信関数実行とがほぼ同時に行なわれた場合には一貫性維持のための制御が必要になる。
【0007】
さらに、情報処理学会論文誌Vol.43,No.4に記載されているMPIの制約を緩和したFMPLというメッセージ交換APIの実装においては、受信関数実行側から送信関数実行側にヘッダーを遠隔書き込みし、送信関数ではそのヘッダー情報をもとに受信関数実行側に遠隔書き込みを行う(非特許文献3参照)。ただし、この方式は受信関数の実行が送信関数の実行より指定時間以上遅れた場合は、タイムアウトして送信側のシステムバッファに送信メッセージがバッファリングされるため、受信関数実行から実際にメッセージの受信が完了するまでの遅延時間が大きくなってしまう。また、送信元にワイルドカードを指定した受信の場合をAPI上で完全に分離しなければならない。
【0008】
【非特許文献1】
森本、松本、平木 : メモリベース通信を用いた高速MPIの実装と評価,情報処理学会論文誌, Vol.40, No.5, pp.2256−2268 (1999)
【0009】
【非特許文献2】
建部、児玉、関口、山口 : リモートメモリ書込みを用いたMPIの効率的実装, 情報処理学会論文誌, Vol.40, No.5, pp.2246−2255 (1999)
【0010】
【非特許文献3】
建部、長嶋、関口、北林、林田 : 遠隔メモリ操作に基づく高速メッセージパッシングライブラリFMPLの設計と開発, 情報処理学会論文誌, Vol.43, No.4, pp.879−892 (2002)
【0011】
【発明が解決しようとする課題】
以上説明したように、MPI等のメッセージ交換の従来の実装方式においては、受信側でのメッセージの検索に時間がかかったり、受信側でのシステムバッファからのユーザーバッファへのコピーに時間がかかるという問題があった。その改良方式においても従来は送信側での受信側状態の検索に時間がかかっていたり、受信関数の実行が遅れた場合は受信側でのメッセージの検索に時間がかかったり、システムバッファからのユーザーバッファへのコピーが発生したりしていた。
【0012】
本発明は、上記事情を考慮してなされたもので、通信遅延が短い高速な通信システム及び通信方法を提供することを目的とする。
【0013】
【課題を解決するための手段】
本発明は、第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、前記第1の通信装置に、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファを備え、かつ、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、前記第1の通信装置は、記憶容量はより小さいがアクセス速度はより速い第1の記憶装置と、アクセス速度はより遅いが記憶容量はより大きい第2の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第1の記憶装置を用い、該第1の通信装置が備える前記バッファとして、該第2の記憶装置を用いたものであり、前記第2の通信装置は、前記第1の記憶装置と同じ第3の記憶装置と、前記第2の記憶装置と同じ第4の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第3の記憶装置を用い、該第2の通信装置が備える前記バッファとして、該第4の記憶装置を用いたものであることを特徴とする。
また、本発明は、第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、前記第1の通信装置に、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファを備え、かつ、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、前記第1の通信装置は、バンド幅はより狭いがアクセス時の遅延時間はより短い第1の通信手段と、アクセス時の遅延時間はより長いがバンド幅はより広い第2の通信手段とを備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第1の通信手段を用い、通信相手に前記メッセージの遠隔書き込みを行う通信手段として、該第2の通信手段を用いたものであり、前記第2の通信装置は、少なくとも前記第1の通信手段と同じ第3の通信手段を備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第3の通信手段を用いたものであることを特徴とする。
また、本発明は、第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、前記第1の通信装置に、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファを備え、かつ、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、前記第1の通信装置は、記憶容量はより小さいがアクセス速度はより速い第1の記憶装置と、アクセス速度はより遅いが記憶容量はより大きい第2の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第1の記憶装置を用い、該第1の通信装置が備える前記バッファとして、該第2の記憶装置を用いたものであり、前記第2の通信装置は、前記第1の記憶装置と同じ第3の記憶装置と、前記第2の記憶装置と同じ第4の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第3の記憶装置を用い、該第2の通信装置が備える前記バッファとして、該第4の記憶装置を用いたものであり、前記第1の通信装置は、バンド幅はより狭いがアクセス時の遅延時間はより短い第1の通信手段と、アクセス時の遅延時間はより長いがバンド幅はより広い第2の通信手段とを備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第1の通信手段を用い、通信相手に前記メッセージの遠隔書き込みを行う通信手段として、該第2の通信手段を用いたものであり、前記第2の通信装置は、少なくとも前記第1の通信手段と同じ第3の通信手段を備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第3の通信手段を用いたものであることを特徴とする。
また、本発明は、第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みによりメッセージの伝送完了を示す状態に更新されていることを確認した場合には、その実行を完了するにあたって、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報の遠隔書き込みを行うものであることを特徴とする。
また、本発明は、第1の通信装置に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段と、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファとを備え、第2の通信装置に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段と、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファとを備え、該第1の通信装置に、バンド幅はより狭いがアクセス時の遅延時間はより短い第1の通信手段と、アクセス時の遅延時間はより長いがバンド幅はより広い第2の通信手段とを備え、該第2の通信装置に、該第1の通信手段と同じ第3の通信手段を備え、該第1の通信装置上でメッセージを送信するための送信関数を実行し、該第2の通信装置上でメッセージを受信するための受信関数を実行して、該第1の通信装置から該第2の通信装置へのメッセージ通信を行う通信システムにおける通信方法において、前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを、前記第3の通信手段により行い、前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていることを確認した場合には、該制御変数に遠隔書き込みされた前記制御情報を用いて、前記ユーザー送信バッファから、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを、前記第2の通信手段により行った後に、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、伝送すべきメッセージの伝送完了を示す情報の遠隔書き込みを、前記第1の通信手段により行うことを特徴とする。
また、本発明は、第1の通信装置と第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、該第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、該第1の通信装置上でメッセージを送信するための送信関数を実行し、該第2の通信装置上でメッセージを受信するための受信関数を実行して、該第1の通信装置から該第2の通信装置へのメッセージ通信を行う通信システムにおける通信方法において、前記第2の通信装置上で第1のメッセージ通信のために実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みによりメッセージの伝送完了を示す状態に更新されていることを確認した場合には、その実行を完了するにあたって、第2のメッセージ通信のために、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報の遠隔書き込みを行い、前記第1の通信装置上で第2のメッセージ通信のために実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていることが確認されなくても、前記第2の通信装置上で前記第1のメッセージ通信のために実行された前記受信関数が、その実行を完了するにあたって、該第2のメッセージ通信のために、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数に遠隔書き込みした、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報が存在するならば、該情報を用いて、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを行った後に、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、伝送すべきメッセージの伝送完了を示す情報の遠隔書き込みを行い、前記第2の通信装置上で第2のメッセージ通信のために実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みによりメッセージの伝送完了を示す状態に更新されていることを確認した場合には、その実行を完了するにあたって、第3のメッセージ通信のために、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報の遠隔書き込みを行うことを特徴とする。
【0016】
本発明によれば、通信遅延が短い高速なメッセージ交換を実現することができる。
【0017】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0018】
(第1の実施形態)
本実施形態は、受信側のシステムバッファ経由でタグマッチングを行うメッセージ交換方式を用いるものである。
【0019】
図1に、本実施形態に係るシステムの構成例を示す。また、図1中には、受信関数が先行した場合の動作手順例を併せて示している。
【0020】
図1において、1は送信関数(Send())を実行することによってデータの送信を行う送信関数実行側ノードであり、2は受信関数(Receive())を実行することによってデータの受信を行う受信関数実行側ノードである。送信関数実行側ノード1は、プロセスの識別子RANKとしてRANK1を有する。他方、受信関数実行側ノード2は、プロセスの識別子RANKとしてRANK2を有する。なお、ノードは、例えば、計算機やワークステーションなどが、これに該当する。
【0021】
また、3は低遅延で遠隔アクセス可能な小容量メモリである。この小容量低遅延メモリ3は、例えば、情報処理学会論文誌Vol.44,No.SIG1(HPS6)に記載されているLLCMにより構成してもよい。
【0022】
4は小容量低遅延メモリ3上に配置される、遠隔書き込みの可能な制御情報を示す。各制御情報4は、小容量低遅延メモリ3上で、通信相手を特定する識別子に対応する位置(例えば、アドレス)に配置される。本例では、通信相手のRANKごとに対応する位置に配置されるものとしている。
【0023】
5は高遅延で遠隔アクセス可能な大容量メモリである。この大容量高遅延メモリ5は、例えば、情報処理学会論文誌Vol.44,No.SIG1(HPS6)に記載されているSO−DIMM利用のバンクメモリにより構成してもよい。
【0024】
6は大容量高遅延メモリ5上に配置されるシステム受信バッファを示す。各システム受信バッファ6は、大容量高遅延メモリ5上で、通信相手を特定する識別子に対応する位置(例えば、アドレス)に配置される。本例では、通信相手のRANKごとに対応する位置に配置されるものとしている。
【0025】
7−1,7−2は低遅延低バンド幅送信部である。低遅延低バンド幅送信部7−1,7−2は、例えば、情報処理学会論文誌Vol.44,No.SIG1(HPS6)に記載されているAOTF送信機構により構成してもよい。
【0026】
8−1,8−2は高遅延高バンド幅送信部である。高遅延高バンド幅送信部8−1,8−2は、例えば、RDMA送信機構により構成してもよい。
【0027】
9−1,9−2はCPUである。
【0028】
また、10は、送信メッセージを保持するユーザー送信バッファ、11は受信したメッセージを保持するユーザー受信バッファをそれぞれ示している。ユーザー送信バッファ10やユーザー受信バッファ11は、複数の通信相手に共通に使用される。
【0029】
このような構成のシステム上で、受信関数の実行が送信関数の実行より先行した場合の動作例は以下のようになる。
【0030】
手順(1)受信関数実行側ノード2(本例ではRANK2)のCPU9−2が、通信相手となる送信関数実行側ノード1(本例ではRANK1)から受信する受信関数を起動して、まず、該RANK1に対応する手元の制御情報4(本例では制御情報4−2−1)をチェックし、通信相手となる送信関数実行側ノード1においては未だ送信関数が実行されていないことを検知する(図1中の▲1▼参照)。
【0031】
手順(2)受信関数実行側ノード2のCPU9−2が、低遅延低バンド幅送信部7−2を起動する(図1中の▲2▼参照)。
【0032】
手順(3)受信関数実行側ノード2の低遅延低バンド幅送信部7−2は、送信関数実行側ノード1のRANK2に対応する制御情報4−1−2(例えばRANK1からのメッセージを受けるためのRANK2の受信バッファ6−2−1内の空き領域の先頭アドレスや空き容量)を更新する(図1中の▲3▼参照)。
【0033】
手順(4)ここで、送信関数実行側ノード1のCPU9−1が、RANK2に送信する送信関数を起動して、まず、RANK2に対応する手元の制御情報4−1−2をチェックし、通信相手すなわち受信関数実行側ノード2は、既に受信関数を実行して準備完了状態にあることを知る(図1中の▲4▼参照)。
【0034】
手順(5)送信関数実行側ノード1のCPU9−1が、その制御情報4−1−2にあるRANK1からのメッセージを受けるためのRANK2の受信バッファ6−2−1内の空きアドレスに対するデータ転送を、高遅延高バンド幅送信部8−1に依頼する(図1中の▲5▼参照)。
【0035】
手順(6)送信関数実行側ノード1の高遅延高バンド幅送信部8−1は、ユーザー送信バッファ10から受信バッファ6−2−1内の空きアドレスへのデータ転送を実行する(図1中の▲6▼参照)。
【0036】
手順(7)送信関数実行側ノード1のCPU9−1は、データを転送し終わったら、低遅延低バンド幅送信部7−1を起動する(図1中の▲7▼参照)。
【0037】
手順(8)送信関数実行側ノード1の低遅延低バンド幅送信部7−1は、RANK2上のRANK1から受け取る制御情報4−2−1(例えば受信バッファ6−2−1内にしたという通知)を書き込む(図1中の▲8▼参照)。
【0038】
手順(9)他方、受信関数実行側ノード2のCPU9−2が、制御情報4−2−1として書き込まれたデータ転送完了通知をポーリングして、データの到着を検出する(図1中の▲9▼参照)。
【0039】
手順(10)受信関数実行側ノード2のCPU9−2が、受信バッファ6−2−1に所望のメッセージタグを有するメッセージが存在するか否か検査し、存在する場合は、それをユーザー受信バッファ11にコピーする(図1中の丸で囲んだ記号10参照)。他のタグを持っていた場合は、それを退避しておき、上記の手順(2)から後を所望のメッセージが送られてくるまで繰り返し、受信関数実行側ノード2は所望のメッセージを呼び込む。
【0040】
ここで、RANK1に対する制御情報4−2−1や受信バッファ6−2−1の位置やRANK2に対する制御情報4−1−2の位置は、RANKに対応した位置に配置されているために、簡単に求まる。システムの受信バッファ6−2−1内にはRANK1からのメッセージしか入っていないので、従来の全メッセージを一手に保持するバッファの検索に比べて、所望のメッセージタグを有するメッセージを早く見つけ出すことができる。また、上記の手順(3)の通信には低遅延な通信手段を用いているのでRANK1側での送信関数が実行される前に制御情報が伝達される確率が高くなり、既に送信側(RANK1側)に届いている受信アドレスへの遠隔書き込みによって高速なデータ転送が行われる確率が高くなる。受信バッファは大容量なメモリ側にあるのでバッファ容量を豊富にとることが可能であり、メッセージ本体の転送には高バンド幅の転送手段を用いているので、全体として低遅延かつ高バンド幅なメッセージ交換が実現される。
【0041】
なお、本実施形態では上記の手順(7),手順(8)を実行して明示的にデータ転送完了通知を行ったが、上記の手順(6)の動作の一部としてハードウェアが通知する仕組みを持っていれば、さらに低遅延にデータの授受が行われる。
【0042】
続いて、図1のシステム構成例において、送信関数の実行が受信関数の実行より先行した場合の動作例について説明する。
【0043】
図2に、図1と同様の構成例に併せて、本実施形態の受信側のシステムバッファ経由でタグマッチングを行うメッセージ交換方式において送信関数が先行した場合の動作手順例を示す。
【0044】
この例での状況は、受信側の準備ができていない状態で送信関数を実行した場合の動作例である。このような構成のシステム上で送信関数の実行が受信関数の実行より先行した場合の動作は以下のようになる。
【0045】
手順(1)送信関数実行側ノード1(本例ではRANK1)のCPU9−1が、通信相手(本例ではRANK2)に送信する送信関数を起動して、まず、該RANK1に対応する手元の制御情報4−1−2をチェックし、RANK2においては未だ受信関数が実行されていないことを検知する(図2中の▲1▼参照)。
【0046】
手順(2)送信関数実行側ノード1のCPU9−1が、低遅延低バンド幅送信部7−1を起動する(図2中の▲2▼参照)。
【0047】
手順(3)送信関数実行側ノード1の低遅延低バンド幅送信部7−1は、受信関数実行側ノード2のRANK1に対応する制御情報4−2−1(例えばユーザー送信バッファ10の先頭アドレスやデータ長)を更新する(図2中の▲3▼参照)。
【0048】
手順(4)ここで、受信関数実行側ノード2のCPU9−2が、RANK1から受信する受信関数を実行して、まず、RANK1に対応する手元の制御情報4−2−1をチェックし、通信相手すなわちRANK1は既に送信関数を実行して準備完了状態にあることを知る(図2中の▲4▼参照)。
【0049】
手順(5)受信関数実行側ノード2のCPU9−2が、その制御情報4−2−1にあるRANK2へのメッセージを保持しているRANK1のユーザー送信バッファ10からRANK2の受信バッファ6−2−1内の空きアドレスへのデータ転送の依頼(遠隔読み出し要求)を、低遅延低バンド幅送信部7−2に依頼する(図2中の▲5▼参照)。
【0050】
手順(6)受信関数実行側ノード2の低遅延低バンド幅送信部7−2は、RANK1の高バンド幅送信部8−1に遠隔読み出し要求を伝達する(図2中の▲6▼参照)。
【0051】
手順(7)送信関数実行側ノード1の高バンド幅送信部8−1は、上記の遠隔読み出し要求を受けると、ユーザー送信バッファ10からRANK2の受信バッファ6−2−1内の空きアドレスに対するデータ転送を行う(図2中の▲7▼参照)。
【0052】
手順(8)送信関数実行側ノード1の高バンド幅送信部8−1は、受信バッファ6−2−1へのデータを転送し終わったら、RANK2の制御情報4−2−1にデータ転送完了を通知する(図2中の▲8▼参照)。
【0053】
手順(9)他方、受信関数実行側ノード2のCPU9−2が、制御情報4−2−1として書き込まれたデータ転送完了通知をポーリングして、データの到着を検出する(図2中の▲9▼参照)。
【0054】
手順(10)受信関数実行側ノード2のCPU9−2が、受信バッファ6−2−1に所望のメッセージタグを有するメッセージが存在するか否か検査し、存在する場合は、それをユーザー受信バッファ11にコピーする(図2中の丸で囲んだ記号10参照)。他のタグを持っていた場合は、それを退避しておき、上記の手順(9)から後を所望のメッセージが送られてくるまで繰り返す。
【0055】
(第2の実施形態)
次に、本発明の第2の実施例形態について説明する。
【0056】
本実施形態は、メッセージ交換方式としてユーザーバッファへの直接受信を用いるゼロコピー通信方式を使用するものである。
【0057】
図3に、本実施形態に係るシステムの構成例を示す。本構成例は、基本的には、図1や図2と同様である。
【0058】
また、図3中には、受信関数が先行した場合の動作手順例を併せて示している。他方、図4には、送信関数が先行した場合の動作手順例を示している。
【0059】
以下では、第1の実施形態と相違する点を中心に説明する。
【0060】
まず、図3を参照しながら、本実施形態のメッセージ交換方式において受信関数が先行した場合の動作手順例について説明する。全体的な流れは基本的には図2の流れと同様である。
【0061】
(1)の手順(図3中の▲1▼参照)と(2)の手順(図3中の▲2▼参照)は、図2の手順例と同様である。
【0062】
次いで、図1の手順例では手順(3)で受信関数実行側ノード2の低遅延低バンド幅送信部7−2が送信関数実行側ノード1のRANK2に対応する制御情報4−1−2へ自ノードのシステムの受信バッファ6−2−1内の空き領域の先頭アドレスを設定するのに対して、この手順例では手順(3)でユーザー受信バッファ11の先頭アドレスとメッセージタグを制御情報4−1−2へ書き込む(図3中の▲3▼参照)。
【0063】
そして、手順(4)で送信関数実行側ノード1が送信関数を実行して、その中でメッセージタグが一致したならば(図3中の▲4▼参照)、手順(5)でユーザー受信バッファ11のアドレスを高バンド幅送信部8−1に設定し(図3中の▲5▼参照)、手順(6)でユーザー送信バッファ10からユーザー受信バッファ11への遠隔書き込みを実行する(図3中の▲6▼参照)。
【0064】
これによって、ゼロコピーのメッセージ交換が実現し、低遅延かつ高バンド幅なメッセージ交換が行われる。
【0065】
なお、(7)の手順(図3中の▲7▼参照)と(8)の手順(図3中の▲8▼参照)は図1と同様である。
【0066】
次に、図4を参照しながら、本実施形態のメッセージ交換方式において送信関数が先行した場合の動作手順例について説明する。全体的な流れは基本的には図2の流れと同様である。
【0067】
(1)の手順(図4中の▲1▼参照)と(2)の手順(図4中の▲2▼参照)は、図2の手順例と同様である。
【0068】
次いで、図2の手順例においては手順(3)でユーザー送信バッファ10の先頭アドレスやデータ長を更新したが、この手順例では手順(3)でメッセージタグをも送信する(図4中の▲3▼参照)。
【0069】
そして、手順(4)で受信関数実行側ノード2が受信関数を実行したときに、その中でメッセージタグの比較を行い、一致した場合に、以下の切り替えを行う(図4中の▲4▼参照)。すなわち、図2の手順例において手順(5)ではシステムの受信バッファ6−2−1内の空き領域の先頭アドレスへの遠隔読み出しを依頼したのに対し、この手順例では手順(5)でユーザー受信バッファ11の先頭アドレスに切り替えた遠隔読み出しを依頼する(図4中の▲5▼参照)。
【0070】
しかして、手順(6)で図2と同様に遠隔読み出し要求の伝達が行われ(図4中の▲6▼参照)、手順(7)で高バンド幅送信部8−1がユーザー送信バッファ10からユーザー受信バッファ11への遠隔読み出しを実行する(図4中の▲7▼参照)。
【0071】
これによって、ゼロコピーのメッセージ交換が実現し、低遅延かつ高バンド幅なメッセージ交換が行われる。
【0072】
(第3の実施形態)
次に、本発明の第3の実施例形態について説明する。
【0073】
本実施形態は、メッセージ交換方式として、ユーザーバッファへの直接受信を用いるゼロコピー通信と、システムバッファによる1コピー通信とを併用した方式を用いるものである。
【0074】
図5に、本実施形態に係るシステムの構成例を示す。本構成例は、基本的には、これまでの各図と同様である。
【0075】
また、図5中には、送信関数が先行した場合の動作手順を併せて示している。
【0076】
受信関数が先行した場合の動作手順は、例えば、図3の手順を用いる。受信関数が先行した場合に図1の手順を用いる方法もある。
【0077】
以下では、第3の実施形態と相違する点を中心に説明する。
【0078】
図4の手順例では送信関数実行が先行した場合は受信側に遠隔読み出しを依頼するのに対し、図5の手順例ではより積極的にデータ本体を受信側に送りつけるように制御される。
【0079】
具体的には、前回のメッセージ交換において、手順(9)として、前回の受信関数実行の終了時に、その受信に関与したシステム受信バッファ6の空き領域の先頭アドレスと残り容量を送信関数実行側ノード1の制御情報4−1−2に遠隔書き込みしておく(図5中の▲9▼参照)。
【0080】
しかして、今回のメッセージ交換において、手順(1)で送信関数を実行し上記のバッファアドレスを得て(図5中の▲1▼参照)、システム受信バッファ6の残り容量がある場合は、手順(2)で高バンド幅送信部8−1を起動して(図5中の▲2▼参照)、手順(3)でそこにデータ本体を遠隔書き込みする(図5中の▲3▼参照)。
【0081】
そして、転送が終了したところで、手順(4)で低遅延低バンド幅送信部7−1を起動し(図5中の▲4▼参照)、手順(5)で受信関数実行側ノード2の制御情報4−2−1にデータ伝送が完了した状態である旨を通知するデータ伝送完了通知を遠隔書き込みする(図5中の▲5▼参照)。
【0082】
しかして、手順(6)で受信関数実行側ノード2が受信関数を実行した際に、遠隔読み出しをかけずとも既に手元のシステム受信バッファ6−2−1にデータが届いていることを知って(図5中の▲6▼参照)、手順(7)でメッセージタグの一致を検査した後に、一致したものをユーザー受信バッファ11にコピーする(図5中の▲7▼参照)。
【0083】
そして、手順(8)で低遅延低バンド幅送信部7−2を起動し(図5中の▲8▼参照)、手順(9)で前述したようにシステム受信バッファ6の空き領域の先頭アドレスと残り容量を制御情報4−1−2に遠隔書き込みしておく(図5中の▲9▼参照)。
【0084】
このようにして、受信関数実行が大きく遅れた場合は、遅延時間が短縮される。また、システム受信バッファ6のアドレスが受信関数の終了間際に送信側(RANK1側)に渡っていたとしても、受信関数が早めに実行された場合は、ユーザー受信バッファ11のアドレスで上書きすることで、図3の動作に切り替えることは容易である。このようにすることによって、受信関数が早めに実行された場合も、遅めに実行された場合も、低遅延かつ高バンド幅にメッセージ交換が行われる。
【0085】
なお、送信関数実行が先行した場合に、図5の手順例ではメッセージを受信関数実行側のシステム受信バッファへ送りつけるようにしたが、その代わりに、メッセージを受信関数実行側のユーザ受信バッファへ送りつけるようにする構成も可能である。
【0086】
ところで、以上の各実施形態では、1つのノードは、送信関数実行側ノードと受信関数実行側ノードのいずれかであったが、1つのノードに送信関数実行側ノードと受信関数実行側ノードの両方の機能を搭載すると好ましい。
【0087】
また、以上の各実施形態は組み合わせて実施可能である。例えば、1つのノードが、図1〜図4の手順をすべて実行可能であってもよい。このような場合には、例えば、複数の関数のうちからいずれかを適宜選択して実行すればよい。
【0088】
なお、各実施形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
【0089】
また、各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
【0090】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0091】
【発明の効果】
本発明によれば、通信遅延が短い高速なメッセージ交換を実現することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係る通信システムの構成例及び動作手順例を示す図
【図2】 同実施形態に係る通信システムの構成例及び他の動作手順例を示す図
【図3】 本発明の第2の実施形態に係る通信システムの構成例及び動作手順例を示す図
【図4】 同実施形態に係る通信システムの構成例及び他の動作手順例を示す図
【図5】 本発明の第3の実施形態に係る通信システムの構成例及び動作手順例を示す図
【符号の説明】
1…送信関数実行側ノード、2…受信関数実行側ノード、3…低遅延で遠隔アクセス可能な小容量メモリ、4,4−1−2,4−2−1:通信相手ごとに対応する位置に配置された制御情報、5…高遅延で遠隔アクセス可能な大容量メモリ、6,6−2−1:通信相手ごとに対応する位置に配置されたシステム受信バッファ、7−1,7−2…低遅延低バンド幅送信部、8−1,8−2…高遅延高バンド幅送信部、9−1,9−2…CPU、10…ユーザー送信バッファ、11…ユーザー受信バッファ
Claims (12)
- 第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、
前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、
前記第1の通信装置に、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファを備え、かつ、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、
前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、
前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、
前記第1の通信装置は、記憶容量はより小さいがアクセス速度はより速い第1の記憶装置と、アクセス速度はより遅いが記憶容量はより大きい第2の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第1の記憶装置を用い、該第1の通信装置が備える前記バッファとして、該第2の記憶装置を用いたものであり、
前記第2の通信装置は、前記第1の記憶装置と同じ第3の記憶装置と、前記第2の記憶装置と同じ第4の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第3の記憶装置を用い、該第2の通信装置が備える前記バッファとして、該第4の記憶装置を用いたものであることを特徴とする通信システム。 - 第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、
前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、
前記第1の通信装置に、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファを備え、かつ、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、
前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、
前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、
前記第1の通信装置は、バンド幅はより狭いがアクセス時の遅延時間はより短い第1の通信手段と、アクセス時の遅延時間はより長いがバンド幅はより広い第2の通信手段とを備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第1の通信手段を用い、通信相手に前記メッセージの遠隔書き込みを行う通信手段として、該第2の通信手段を用いたものであり、
前記第2の通信装置は、少なくとも前記第1の通信手段と同じ第3の通信手段を備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第3の通信手段を用いたものであることを特徴とする通信システム。 - 第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、
前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、
前記第1の通信装置に、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファを備え、かつ、前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、
前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、
前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを行うものであり、
前記第1の通信装置は、記憶容量はより小さいがアクセス速度はより速い第1の記憶装置と、アクセス速度はより遅いが記憶容量はより大きい第2の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第1の記憶装置を用い、該第1の通信装置が備える前記バッファとして、該第2の記憶装置を用いたものであり、
前記第2の通信装置は、前記第1の記憶装置と同じ第3の記憶装置と、前記第2の記憶装置と同じ第4の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第3の記憶装置を用い、該第2の通信装置が備える前記バッファとして、該第4の記憶装置を用いたものであり、
前記第1の通信装置は、バンド幅はより狭いがアクセス時の遅延時間はより短い第1の通信手段と、アクセス時の遅延時間はより長いがバンド幅はより広い第2の通信手段とを備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第1の 通信手段を用い、通信相手に前記メッセージの遠隔書き込みを行う通信手段として、該第2の通信手段を用いたものであり、
前記第2の通信装置は、少なくとも前記第1の通信手段と同じ第3の通信手段を備え、通信相手に設けた前記制御変数への遠隔書き込みを行う通信手段として、該第3の通信手段を用いたものであることを特徴とする通信システム。 - 前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていることを確認した場合には、該制御変数に遠隔書き込みされた前記制御情報を用いて、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを行うことを特徴とする請求項1ないし3のいずれか 1 項に記載の通信システム。
- 前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、前記ユーザー送信バッファのメッセージ伝送すべきデータを格納した先頭位置を指定する情報の遠隔書き込みを行うものであることを特徴とする請求項1ないし4のいずれか1項に記載の通信システム。
- 前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていることを確認した場合には、該制御変数に遠隔書き込みされた前記制御情報を用いて、該第1の通信装置に設けた前記ユーザー送信バッファからの前記メッセージの遠隔読み出し要求を行い、
前記第1の通信装置は、前記遠隔読み出し要求を受けると、該遠隔読み出し要求に応答して、前記第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを行うことを特徴とする請求項5に記載の通信システム。 - 第1の通信装置がメッセージを送信するために該第1の通信装置上で送信関数を実行し、第2の通信装置がメッセージを受信するために該第2の通信装置上で受信関数を実行してメッセージ通信を行う通信システムにおいて、
前記第1の通信装置と前記第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、
前記第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、
前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みによりメッセージの伝送完了を示す状態に更新されていることを確認した場合には、その実行を完了するにあたって、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報の遠隔書き込みを行うものであることを特徴とする通信システム。 - 前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていることが確認されなくても、前記第2の通信装置上で 実行された前回のメッセージ通信に係る前記受信関数が、その実行を完了するにあたって、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数に遠隔書き込みした、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報が存在するならば、該情報を用いて、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを行った後に、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、伝送すべきメッセージの伝送完了を示す情報の遠隔書き込みを行うものであることを特徴とする請求項7に記載の通信システム。
- 第1の通信装置に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段と、通信相手へ伝送すべきメッセージを保持する、複数の通信相手に共通に利用するユーザー送信バッファとを備え、第2の通信装置に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段と、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファとを備え、該第1の通信装置に、バンド幅はより狭いがアクセス時の遅延時間はより短い第1の通信手段と、アクセス時の遅延時間はより長いがバンド幅はより広い第2の通信手段とを備え、該第2の通信装置に、該第1の通信手段と同じ第3の通信手段を備え、該第1の通信装置上でメッセージを送信するための送信関数を実行し、該第2の通信装置上でメッセージを受信するための受信関数を実行して、該第1の通信装置から該第2の通信装置へのメッセージ通信を行う通信システムにおける通信方法において、
前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていないことを確認した場合には、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、少なくとも、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファのメッセージ伝送に関する制御情報の遠隔書き込みを、前記第3の通信手段により行い、
前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていることを確認した場合には、該制御変数に遠隔書き込みされた前記制御情報を用いて、前記ユーザー送信バッファから、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを、前記第2の通信手段により行った後に、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、伝送すべきメッセージの伝送完了を示す情報の遠隔書き込みを、前記第1の通信手段により行うことを特徴とする通信方法。 - 前記第1の通信装置上で実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていないことを確認した場合には、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、少なくとも、前記メッセージの前記ユーザー送信バッファにおける記憶場所又は転送状況のメッセージ伝送に関する制御情報の遠隔書き込みを、前記第1の通信手段により行い、
前記第2の通信装置上で実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みにより送信準備完了を示す状態に更新されていることを確認した場合には、該制御変数に遠隔書き込みされた前記制御情報を用いて、該第1の通信装置に設けた前記ユーザー送信バッファからの前記メッセージの遠隔読み出し要求を、前記第3の通信手段により行い、
前記第1の通信装置は、前記遠隔読み出し要求を受けると、該遠隔読み出し要求に応答して、前記第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを、前記第2の通信手段により行うことを特徴とする請求項9に記載の通信方法。 - 前記第1の通信装置は、記憶容量はより小さいがアクセス速度はより速い第1の記憶装置と、アクセス速度はより遅いが記憶容量はより大きい第2の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第1の記憶装置を用い、該第1の通信装置が備える前記バッファとして、該第2の記憶装置を用いたものであり、
前記第2の通信装置は、前記第1の記憶装置と同じ第3の記憶装置と、前記第2の記憶装置と同じ第4の記憶装置とを備え、前記制御変数を記憶する記憶手段として、該第3の記憶装置を用い、該第2の通信装置が備える前記バッファとして、該第4の記憶装置を用いたものであることを特徴とする請求項9または10に記載の通信方法。 - 第1の通信装置と第2の通信装置との双方に、通信相手を特定するための識別子ごとに設けた、当該通信相手から遠隔書き込みが可能なメッセージ伝送に関する制御変数を記憶する記憶手段を備えるとともに、該第2の通信装置に、通信相手から伝送すべきメッセージの遠隔書き込みが可能な、通信相手を特定するための識別子ごとに設けたメッセージバッファ又は複数の通信相手が共通に利用するユーザー受信バッファの少なくともどちらか一方のバッファを備え、該第1の通信装置上でメッセージを送信するための送信関数を実行し、該第2の通信装置上でメッセージを受信するための受信関数を実行して、該第1の通信装置から該第2の通信装置へのメッセージ通信を行う通信システムにおける通信方法において、
前記第2の通信装置上で第1のメッセージ通信のために実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みによりメッセージの伝送完了を示す状態に更新されていることを確認した場合には、その実行を完了するにあたって、第2のメッセージ通信のために、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報の遠隔書き込みを行い、
前記第1の通信装置上で第2のメッセージ通信のために実行された前記送信関数は、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数が、該第2の通信装置から遠隔書き込みにより受信準備完了を示す状態に更新されていることが確認されなくても、前記第2の通信装置上で前記第1のメッセージ通信のために実行された前記受信関数が、その実行を完了するにあたって、該第2のメッセージ通信のために、該第1の通信装置に設けた前記第2の通信装置に対応する前記制御変数に遠隔書き込みした、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報が存在するならば、該情報を用いて、該第2の通信装置に設けた、該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファへの前記メッセージの遠隔書き込みを行った後に、該第2の通信装置に設けた該第1の通信装置に対応する前記制御変数に、伝送すべきメッセージの伝送完了を示す情報の遠隔書き込みを行い、
前記第2の通信装置上で第2のメッセージ通信のために実行された前記受信関数は、該第2の通信装置に設けた前記第1の通信装置に対応する前記制御変数が、該第1の通信装置から遠隔書き込みによりメッセージの伝送完了を示す状態に更新されていることを確認した場合には、その実行を完了するにあたって、第3のメッセージ通信のために、該第1の通信装置に設けた該第2の通信装置に対応する前記制御変数に、該第2の通信装置に設けた該第1の通信装置に対応する前記メッセージバッファ又は前記ユーザー受信バッファの空き領域の先頭位置を示す情報の遠隔書き込みを行うことを特徴とする通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003062146A JP3940686B2 (ja) | 2003-03-07 | 2003-03-07 | 通信システム及び通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003062146A JP3940686B2 (ja) | 2003-03-07 | 2003-03-07 | 通信システム及び通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004272577A JP2004272577A (ja) | 2004-09-30 |
JP3940686B2 true JP3940686B2 (ja) | 2007-07-04 |
Family
ID=33124148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003062146A Expired - Fee Related JP3940686B2 (ja) | 2003-03-07 | 2003-03-07 | 通信システム及び通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3940686B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5614138B2 (ja) * | 2010-07-08 | 2014-10-29 | 富士通株式会社 | プロセッサの制御プログラム及び、その制御方法 |
-
2003
- 2003-03-07 JP JP2003062146A patent/JP3940686B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004272577A (ja) | 2004-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7366835B2 (en) | Data access responding system, storage system, client apparatus, cache apparatus, and method for accessing data access responding system | |
KR100962769B1 (ko) | 수퍼차지 메시지 교환기 | |
US20060230240A1 (en) | Inter-processor communication method using a shared cache memory in a storage system | |
JP6847105B2 (ja) | 分散キャッシュライブマイグレーション | |
JP2005258918A (ja) | ストレージシステムおよびストレージシステムのキャッシュメモリ制御方法 | |
CN108153683A (zh) | 用于在存储器中的地址范围之间传输数据的装置和方法 | |
US20060206663A1 (en) | Disk array device and shared memory device thereof, and control program and control method of disk array device | |
JP2018531471A6 (ja) | 分散キャッシュライブマイグレーション | |
CN113986791A (zh) | 一种智能网卡快速dma设计方法、系统、设备及终端 | |
JP3776496B2 (ja) | データ記憶システム | |
JP2004213435A (ja) | 記憶装置システム | |
EP0536375A1 (en) | Fault tolerant network file system | |
EP2845110B1 (en) | Reflective memory bridge for external computing nodes | |
US9256521B1 (en) | Methods and apparatus for SAS controllers with link list based target queues | |
EP2113102A1 (en) | System and method for improving data caching | |
JP3736305B2 (ja) | ディスクキャッシュシステムおよびディスクキャッシュ制御方法 | |
JP3940686B2 (ja) | 通信システム及び通信方法 | |
CN107615259A (zh) | 一种数据处理方法及系统 | |
JP4439798B2 (ja) | ディスクアレイ装置の制御方法、及びディスクアレイ装置 | |
CN110209343B (zh) | 数据存储方法、装置、服务器及存储介质 | |
US20060143378A1 (en) | Information processing apparatus and control method for this information processing apparatus | |
JP4514222B2 (ja) | データ記憶システム | |
JP3644158B2 (ja) | 並列計算機におけるデータ送受信方法 | |
CN115933973B (zh) | 远程更新数据的方法、rdma系统及存储介质 | |
KR20100069232A (ko) | 네트워크 버퍼를 이용한 컨텍스트 상태 정보 기반 미리 읽기 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060724 |
|
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: 20070327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070402 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3940686 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |