(57)【要約】      （修正有）【課題】並列処理の異常終了を速やかに検出する並列計算システム、ネットワークスイッチ、ローカルノード、方法、およびプログラムを提供する。【解決手段】ネットワークスイッチ１３０は、並列処理の依頼元であるローカルノード１１０からメッセージパケット１４０を受信すると、並列処理の依頼先であるリモートノード１２０との間の通信に使用する通信ポート１３２に対応して監視フラグとローカルノードアドレスとを記憶し、ネットワークスイッチとリモートノードとの間のネットワーク通信の異常の有無を検出する。ネットワークスイッチは、ネットワーク通信の異常を検出すると、ローカルノードへ通知するための異常通知パケット１５０を生成する。【選択図】図１
2019168739.tif 000002
【特許請求の範囲】
【請求項１】
並列処理の依頼元となるローカルノードと、
前記並列処理の依頼先となるリモートノードと、
前記ローカルノードと前記リモートノードとを相互に接続するネットワーク上のネットワークスイッチと、を備え、
前記ローカルノードは、前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを送信するように構成され、
前記ネットワークスイッチは、
前記ローカルノードから、前記メッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、を備え、
前記ローカルノードは、
前記異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている
並列計算システム。
【請求項２】
前記ネットワークスイッチは、前記メッセージパケットを前記リモートノードアドレスで特定される前記リモートノードへ転送するように構成されている
請求項１に記載の並列計算システム。
【請求項３】
前記リモートノードは、
前記並列処理の実行部と、
前記並列処理の実行部と前記ネットワークスイッチとに接続された通信処理手段と、を備え、
前記通信処理手段は、前記メッセージパケットを前記ネットワークスイッチ経由で受信すると、前記監視フラグと前記ローカルノードアドレスとを記憶し、前記監視フラグが所定値となっている場合、前記実行部の異常を検出し、前記検出した前記実行部の異常を、前記記憶した前記ローカルノードアドレスで特定される前記ローカルノードへ通知する異常通知パケットを生成するように構成されている
請求項１または２に記載の並列計算システム。
【請求項４】
前記メッセージパケットは、前記並列処理に必要なデータを含む、
請求項１乃至３の何れかに記載の並列計算システム。
【請求項５】
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチであって、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
を備えるネットワークスイッチ。
【請求項６】
前記ネットワークスイッチは、前記メッセージパケットを前記リモートノードアドレスで特定される前記リモートノードへ転送するように構成されている
請求項５に記載のネットワークスイッチ。
【請求項７】
前記メッセージパケットは、前記並列処理に必要なデータを含む、
請求項５または６に記載のネットワークスイッチ。
【請求項８】
ネットワーク上のネットワークスイッチを通じて並列処理の依頼先となるリモートノードと相互に接続された、前記並列処理の依頼元となるローカルノードであって、
前記並列処理の実行部と、
前記並列処理の実行部と前記ネットワークスイッチとに接続された通信処理手段と、を備え、
前記並列処理の実行部は、
前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを前記ネットワークスイッチ経由で前記リモートノードへ送信し、
前記メッセージパケットを受信した前記ネットワークスイッチから、前記ネットワークスイッチと前記リモートノードアドレスで特定される前記リモートノードとの間のネットワーク通信の異常を検出した旨の異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている
ローカルノード。
【請求項９】
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチが実行する方法であって、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶し、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出し、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成する
方法。
【請求項１０】
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチを構成するコンピュータを、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算システム、ネットワークスイッチ、ローカルノード、方法、およびプログラムに関する。
【背景技術】
【０００２】
複数の計算ノードをネットワーク経由で相互に接続した並列計算システムが提案されている。また、そのような並列計算システムにおいて、計算ノードで実行される並列処理が異常終了したことを検出する方法が提案されている。
【０００３】
例えば、特許文献１では、管理ノードが複数の計算ノードに並列処理を依頼し、複数の計算ノードのそれぞれは、依頼された並列処理を実行してその処理結果を外部記憶装置に出力する並列計算システムが記載されている。また、特許文献１では、管理ノードが、一定期間経過しても処理結果が外部記憶装置に出力されない場合、並列処理が異常終了したと判断する。即ち、特許文献１では、並列処理のタイムアウトにより、並列処理の異常終了を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２３１２９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載される技術によれば、計算ノードにおいて障害が発生し、当該計算ノードの処理結果が外部記憶装置に出力されなくなると、並列処理が異常終了したと検出される。また、特許文献１に記載される技術によれば、計算ノードにおける並列処理は正常終了したが、ネットワーク障害が発生し、当該計算ノードの処理結果が外部記憶装置に出力されなくなると、並列処理が異常終了したと検出される。即ち、特許文献１に記載される技術によれば、ネットワーク障害による並列処理の異常終了を検出することができる。
【０００６】
しかしながら、特許文献１に記載される技術では、並列処理の異常終了を並列処理のタイムアウトにより検出する。そのため、並列処理が正常終了する期間よりも短い期間で並列処理の異常終了を検出するのは困難である。
【０００７】
本発明の目的は、上述した課題、すなわち、並列処理の異常終了を速やかに検出するのは困難である、という課題を解決する並列計算システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態に係る並列計算システムは、
並列処理の依頼元となるローカルノードと、
前記並列処理の依頼先となるリモートノードと、
前記ローカルノードと前記リモートノードとを相互に接続するネットワーク上のネットワークスイッチと、を備え、
前記ローカルノードは、前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを送信するように構成され、
前記ネットワークスイッチは、
前記ローカルノードから、前記メッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、を備え、
前記ローカルノードは、
前記異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている。
【０００９】
また本発明の他の形態に係るネットワークスイッチは、
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチであって、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
を備える。
【００１０】
また本発明の他の形態に係るローカルノードは、
ネットワーク上のネットワークスイッチを通じて並列処理の依頼先となるリモートノードと相互に接続された、前記並列処理の依頼元となるローカルノードであって、
前記並列処理の実行部と、
前記並列処理の実行部と前記ネットワークスイッチとに接続された通信処理手段と、を備え、
前記並列処理の実行部は、
前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを前記ネットワークスイッチ経由で前記リモートノードへ送信し、
前記メッセージパケットを受信した前記ネットワークスイッチから、前記ネットワークスイッチと前記リモートノードアドレスで特定される前記リモートノードとの間のネットワーク通信の異常を検出した旨の異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている。
【００１１】
また本発明の他の形態に係る方法は、
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチが実行する方法であって、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶し、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出し、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成する。
【００１２】
また本発明の他の形態に係るプログラムは、
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチを構成するコンピュータを、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
して機能させる。
【発明の効果】
【００１３】
本発明は上述した構成を有することにより、並列処理の異常終了を速やかに検出することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る並列計算システムのブロック図である。
【図２】本発明の第２の実施形態に係る並列計算システムのブロック図である。
【図３】本発明の第２の実施形態におけるメッセージパケットのフォーマット例を示す図である。
【図４】本発明の第２の実施形態におけるネットワークスイッチが有するルーティングテーブルの構成例を示す図である。
【図５】本発明の第２の実施形態におけるリモートノードが有する通信処理装置の構成例を示す図である。
【発明を実施するための形態】
【００１５】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１は、本発明の第１の実施形態に係る並列計算システムのブロック図である。図１を参照すると、本実施形態に係る並列計算システム１００は、ローカルノード１１０と、リモートノード１２０と、ローカルノード１１０とリモートノード１２０とを相互に接続するネットワーク上のネットワークスイッチ１３０とを備えている。
【００１６】
ローカルノード１１０は、並列処理の依頼元となる計算ノードである。リモートノード１２０は、並列処理の依頼先となる計算ノードである。本例の場合、リモートノード１２０は１つであるが、ローカルノード１１０が並列処理を依頼するリモートノードは複数あってもよい。
【００１７】
ローカルノード１１０は、並列処理の実行部１１１と通信処理手段１１２とを含んで構成されている。通信処理手段１１２は、並列処理の実行部１１１とネットワークとの間の通信を制御する通信処理装置などで構成される。
【００１８】
並列処理の実行部１１１は、ＣＰＵおよびメモリなどのハードウェアとプログラムとで構成される。並列処理の実行部１１１は、並列処理をリモートノード１２０に依頼するとき、メッセージパケット１４０を通信処理手段１１２経由でネットワークへ送信するように構成されている。メッセージパケット１４０は、リモートノード１２０に依頼する並列処理に必要なデータを含んでいる。また、メッセージパケット１４０は、監視フラグとローカルノードアドレスとリモートノードアドレスとを含んでいる。監視フラグは、点灯状態（例えば値１）で障害の監視を行うことを指示し、消灯状態（例えば値０）で障害の監視を行わないことを指示する。ローカルノードアドレスは、並列処理の依頼元であるローカルノード１１０を特定するアドレスである。リモートノードアドレスは、並列処理の依頼先であるリモートノード１２０を特定するアドレスである。
【００１９】
また、並列処理の実行部１１１は、メッセージパケット１４０の送信後、並列処理の依頼先であるリモートノード１２０から並列処理の結果を含む正常通知パケットを受信するのを待ち合わせる。また、並列処理の実行部１１１は、メッセージパケット１４０の送信後、並列処理の依頼先であるリモートノード１２０から並列処理の結果を含むパケットを受信する前に、異常通知パケットを受信することにより、上記依頼した並列処理が異常終了したと判断するように構成されている。
【００２０】
ネットワークスイッチ１３０は、通信ポート１３１、１３２と、コントローラ１３３とで構成される。通信ポート１３１は、ローカルノード１１０との間で通信ケーブルを通じて通信を行うように構成されている。通信ポート１３２は、リモートノード１２０との間で通信ケーブルを通じて通信を行うように構成されている。コントローラ１３３は、ネットワークスイッチ１３０の主たる制御を行うように構成されている。コントローラ１３３は、ルーティングテーブル１３４、ネットワーク異常検出手段１３５、およびパケット生成手段１３６を含んで構成されている。
【００２１】
コントローラ１３３は、ローカルノード１１０からメッセージパケット１４０を受信すると、メッセージパケット１４０に含まれるリモートノードアドレスで特定されるリモートノード１２０との間の通信に使用する通信ポート１３２に対応付けて、メッセージパケット１４０に含まれる監視フラグとローカルノードアドレスとをルーティングテーブル１３４に記憶するように構成されている。また、コントローラ１３３は、受信したメッセージパケット１４０を通信ポート１３２経由でリモートノード１２０へ転送するように構成されている。
【００２２】
またコントローラ１３３は、ルーティングテーブル１３４上の監視フラグが点灯状態を示す値となっている場合、ネットワーク異常検出手段１３５を使用して、監視フラグに対応する通信ポート１３２を使用して行うリモートノード１２０との間のネットワーク通信の異常を検出するように構成されている。ネットワーク通信の異常としては、リンク切れが例示されるが、それに限定されない。
【００２３】
またコントローラ１３３は、ネットワーク異常検出手段１３５でネットワーク通信の異常が検出されると、パケット生成手段１３６を使用して、ネットワーク異常検出手段１３５で検出されたネットワーク通信の異常をローカルノード１１０へ通知するための異常通知パケット１５０を生成するように構成されている。
【００２４】
上述したネットワークスイッチ１３０の通信ポート１３１、１３２、コントローラ１３３、ルーティングテーブル１３４、ネットワーク異常検出手段１３５、パケット生成手段１３６は、ハードウェアで実現することができる以外に、コンピュータとプログラムとで実現することができる。プログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供され、コンピュータの動作を制御することにより、コンピュータ上に通信ポート１３１、１３２、コントローラ１３３、ルーティングテーブル１３４、ネットワーク異常検出手段１３５、パケット生成手段１３６を実現する。
【００２５】
リモートノード１２０は、並列処理の実行部１２１と通信処理手段１２２とを含んで構成されている。通信処理手段１２２は、並列処理の実行部１２１とネットワークとの間の通信を制御する通信処理装置などで構成される。
【００２６】
通信処理手段１２２は、メッセージパケット１４０を受信すると、受信したメッセージパケット１４０を並列処理の実行部１２１へ通知するように構成されている。また通信処理手段１２２は、メッセージパケット１４０に含まれる監視フラグとローカルノードアドレスとを記憶し、監視フラグが点灯状態を示す値になっている場合、並列処理の実行部１２１の異常を検出するように構成されている。並列処理の実行部１２１の異常を検出する方法は任意である。例えば、並列処理の実行部１２１が一定周期でヘルスチェック信号を通信処理手段１２２へ送信するように構成されている場合、通信処理手段１２２は、ヘルスチェック信号が一定期間内に送信されなかったとき、並列処理の実行部１２１に異常が発生したと判断してよい。或いは、並列処理の実行部１２１を構成するメモリに回復不可能なエラーが発生したことがメモリチェック回路等で検出されたときに、通信処理手段１２２は、並列処理の実行部１２１に異常が発生したと判断してよい。また通信処理手段１２２は、並列処理の実行部１２１の異常を検出すると、検出した異常をローカルノード１１０へ通知するための異常通知パケット１６０を生成するように構成されている。
【００２７】
並列処理の実行部１２１は、ＣＰＵおよびメモリなどのハードウェアとプログラムとで構成される。並列処理の実行部１２１は、通信処理手段１２２からメッセージパケット１４０を受け取ると、メッセージパケット１４０に含まれている並列処理に必要なデータに基づいて並列処理を実行するように構成されている。また、並列処理の実行部１２１は、並列処理を正常に終了すると、処理結果をローカルノード１１０へ通知するための正常通知パケット（図示せず）を生成するように構成されている。
【００２８】
次に本実施形態に係る並列計算システム１００における障害検出動作を説明する。
【００２９】
ローカルノード１１０は、並列処理をリモートノード１２０に依頼する場合、依頼する並列処理に必要なデータ、点灯状態を示す値にした監視フラグ、ローカルノード１１０のアドレスであるローカルノードアドレス、リモートノード１２０のアドレスであるリモートノードアドレスを含むメッセージパケット１４０を、ネットワークスイッチ１３０へ送信する。
【００３０】
ネットワークスイッチ１３０は、メッセージパケット１４０を受信すると、メッセージパケット１４０に含まれるリモートノードアドレスで特定されるリモートノード１２０との間の通信に使用する通信ポート１３２に対応付けて、点灯状態を示す値の監視フラグとローカルノードアドレスとをルーティングテーブル１３４に記憶する。またネットワークスイッチ１３０は、受信したメッセージパケット１４０を、そのメッセージパケット１４０に含まれるリモートノードアドレスで特定されるリモートノード１２０へ転送する。またネットワークスイッチ１３０のネットワーク異常検出手段１３５は、ルーティングテーブル１３４に点灯状態を示す値の監視フラグとローカルノードアドレスとが通信ポート１３２に対応付けて記憶されると、通信ポート１３２を使用して行うリモートノード１２０との間のネットワーク通信の異常を検出する動作を開始する。
【００３１】
リモートノード１２０の通信処理手段１２２は、メッセージパケット１４０を受信すると、メッセージパケット１４０を並列処理の実行部１２１へ通知する。また通信処理手段１２２は、受信したメッセージパケット１４０に含まれる監視フラグとローカルノードアドレスとを記憶する。そして、通信処理手段１２２は、監視フラグが点灯状態を示す値になっている場合、並列処理の実行部１２１の異常を検出する動作を開始する。
【００３２】
リモートノード１２０の並列処理の実行部１２１は、通知されたメッセージパケット１４０に含まれる並列処理に必要なデータを使用して、並列処理の実行を開始する。
【００３３】
その後、リモートノード１２０の並列処理の実行部１２１が並列処理の実行を終了する前に、リモートノード１２０とネットワークスイッチ１３０との間のネットワークに障害が発生したとする。すると、先ずネットワークスイッチ１３０のネットワーク異常検出手段１３５がそのネットワーク異常を検出する。次にパケット生成手段１３６は、検出されたネットワーク異常を通知する異常通知パケット１５０を生成し、通信ポート１３１を通じてローカルノード１１０へ送信する。ここで、異常通知パケットのソースアドレスはネットワークスイッチ１３０のアドレス、宛先アドレスはローカルノード１１０のアドレスである。
【００３４】
ローカルノード１１０へ送信された異常通知パケット１５０は、通信処理手段１１２で受信され、並列処理の実行部１１１に伝達される。並列処理の実行部１１１は、受け取った異常通知パケット１５０により、ネットワークスイッチ１３０とリモートノード１２０との間のネットワークに異常が発生したこと、従って並列処理の依頼先であるリモートノード１２０の並列処理が異常終了したことを検出する。
【００３５】
また、リモートノード１２０の並列処理の実行部１２１が並列処理の実行を終了する前に障害を起こすと、通信処理手段１２２は並列処理の実行部１２１の当該障害を検出し、その旨を示す異常通知パケット１６０をネットワークスイッチ１３０経由でローカルノード１１０へ送信する。ここで、異常通知パケットのソースアドレスはリモートノード１２０のアドレス、宛先アドレスはローカルノード１１０のアドレスである。ローカルノード１１０へ送信された異常通知パケット１６０は、通信処理手段１１２で受信され、並列処理の実行部１１１に伝達される。並列処理の実行部１１１は、受け取った異常通知パケット１６０により、リモートノード１２０に異常が発生したこと、従って並列処理の依頼先であるリモートノード１２０の並列処理が異常終了したことを検出する。
【００３６】
このように本実施形態によれば、並列処理の依頼元であるローカルノード１１０は、リモートノード１２０に依頼した並列処理の異常終了を速やかに検出することができる。その理由は、リモートノード１２０における並列処理の終了前に、ネットワークスイッチ１３０とリモートノード１２０との間のネットワークに異常が発生した場合、その異常がネットワークスイッチ１３０のネットワーク異常検出手段１３５で検出され、異常通知パケット１５０によりローカルノード１１０へ通知されるためである。また、リモートノード１２０における並列処理の終了前に、リモートノード１２０の並列処理の実行部１２１に障害が発生した場合、その異常がリモートノード１２０の通信処理手段１２２で検出され、異常通知パケット１６０によりローカルノード１１０へ通知されるためである。
【００３７】
また本実施形態によれば、並列処理の依頼元であるローカルノード１１０は、並列処理の依頼と同時に障害の監視をネットワークスイッチ１３０およびリモートノード１２０の通信処理手段１２２に要求することができる。その理由は、依頼する並列処理に必要なデータを格納するメッセージパケット１４０に含まれる監視フラグ、ローカルノードアドレス、リモートノードアドレスによって、障害の監視をネットワークスイッチ１３０およびリモートノード１２０の通信処理手段１２２に要求するためである。
【００３８】
なお、本実施形態は各種の付加変更が可能である。例えば、ネットワークスイッチ１３０は、リモートノード１２０から受信した正常通知パケットをローカルノード１１０へ転送する際、正常通知パケットの送信元のリモートノード１２０との間の通信に使用する通信ポート１３２に対応付けてルーティングテーブル１３４に記憶されている監視フラグを強制的に消灯状態に更新するようにしてもよい。
【００３９】
[第２の実施形態]
次に本発明の第２の実施形態について説明する。
【００４０】
＜本実施形態が解決しようとする課題＞
並列コンピューティングシステムにおいて、ローカルノードは、計算の高速化の手法として計算処理を並列化し、ネットワークを介して複数のリモートノードに並列化した処理を実行することで演算処理の高速化を行う。その場合、ローカルノードは、複数のリモートノードに割り付けた複数の並列処理の終了を待ち合わせて計算処理を行う。割り付けられた処理を実行中にリモートノードにおいてハードウェア故障が発生した場合、割り付けられた並列処理自身は異常終了となるが、リモートノードのハードウェア故障により異常終了となったことをローカルノードに通知することができない場合がある。その場合、ローカルノードは、並列処理を割り付けた後に一定時間リモートノードの処理ステータスを監視し、一定時間が経過しても割り付けた処理が正常終了しないとリモートノードの処理に異常が発生したと判断する。そのため、ローカルノードは、割り付けた処理がタイムアウトするまで後続の処理を開始することができなかった。
【００４１】
また、リモートノードとローカルノード間の通信経路において故障が発生した場合においても同様に、リモートノードが割り付けられた処理を正常終了してもローカルノードへ終了ステータスを通知することができない。そのため、ローカルノードは、リモートノード故障時と同様にリモートノードの終了ステータスを一定時間監視し、一定時間が経過してもリモートノードに割り付けた処理が正常終了しないとローカルノードとリモートノード間のどこかで異常が発生したと判断しなければならなかった。そのため、後続処理を開始するのが遅延していた。
【００４２】
いずれの場合においても、ローカルノードは、障害が発生してから一定時間が経過するまで異常が発生したことを認識できない期間が存在する。特にネットワーク経由で分散された大規模な並列コンピューティングの場合は、並列処理の待ち合わせ時間、即ちリモートノードで並列処理を開始してから終了するまでの時間は比較的長い。そのため、障害の検出が遅れると、大量のリモートノードに割り付けた計算リソースが無駄となる。その結果、効率的に計算リソースを割り当てることができなかった。
【００４３】
＜本実施形態の構成＞
図２は、本実施形態に係る並列計算システムのブロック図である。図２を参照すると、本実施形態に係る並列計算システムは、複数の計算ノード１−１〜１−６と、これら複数の計算ノード１−１〜１−６を相互に接続するイーサーネットやインフィニバンドなどのネットワークのネットワークスイッチ３とを備えている。
【００４４】
ネットワークスイッチ３は、ルーティングテーブル（ＲＴ）３１と、異常検出回路（ＦＤ）３２と、パケット生成回路（ＰＧ）３３と、複数の通信ポートＰ１〜Ｐ６から成る通信ポート部３４と、ルーティングテーブル３１、異常検出回路３２およびパケット生成回路３３を有するコントローラ３５とを含んで構成される。通信ポートＰ１〜Ｐ６は、計算ノード１−１〜１−６に通信ケーブルを通じて接続されている。
【００４５】
計算ノード１−１〜１−６は、計算ノード１−２、１−６に例示するように、通信処理装置２１、２２と、ＣＰＵ２３、２４と、主記憶（ＭＭ）２５、２６とを含んで構成されている。図２には、合計６個の計算ノード１−１〜１−６が示されているが、計算ノードの数は６個に限定されず、複数であればよい。また、図２では、説明の便宜上、計算ノード１−２をローカルノードとし、計算ノード１−６をリモートノードとしている。複数の計算ノード１−１〜１−６の何れをローカルノード、リモートノードとするかは任意である。以下、計算ノード１−２をローカルノード１−２と記載し、計算ノード１−６をリモートノード１−６と記載する。
【００４６】
図３は、ローカルノード１−２からネットワークスイッチ３経由でリモートノード１−６へ送信されるメッセージパケット４のフォーマットの一例を示す。図３を参照すると、メッセージパケット４は、並列処理に必要なデータＤａｔａ、監視フラグＭ、ローカルノード１−２のアドレスであるソースアドレスＳＡ、リモートノード１−６のアドレスである宛先アドレスＤＡを含んで構成される。
【００４７】
図４は、ネットワークスイッチ３のルーティングテーブル３１の構成例を示す。この例のルーティングテーブル３１は、複数の通信ポートＰ１〜Ｐ６のそれぞれに対応するポートエントリを有する。各ポートエントリは、通信ポートの識別情報を記憶する欄と、メッセージパケット４に含まれる監視フラグを記憶する欄と、メッセージパケット４に含まれるソースアドレスを記憶する欄とから成る。
【００４８】
図５は、リモートノード１−６の通信処理装置２２の構成例を示す。図５を参照すると、通信処理装置２２は、メッセージパケット４に含まれる監視フラグを保持するレジスタ２２１と、メッセージパケット４に含まれるソースアドレスを保持するレジスタ２２２と、リモートノード１−６のＣＰＵ２４およびメモリ２６の障害を検出するように構成されている制御回路２２３と、制御回路２２３による障害の検出時に障害通知パケットを生成するパケット生成回路２２４とを含んで構成されている。
【００４９】
以上のように、メッセージパケット４には、リモートノード２への監視指示（監視フラグ）が含まれている。また、ネットワークスイッチ３は、ローカルノード１−２からのメッセージパケット４をリモートノード１−６に転送した際に、リモートノード１−６の通信ポートに対応付けてメッセージパケット４中の監視フラグとソースアドレスとを記憶するルーティングテーブル３１と、ネットワークの異常を検出する異常検出回路３２と、監視フラグが転送したアドレス宛てにパケットを生成するパケット生成回路３３とを有する。また、リモートノード１−６の通信処理装置２２は、ローカルノード１−２からメッセージパケット４を受信した際にメッセージパケット４中の監視フラグとソースアドレスを記憶するレジスタ２２１、２２２と、リモートノード１−６内の異常を検出するとローカルノード１−２宛のパケットを生成するパケット生成回路２２４を有する。
【００５０】
＜本実施形態の動作＞
次に本実施形態の動作を説明する。
【００５１】
ＭＰＩ（Ｍｅｓｓａｇｅ−Ｐａｓｓｉｎｇ  Ｉｎｔｅｒｆａｃｅ）などの並列化されたプログラムを複数の計算ノードに跨って実行する場合、ローカルノード１−２は、イーサーネットやインフィニバンドなどのネットワークスイッチ３で接続されたリモートノードとなる他の計算ノードと通信して並列処理を実行する。また、大規模な並列プログラムの場合、ローカルノード１−２は、複数の計算ノードをリモートノードとして並列処理を割り付ける。各リモートノードは、それぞれ割り当てられた並列処理を実行し、完了すると、ローカルノード１−２に終了通知を送信する。ローカルノード１−２は、各リモートノードに割り当てた処理の終了を待ち合わせ、割り当てた全てのリモートノードの処理が終了したことを検知すると、次の処理を実行する。
【００５２】
以下では、ローカルノード１−２がリモートノード１−６に並列処理を割り当てたものとして、本実施形態の動作を説明する。
【００５３】
先ず、ローカルノード１−２は、並列処理開始の先頭でリモートノード１−６に対して、データＤａｔａに宛先アドレスＤＡとソースアドレスＳＡと監視フラグＭとを付加したメッセージパケット４をネットワークスイッチ３に送信する。ネットワークスイッチ３は、受信したメッセージパケット４から、監視フラグＭとソースアドレスＳＡとを抽出し、宛先アドレスＤＡに対応したルーティングテーブル３１のポートエントリに記憶する。そして、ネットワークスイッチ３は、宛先アドレスＤＡのリモートノード１−６が接続される通信ポートＰ６に受信したメッセージパケット４を転送する。これによって、メッセージパケット４が通信ポートＰ６からリモートノード１−６へと転送される。
【００５４】
リモートノード１−６の通信処理装置２２は、ネットワークスイッチ３からメッセージパケット４を受信すると、通信処理装置２２内に備えたレジスタ２２１とレジスタ２２２に、受信したメッセージパケット４中の監視フラグＭとソースアドレスＳＡとを記憶する。そして通信制御装置２２は、受信したメッセージパケット４をリモートノード２の主記憶２６へ転送する。リモートノード２のＣＰＵ２４は、主記憶２６からメッセージパケット４中のデータＤａｔａを読み出し、そのデータに従って並列処理の実行を開始する。
【００５５】
その後、リモートノード１−６でメモリ故障が発生したと仮定する。すると、通信処理装置２２の制御回路２２３は、リモートノード２内で異常が発生したことを検出する。次に制御回路２２３は、レジスタ２２１に記憶された監視フラグＭが点灯している場合、レジスタ２２２に記憶されたソースアドレスＳＡを宛先、リモートノード１−６のアドレスをソースアドレスとして付加した異常通知パケットをパケット生成回路２２４に生成させる。パケット生成回路２２４は、異常通知パケットを生成し、ネットワークスイッチ３へ送信する。ネットワークスイッチ３は、通信ポートＰ６を通じて受信した異常通知パケットを宛先アドレスの装置が接続される通信ポートＰ２へ送信する。これにより、異常通知パケットが通信ポートＰ２からローカルノード１−２へと転送される。ローカルノード１−２の通信処理装置２１は、異常通知パケットを受信すると、主記憶２５を通じてＣＰＵ２３に異常通知パケットを通知する。ＣＰＵ２３は、この異常通知パケットにより並列処理中にリモートノード１−６に何らかの異常が起きたことを検知し、速やかに異常終了処理を開始する。これによって、ＣＰＵ２３は、後続の処理を開始することが可能となる。
【００５６】
また、リモートノード１−６で並列処理の実行が開始された後、経路となるネットワークで異常が発生した場合、例えばネットワークスイッチ３とリモートノード２を接続する部分でリンク切れを引き起こす障害が発生したと仮定する。すると、ネットワークスイッチ３の異常検出回路３２は、ネットワーク異常によるリンク切れを検出する。次に異常検出回路３２は、ルーティングテーブル３１を参照し、監視フラグＭが点灯している通信ポートＰ６のエントリに登録された宛先アドレス（今の例ではローカルノード１−２のアドレス）を付加した異常通知パケットをパケット生成回路３３に生成させる。パケット生成回路３３は、生成した異常通知パケットを、付加された宛先アドレスに基づいて通信ポートＰ２へ送出する。これにより、通信ポートＰ２からローカルノード１−２へと異常通知パケットが送信される。ローカルノード１−２の通信処理装置２１は、異常通知パケットを受信すると、主記憶２５を通じてＣＰＵ２３に異常通知パケットを通知する。ＣＰＵ２３は、この異常通知パケットにより、実行中の並列処理が何らかの原因で異常終了したと認識し、異常終了処理を直ちに実行する。これによって、ＣＰＵ２３は、後続の処理を開始することが可能となる。
【００５７】
＜本実施形態の効果＞
本実施形態によれば、計算ノードを跨る並列処理を実行する際に、リモートノードでハードウェア故障などが発生し、異常終了となった場合でも、速やかにローカルノードへ異常通知を送信することで実行中の並列処理の異常終了を認識し、並列処理のタイムアウトを待つことなく異常終了処理を開始することで後続処理の開始が可能となり、計算リソースを無駄にすることなく効率的に運用することが可能となる。
【００５８】
また、通信経路となるネットワークの異常が発生した場合においても、同様に直ちに実行中の並列処理が継続できないことを検出し、実行中の並列処理に対して異常終了処理を開始し、後続処理の開始が可能となり、計算リソースを無駄にすることなく効率的に運用することが可能となる。
【００５９】
このように本実施形態によれば、複数の計算ノードがネットワークで接続された並列コンピューティングシステムにおいて、リモートノードに割り付けた分散処理を実行中に、リモートノード上もしくはネットワーク経路で故障が発生した場合、ローカルノードはリモートノードへ割り付けた処理が異常となったことを速やかに検知することが可能となり、直ちに障害処理を実行することで効率的なシステム運用が可能となる。
【００６０】
計算処理の高速化が必要とされ並列コンピューティングが巨大化する状況において、並列計算を構成する計算ノード数が増加するにつれて障害が発生する確率は高まり、１件のハードウェア故障は並列コンピュータシステムの可用性を著しく低下させる要因となっている。ハードウェア故障が発生した際に、直ちに実行中の処理を終了し、並列計算構成を変更して後続の処理を開始することで、並列コンピューティングシステムの可用性を高めることが可能となる。
【００６１】
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【００６２】
例えば、上記各実施形態では、リモートノードで障害が発生した場合、およびネットワーク経路で障害が発生した場合の双方をサポートしたが、何れか一方のみサポートするように構成してもよい。即ち、図１に示した実施形態におけるリモートノード１２０の通信処理手段１２２は、メッセージパケット１４０に基づく並列処理の実行部１２１の障害監視機能を有していなくてもよく、図２に示した実施形態におけるリモートノード１−６の通信処理装置２２はメッセージパケット４に基づくＣＰＵ２４等のハードウェアの障害監視機能を有していなくてもよい。或いは、図１に示した実施形態におけるネットワークスイッチ１３０は、ルーティングテーブル１３４、ネットワーク異常検出手段１３５、およびパケット生成手段１３６を有していなくてもよく、図２に示した実施形態におけるネットワークスイッチ３は、ルーティングテーブル３１、異常検出回路３２、およびパケット生成回路３３を有していなくてもよい。
【符号の説明】
【００６３】
１−１〜１−６…計算ノード
３…ネットワークスイッチ
２１…通信処理装置
２２…通信処理装置
２３…ＣＰＵ
２４…ＣＰＵ
２５…主記憶
２６…主記憶
３１…ルーティングテーブル
３２…異常検出回路
３３…パケット生成回路
３４…通信ポート部
３５…コントローラ
１００…並列計算システム
１１０…ローカルノード
１１１…並列処理の実行部
１１２…通信処理手段
１２０…リモートノード
１２１…並列処理の実行部
１２２…通信処理手段
１３０…ネットワークスイッチ
１３１…通信ポート
１３２…通信ポート
１３３…コントローラ
１３４…ルーティングテーブル
１３５…ネットワーク異常検出手段
１３６…パケット生成手段
１４０…メッセージパケット
１５０…異常通知パケット
１６０…異常通知パケット
【図１】
2019168739.tif 000003
【図２】
2019168739.tif 000004
【図３】
2019168739.tif 000005
【図４】
2019168739.tif 000006
【図５】
2019168739.tif 000007