(57)【要約】【課題】複数の計算機に分散して配置されているデータがデータ処理を行う計算機に全て受信されたことを条件として該データの受信に係る処理を開始する計算機並列計算機において、それぞれデータの送受信が行われる都度発生する処理によるオーバーヘッドの解消を図る。【解決手段】本発明の並列計算機の通信Ｉ／Ｆ部１０３は、一連の同期処理に係るメッセージが入ったパケットを全ての複数のノードコンピュータから受信したことを同期待ち合わせにより確認する割り込み発生条件判定部１０３ｂを備える。割り込み発生条件判定部１０３ｂが割り込み発生条件記憶部１０２ａに記憶される割り込み発生条件が充足されたと判定して始めてプロセッサ１０１に対して割り込み又はイベントを発生させるよう割り込み発生部１０３ａに対して指示を出力する。【選択図】        図２
2007272694.tif 000002
【特許請求の範囲】
【請求項１】
複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信インターフェース装置であって、
前記複数の送信側計算機からの受信パケットに応じたメモリ操作を行う不可分操作を実行する不可分操作実行手段と、
前記不可分操作実行手段により前記不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定手段と
を備えたことを特徴とする通信インターフェース装置。
【請求項２】
前記不可分操作実行手段は、当該通信インターフェース装置を有する当該計算機からの送信データに応じてもメモリ操作を行う不可分操作を実行することを特徴とする請求項１に記載の通信インターフェース装置。
【請求項３】
前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの処理の開始のために該計算機のプロセッサに割り込みを発生させる割り込み発生手段をさらに備えたことを特徴とする請求項１又は２に記載の通信インターフェース装置。
【請求項４】
前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの送信側計算機に対して完了通知を送信する完了通知送信手段をさらに備えたことを特徴とする請求項１又は２に記載の通信インターフェース装置。
【請求項５】
前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記送信側計算機に対して予め定められた通信処理を実行する通信処理実行手段をさらに備えたことを特徴とする請求項１又は２に記載の通信インターフェース装置。
【請求項６】
前記メモリ操作結果を前記受信パケットに基づく更新データとは別に記憶するメモリ操作結果記憶手段と、
前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記メモリ操作結果記憶手段に記憶される前記メモリ操作結果を初期化するメモリ操作結果初期化手段と
をさらに備えたことを特徴とする請求項１又は２に記載の通信インターフェース装置。
【請求項７】
前記メモリ操作結果初期化手段による前記メモリ操作結果の初期化以前に、前記送信側計算機から受信パケットをさらに受信した場合に、前記不可分操作実行手段による前記不可分操作の実行を中止させる不可分操作実行中止手段と、
前記不可分操作実行中止手段により前記不可分操作の実行が中止させられた情報を前記送信側計算機へ送信する不可分操作中止情報送信手段と
をさらに備えたことを特徴とする請求項６に記載の通信インターフェース装置。
【請求項８】
前記受信側計算機から前記不可分操作中止情報送信手段により送信された前記不可分操作の実行が中止させられた情報を受信すると、該受信側計算機へのデータ送信を再試行するパケット送信再試行手段をさらに備えたことを特徴とする請求項７に記載の通信インターフェース装置。
【請求項９】
複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信方法であって、
前記複数の送信側計算機からの受信パケットに基づいたメモリ操作を行う不可分操作を実行する不可分操作実行工程と、
前記不可分操作実行工程により前記不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定工程と
を含んだことを特徴とする通信方法。
【請求項１０】
前記不可分操作実行工程は、該通信方法を有する当該計算機からの送信データに応じてもメモリ操作を行う不可分操作を実行することを特徴とする請求項９に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信インターフェース装置及び通信方法に関し、特に、複数の計算機に分散して配置されているデータがデータ処理を行う計算機に全て受信されたことを条件として該データの受信に係る処理を開始する計算機並列計算機において、それぞれデータの送受信が行われる都度発生する処理によるオーバーヘッドの解消を図る通信インターフェース装置及び通信方法に関する。
【背景技術】
【０００２】
従来から、複数の計算機を接続して通信を行わせることにより、計算機間でノード間通信によりデータの授受を行うことが行われてきた。近時においては、計算機の処理能力の向上が目覚しく、かつ計算機間の通信回線の速度向上が図られてきている一方で、ノード間通信によるデータの授受に係るオーバーヘッドが依然として大きく、このオーバーヘッドの解決がノード間通信によるデータ通信のボトルネックとなってきている。
【０００３】
かかるボトルネックの一例として、受信側計算機において、データ受信に際して割り込み処理が発生し、この割り込み処理による受信側計算機のプロセッサに係る処理負担が増すことが挙げられる。
【０００４】
このようなデータ通信に係る割り込み処理のボトルネックを解決するために、例えば、特許文献１には、シリアル通信の受信パケットが所定値に一致した場合に、受信側計算機のプロセッサに割り込み処理を発生させる回路を備え、データ通信に伴うプロセッサのソフトウェア処理負担を軽減し、以ってデータ通信の通信処理速度を向上させる計算機が開示されている。
【０００５】
また、特許文献２には、２台の計算機間で第１のデータブロック及び第２のデータブロックを連続して通信する場合に、受信側計算機のプロセッサに対して各データブロックの送信開始時及び送信終了時に割り込みを発生させることとなるが、連続して送信される第１のデータブロックのデータブロック送信終了時に発生される割り込みと第２のデータブロックのデータブロック送信開始時に発生される割り込み処理は、時間的に近接して発生されるので、これらをまとめて１つの割り込み処理で処理することが可能な通信インターフェース装置が開示されている。これにより、割り込み処理により受信側プロセッサに係るオーバーヘッドを軽減し、以ってデータ通信の通信処理速度を向上させることができる。
【０００６】
【特許文献１】特開２０００−８９９６８号公報
【特許文献２】特許第２５８４９５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、近年、複数の計算機を通信可能に多数接続してあたかも１台の計算機のように協調動作させることにより、膨大なデータ処理能力、計算能力を獲得した並列計算機が、従来の大型コンピュータに代わる計算機システムとして主流となりつつある。
【０００８】
かかる並列計算機において、複数の計算機に分散して配置されているデータに基づきデータ処理を行う計算機のプロセッサで処理を行うことがある。この処理の際に、ノード間通信を使用して、複数の計算機に分散して配置されているデータをデータ処理を行う計算機へ送信することとなる。
【０００９】
そして、複数の計算機に分散して配置されているデータがデータ処理を行う計算機に全て受信されたことを条件としてデータ処理を行う計算機でのデータ処理が開始されることとなる。
【００１０】
ここで、上記特許文献１及び２に代表される従来技術の技術思想を適用すると、データを送信する各計算機からデータ処理を行う計算機へのデータ通信の際に発生する各割り込み処理におけるオーバーヘッドの問題を解決することは可能となる。しかしながら、各計算機からデータ処理を行う計算機へデータの送受信が行われる都度割り込み処理が発生するため、上記特許文献１及び２に代表される従来技術の技術思想の適用を以ってしても、かかる割り込み処理の頻発を抑制することは不可能である。
【００１１】
本発明は、上記問題点（課題）を解消するためになされたものであって、複数の計算機に分散して配置されているデータがデータ処理を行う計算機に全て受信されたことを条件として該データの受信に係る処理を開始する計算機並列計算機において、それぞれデータの送受信が行われる都度発生する処理によるオーバーヘッドを極力抑えることが出来る通信インターフェース装置及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した問題を解決し、目的を達成するため、本発明は、複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信インターフェース装置であって、前記複数の送信側計算機からの受信パケットに応じたメモリ操作を行う不可分操作を実行する不可分操作実行手段と、前記不可分操作実行手段により前記不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定手段とを備えたことを特徴とする。
【００１３】
また、本発明は、上記発明において、前記不可分操作実行手段は、当該通信インターフェース装置を有する当該計算機からの送信データに応じてもメモリ操作を行う不可分操作を実行することを特徴とする。
【００１４】
また、本発明は、上記発明において、前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの処理の開始のために該計算機のプロセッサに割り込みを発生させる割り込み発生手段をさらに備えたことを特徴とする。
【００１５】
また、本発明は、上記発明において、前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの送信側計算機に対して完了通知を送信する完了通知送信手段をさらに備えたことを特徴とする。
【００１６】
また、本発明は、上記発明において、前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記送信側計算機に対して予め定められた通信処理を実行する通信処理実行手段をさらに備えたことを特徴とする。
【００１７】
また、本発明は、上記発明において、前記メモリ操作結果を前記受信パケットに基づく更新データとは別に記憶するメモリ操作結果記憶手段と、前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記メモリ操作結果記憶手段に記憶される前記メモリ操作結果を初期化するメモリ操作結果初期化手段とをさらに備えたことを特徴とする。
【００１８】
また、本発明は、上記発明において、前記メモリ操作結果初期化手段による前記メモリ操作結果の初期化以前に、前記送信側計算機から受信パケットをさらに受信した場合に、前記不可分操作実行手段による前記不可分操作の実行を中止させる不可分操作実行中止手段と、前記不可分操作実行中止手段により前記不可分操作の実行が中止させられた情報を前記送信側計算機へ送信する不可分操作中止情報送信手段とをさらに備えたことを特徴とする。
【００１９】
また、本発明は、上記発明において、前記受信側計算機から前記不可分操作中止情報送信手段により送信された前記不可分操作の実行が中止させられた情報を受信すると、該受信側計算機へのデータ送信を再試行するパケット送信再試行手段をさらに備えたことを特徴とする。
【００２０】
また、本発明は、複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信方法であって、前記複数の送信側計算機からの受信パケットに基づいたメモリ操作を行う不可分操作を実行する不可分操作実行工程と、前記不可分操作実行工程により前記不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定工程とを含んだことを特徴とする。
【００２１】
また、本発明は、上記発明において、前記不可分操作実行工程は、該通信方法を有する当該計算機からの送信データに応じてもメモリ操作を行う不可分操作を実行することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、通信インターフェース装置が、不可分操作実行手段により不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定手段を備えたので、該条件充足まで受信パケットの処理を開始しない同期待ち合わせを通信インターフェース装置により制御可能となり、並列計算機のプロセッサの処理負担を軽減し、並列計算機の処理能力の向上を図ることができるという効果を奏する。
【００２３】
また、本発明によれば、並列計算機における自計算機からのパケット受信に応じてもメモリ操作を行うことができ、計算機間の通信機能が停止した場合でも、自計算機のみで処理を実行することができるという効果を奏する。
【００２４】
また、本発明によれば、割り込み発生条件判定手段によりメモリ操作結果が予め定められた条件を満たすと判定された場合に、受信パケットの処理の開始のために該計算機のプロセッサに割り込みを発生させる割り込み発生手段を備えたので、受信パケットの同期待ち合わせにおいてプロセッサの処理負担となる割り込みの発生が頻発することを抑え、並列計算機の処理能力の向上を図ることができるという効果を奏する。
【００２５】
また、本発明によれば、割り込み発生条件判定手段によりメモリ操作結果が予め定められた条件を満たすと判定された場合に、受信パケットの送信側計算機に対して完了通知を送信する完了通知送信手段を備えたので、受信パケットの送信側計算機が、メモリ操作結果が予め定められた条件を満たして終了したことを認識することができるという効果を奏する。
【００２６】
また、本発明によれば、割り込み発生条件判定手段によりメモリ操作結果が予め定められた条件を満たすと判定された場合に、送信側計算機に対して予め定められた通信処理を実行する通信処理実行手段を備えたので、一つの同期待ち合わせの終了に連鎖させて他の通信処理を実行することができるという効果を奏する。
【００２７】
また、本発明によれば、メモリ操作結果を受信パケットに基づく更新データとは別に記憶するメモリ操作結果記憶手段を備えたので、受信パケットに基づく更新データが破壊された場合にも割り込み発生条件の判定を確実に行うことができるという効果を奏する。また、割り込み発生条件判定手段によりメモリ操作結果が予め定められた条件を満たすと判定された場合に、メモリ操作結果記憶手段に記憶されるメモリ操作結果を初期化するメモリ操作結果初期化手段とを備えたので、受信パケットに基づく更新データとは別のメモリ操作結果の初期化を確実に行い、割り込み発生条件の判定対象であるメモリ操作結果を常にクリーンに保つことができるという効果を奏する。
【００２８】
また、本発明によれば、一の同期待ち合わせ処理にかかる受信パケットが全て受信されていない段階では、他の同期待ち合わせ処理にかかるパケットを受信しない排他制御を行って、同期待ち合わせ処理が集中して混乱することを防止し、並列計算機の処理の能力の低下を防ぐことができるという効果を奏する。また、他の同期待ち合わせ処理にかかるパケットを送信した計算機に対してパケット受信を中止したことを伝達するので、該計算機は、再試行を行うことができるという効果を奏する。
【００２９】
また、本発明によれば、受信が中止させられた他の同期待ち合わせ処理にかかる受信パケットを送信した計算機がパケット送信を再試行することができ、パケットの受信が中止された場合にも確実に同期待ち合わせ処理を実行することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３０】
以下に添付図面を参照して、本発明の通信インターフェース装置及び通信方法に係る実施例を詳細に説明する。以下に示す実施例では、本発明を、並列アプリケーションを実行する、複数のコンピュータが接続された並列計算機における同期待ち合わせ処理（同期処理）に適用した例を示すこととする。なお、本発明における並列計算機は、クラスタ計算機、グリッドコンピューティング計算機などを広く含む。また、以下の実施例は、並列計算機における計算機間のインターフェース規格であるInfiniBandやMyrinet（登録商標）に代表される遠隔の計算機からのメモリへの直接アクセス技術であるＲＤＭＡ（Remote Direct Memory Access）を前提とするものである。
【実施例】
【００３１】
先ず、従来の並列計算機の構成と同期処理における問題点について説明する。図１は、従来の並列計算機の構成と同期処理における問題点を示す図である。同図に示すように、ノードコンピュータＡ、Ｂ及びＣがノードとして相互に通信可能に接続されている従来の並列計算機において、メッセージ通信によるノードコンピュータＢからノードコンピュータＡへのパケットと、同じくメッセージ通信によるノードコンピュータＣからノードコンピュータＡへのパケットとが略同時に送信される状況で、問題が発生していた。
【００３２】
ここで、パケットとは、ネットワークを介して遠隔に存在するコンピュータに、該パケットに対応するAtomic Operation等の実行を依頼するデータであり、該Atomic Operationの実行対象となるデータを含むものである。Atomic Operationとは、該Atomic Operationの実行終了まで割り込みを禁止して、他の命令の実行を行わせない操作である。
【００３３】
ノードコンピュータＡ、Ｂ及びＣは、ＣＰＵなどのプロセッサと、メモリなどの記憶部と、ネットワークインターフェースカードである通信Ｉ／Ｆ部とを有する。プロセッサは、さらに同期処理部を有する。記憶部は、受信パケットを含むデータの書き込み領域であるデータ記憶部をさらに有する。通信Ｉ／Ｆ部は、Atomic Operation等を実行する通信処理実行部と、割り込み発生部とをさらに有する。
【００３４】
同期処理部は、割り込み処理部により割り込み処理が発生される毎に、あるプロセッサ処理に必要な複数のノードコンピュータからの送信データが全て到着するまで、ソフトウェア制御により該送信データの到着の監視を行う。
【００３５】
通信処理実行部は、他のノードコンピュータからのパケットを受信すると、該パケットに応じたAtomic Operation等の通信処理を実行して、直接データ記憶部においてメモリ操作を行う。また、割り込み発生部に対して、プロセッサにデータの受信に係る割り込み処理を発生させる指示を出力する。
【００３６】
割り込み発生部は、通信処理実行部からの割り込み処理発生指示に基づいて、同期処理部にプロセッサに対して割り込み処理を発生させ、また、プロセッサから出力された外部へのパケット送信指示であるＳＷＲ（Send Work Request）に基づいて、通信処理実行部にパケットの送信の指示を出力する。また、割り込み発生部からの他のノードコンピュータへのパケット送信指示に基づいて、対応するパケットを該他のノードコンピュータへ送信する。
【００３７】
先ず、（１）ノードコンピュータＢから、同期処理に係るメッセージが入ったパケットがノードコンピュータＡにより受信されると、このパケットの受信に基づくメッセージ受信が実行されるが、該メッセージ受信実行のために、プロセッサにおいて割り込み処理が発生される。続いて、（２）ノードコンピュータＣから、同期処理に係るメッセージが入ったパケットがノードコンピュータＡにより受信されると、このパケットの受信に基づくメッセージ受信が実行されるが、該メッセージ受信実行のために、再びプロセッサにおいて割り込み処理が発生される。
【００３８】
このように、従来の並列計算機は、同期処理の対象となる複数のパケットの受信毎にプロセッサに割り込み処理を発生させることとなる。そして、割り込み発生毎に、あるプロセッサ処理に必要な複数のノードコンピュータからの送信データが全て到着するまで、ソフトウェア制御により該送信パケットの到着の監視を行う。これらにより、プロセスの切り替えによるプロセッサのコンテキストスイッチが大きく乱されることとなる。
【００３９】
また、パケットに応じたAtomic Operationを、従来技術をそのまま移行してネットワーク経由で使用するとなると、送信側で受信側のロックを取るまでリトライを繰り返すSpin Lockを使用して排他制御を行うことになるが、このリトライによる待ちの発生によって発生する送信側のプロセッサにおけるプロセスの切り替えによってコンテキストスイッチが大きく乱されてしまうことにもなる。
【００４０】
これらのことにより、並列計算機において分散アプリケーションを実行する場合には、個々の計算機の処理能力がいくら高くても、計算機間の通信において、同期処理に係る割り込み処理の頻発、プロセスの切り替えによるコンテキストスイッチの増大、キャッシュデータのパージのために起こるメモリアクセスレイテンシの増大により、並列計算機全体として高い処理能力を期待することが難しくなってしまう。
【００４１】
そこで、本発明は、前述のメッセージ通信を行う分散アプリケーションの特徴に着目し、複数のメッセージパケットが到着するまでプロセッサにおける処理を開始しないアプリケーションにおいて、メッセージパケットが到着する毎にプロセッサに割り込みを発生させ、プロセッサで同期処理を行うことなどの計算機間の通信に伴うオーバーヘッドを解消して、並列計算機全体の処理能力を向上させることができる通信インターフェース装置及び通信方法を提供するためになされた。
【００４２】
次に、実施例の並列計算機の構成について説明する。図２は、実施例の並列計算機の構成を説明する機能ブロック図である。同図に示すノードコンピュータＡ１００、ノードコンピュータＢ２００及びノードコンピュータＣ３００は同一の機能ブロックを有するので、ここでは、ノードコンピュータＡ１００に代表させて、ノードコンピュータの機能ブロックについて説明する。
【００４３】
ノードコンピュータＡ１００は、ＣＰＵなどのプロセッサ１０１と、メモリなどの記憶部１０２と、ネットワークインターフェースカードである通信Ｉ／Ｆ部１０３とを有する。なお、実施例のプロセッサ１０１は、同期処理部を有さない点に大きな特徴がある。記憶部１０２は、割り込みを発生させる条件を記憶する割り込み発生条件記憶部１０２ａと、受信パケットを含むデータの書き込み領域であるデータ記憶部１０２ｂとをさらに有する。通信Ｉ／Ｆ部１０３は、割り込み発生部１０３ａと、割り込み発生条件判定部１０３ｂと、通信処理実行部１０３ｃとをさらに有する。
【００４４】
割り込み発生部１０３ａは、割り込み発生条件判定部１０３ｂからの割り込み処理発生指示に基づいて、プロセッサ１０１に対して割り込み又はイベントを発生さる。また、プロセッサ１０１から出力された外部へのパケット送信指示であるＳＷＲに基づいて、通信処理実行部１０３ｃにパケットの送信の指示を出力する。通信処理実行部１０３ｃは該指示に基づいて他のノードコンピュータへパケットを送信する。
【００４５】
割り込み発生条件判定部１０３ｂは、通信処理実行部１０３ｃからのAtomic Operation実行通知に基づいて、割り込み発生条件記憶部１０２ａから割り込み発生条件を、データ記憶部１０２ｂからAtomic Operationによりメモリ操作後のメモリの値を読み出して、両者を比較する。この比較結果が、両者が一致するものと判定されたものである場合に、割り込み発生部１０３ａに対して割り込み又はイベント発生の指示を出力すると共に、通信処理実行部１０３ｃに対して当該メモリ操作が基づくパケットの全ての送信元のノードコンピュータへ完了通知を送信するように指示する。
【００４６】
なお、実施例では、前述の“割り込み発生条件”をデータ記憶部１０２ｂに最終的に保持されるべき値の目標値であるとし、前述の“メモリ操作後のデータ記憶部１０２ｂの値”をデータ記憶部１０２ｂに格納される値そのものであるする。しかし、これに限らず、“割り込み発生条件”を同期処理に必要な受信パケットの受信回数とし、“メモリ操作後のデータ記憶部１０２ｂの値”を該データ記憶部１０２ｂに格納される受信回数のカウント値であるとしてもよい。
【００４７】
また、割り込み発生条件記憶部１０２ａは、記憶部１０２に配置されるものであることに限られず、通信Ｉ／Ｆ部１０３内に設けられた所定の記憶領域に配置されることとしてもよい。
【００４８】
また、前述の通信処理実行部１０３ｃからのAtomic Operation実行通知は、Atomic Operationの一種である。さらに、割り込み発生条件と、データ記憶部１０２ｂからAtomic Operationによりメモリ操作後のメモリの値との両者を比較の実行もAtomic Operationの一種である。さらには、この比較結果が、両者が一致するものと判定されたものである場合に、割り込み発生部１０３ａに対して出力する割り込み発生の指示もAtomic Operationの一種である。これらのAtomic Operationは、実施例の通信Ｉ／Ｆ部１０３に新規に追加されたAtomic Operationである。
【００４９】
通信処理実行部１０３ｃは、他のノードコンピュータから同期処理に係るメッセージが入ったパケットを受信すると、該パケットに応じたAtomic Operation等の通信処理を実行して、直接データ記憶部１０２ｂにおいてメモリ操作を行う。一連の同期処理に係るメッセージが入ったパケットを始めて受信した場合には、同期処理を行っていることを示す情報を同期処理中フラグ等により排他制御し、前述のAtomic Operation実行通知が出力されると、同期処理中フラグ等を初期化して該同期処理が終了したことを認識可能とする。なお、同期処理を行っていることを示す情報は、前述の“割り込み発生条件”と比較される情報が前述の“メモリ操作後のデータ記憶部１０２ｂの値”が該データ記憶部１０２ｂに格納される受信回数のカウント値である場合には、該受信回数のカウント値としてもよい。
【００５０】
なお、通信処理実行部１０３ｃは、他のノードコンピュータから同期処理に係るメッセージが入ったパケットを受信するのみならず、自ノードコンピュータからの同期処理に係るメッセージが入ったパケットを受信可能である。これは、通信処理実行部１０３ｃが、自ノードコンピュータに対してもパケットの送信が可能であることに基づく。
【００５１】
同期処理に係るメッセージが入ったパケットにより操作が指定されるメモリ領域のアドレスは仮想アドレスであるので、実施例の通信Ｉ／Ｆ部１０３は、該仮想アドレスを実アドレスへ変換する変換機能を包含している。また、割り込み発生条件判定部１０３ｂに対して、割り込み発生部１０３ａにデータの受信に係る割り込み処理を発生させる指示を出力する。また、割り込み発生部１０３ａからの他のノードコンピュータへのパケット送信指示に基づいて、対応するパケットを該他のノードコンピュータへ送信する。
【００５２】
同図に示すように、割り込み発生条件が「ノードコンピュータＢ２００及びノードコンピュータＣ３００の双方からのパケットに応じたAtomic Operationによるメモリ操作結果のメモリ値がある値となること」であることを前提とし、ノードコンピュータＡ１００、ノードコンピュータＢ２００及びノードコンピュータＣ３００をノードとして構成される並列計算機において、（１）ノードコンピュータＢ２００からの同期処理に係るメッセージが入ったパケットがノードコンピュータＡ１００により受信され、続いて、（２）ノードコンピュータＣ３００からの同期処理に係るメッセージが入ったパケットがノードコンピュータＡ１００により受信されるものする。
【００５３】
ノードコンピュータＡ１００の通信処理実行部１０３ｃは、ノードコンピュータＢ２００からの同期処理に係るメッセージが入ったパケットを受信すると、データ記憶部１０２ｂに対してメモリ操作を行い、割り込み発生条件判定部１０３ｂに対してAtomic Operationを実行してパケット受信を通知する。
【００５４】
そして、割り込み発生条件判定部１０３ｂは、割り込み発生の条件が充足されたか否かを判定するが、この時は、まだ条件は充足されていないと判定されるので、割り込み発生部１０３ａに対して何ら指示の出力を行わない。
【００５５】
続いて、ノードコンピュータＡ１００の通信処理実行部１０３ｃは、ノードコンピュータＣ３００からの同期処理に係るメッセージが入ったパケットを受信すると、データ記憶部１０２ｂに対してメモリ操作を行い、割り込み発生条件判定部１０３ｂに対してAtomic Operationを実行してパケット受信を通知する。
【００５６】
そして、割り込み発生条件判定部１０３ｂは、割り込み発生の条件が充足されたか否かを判定するが、この時は、条件が充足されたと判定されるので、割り込み発生部１０３ａに対してプロセッサ１０１に対する割り込み発生の指示の出力を行う。プロセッサ１０１は、該割り込みの発生により一連のメモリ操作の終了を認識し、データ記憶部１０２ｂに記憶されるメモリの値を参照して所定の処理を開始する。
【００５７】
このように、実施例のノードコンピュータは、従来はプロセッサ１０１で行っていた同期所に係るパケットの同期処理を、通信Ｉ／Ｆ部１０３で行うようにしたので、パケット受信毎に発生する割り込み及び同期処理によるプロセッサのコンテキストスイッチの乱れを抑制することができる。即ち、実施例によれば、同期処理に係るメッセージが入ったパケット受信毎に発生する割り込みの発生を１回に押さえ、同期処理をプロセッサにおけるソフトウェア制御から通信Ｉ／Ｆ部におけるハードウェア処理へ委譲したので、プロセッサのコンテキストスイッチの混乱を抑制し、以って並列計算機における計算機間の通信速度を向上させ、並列計算機の処理能力を向上させることができる。
【００５８】
次に、図２に示した並列計算機における同期処理について説明する。図３は、図２に示した並列計算機における同期処理を示すシーケンス図である。同図に示すように、先ず、ノードコンピュータＢ２００からノードコンピュータＡ１００の通信処理実行部１０３ｃへパケットが送信され、該通信処理実行部１０３ｃにより受信される（ステップＳ１０１）。
【００５９】
以降は、ノードコンピュータＡ１００の内部における処理である。続いて、通信処理実行部１０３ｃから記憶部１０２へ、ノードコンピュータＢ２００からのパケットに応じたメモリ処理が実行され（ステップＳ１０２）、さらに、割り込み発生条件判定部１０３ｂへ割り込み発生条件充足判定命令が出力される（ステップＳ１０３）。続いて、記憶部１０２から、割り込み発生条件が割り込み発生条件判定部１０３ｂに読み出される（ステップＳ１０４）。
【００６０】
次に、割り込み発生条件判定部１０３ｂは、割り込み発生条件充足判定を行う（ステップＳ１０５）。この判定処理の結果、割り込み発生条件は充足されていないと判定されたので、同期処理に係る次のパケットの受信を待つこととなる。
【００６１】
次に、ノードコンピュータＣ３００からノードコンピュータＡ１００の通信処理実行部１０３ｃへパケットが送信され、該通信処理実行部１０３ｃにより受信される（ステップＳ１０６）。
【００６２】
次に、通信処理実行部１０３ｃから記憶部１０２へ、ノードコンピュータＣ３００からのパケットに応じた処理が出力され（ステップＳ１０７）、さらに、割り込み発生条件判定部１０３ｂへ割り込み発生条件充足判定命令が出力される（ステップＳ１０８）。続いて、記憶部１０２から、割り込み発生条件が割り込み発生条件判定部１０３ｂに読み出される（ステップＳ１０９）。
【００６３】
次に、割り込み発生条件判定部１０３ｂは、再度割り込み発生条件充足判定を行う（ステップＳ１１０）。この判定処理の結果、割り込み発生条件は充足されたと判定されたので、割り込み発生条件判定部１０３ｂから割り込み発生部１０３ａに対して割り込み発生命令を出力する（ステップＳ１１１）。続いて、割り込み発生部１０３ａは、プロセッサ１０１に対して割り込みを発生させる（ステップＳ１１２）。割り込みを発生させられたプロセッサ１０１は、データ記憶部１０２ｂに記憶されるメモリの値を参照して所定の処理を開始する（ステップＳ１１３）。
【００６４】
このように、本来ならば、複数のノードコンピュータから一連の同期処理に係るメッセージが入ったパケットを受信する毎にプロセッサに対して割り込み又はイベントを発生させるが、本実施例では、一連の同期処理に係るメッセージが入ったパケットを全ての複数のノードコンピュータから受信したことを同期待ち合わせにより確認して初めてプロセッサに対して割り込み又はイベントを発生させるので、プロセッサが割り込み又はイベントによりコンテキストスイッチを乱され、並列計算機全体としてのパフォーマンスが低下することを防止することができる。
【００６５】
次に、実施例の応用例について説明する。図４は、図２に示した通信Ｉ／Ｆ部１０３を有する計算機を接続した並列計算機の実施例の応用例を示す図である。同図に示すように、複数のデータ入力側コンピュータから順次又は同時にデータを受信した上で、これら受信した全てのデータに基づいて処理を行うデータ受信側コンピュータでは、通信Ｉ／Ｆ部が前述の複数のデータ入力側コンピュータからのデータ入力又は変更を検出し、バリア同期を取ることによって、受信側コンピュータのプロセッサの負担を軽減できるバリア同期を実現することが可能となる。
【００６６】
本発明は、上記実施例に限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。以下に、その異なる実施例について説明する。
【００６７】
割り込み発生部１０３ａは、通信処理実行部１０３ｃからの割り込み処理発生指示に基づいて、同期処理部にプロセッサに対して割り込み処理を発生させると共に、通信処理実行部１０３ｃに対して、記憶部１０２に記憶される関連する所定のAtomic Operationを実行する指示であるＳＷＲを出力する機能を有することとしてもよい。これにより、通信Ｉ／Ｆ部１０３は、プロセッサ１０１による処理負担を必要とせず、受信パケットの同期処理後に実行されるべき必要処理を、該通信Ｉ／Ｆ部１０３内で閉じて実行することが可能となる。
【００６８】
通信処理実行部１０３ｃは、前述の同期処理中フラグ等の初期化以前に、他の同期処理に係るメッセージが入ったパケットを受信したならば、該パケットを無視すると共に、送信元のノードコンピュータに対し、パケット送信の再試行を行う指示を送信する機能を有してもよい。このようにして、一連の同期処理において、他のパケットを受け付けないようにする排他制御を行うことができる。
【００６９】
実施例によれば、パケットに応じたAtomic Operationを、送信側ノードコンピュータで受信側ノードコンピュータのロックをその都度取らずとも、受信側ノードコンピュータのAtomic Operation実行部０１３ｃにより一連の同期処理の対象であるメッセージとして認識される限りは受信されることとなるので、このリトライにより送信側のプロセッサのコンテキストスイッチが大きく乱されてしまうことがなくなる。
【００７０】
以上、本発明の実施例を説明したが、本発明は、これらに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、適宜設計変更して実施可能である。また、実施例に記載した効果は、これに限定されるものではない。
【００７１】
なお、実施例では、説明を簡単にするために、並列計算機には３台のノードコンピュータが接続されるものとしたが、２台、若しくは３台以上であっても同様に本発明は適用可能である。
【００７２】
また、本発明に係る通信Ｉ／Ｆ部１０３は、通信機構にとして従来の通信Ｉ／Ｆ部と互換性を有する。従って、本発明に係る通信Ｉ／Ｆ部１０３を装着したノードコンピュータと、装着していないノードコンピュータとを相互に接続可能である。この場合は、本発明に係る通信Ｉ／Ｆ部１０３を装着していないノードコンピュータにおいて、ノード間通信に係るプロセッサの割り込みが発生し、同期待ち合わせに係るコンテキストスイッチの乱れが生じるなど、通信のパフォーマンスが低下する。即ち、本発明に係る通信Ｉ／Ｆ部１０３を装着していないノードコンピュータと、本発明に係る通信Ｉ／Ｆ部１０３を装着していないノードコンピュータとを混在させて並列計算機を構成することが可能である。
【００７３】
（付記１）複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信インターフェース装置であって、
前記複数の送信側計算機からの受信パケットに応じたメモリ操作を行う不可分操作を実行する不可分操作実行手段と、
前記不可分操作実行手段により前記不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定手段と
を備えたことを特徴とする通信インターフェース装置。
【００７４】
（付記２）前記不可分操作実行手段は、当該通信インターフェース装置を有する当該計算機からの送信データに応じてもメモリ操作を行う不可分操作を実行することを特徴とする付記１に記載の通信インターフェース装置。
【００７５】
（付記３）前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの処理の開始のために該計算機のプロセッサに割り込みを発生させる割り込み発生手段をさらに備えたことを特徴とする付記１又は２に記載の通信インターフェース装置。
【００７６】
（付記４）前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの送信側計算機に対して完了通知を送信する完了通知送信手段をさらに備えたことを特徴とする付記１又は２に記載の通信インターフェース装置。
【００７７】
（付記５）前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記送信側計算機に対して予め定められた通信処理を実行する通信処理実行手段をさらに備えたことを特徴とする付記１又は２に記載の通信インターフェース装置。
【００７８】
（付記６）前記メモリ操作結果を前記受信パケットに基づく更新データとは別に記憶するメモリ操作結果記憶手段と、
前記割り込み発生条件判定手段により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記メモリ操作結果記憶手段に記憶される前記メモリ操作結果を初期化するメモリ操作結果初期化手段と
をさらに備えたことを特徴とする付記１又は２に記載の通信インターフェース装置。
【００７９】
（付記７）前記メモリ操作結果初期化手段による前記メモリ操作結果の初期化以前に、前記送信側計算機から受信パケットをさらに受信した場合に、前記不可分操作実行手段による前記不可分操作の実行を中止させる不可分操作実行中止手段と、
前記不可分操作実行中止手段により前記不可分操作の実行が中止させられた情報を前記送信側計算機へ送信する不可分操作中止情報送信手段と
をさらに備えたことを特徴とする付記６に記載の通信インターフェース装置。
【００８０】
（付記８）前記受信側計算機から前記不可分操作中止情報送信手段により送信された前記不可分操作の実行が中止させられた情報を受信すると、該受信側計算機へのデータ送信を再試行するパケット送信再試行手段をさらに備えたことを特徴とする付記７に記載の通信インターフェース装置。
【００８１】
（付記９）複数の送信側計算機に分散して配置されているデータがパケットとして受信側計算機に受信されたことを条件として該受信パケットの処理を開始する並列計算機における計算機の通信方法であって、
前記複数の送信側計算機からの受信パケットに基づいたメモリ操作を行う不可分操作を実行する不可分操作実行工程と、
前記不可分操作実行工程により前記不可分操作が実行される毎に、該不可分操作によるメモリ操作結果が予め定められた条件を満たすか否かを判定する条件判定工程と
を含んだことを特徴とする通信方法。
【００８２】
（付記１０）前記不可分操作実行工程は、該通信方法を有する当該計算機からの送信データに応じてもメモリ操作を行う不可分操作を実行することを特徴とする付記９に記載の通信方法。
【００８３】
（付記１１）前記割り込み発生条件判定工程により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの処理の開始のために該計算機のプロセッサに割り込みを発生させる割り込み発生工程をさらに含んだことを特徴とする付記９又は１０に記載の通信方法。
【００８４】
（付記１２）前記割り込み発生条件判定工程により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記受信パケットの送信側計算機に対して完了通知を送信する完了通知送信工程をさらに含んだことを特徴とする付記９又は１０に記載の通信方法。
【００８５】
（付記１３）前記割り込み発生条件判定工程により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記送信側計算機に対して予め定められた通信処理を実行する通信処理実行工程をさらに含んだことを特徴とする付記９又は１０に記載の通信方法。
【００８６】
（付記１４）前記メモリ操作結果を前記受信パケットに基づく更新データとは別に記憶するメモリ操作結果記憶工程と、
前記割り込み発生条件判定工程により前記メモリ操作結果が前記予め定められた条件を満たすと判定された場合に、前記メモリ操作結果記憶工程にて記憶される前記メモリ操作結果を初期化するメモリ操作結果初期化工程を
さらに含んだことを特徴とする付記９又は１０に記載の通信方法。
【００８７】
（付記１５）前記メモリ操作結果初期化工程による前記メモリ操作結果の初期化以前に、前記送信側計算機から受信パケットをさらに受信した場合に、前記不可分操作実行工程による前記不可分操作の実行を中止させる不可分操作実行中止工程と、
前記不可分操作実行中止工程により前記不可分操作の実行が中止させられた情報を前記送信側計算機へ送信する不可分操作中止情報送信工程と
をさらに含んだことを特徴とする付記１４に記載の通信方法。
【００８８】
（付記１６）前記受信側計算機から前記不可分操作中止情報送信工程により送信された前記不可分操作の実行が中止させられた情報を受信すると、該受信側計算機へのデータ送信を再試行するデータ送信再試行工程をさらに含んだことを特徴とする付記１５に記載の通信方法。
【産業上の利用可能性】
【００８９】
本発明は、複数の計算機に分散して配置されているデータがデータ処理を行う計算機に全て受信されたことを条件として該データの受信に係る処理を開始する計算機並列計算機において、それぞれデータの送受信が行われる都度発生する処理によるオーバーヘッドの解消を図り、並列計算機内の個々の計算機間の通信速度を向上させ、並列計算機の全体性能向上を図りたい場合に有効である。
【図面の簡単な説明】
【００９０】
【図１】従来の並列計算機の構成と同期処理における問題点を示す図である。
【図２】実施例の並列計算機の構成を示す機能ブロック図である。
【図３】同期処理を示すシーケンス図である。
【図４】実施例の応用例を示す図である。
【符号の説明】
【００９１】
１００    ノードコンピュータＡ
１０１    プロセッサ
１０２    記憶部
１０２ａ    割り込み発生条件記憶部
１０２ｂ    データ記憶部
１０３    通信Ｉ／Ｆ部
１０３ａ    割り込み発生部
１０３ｂ    割り込み発生条件判定部
１０３ｃ    通信処理実行部
２００    ノードコンピュータＢ
３００    ノードコンピュータＣ
【図１】
2007272694.tif 000003
【図２】
2007272694.tif 000004
【図３】
2007272694.tif 000005
【図４】
2007272694.tif 000006