(57)【要約】【課題】通信遅延が短い高バンド幅なメッセージ交換を可能にする受信側通信装置を提供すること。【解決手段】受信側通信装置１は、受信データ書込み制御部１３により、送信側通信装置から受信したメッセージ前側部分を、メインメモリ１６の所定の箇所に書き込む。これとともに、応答型遠隔アクセスパケット生成部１２により、受信したメッセージ前側部分に対する応答として、該メッセージ前側部分に付加されているメッセージ後側部分に関する情報をもとに、該メッセージ後側部分に対する遠隔アクセス要求を作成し、これを送信側通信装置へ送信する。その後、受信データ書込み制御部１３により、送信側通信装置から受信したメッセージ後側部分を、メインメモリ１６のメッセージ前側部分が書き込まれている箇所に続けて書き込む。【選択図】      図１
2005277530.tif 000002
【特許請求の範囲】
【請求項１】
送信側通信装置が、受信側通信装置へ送信すべきメッセージを、第１の部分メッセージと第２の部分メッセージとに分割する第１のステップと、
前記送信側通信装置が、前記第２の部分メッセージを保持した状態で、前記第１の部分メッセージを前記受信側通信装置へ送信する第２のステップと、
前記受信側通信装置が、前記第１の部分メッセージを受信し、これを記憶装置に記憶するとともに、前記第１の部分メッセージに対する応答として、前記第２の部分メッセージの通信に関する要求を作成し、これを前記送信側通信装置へ送信する第３のステップと、
前記送信側通信装置が、前記要求を受信し、これに応答して、前記第２の部分メッセージを前記受信側通信装置へ送信する第４のステップと、
前記受信側通信装置が、前記第２の部分メッセージを受信し、これを前記記憶装置に記憶する第５のステップとを有することを特徴とするメッセージ通信方法。
【請求項２】
前記送信側通信装置は、
前記第２のステップでは、第１の通信手段を用いて前記第１の部分メッセージを送信し、
前記第４のステップでは、前記第１の通信手段より高遅延高バンド幅性を有する第２の通信手段を用いて前記第２の部分メッセージを送信することを特徴とする請求項１に記載のメッセージ通信方法。
【請求項３】
前記送信側通信装置は、前記第１のステップにおいて、前記第１のメッセージの前記受信側通信装置への書き込みが終了する時間と、前記第２の部分メッセージの前記受信側通信装置への書き込みを開始できる時間とがほぼ等しくなるような分割位置で、前記メッセージを前記第１の部分メッセージと前記第２の部分メッセージとに分割することを特徴とする請求項２に記載のメッセージ通信方法。
【請求項４】
前記第１の通信手段はＢＯＴＦ送信機構により構成されたものであり、前記第２の通信手段はリモートＤＭＡ送信機構により構成されたものであることを特徴とする請求項２に記載のメッセージ通信方法。
【請求項５】
前記要求はリモートＤＭＡによる遠隔読み出し要求であることを特徴とする請求項４に記載のメッセージ通信方法。
【請求項６】
前記送信側通信装置は、前記第２のステップにおいて、前記第１の部分メッセージに前記第２の部分メッセージに関する情報を含むヘッダを付加し、該ヘッダを付加された前記第１の部分メッセージを前記受信側通信装置へ送信し、
前記受信側通信装置は、前記第３のステップにおいて、前記第１の部分メッセージに付加されているヘッダを受信した時点で、該ヘッダに含まれる情報を用いて、前記要求を作成し、これを前記送信側通信装置へ送信することを特徴とする請求項１に記載のメッセージ通信方法。
【請求項７】
前記受信側通信装置は、前記第５のステップにおいて、受信した前記第２の部分メッセージを、前記第３のステップで前記第１の部分メッセージを記憶した記憶領域に続く記憶領域に記憶することを特徴とする請求項１に記載のメッセージ通信方法。
【請求項８】
第１の部分メッセージと第２の部分メッセージとを含むメッセージを受信する受信側通信装置において、
前記第１の部分メッセージを受信用記憶領域へ記憶する記憶手段と、
前記第１の部分メッセージに対する応答として、前記メッセージのうちの第２の部分メッセージに対する遠隔アクセス要求を作成し、これを前記メッセージの送信元に送信する送信手段とを備え、
前記送信手段は、前記記憶手段が前記第１の部分メッセージを記憶する動作と並列して動作することが可能であることを特徴とする受信側通信装置。
【請求項９】
前記記憶手段は、前記受信用記憶領域内の前記第１の部分メッセージを記憶した領域に続く領域に前記第２の部分メッセージを記憶する手段とを更に備えたことを特徴とする請求項８に記載の受信側通信装置。
【請求項１０】
送信メッセージを第１の部分メッセージと第２の部分メッセージとに分割する分割手段と、
前記第１の部分メッセージに前記第２の部分メッセージに関する情報を含むヘッダを付加し、該ヘッダを付加した前記第１の部分メッセージを送信する第１送信手段と、
前記第１の部分メッセージに応答した受信先から、前記第２の部分メッセージに対する遠隔アクセス要求を受信する受信手段と、
受信した遠隔アクセス要求に応答して、前記第２の部分メッセージを送信する第２送信手段とを備えたことを特徴とする送信側通信装置。
【請求項１１】
前記第１送信手段は、前記第１の部分メッセージを第１の通信手段を用いて送信し、
前記第２送信手段は、前記第２の部分メッセージを、前記第１の通信手段より高遅延高バンド幅性を有する第２の通信手段を用いて送信することを特徴とする、請求項１０に記載の送信側通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機やパーソナルコンピュータやワークステーション等を構成要素とするクラスタや並列計算機におけるＭＰＩ等のメッセージ通信方法並びにこれを実行する受信側通信装置及び送信側通信装置に関する。
【背景技術】
【０００２】
並列計算機やパーソナルコンピュータやワークステーション等を構成要素とするクラスタにおける並列処理プログラムを記述するためのＡＰＩ（アプリケーション・インタフェース）の一種であるＭＰＩ（メッセージ・パッシング・インタフェース）等のメッセージ交換方式においては、汎用のイーサネット用ネットワークインタフェースのように性質の異なる複数の送信手段を１個のネットワークインタフェースが具備するハードウェアがなかったため、これらを適材適所で使い分けるということはされていない。
【０００３】
一方、ＭｙｒｉｎｅｔやＰＣＩ−ＳＣＩなどのＰＣクラスタ用ネットワークインタフェースの中には、性質の異なる複数の通信手段、例えばＰｒｏｇｒａｍｍｅｄ  Ｉ／Ｏ式に通信を行う使い方と、ＤＭＡコントローラを使って通信を行う使い方とができるものがある。
【０００４】
さらに、近年研究開発されたＲＨｉＮＥＴ−２やＤＩＭＭｎｅｔ−１といったネットワークインタフェースでは、性質の異なる複数の通信手段、例えば低遅延性を最優先してバンド幅は低い通信手段や、例えばＢＯＴＦのようにＡＯＴＦよりは低遅延性を犠牲にしつつもある程度の低遅延性を維持しながら比較的高いバンド幅を実現する通信手段（例えば、非特許文献１参照）や、例えばＲｅｍｏｔｅ  ＤＭＡ（ＰＵＳＨ、ＰＵＬＬ）のようにバンド幅を最優先して遅延は長い通信手段（例えば、非特許文献２参照）を一つのネットワークインタフェースの中にハードウェアとして具備している。
【０００５】
従来のメッセージ交換方式では、短いメッセージ長では遅延の少ない通信方式を用い、長いメッセージ長ではバンド幅が大きい通信方式を使うという使い分けが行われることがあった。また、同期処理のような制御用のメッセージ送信に遅延の少ない通信方式（例えばＡＯＴＦ）を用い、データ通信にはバンド幅が大きい通信方式（例えばＲｅｍｏｔｅ  ＤＭＡ）を使うという使い分けが行われることがあった。
【０００６】
しかし、従来のメッセージ交換方式では、複数の通信手段を具備したとしても、一個のメッセージ送信には必ずいずれか一つの通信手段が用いられるため、それらを組合せて得られる性能向上の可能性を引き出すことができなかった。
【０００７】
また、従来のメッセージ交換方式では、例えばＭＰＩＣＨで実装されているＲｅｎｄｅｚｖｏｕｓプロトコルやＧｅｔプロトコルではコントロール用のメッセージを送信した上で最終的には受信関数実行側が遠隔読出しを行う（例えば、非特許文献３参照）。しかし、メッセージ数を減らすことで、ソフトウェアオーバーヘッドを減らすことを目指してきたために、性能向上のためにメッセージ本体を分割するということは行われておらず、メッセージの分割により得られる性能向上の可能性を引き出すことができなかった。
【０００８】
さらに、長いメッセージを通信する場合に受信側でのメッセージバッファへの受信準備期間にネットワーク中に長いメッセージが滞留するために、ネットワークの輻輳を誘発することがあるという問題があった。
【非特許文献１】田邊、山本、濱田、中條、工藤、天野 : DIMMスロット搭載型ネットワークインターフェースDIMMnet-1とその高バンド幅通信機構BOTF,情報処理学会論文誌Vol.43, No.4, pp.866-878 (2002)
【非特許文献２】山本、渡邊、土屋、原田、今城、寺川、西、田邊、上嶋、工藤、天野 :高性能計算をサポートするネットワークインターフェース用コントローラチップMartini,情報処理学会論文誌Vol.43, No.SIG6(HPS5), pp.122-133 (2002)
【非特許文献３】Gropp, W., Lusk, E., Doss, N., Skjellum, A., “A High-Performance, Portable Implementation of the MPI Message Passing Interface Standard”, Parallel Computing, North-Holland, vol. 22, pp. 789-828 (1996)
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来、ネットワークインタフェースが複数の通信手段を具備したとしても、それらを組み合せることで得られる性能向上の可能性を引き出すことができなかった。さらに、メッセージ本体の分割により得られる性能向上の可能性を引き出すことができなかった。さらに、長いメッセージを通信する場合に、ネットワークの輻輳を誘発することがあるという問題があった。
【００１０】
本発明は、上記事情を考慮してなされたもので、通信遅延が短い高バンド幅なメッセージ交換を可能にするメッセージ通信方法並び受信側通信装置及び送信側通信装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係るメッセージ通信方法は、送信側通信装置が、受信側通信装置へ送信すべきメッセージを、第１の部分メッセージと第２の部分メッセージとに分割する第１のステップと、前記送信側通信装置が、前記第２の部分メッセージを保持した状態で、前記第１の部分メッセージを前記受信側通信装置へ送信する第２のステップと、前記受信側通信装置が、前記第１の部分メッセージを受信し、これを記憶装置に記憶するとともに、前記第１の部分メッセージに対する応答として、前記第２の部分メッセージの通信に関する要求を作成し、これを前記送信側通信装置へ送信する第３のステップと、前記送信側通信装置が、前記要求を受信し、これに応答して、前記第２の部分メッセージを前記受信側通信装置へ送信する第４のステップと、前記受信側通信装置が、前記第２の部分メッセージを受信し、これを前記記憶装置に記憶する第５のステップとを有することを特徴とする。
【００１２】
また、本発明は、第１の部分メッセージと第２の部分メッセージとを含むメッセージを受信する受信側通信装置において、前記第１の部分メッセージを記憶装置内の受信用記憶領域へ記憶する記憶手段と、前記第１の部分メッセージに対する応答として、前記メッセージのうちの第２の部分メッセージに対する遠隔アクセス要求を作成し、これを前記メッセージの送信元に送信する送信手段とを備え、前記送信手段は、前記記憶手段が前記第１の部分メッセージを記憶する動作と並列して動作することが可能であることを特徴とする。
【００１３】
また、本発明は、送信メッセージを第１の部分メッセージと第２の部分メッセージとに分割する分割手段と、前記第１の部分メッセージに前記第２の部分メッセージに関する情報を含むヘッダを付加し、該ヘッダを付加した前記第１の部分メッセージを送信する第１送信手段と、前記第２の部分メッセージに応答した受信先から前記第２の部分メッセージに対する遠隔アクセス要求を受信する受信手段と、前記第２の部分メッセージを送信する第２送信手段とを備えたことを特徴とする。
【００１４】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。  
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読み取り可能な記録媒体としても成立する。
【発明の効果】
【００１５】
本発明によれば、通信遅延が短く、高バンド幅なメッセージ交換を実現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら本発明の実施形態について説明する。
【００１７】
本実施形態では、１つの通信装置が受信側になる機能と送信側になる機能のいずれかを持つ場合を例にとって説明するが、もちろん、１つの通信装置が受信側になる機能と送信側になる機能の両方を備えてもよい。
【００１８】
図１に、本発明の一実施形態に係る第1の通信装置１の構成例を示す。また、図２に、本発明の一実施形態に係る第２の通信装置２の構成例を示す。
【００１９】
図１の通信装置１は、図２の通信装置２に対する受信側となる機能を有するものであり、図２の通信装置２は、図１の通信装置１に対する送信側となる機能を有するものである。
【００２０】
なお、図１の通信装置１と図２の通信装置２との間のネットワークは、特に限定されるものではなく、どのようなものであっても構わない。
【００２１】
受信側となる機能を有する第１の通信装置１は、図１に示されるように、通信リンクインタフェース１１、応答型遠隔アクセスパケット生成部１２、受信データ書込み制御部１３、第１の状態保持部１４、第２の状態保持部１５、メインメモリ（主記憶装置）１６を備えている。なお、ＣＰＵは図示を省略している。各部を制御するモジュールは、例えば、ミドルウェアとして、ＣＰＵ上で実現可能である。本実施形態において、応答型遠隔アクセスパケット生成部１２と受信データ書込み制御部１３とは、並列動作が可能である。
【００２２】
なお、図１では、通信リンクインタフェース１１、応答型遠隔アクセスパケット生成部１２、受信データ書込み制御部１３、第１の状態保持部１４及び第２の状態保持部１５（通信制御装置ａ）が、ＣＰＵ（図示せず）とメインメモリ１６を含む半導体チップ若しくはＩＣカード等（ホストｂ）とは別の半導体チップ若しくはＩＣカード等として形成されている例を示しているが、これに限定されるものではない。
【００２３】
一方、送信側となる機能を有する第２の通信装置２は、図２に示されるように、通信リンクインタフェース２１、低遅延低バンド幅送信部２２、高遅延高バンド幅送信部２３、メインメモリ（主記憶装置）２４、ＣＰＵ２５を備えている。各部を制御するモジュールは、例えば、ミドルウェアとして、ＣＰＵ２５上で実現可能である。本実施形態では、低遅延低バンド幅送信部２２をＢＯＴＦ送信機構により構成し、高遅延高バンド幅送信部２３をＲｅｍｏｔｅ  ＤＭＡ（以下、ＲＤＭＡ）送信機構により構成する場合を例にとって説明するが、これらに限定されるものではない。
【００２４】
なお、図２では、通信リンクインタフェース２１、低遅延低バンド幅送信部２２、高遅延高バンド幅送信部２３及びメインメモリ２４（通信制御装置ｃ）が、ＣＰＵ２５とメインメモリ２４を含む半導体チップ若しくはＩＣカード等（ホストｄ）とは別の半導体チップ若しくはＩＣカード等として形成されている例を示しているが（このため、図２では、通信制御装置ｃにホスト・インタフェース部２６が搭載されている例になっている）、これに限定されるものではない。
【００２５】
本実施形態では、受信側になる機能を有する通信装置は、ＭＰＩにおける受信関数（ＭＰＩ＿Ｒｅｃｅｉｖｅ（））を実行することによってデータの受信を行う機能を有し、送信側になる機能を有する通信装置は、ＭＰＩにおける送信関数（ＭＰＩ＿Ｓｅｎｄ（））を実行することによってデータの送信を行う機能を有する場合を例にとって説明する。以下では、図１の通信装置を受信関数実行側ノード、図２の通信装置を送信関数実行側ノードと呼んで説明する。
【００２６】
以下、本実施形態の動作について説明する。
【００２７】
図３に、本実施形態のメッセージ交換手順につき受信関数実行側ノード１及び送信関数実行側ノード２の動作のタイムチャート例を示す（ただし、図３は、動作の流れを説明するためのものであって、各動作の所要時間の関係は必ずしも正確なものではない）。また、図４〜図７に、受信関数実行側ノード１及び送信関数実行側ノード２における処理やメッセージの流れ等を示す。なお、図４〜図７においては、受信関数実行側ノード１及び送信関数実行側ノード２の図１及び図２の構成の一部を省略している。また、図３のｔ１〜ｔ６と図４〜図７の丸数字１〜丸数字６が対応している（図３におけるハッチングと図４〜図７におけるハッチングは必ずしも対応していない）。また、前述したように、ネットワーク３は、どのようなものであっても構わない。
【００２８】
さて、メッセージ交換を行うにあたって、コピー回数を減らして低遅延通信を実現する場合、送信関数実行側ノード２では、ＣＰＵ２５により、メインメモリ２４内あるいはＣＰＵ２５内等にある送信対象のメッセージを、メインメモリ４におけるページアウトされないユーザ領域にマップされた予約領域に作成する（書き込む）。その際、本実施形態では、送信すべきメッセージの全体ではなく、このメッセージを前後二つの部分に分割し（メッセージの先頭を含む部分を前側部分、最後尾を含む部分を後側部分と呼ぶものとする）、その後側部分を、この予約領域に書き込んでおく。このため、ここで消費される時間は、メッセージの全体を書き込むよりも短い。
【００２９】
図３において、ｔ１は、上記の送信関数実行側ノード１でのメッセージ後側部分をページアウトされない予約領域に作成するのに要する時間を示している。
【００３０】
また、図４に、このときの動作の様子を示す。
【００３１】
なお、上記のメッセージの分割にあたっては、メッセージを二等分する必要はなく、例えば前側部分を後側部分より短くすると好ましい。また、メッセージの分割の仕方として、より好ましい方法を後述する。
【００３２】
次に、送信関数実行側ノード２では、ＣＰＵ２５により、メッセージヘッダや、上記メッセージのうち残りの前側部分を低遅延低バンド幅送信部２２に書き込む。このメッセージヘッダには、このパケットが応答型遠隔読み出し付きの遠隔書き込みであることを示すパケットタイプ情報や、送信関数実行側ノード２におけるメッセージ後側部分の格納場所を示す情報が格納される。ＣＰＵ２５からの所定のアドレスへのアクセスによる指示により、低遅延低バンド幅送信部２２は、プロテクション情報などを付加して送信する。
【００３３】
図３において、ｔ２は、上記メッセージヘッダを付加されたメッセージ前側部分を、ＢＯＴＦを用いた低遅延低バンド幅送信部２２によって送信するのに要する時間を示している。
【００３４】
また、図５に、このときの動作の様子を示す。
【００３５】
ここで、本実施形態では、低遅延送信手段の一種であって、図８に示すようにＲＤＭＡと比較して短めのメッセージ長で高いバンド幅を出しやすい性質を有する、ＢＯＴＦによって送信する場合を例にとっている。なお、図８において、ｔ１１はＢＯＴＦによる通信遅延時間、ｔ１２はＲＤＭＡによる遠隔書込み（ＰＵＳＨ）による通信遅延時間、ｔ１３はＲＤＭＡによる遠隔読み出し（ＰＵＬＬ）による通信遅延時間をそれぞれ示している。図８は、メッセージ長がある長さ以上になるとＲＤＭＡの方が全体として遅延時間が短くなることを示している。このようにＢＯＴＦのような低遅延性を特徴とする通信手段により先行する部分メッセージを送信するために、受信関数実行側ノード１には速やかに図３のｔ１で書き込まれた残りのメッセージ後側部分の格納場所を示す情報とメッセージ前側部分とが伝達される。
【００３６】
次に、上記のメッセージヘッダ及びメッセージ前側部分が受信関数実行側ノード１に届き、受信関数実行側ノード１では、応答型遠隔アクセスパケット生成部１２により、これに対する応答として、メッセージ前側部分に付加されていたメッセージヘッダに含まれる送信関数実行側ノード２におけるメッセージ後側部分の格納場所を示す情報と、第２の状態保持部１５に保持される該メッセージ後側部分のためのメッセージ受信場所を示す情報を用いて、それら情報を含む遠隔読み出し要求（ＰＵＬＬ要求）を作成し、これを送信関数実行側ノード２に対して送信する。
【００３７】
図３において、ｔ３は、受信関数実行側ノード１において、メッセージ前側部分に付加されていたメッセージヘッダに含まれている送信関数実行側ノード２におけるメッセージ後側部分の格納場所を示す情報と、受信関数実行側ノード１におけるメッセージ受信場所を示す情報を用いて、送信関数実行側ノード２に対して遠隔読み出し要求を送信する時間を示している。
【００３８】
また、図５及び図６に、このときの動作の様子を示す。
【００３９】
ここで、受信関数実行側ノード１におけるメッセージの受信場所は、受信関数実行側ノード１の状態により異なる。
【００４０】
受信関数実行側ノード１が受信前にＭＰＩ＿Ｒｅｃｅｉｖｅ（）などのメッセージ受信関数を実行済みの場合は、その関数の中で指定される引数がメッセージ受信場所の先頭を与える。
【００４１】
他方、受信関数実行側ノード１が受信前にメッセージ受信関数を実行していない場合は、ＭＰＩ等のメッセージ交換システムが提供するバッファの空き領域へのポインタがメッセージ受信場所の先頭を与える。
【００４２】
他方、これらメッセージ受信場所の先頭を与えるアドレス（第１のアドレス）から、メッセージ前側部分の長さからメッセージヘッダの長さを除いた長さだけずれたアドレス（第２のアドレス）が、送信関数実行側ノード２に返される遠隔読み出し要求に組み込まれ、読み出された応答データが将来そこに受信されることになる。
【００４３】
なお、第１のアドレスを示す情報が第１状態保持部１４に保持され、第２のアドレスを示す情報が第２状態保持部１５に保持されることになる。
【００４４】
さて、これ以降は、送信関数実行側ノード２と受信関数実行側ノード１で処理が時間的にオーバーラップして進行する。
【００４５】
受信関数実行側ノード１では、受信データ書込み制御部１３により、メッセージ前側部分を、メインメモリ１６内の受信領域（第１状態保持部１４に保持されている情報により示される第１のアドレスを先頭とする記憶領域）に書き込む。
【００４６】
図３において、ｔ４は、受信関数実行側ノード１でのメッセージ前側部分を上記受信領域に書き込む時間を示している。
【００４７】
また、図５及び図６に、このときの動作の様子を示す。
【００４８】
なお、本実施形態において、応答型遠隔アクセスパケット生成部１２と受信データ書込み制御部１３とは、並列動作が可能である。
【００４９】
特に、例えばメッセージを次に示す分割方法で分割することで、使用するハードウェア上の資源が重ならないようにすることが可能なので、図３に示されるように、ｔ３の動作とｔ４の動作はオーバーラップ実行が可能である。
【００５０】
上記分割方法としては、例えば、当該受信関数実行側ノード１と当該送信関数実行側ノード２との間における、メッセージ後側部分の遠隔読出し遅延時間と、メッセージ前側部分の書き込み時間とがほぼ等しくなるような位置に、低遅延低バンド幅による通信を用いるメッセージ前側部分と、高遅延高バンド幅による通信を用いるメッセージ後側部分との分割位置を制御する方法が考えられる。なお、この分割位置は、当該受信関数実行側ノード１と当該送信関数実行側ノード２とのペアごとに異なり得るので、各ペアごとに設定するのが望ましい。
【００５１】
図３において、ｔ５は、送信関数実行側ノード２での遠隔読み出し要求に対する応答（ＰＵＬＬ応答）を開始するまでの遅延時間を示している。送信関数実行側ノード２では、高遅延高バンド幅送信部２３により、ネットワーク３での遅延時間を加算した時間の後に届いた遠隔読出し要求を受信し、メッセージ後側部分をメインメモリ２４から読み出し送信する。
【００５２】
また、図６及び図７に、このときの動作の様子を示す。
【００５３】
図３において、ｔ６は、送信関数実行側ノード２でのメッセージ後側部分を読み出し送信（ＰＵＬＬ  ＤＭＡ転送）する時間を示している。これと同等の時間が受信関数実行側ノード１でのメッセージ後側部分をメインメモリ１６内の受信領域（すでに書き込まれているメッセージ前側部分に続く記憶領域、すなわち、第２状態保持部１５に保持されている情報により示される第２のアドレスを先頭とする記憶領域）に書き込む時間となる。
【００５４】
また、図７に、このときの動作の様子を示す。
【００５５】
受信したメッセージ後側部分を上記受信領域に書き込む時間は、メッセージ前側部分に含まれるデータ量によって変化するが、図３のように、これがちょうど遠隔読出しの応答が戻ってくる時に終わると最も効率的となる。遠隔読出しの応答が戻ってくるまでの遅延時間はノードペアごとに異なるのが一般的であるが、その遅延時間とメッセージ前側部分を受信領域に書き込む時間とがほぼ等しくなる点で最大の実効バンド幅が得られる。すなわち、前述したように、メッセージ前側部分に含まれるデータ量（すなわち、メッセージをどの位置で分割するか）をノードペアごとに制御することによって、上記のタイミングを調整すると好ましい。
【００５６】
ここで、上記した本実施形態の動作と比較するために、図９に従来のメッセージ交換方式の一例における送信側及び受信側の動作のタイムチャートを示す。
【００５７】
図９において、ｔ１０１は、従来の送信関数実行側ノードでのメッセージの全体をページアウトされない予約領域に作成する時間を示している。図３ではこの時点で既にＢＯＴＦによる送信が行われているのに対し、従来の図９ではまだ送信は始まっていない。
【００５８】
図９において、ｔ１０２は、従来の送信関数実行側ノードでのソフトウェアによるＤＭＡコントローラの設定時間を示している。図９では、ｔ１０２が終了したところで初めて送信が開始される。ネットワークを通過した後に受信関数実行側ノードにメッセージは届く。
【００５９】
図９において、ｔ１０３は、従来の受信関数実行側ノードがメッセージのヘッダ部分を解釈して従来の受信関数実行側ノードに設定されている受信領域のアドレスに書き込むまでの準備時間を示している。また、ｔ１０４は、従来の送信関数実行側ノードでのメッセージ本体のＰＵＳＨ  ＤＭＡ送信を示している。ｔ１０３の遅延時間により、ｔ１０４で示される従来の送信関数実行側ノードでのメッセージ本体のＤＭＡ送信が早い時期に開始され、従来の受信関数実行側ノードの入口まで届いているにもかかわらず、ｔ１０４で示される従来の受信関数実行側ノードでのメッセージ本体のＤＭＡ受信の開始が後にずれることになる。よって、この待ちはネットワークでの長いメッセージの滞留を意味し、輻輳の原因ともなり得る。
【００６０】
このように、本実施形態は、図９で示される従来例と比べ、受信関数実行側ノードへのヘッダ情報伝達が早く、受信関数実行側ノードでのＤＭＡ受信開始が早く、ネットワークでの輻輳を引き起こしにくくすることから、通信全体にかかる時間が短くなる。つまり、本実施形態により低遅延で高バンド幅が得られることになる。
【００６１】
なお、以上では、メッセージを２分割してそれぞれを異なる送信手段で送信する場合を例にとって説明したが、メッセージを３以上に分割してそれらを２又は３以上の異なる送信手段で送信するメッセージ交換手順も可能である。
【００６２】
なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。  
また、本実施形態は、コンピュータに所定の手順を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【００６３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係る第１の通信装置の構成例を示す図
【図２】同実施形態に係る第２の通信装置の構成例を示す図
【図３】同実施形態におけるメッセージ交換での第１及び第２の通信装置の動作のタイムチャート例を示す図
【図４】同実施形態の動作について説明するための図
【図５】同実施形態の動作について説明するための図
【図６】同実施形態の動作について説明するための図
【図７】同実施形態の動作について説明するための図
【図８】性質の異なる複数種類の通信手段のメッセージ長による通信時間の例を示す図
【図９】従来のメッセージ交換方式における送信側及び受信側の動作のタイムチャートを示す図
【符号の説明】
【００６５】
１…第１の通信装置、２…第２の通信装置、３…ネットワーク、１１…通信リンクインタフェース、１２…応答型遠隔アクセスパケット生成部、１３…受信データ書込み制御部、１４…第１状態保持部、１５…第２状態保持部、１６…メインメモリ、２１…通信リンクインタフェース、２２…低遅延低バンド幅送信部、２３…高遅延高バンド幅送信部、２４…メインメモリ、２５…ＣＰＵ、２６…ホスト・インタフェース部
【図１】
2005277530.tif 000003
【図２】
2005277530.tif 000004
【図３】
2005277530.tif 000005
【図４】
2005277530.tif 000006
【図５】
2005277530.tif 000007
【図６】
2005277530.tif 000008
【図７】
2005277530.tif 000009
【図８】
2005277530.tif 000010
【図９】
2005277530.tif 000011