JP7075043B2 - 並列計算システム - Google Patents

並列計算システム Download PDF

Info

Publication number
JP7075043B2
JP7075043B2 JP2018053756A JP2018053756A JP7075043B2 JP 7075043 B2 JP7075043 B2 JP 7075043B2 JP 2018053756 A JP2018053756 A JP 2018053756A JP 2018053756 A JP2018053756 A JP 2018053756A JP 7075043 B2 JP7075043 B2 JP 7075043B2
Authority
JP
Japan
Prior art keywords
remote node
local node
parallel processing
network
communication
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.)
Active
Application number
JP2018053756A
Other languages
English (en)
Other versions
JP2019168739A (ja
Inventor
浩一 ▲高▼山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2018053756A priority Critical patent/JP7075043B2/ja
Publication of JP2019168739A publication Critical patent/JP2019168739A/ja
Application granted granted Critical
Publication of JP7075043B2 publication Critical patent/JP7075043B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、並列計算システム、ネットワークスイッチ、ローカルノード、方法、およびプログラムに関する。
複数の計算ノードをネットワーク経由で相互に接続した並列計算システムが提案されている。また、そのような並列計算システムにおいて、計算ノードで実行される並列処理が異常終了したことを検出する方法が提案されている。
例えば、特許文献1では、管理ノードが複数の計算ノードに並列処理を依頼し、複数の計算ノードのそれぞれは、依頼された並列処理を実行してその処理結果を外部記憶装置に出力する並列計算システムが記載されている。また、特許文献1では、管理ノードが、一定期間経過しても処理結果が外部記憶装置に出力されない場合、並列処理が異常終了したと判断する。即ち、特許文献1では、並列処理のタイムアウトにより、並列処理の異常終了を検出する。
特開2010-231296号公報
特許文献1に記載される技術によれば、計算ノードにおいて障害が発生し、当該計算ノードの処理結果が外部記憶装置に出力されなくなると、並列処理が異常終了したと検出される。また、特許文献1に記載される技術によれば、計算ノードにおける並列処理は正常終了したが、ネットワーク障害が発生し、当該計算ノードの処理結果が外部記憶装置に出力されなくなると、並列処理が異常終了したと検出される。即ち、特許文献1に記載される技術によれば、ネットワーク障害による並列処理の異常終了を検出することができる。
しかしながら、特許文献1に記載される技術では、並列処理の異常終了を並列処理のタイムアウトにより検出する。そのため、並列処理が正常終了する期間よりも短い期間で並列処理の異常終了を検出するのは困難である。
本発明の目的は、上述した課題、すなわち、並列処理の異常終了を速やかに検出するのは困難である、という課題を解決する並列計算システムを提供することにある。
本発明の一形態に係る並列計算システムは、
並列処理の依頼元となるローカルノードと、
前記並列処理の依頼先となるリモートノードと、
前記ローカルノードと前記リモートノードとを相互に接続するネットワーク上のネットワークスイッチと、を備え、
前記ローカルノードは、前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを送信するように構成され、
前記ネットワークスイッチは、
前記ローカルノードから、前記メッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、を備え、
前記ローカルノードは、
前記異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている。
また本発明の他の形態に係るネットワークスイッチは、
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチであって、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
を備える。
また本発明の他の形態に係るローカルノードは、
ネットワーク上のネットワークスイッチを通じて並列処理の依頼先となるリモートノードと相互に接続された、前記並列処理の依頼元となるローカルノードであって、
前記並列処理の実行部と、
前記並列処理の実行部と前記ネットワークスイッチとに接続された通信処理手段と、を備え、
前記並列処理の実行部は、
前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを前記ネットワークスイッチ経由で前記リモートノードへ送信し、
前記メッセージパケットを受信した前記ネットワークスイッチから、前記ネットワークスイッチと前記リモートノードアドレスで特定される前記リモートノードとの間のネットワーク通信の異常を検出した旨の異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている。
また本発明の他の形態に係る方法は、
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチが実行する方法であって、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶し、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出し、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成する。
また本発明の他の形態に係るプログラムは、
並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチを構成するコンピュータを、
前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
して機能させる。
本発明は上述した構成を有することにより、並列処理の異常終了を速やかに検出することができる。
本発明の第1の実施形態に係る並列計算システムのブロック図である。 本発明の第2の実施形態に係る並列計算システムのブロック図である。 本発明の第2の実施形態におけるメッセージパケットのフォーマット例を示す図である。 本発明の第2の実施形態におけるネットワークスイッチが有するルーティングテーブルの構成例を示す図である。 本発明の第2の実施形態におけるリモートノードが有する通信処理装置の構成例を示す図である。
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る並列計算システムのブロック図である。図1を参照すると、本実施形態に係る並列計算システム100は、ローカルノード110と、リモートノード120と、ローカルノード110とリモートノード120とを相互に接続するネットワーク上のネットワークスイッチ130とを備えている。
ローカルノード110は、並列処理の依頼元となる計算ノードである。リモートノード120は、並列処理の依頼先となる計算ノードである。本例の場合、リモートノード120は1つであるが、ローカルノード110が並列処理を依頼するリモートノードは複数あってもよい。
ローカルノード110は、並列処理の実行部111と通信処理手段112とを含んで構成されている。通信処理手段112は、並列処理の実行部111とネットワークとの間の通信を制御する通信処理装置などで構成される。
並列処理の実行部111は、CPUおよびメモリなどのハードウェアとプログラムとで構成される。並列処理の実行部111は、並列処理をリモートノード120に依頼するとき、メッセージパケット140を通信処理手段112経由でネットワークへ送信するように構成されている。メッセージパケット140は、リモートノード120に依頼する並列処理に必要なデータを含んでいる。また、メッセージパケット140は、監視フラグとローカルノードアドレスとリモートノードアドレスとを含んでいる。監視フラグは、点灯状態(例えば値1)で障害の監視を行うことを指示し、消灯状態(例えば値0)で障害の監視を行わないことを指示する。ローカルノードアドレスは、並列処理の依頼元であるローカルノード110を特定するアドレスである。リモートノードアドレスは、並列処理の依頼先であるリモートノード120を特定するアドレスである。
また、並列処理の実行部111は、メッセージパケット140の送信後、並列処理の依頼先であるリモートノード120から並列処理の結果を含む正常通知パケットを受信するのを待ち合わせる。また、並列処理の実行部111は、メッセージパケット140の送信後、並列処理の依頼先であるリモートノード120から並列処理の結果を含むパケットを受信する前に、異常通知パケットを受信することにより、上記依頼した並列処理が異常終了したと判断するように構成されている。
ネットワークスイッチ130は、通信ポート131、132と、コントローラ133とで構成される。通信ポート131は、ローカルノード110との間で通信ケーブルを通じて通信を行うように構成されている。通信ポート132は、リモートノード120との間で通信ケーブルを通じて通信を行うように構成されている。コントローラ133は、ネットワークスイッチ130の主たる制御を行うように構成されている。コントローラ133は、ルーティングテーブル134、ネットワーク異常検出手段135、およびパケット生成手段136を含んで構成されている。
コントローラ133は、ローカルノード110からメッセージパケット140を受信すると、メッセージパケット140に含まれるリモートノードアドレスで特定されるリモートノード120との間の通信に使用する通信ポート132に対応付けて、メッセージパケット140に含まれる監視フラグとローカルノードアドレスとをルーティングテーブル134に記憶するように構成されている。また、コントローラ133は、受信したメッセージパケット140を通信ポート132経由でリモートノード120へ転送するように構成されている。
またコントローラ133は、ルーティングテーブル134上の監視フラグが点灯状態を示す値となっている場合、ネットワーク異常検出手段135を使用して、監視フラグに対応する通信ポート132を使用して行うリモートノード120との間のネットワーク通信の異常を検出するように構成されている。ネットワーク通信の異常としては、リンク切れが例示されるが、それに限定されない。
またコントローラ133は、ネットワーク異常検出手段135でネットワーク通信の異常が検出されると、パケット生成手段136を使用して、ネットワーク異常検出手段135で検出されたネットワーク通信の異常をローカルノード110へ通知するための異常通知パケット150を生成するように構成されている。
上述したネットワークスイッチ130の通信ポート131、132、コントローラ133、ルーティングテーブル134、ネットワーク異常検出手段135、パケット生成手段136は、ハードウェアで実現することができる以外に、コンピュータとプログラムとで実現することができる。プログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供され、コンピュータの動作を制御することにより、コンピュータ上に通信ポート131、132、コントローラ133、ルーティングテーブル134、ネットワーク異常検出手段135、パケット生成手段136を実現する。
リモートノード120は、並列処理の実行部121と通信処理手段122とを含んで構成されている。通信処理手段122は、並列処理の実行部121とネットワークとの間の通信を制御する通信処理装置などで構成される。
通信処理手段122は、メッセージパケット140を受信すると、受信したメッセージパケット140を並列処理の実行部121へ通知するように構成されている。また通信処理手段122は、メッセージパケット140に含まれる監視フラグとローカルノードアドレスとを記憶し、監視フラグが点灯状態を示す値になっている場合、並列処理の実行部121の異常を検出するように構成されている。並列処理の実行部121の異常を検出する方法は任意である。例えば、並列処理の実行部121が一定周期でヘルスチェック信号を通信処理手段122へ送信するように構成されている場合、通信処理手段122は、ヘルスチェック信号が一定期間内に送信されなかったとき、並列処理の実行部121に異常が発生したと判断してよい。或いは、並列処理の実行部121を構成するメモリに回復不可能なエラーが発生したことがメモリチェック回路等で検出されたときに、通信処理手段122は、並列処理の実行部121に異常が発生したと判断してよい。また通信処理手段122は、並列処理の実行部121の異常を検出すると、検出した異常をローカルノード110へ通知するための異常通知パケット160を生成するように構成されている。
並列処理の実行部121は、CPUおよびメモリなどのハードウェアとプログラムとで構成される。並列処理の実行部121は、通信処理手段122からメッセージパケット140を受け取ると、メッセージパケット140に含まれている並列処理に必要なデータに基づいて並列処理を実行するように構成されている。また、並列処理の実行部121は、並列処理を正常に終了すると、処理結果をローカルノード110へ通知するための正常通知パケット(図示せず)を生成するように構成されている。
次に本実施形態に係る並列計算システム100における障害検出動作を説明する。
ローカルノード110は、並列処理をリモートノード120に依頼する場合、依頼する並列処理に必要なデータ、点灯状態を示す値にした監視フラグ、ローカルノード110のアドレスであるローカルノードアドレス、リモートノード120のアドレスであるリモートノードアドレスを含むメッセージパケット140を、ネットワークスイッチ130へ送信する。
ネットワークスイッチ130は、メッセージパケット140を受信すると、メッセージパケット140に含まれるリモートノードアドレスで特定されるリモートノード120との間の通信に使用する通信ポート132に対応付けて、点灯状態を示す値の監視フラグとローカルノードアドレスとをルーティングテーブル134に記憶する。またネットワークスイッチ130は、受信したメッセージパケット140を、そのメッセージパケット140に含まれるリモートノードアドレスで特定されるリモートノード120へ転送する。またネットワークスイッチ130のネットワーク異常検出手段135は、ルーティングテーブル134に点灯状態を示す値の監視フラグとローカルノードアドレスとが通信ポート132に対応付けて記憶されると、通信ポート132を使用して行うリモートノード120との間のネットワーク通信の異常を検出する動作を開始する。
リモートノード120の通信処理手段122は、メッセージパケット140を受信すると、メッセージパケット140を並列処理の実行部121へ通知する。また通信処理手段122は、受信したメッセージパケット140に含まれる監視フラグとローカルノードアドレスとを記憶する。そして、通信処理手段122は、監視フラグが点灯状態を示す値になっている場合、並列処理の実行部121の異常を検出する動作を開始する。
リモートノード120の並列処理の実行部121は、通知されたメッセージパケット140に含まれる並列処理に必要なデータを使用して、並列処理の実行を開始する。
その後、リモートノード120の並列処理の実行部121が並列処理の実行を終了する前に、リモートノード120とネットワークスイッチ130との間のネットワークに障害が発生したとする。すると、先ずネットワークスイッチ130のネットワーク異常検出手段135がそのネットワーク異常を検出する。次にパケット生成手段136は、検出されたネットワーク異常を通知する異常通知パケット150を生成し、通信ポート131を通じてローカルノード110へ送信する。ここで、異常通知パケットのソースアドレスはネットワークスイッチ130のアドレス、宛先アドレスはローカルノード110のアドレスである。
ローカルノード110へ送信された異常通知パケット150は、通信処理手段112で受信され、並列処理の実行部111に伝達される。並列処理の実行部111は、受け取った異常通知パケット150により、ネットワークスイッチ130とリモートノード120との間のネットワークに異常が発生したこと、従って並列処理の依頼先であるリモートノード120の並列処理が異常終了したことを検出する。
また、リモートノード120の並列処理の実行部121が並列処理の実行を終了する前に障害を起こすと、通信処理手段122は並列処理の実行部121の当該障害を検出し、その旨を示す異常通知パケット160をネットワークスイッチ130経由でローカルノード110へ送信する。ここで、異常通知パケットのソースアドレスはリモートノード120のアドレス、宛先アドレスはローカルノード110のアドレスである。ローカルノード110へ送信された異常通知パケット160は、通信処理手段112で受信され、並列処理の実行部111に伝達される。並列処理の実行部111は、受け取った異常通知パケット160により、リモートノード120に異常が発生したこと、従って並列処理の依頼先であるリモートノード120の並列処理が異常終了したことを検出する。
このように本実施形態によれば、並列処理の依頼元であるローカルノード110は、リモートノード120に依頼した並列処理の異常終了を速やかに検出することができる。その理由は、リモートノード120における並列処理の終了前に、ネットワークスイッチ130とリモートノード120との間のネットワークに異常が発生した場合、その異常がネットワークスイッチ130のネットワーク異常検出手段135で検出され、異常通知パケット150によりローカルノード110へ通知されるためである。また、リモートノード120における並列処理の終了前に、リモートノード120の並列処理の実行部121に障害が発生した場合、その異常がリモートノード120の通信処理手段122で検出され、異常通知パケット160によりローカルノード110へ通知されるためである。
また本実施形態によれば、並列処理の依頼元であるローカルノード110は、並列処理の依頼と同時に障害の監視をネットワークスイッチ130およびリモートノード120の通信処理手段122に要求することができる。その理由は、依頼する並列処理に必要なデータを格納するメッセージパケット140に含まれる監視フラグ、ローカルノードアドレス、リモートノードアドレスによって、障害の監視をネットワークスイッチ130およびリモートノード120の通信処理手段122に要求するためである。
なお、本実施形態は各種の付加変更が可能である。例えば、ネットワークスイッチ130は、リモートノード120から受信した正常通知パケットをローカルノード110へ転送する際、正常通知パケットの送信元のリモートノード120との間の通信に使用する通信ポート132に対応付けてルーティングテーブル134に記憶されている監視フラグを強制的に消灯状態に更新するようにしてもよい。
[第2の実施形態]
次に本発明の第2の実施形態について説明する。
<本実施形態が解決しようとする課題>
並列コンピューティングシステムにおいて、ローカルノードは、計算の高速化の手法として計算処理を並列化し、ネットワークを介して複数のリモートノードに並列化した処理を実行することで演算処理の高速化を行う。その場合、ローカルノードは、複数のリモートノードに割り付けた複数の並列処理の終了を待ち合わせて計算処理を行う。割り付けられた処理を実行中にリモートノードにおいてハードウェア故障が発生した場合、割り付けられた並列処理自身は異常終了となるが、リモートノードのハードウェア故障により異常終了となったことをローカルノードに通知することができない場合がある。その場合、ローカルノードは、並列処理を割り付けた後に一定時間リモートノードの処理ステータスを監視し、一定時間が経過しても割り付けた処理が正常終了しないとリモートノードの処理に異常が発生したと判断する。そのため、ローカルノードは、割り付けた処理がタイムアウトするまで後続の処理を開始することができなかった。
また、リモートノードとローカルノード間の通信経路において故障が発生した場合においても同様に、リモートノードが割り付けられた処理を正常終了してもローカルノードへ終了ステータスを通知することができない。そのため、ローカルノードは、リモートノード故障時と同様にリモートノードの終了ステータスを一定時間監視し、一定時間が経過してもリモートノードに割り付けた処理が正常終了しないとローカルノードとリモートノード間のどこかで異常が発生したと判断しなければならなかった。そのため、後続処理を開始するのが遅延していた。
いずれの場合においても、ローカルノードは、障害が発生してから一定時間が経過するまで異常が発生したことを認識できない期間が存在する。特にネットワーク経由で分散された大規模な並列コンピューティングの場合は、並列処理の待ち合わせ時間、即ちリモートノードで並列処理を開始してから終了するまでの時間は比較的長い。そのため、障害の検出が遅れると、大量のリモートノードに割り付けた計算リソースが無駄となる。その結果、効率的に計算リソースを割り当てることができなかった。
<本実施形態の構成>
図2は、本実施形態に係る並列計算システムのブロック図である。図2を参照すると、本実施形態に係る並列計算システムは、複数の計算ノード1-1~1-6と、これら複数の計算ノード1-1~1-6を相互に接続するイーサーネットやインフィニバンドなどのネットワークのネットワークスイッチ3とを備えている。
ネットワークスイッチ3は、ルーティングテーブル(RT)31と、異常検出回路(FD)32と、パケット生成回路(PG)33と、複数の通信ポートP1~P6から成る通信ポート部34と、ルーティングテーブル31、異常検出回路32およびパケット生成回路33を有するコントローラ35とを含んで構成される。通信ポートP1~P6は、計算ノード1-1~1-6に通信ケーブルを通じて接続されている。
計算ノード1-1~1-6は、計算ノード1-2、1-6に例示するように、通信処理装置21、22と、CPU23、24と、主記憶(MM)25、26とを含んで構成されている。図2には、合計6個の計算ノード1-1~1-6が示されているが、計算ノードの数は6個に限定されず、複数であればよい。また、図2では、説明の便宜上、計算ノード1-2をローカルノードとし、計算ノード1-6をリモートノードとしている。複数の計算ノード1-1~1-6の何れをローカルノード、リモートノードとするかは任意である。以下、計算ノード1-2をローカルノード1-2と記載し、計算ノード1-6をリモートノード1-6と記載する。
図3は、ローカルノード1-2からネットワークスイッチ3経由でリモートノード1-6へ送信されるメッセージパケット4のフォーマットの一例を示す。図3を参照すると、メッセージパケット4は、並列処理に必要なデータData、監視フラグM、ローカルノード1-2のアドレスであるソースアドレスSA、リモートノード1-6のアドレスである宛先アドレスDAを含んで構成される。
図4は、ネットワークスイッチ3のルーティングテーブル31の構成例を示す。この例のルーティングテーブル31は、複数の通信ポートP1~P6のそれぞれに対応するポートエントリを有する。各ポートエントリは、通信ポートの識別情報を記憶する欄と、メッセージパケット4に含まれる監視フラグを記憶する欄と、メッセージパケット4に含まれるソースアドレスを記憶する欄とから成る。
図5は、リモートノード1-6の通信処理装置22の構成例を示す。図5を参照すると、通信処理装置22は、メッセージパケット4に含まれる監視フラグを保持するレジスタ221と、メッセージパケット4に含まれるソースアドレスを保持するレジスタ222と、リモートノード1-6のCPU24およびメモリ26の障害を検出するように構成されている制御回路223と、制御回路223による障害の検出時に障害通知パケットを生成するパケット生成回路224とを含んで構成されている。
以上のように、メッセージパケット4には、リモートノード2への監視指示(監視フラグ)が含まれている。また、ネットワークスイッチ3は、ローカルノード1-2からのメッセージパケット4をリモートノード1-6に転送した際に、リモートノード1-6の通信ポートに対応付けてメッセージパケット4中の監視フラグとソースアドレスとを記憶するルーティングテーブル31と、ネットワークの異常を検出する異常検出回路32と、監視フラグが転送したアドレス宛てにパケットを生成するパケット生成回路33とを有する。また、リモートノード1-6の通信処理装置22は、ローカルノード1-2からメッセージパケット4を受信した際にメッセージパケット4中の監視フラグとソースアドレスを記憶するレジスタ221、222と、リモートノード1-6内の異常を検出するとローカルノード1-2宛のパケットを生成するパケット生成回路224を有する。
<本実施形態の動作>
次に本実施形態の動作を説明する。
MPI(Message-Passing Interface)などの並列化されたプログラムを複数の計算ノードに跨って実行する場合、ローカルノード1-2は、イーサーネットやインフィニバンドなどのネットワークスイッチ3で接続されたリモートノードとなる他の計算ノードと通信して並列処理を実行する。また、大規模な並列プログラムの場合、ローカルノード1-2は、複数の計算ノードをリモートノードとして並列処理を割り付ける。各リモートノードは、それぞれ割り当てられた並列処理を実行し、完了すると、ローカルノード1-2に終了通知を送信する。ローカルノード1-2は、各リモートノードに割り当てた処理の終了を待ち合わせ、割り当てた全てのリモートノードの処理が終了したことを検知すると、次の処理を実行する。
以下では、ローカルノード1-2がリモートノード1-6に並列処理を割り当てたものとして、本実施形態の動作を説明する。
先ず、ローカルノード1-2は、並列処理開始の先頭でリモートノード1-6に対して、データDataに宛先アドレスDAとソースアドレスSAと監視フラグMとを付加したメッセージパケット4をネットワークスイッチ3に送信する。ネットワークスイッチ3は、受信したメッセージパケット4から、監視フラグMとソースアドレスSAとを抽出し、宛先アドレスDAに対応したルーティングテーブル31のポートエントリに記憶する。そして、ネットワークスイッチ3は、宛先アドレスDAのリモートノード1-6が接続される通信ポートP6に受信したメッセージパケット4を転送する。これによって、メッセージパケット4が通信ポートP6からリモートノード1-6へと転送される。
リモートノード1-6の通信処理装置22は、ネットワークスイッチ3からメッセージパケット4を受信すると、通信処理装置22内に備えたレジスタ221とレジスタ222に、受信したメッセージパケット4中の監視フラグMとソースアドレスSAとを記憶する。そして通信制御装置22は、受信したメッセージパケット4をリモートノード2の主記憶26へ転送する。リモートノード2のCPU24は、主記憶26からメッセージパケット4中のデータDataを読み出し、そのデータに従って並列処理の実行を開始する。
その後、リモートノード1-6でメモリ故障が発生したと仮定する。すると、通信処理装置22の制御回路223は、リモートノード2内で異常が発生したことを検出する。次に制御回路223は、レジスタ221に記憶された監視フラグMが点灯している場合、レジスタ222に記憶されたソースアドレスSAを宛先、リモートノード1-6のアドレスをソースアドレスとして付加した異常通知パケットをパケット生成回路224に生成させる。パケット生成回路224は、異常通知パケットを生成し、ネットワークスイッチ3へ送信する。ネットワークスイッチ3は、通信ポートP6を通じて受信した異常通知パケットを宛先アドレスの装置が接続される通信ポートP2へ送信する。これにより、異常通知パケットが通信ポートP2からローカルノード1-2へと転送される。ローカルノード1-2の通信処理装置21は、異常通知パケットを受信すると、主記憶25を通じてCPU23に異常通知パケットを通知する。CPU23は、この異常通知パケットにより並列処理中にリモートノード1-6に何らかの異常が起きたことを検知し、速やかに異常終了処理を開始する。これによって、CPU23は、後続の処理を開始することが可能となる。
また、リモートノード1-6で並列処理の実行が開始された後、経路となるネットワークで異常が発生した場合、例えばネットワークスイッチ3とリモートノード2を接続する部分でリンク切れを引き起こす障害が発生したと仮定する。すると、ネットワークスイッチ3の異常検出回路32は、ネットワーク異常によるリンク切れを検出する。次に異常検出回路32は、ルーティングテーブル31を参照し、監視フラグMが点灯している通信ポートP6のエントリに登録された宛先アドレス(今の例ではローカルノード1-2のアドレス)を付加した異常通知パケットをパケット生成回路33に生成させる。パケット生成回路33は、生成した異常通知パケットを、付加された宛先アドレスに基づいて通信ポートP2へ送出する。これにより、通信ポートP2からローカルノード1-2へと異常通知パケットが送信される。ローカルノード1-2の通信処理装置21は、異常通知パケットを受信すると、主記憶25を通じてCPU23に異常通知パケットを通知する。CPU23は、この異常通知パケットにより、実行中の並列処理が何らかの原因で異常終了したと認識し、異常終了処理を直ちに実行する。これによって、CPU23は、後続の処理を開始することが可能となる。
<本実施形態の効果>
本実施形態によれば、計算ノードを跨る並列処理を実行する際に、リモートノードでハードウェア故障などが発生し、異常終了となった場合でも、速やかにローカルノードへ異常通知を送信することで実行中の並列処理の異常終了を認識し、並列処理のタイムアウトを待つことなく異常終了処理を開始することで後続処理の開始が可能となり、計算リソースを無駄にすることなく効率的に運用することが可能となる。
また、通信経路となるネットワークの異常が発生した場合においても、同様に直ちに実行中の並列処理が継続できないことを検出し、実行中の並列処理に対して異常終了処理を開始し、後続処理の開始が可能となり、計算リソースを無駄にすることなく効率的に運用することが可能となる。
このように本実施形態によれば、複数の計算ノードがネットワークで接続された並列コンピューティングシステムにおいて、リモートノードに割り付けた分散処理を実行中に、リモートノード上もしくはネットワーク経路で故障が発生した場合、ローカルノードはリモートノードへ割り付けた処理が異常となったことを速やかに検知することが可能となり、直ちに障害処理を実行することで効率的なシステム運用が可能となる。
計算処理の高速化が必要とされ並列コンピューティングが巨大化する状況において、並列計算を構成する計算ノード数が増加するにつれて障害が発生する確率は高まり、1件のハードウェア故障は並列コンピュータシステムの可用性を著しく低下させる要因となっている。ハードウェア故障が発生した際に、直ちに実行中の処理を終了し、並列計算構成を変更して後続の処理を開始することで、並列コンピューティングシステムの可用性を高めることが可能となる。
以上、上記各実施形態を参照して本発明を説明したが、本発明は、上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解しうる様々な変更をすることができる。
例えば、上記各実施形態では、リモートノードで障害が発生した場合、およびネットワーク経路で障害が発生した場合の双方をサポートしたが、何れか一方のみサポートするように構成してもよい。即ち、図1に示した実施形態におけるリモートノード120の通信処理手段122は、メッセージパケット140に基づく並列処理の実行部121の障害監視機能を有していなくてもよく、図2に示した実施形態におけるリモートノード1-6の通信処理装置22はメッセージパケット4に基づくCPU24等のハードウェアの障害監視機能を有していなくてもよい。或いは、図1に示した実施形態におけるネットワークスイッチ130は、ルーティングテーブル134、ネットワーク異常検出手段135、およびパケット生成手段136を有していなくてもよく、図2に示した実施形態におけるネットワークスイッチ3は、ルーティングテーブル31、異常検出回路32、およびパケット生成回路33を有していなくてもよい。
1-1~1-6…計算ノード
3…ネットワークスイッチ
21…通信処理装置
22…通信処理装置
23…CPU
24…CPU
25…主記憶
26…主記憶
31…ルーティングテーブル
32…異常検出回路
33…パケット生成回路
34…通信ポート部
35…コントローラ
100…並列計算システム
110…ローカルノード
111…並列処理の実行部
112…通信処理手段
120…リモートノード
121…並列処理の実行部
122…通信処理手段
130…ネットワークスイッチ
131…通信ポート
132…通信ポート
133…コントローラ
134…ルーティングテーブル
135…ネットワーク異常検出手段
136…パケット生成手段
140…メッセージパケット
150…異常通知パケット
160…異常通知パケット

Claims (10)

  1. 並列処理の依頼元となるローカルノードと、
    前記並列処理の依頼先となるリモートノードと、
    前記ローカルノードと前記リモートノードとを相互に接続するネットワーク上のネットワークスイッチと、を備え、
    前記ローカルノードは、前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを送信するように構成され、
    前記ネットワークスイッチは、
    前記ローカルノードから、前記メッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
    前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
    前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、を備え、
    前記ローカルノードは、
    前記異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている
    並列計算システム。
  2. 前記ネットワークスイッチは、前記メッセージパケットを前記リモートノードアドレスで特定される前記リモートノードへ転送するように構成されている
    請求項1に記載の並列計算システム。
  3. 前記リモートノードは、
    前記並列処理の実行部と、
    前記並列処理の実行部と前記ネットワークスイッチとに接続された通信処理手段と、を備え、
    前記通信処理手段は、前記メッセージパケットを前記ネットワークスイッチ経由で受信すると、前記監視フラグと前記ローカルノードアドレスとを記憶し、前記監視フラグが所定値となっている場合、前記実行部の異常を検出し、前記検出した前記実行部の異常を、前記記憶した前記ローカルノードアドレスで特定される前記ローカルノードへ通知する異常通知パケットを生成するように構成されている
    請求項1または2に記載の並列計算システム。
  4. 前記メッセージパケットは、前記並列処理に必要なデータを含む、
    請求項1乃至3の何れかに記載の並列計算システム。
  5. 並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチであって、
    前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルと、
    前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
    前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
    を備えるネットワークスイッチ。
  6. 前記ネットワークスイッチは、前記メッセージパケットを前記リモートノードアドレスで特定される前記リモートノードへ転送するように構成されている
    請求項5に記載のネットワークスイッチ。
  7. 前記メッセージパケットは、前記並列処理に必要なデータを含む、
    請求項5または6に記載のネットワークスイッチ。
  8. ネットワーク上のネットワークスイッチを通じて並列処理の依頼先となるリモートノードと相互に接続された、前記並列処理の依頼元となるローカルノードであって、
    前記並列処理の実行部と、
    前記並列処理の実行部と前記ネットワークスイッチとに接続された通信処理手段と、を備え、
    前記並列処理の実行部は、
    前記並列処理を前記リモートノードに依頼するときに、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを前記ネットワークスイッチ経由で前記リモートノードへ送信し、
    前記メッセージパケットを受信した前記ネットワークスイッチから、前記ネットワークスイッチと前記リモートノードアドレスで特定される前記リモートノードとの間のネットワーク通信の異常を検出した旨の異常通知パケットを受信することにより、前記並列処理が異常終了したと判断するように構成されている
    ローカルノード。
  9. 並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチが実行する方法であって、
    前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとをルーティングテーブル上で記憶し、
    前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出し、
    前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成する
    方法。
  10. 並列処理の依頼元となるローカルノードと前記並列処理の依頼先となるリモートノードとを相互に接続するネットワーク上のネットワークスイッチを構成するコンピュータ
    前記ローカルノードから、監視フラグとローカルノードアドレスとリモートノードアドレスとを含むメッセージパケットを受信すると、前記リモートノードアドレスで特定される前記リモートノードとの間の通信に使用する通信ポートに対応して前記監視フラグと前記ローカルノードアドレスとを記憶するルーティングテーブルを備え、
    前記コンピュータを、
    前記ルーティングテーブル上の前記監視フラグが所定値となっている場合、前記監視フラグに対応する前記通信ポートを使用して行う前記リモートノードとの間のネットワーク通信の異常を検出するネットワーク異常検出手段と、
    前記検出されたネットワーク通信の異常を、前記ルーティングテーブルにおいて前記通信ポートに対応して記憶する前記ローカルノードアドレスで特定される前記ローカルノードへ通知するための異常通知パケットを生成するパケット生成手段と、
    して機能させるプログラム。
JP2018053756A 2018-03-22 2018-03-22 並列計算システム Active JP7075043B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018053756A JP7075043B2 (ja) 2018-03-22 2018-03-22 並列計算システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018053756A JP7075043B2 (ja) 2018-03-22 2018-03-22 並列計算システム

Publications (2)

Publication Number Publication Date
JP2019168739A JP2019168739A (ja) 2019-10-03
JP7075043B2 true JP7075043B2 (ja) 2022-05-25

Family

ID=68106790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018053756A Active JP7075043B2 (ja) 2018-03-22 2018-03-22 並列計算システム

Country Status (1)

Country Link
JP (1) JP7075043B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113660481B (zh) * 2021-07-08 2023-09-01 深圳市锐明技术股份有限公司 一种端口检测方法、视频处理电路及视频监控设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085060A (ja) 2001-09-10 2003-03-20 Nec Corp 分散処理システム、中継計算機、処理計算機、中継計算機プログラム、および処理計算機プログラム
JP2014039085A (ja) 2012-08-10 2014-02-27 Auto Network Gijutsu Kenkyusho:Kk 車載通信システム及び中継装置
JP2016220189A (ja) 2015-05-18 2016-12-22 株式会社デンソー 中継装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6257336A (ja) * 1985-09-05 1987-03-13 Nec Corp 通信ネツトワ−ク間中継装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085060A (ja) 2001-09-10 2003-03-20 Nec Corp 分散処理システム、中継計算機、処理計算機、中継計算機プログラム、および処理計算機プログラム
JP2014039085A (ja) 2012-08-10 2014-02-27 Auto Network Gijutsu Kenkyusho:Kk 車載通信システム及び中継装置
JP2016220189A (ja) 2015-05-18 2016-12-22 株式会社デンソー 中継装置

Also Published As

Publication number Publication date
JP2019168739A (ja) 2019-10-03

Similar Documents

Publication Publication Date Title
KR880002098B1 (ko) 개량된 멀티프로세서 멀티시스템 통신 회로망
JP4676403B2 (ja) 通信装置及び通信システム
US6282669B1 (en) Ethernet communication redundancy method
WO2015131516A1 (zh) 分布式智能平台管理总线连接方法及atca机框
CN112217658A (zh) 一种堆叠***处理方法及装置
JP2015043479A (ja) ネットワーク装置及びプロセッサの監視方法
JP4964666B2 (ja) 冗長化された通信経路を切り替える計算機、プログラム及び方法
JP7075043B2 (ja) 並列計算システム
JP6253956B2 (ja) ネットワーク管理サーバおよび復旧方法
JP6273841B2 (ja) 通信システム及び通信制御方法
WO1992006435A1 (en) Message control system in a data communication system
CN116670636A (zh) 数据存取方法、装置和存储介质
KR101924002B1 (ko) 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
JP4541241B2 (ja) プラント制御システム
US8914550B2 (en) System and method for transferring data between components of a data processor
JP2010165105A (ja) 通信装置及びその制御プログラム
CN114070799B (zh) 优先级暂停帧的处理方法、处理装置及目标网络设备
US8264948B2 (en) Interconnection device
US9385968B2 (en) Methods and devices for connecting to multiple interfaces
KR100472950B1 (ko) 고속 라우터에서 인접한 라인 정합 보드를 이용한 통신장애 관리방법
JP2007214981A (ja) データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
JP3415557B2 (ja) プリンタ制御方法およびプリンタ装置およびプリンタシステム
JP2019176366A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2009112059A (ja) 通信装置
JP2017187973A (ja) 並列処理装置及び通信制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220329

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: 20220413

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220426

R151 Written notification of patent or utility model registration

Ref document number: 7075043

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151