JP2010231296A - 並列計算システム - Google Patents
並列計算システム Download PDFInfo
- Publication number
- JP2010231296A JP2010231296A JP2009075438A JP2009075438A JP2010231296A JP 2010231296 A JP2010231296 A JP 2010231296A JP 2009075438 A JP2009075438 A JP 2009075438A JP 2009075438 A JP2009075438 A JP 2009075438A JP 2010231296 A JP2010231296 A JP 2010231296A
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- node
- nodes
- analysis process
- management node
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【課題】クラスタにおいて、計算ノードに障害が発生した場合に、既に行われた計算結果を使用して効率良く復旧可能とする。
【解決手段】計算を行う複数の計算ノード120と、この複数の計算ノード120に接続され、この複数の計算ノード120による並列計算を管理する管理ノード110と、この管理ノード110に接続され、管理ノード110および複数の計算ノード120からアクセス可能な、半導体メモリを記憶媒体とするSSD130とを備える。計算ノード120は、解析処理の計算ステップごとに、各計算ステップにおける計算結果のファイルをSSD130に出力する。管理ノード110は、解析処理に異常が発生した後、処理を再開する場合に、解析処理を実行可能な計算ノード120に対して、SSD130に保持されているファイルのデータを改めて割り当て、解析処理を実行させる。
【選択図】図1
【解決手段】計算を行う複数の計算ノード120と、この複数の計算ノード120に接続され、この複数の計算ノード120による並列計算を管理する管理ノード110と、この管理ノード110に接続され、管理ノード110および複数の計算ノード120からアクセス可能な、半導体メモリを記憶媒体とするSSD130とを備える。計算ノード120は、解析処理の計算ステップごとに、各計算ステップにおける計算結果のファイルをSSD130に出力する。管理ノード110は、解析処理に異常が発生した後、処理を再開する場合に、解析処理を実行可能な計算ノード120に対して、SSD130に保持されているファイルのデータを改めて割り当て、解析処理を実行させる。
【選択図】図1
Description
本発明は、並列計算システムに関する。
大規模解析等の膨大な計算を行う場合に、解析を複数のコンピュータで分散処理する並列計算が行われている。この種の並列計算は、例えば、複数のコンピュータをネットワークで接続したクラスタ上で、MPI(Message-Passing Interface)等の並列ライブラリを用いた解析プログラムを実行することで実現される。この場合、コンピュータの外部記憶装置としては、HDD(ハードディスクドライブ)が一般的に用いられている。
特許文献1に記載された従来技術は、仮想記憶方式のマルチプロセッサのシステムにおいて、主記憶から追い出したページデータを外部記憶装置に書き出し、いずれのプロセッサで追い出したデータを必要とした場合でも、外部記憶から読込むものである。
この種の並列計算を実行するシステムでは、計算ノード(コンピュータ)の1台に障害が発生するとシステム全体の計算が中断する。そのため、予め定められた適当なステップ毎に、各計算ノードが処理中の変数の値を再開用ファイルとして出力し、外部記憶装置に保存することが行われる。そして、システムが障害から復旧した後、外部記憶装置に保存された各計算ノードの再開用ファイルが、該当する各計算ノードによって読み込まれ、計算が再開される。
本発明の目的は、複数の計算ノードを接続して構成されたクラスタにおいて、計算ノードに障害が発生した場合に、既に行われた計算結果を使用して効率良く復旧可能とすることにある。
請求項1に記載の発明は、計算を行う複数の計算ノードと、前記複数の計算ノードに接続され、当該複数の計算ノードによる並列計算を管理する管理ノードと、前記管理ノードに接続され、当該管理ノードおよび前記複数の計算ノードからアクセス可能な、半導体メモリを記憶媒体とする外部記憶装置とを備え、前記計算ノードは、解析処理の計算ステップごとに、当該計算ステップにおける計算結果のファイルを前記外部記憶装置に出力し、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードに前記ファイルのデータを改めて割り当て、当該解析処理を実行させることを特徴とする、並列計算システムである。
請求項2に記載の発明は、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、その旨を報知する出力を行って、解析処理を終了することを特徴とする、請求項1に記載の並列計算システムである。
請求項3に記載の発明は、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、前記ファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てることを特徴とする、請求項1に記載の並列計算システムである。
請求項4に記載の発明は、前記管理ノードは、前記外部記憶装置に出力された前記ファイルの数に基づいて、前記解析処理に異常が発生する前に当該解析処理を行っていた計算ノードの数を取得することを特徴とする、請求項2または請求項3に記載の並列計算システムである。
請求項5に記載の発明は、複数の前記計算ノードは、各々、半導体メモリを記憶媒体とする外部記憶装置を備え、前記計算ノードは、前記ファイルを自ノードの外部記憶装置に保持させることを特徴とする請求項1乃至請求項4に記載の並列計算システムである。
請求項2に記載の発明は、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、その旨を報知する出力を行って、解析処理を終了することを特徴とする、請求項1に記載の並列計算システムである。
請求項3に記載の発明は、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、前記ファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てることを特徴とする、請求項1に記載の並列計算システムである。
請求項4に記載の発明は、前記管理ノードは、前記外部記憶装置に出力された前記ファイルの数に基づいて、前記解析処理に異常が発生する前に当該解析処理を行っていた計算ノードの数を取得することを特徴とする、請求項2または請求項3に記載の並列計算システムである。
請求項5に記載の発明は、複数の前記計算ノードは、各々、半導体メモリを記憶媒体とする外部記憶装置を備え、前記計算ノードは、前記ファイルを自ノードの外部記憶装置に保持させることを特徴とする請求項1乃至請求項4に記載の並列計算システムである。
以上のように構成された本発明によれば、次のような効果を奏する。
請求項1の発明によれば、計算ステップごとに出力された計算結果のファイルを用いて、異常が発生した計算ステップの直前から解析処理を再開することができる。
請求項2の発明によれば、解析処理に異常が発生した後、処理を再開する場合に、実際に処理を実行する前に、解析処理を続行可能か否かを判断することができる。
請求項3の発明によれば、障害の発生した計算ノードが復旧しない場合であっても、解析処理を続行することができる。
請求項4の発明によれば、管理ノードは、各計算ノードに問い合わせることなく、異常が発生した計算ノードを特定することができる。
請求項5の発明によれば、障害が発生していない計算ノードは、管理ノードの外部記憶装置にアクセスすることなく、自ノードの外部記憶装置からファイルのデータを取得することができる。
請求項1の発明によれば、計算ステップごとに出力された計算結果のファイルを用いて、異常が発生した計算ステップの直前から解析処理を再開することができる。
請求項2の発明によれば、解析処理に異常が発生した後、処理を再開する場合に、実際に処理を実行する前に、解析処理を続行可能か否かを判断することができる。
請求項3の発明によれば、障害の発生した計算ノードが復旧しない場合であっても、解析処理を続行することができる。
請求項4の発明によれば、管理ノードは、各計算ノードに問い合わせることなく、異常が発生した計算ノードを特定することができる。
請求項5の発明によれば、障害が発生していない計算ノードは、管理ノードの外部記憶装置にアクセスすることなく、自ノードの外部記憶装置からファイルのデータを取得することができる。
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
<システム構成>
図1は、本実施形態の並列計算システムの全体構成を示す図である。
図1に示す並列計算システム100は、1台の管理ノード110と、複数台の計算ノード120と、管理ノード110に接続された外部記憶装置であるSSD(Solid State Drive)130とを備える。各ノード(管理ノード110および計算ノード120)は、ネットワーク接続されており、いわゆるクラスタコンピューティングを実現する。また各ノードは、パーソナルコンピュータやワークステーション等のコンピュータで実現される。SSD130は、記憶媒体としてDRAM(Dynamic Random Access Memory)やフラッシュメモリ等の半導体メモリを用い、HDD(ハードディスクドライブ)等と同様にコンピュータの外部記憶装置として使用される。SSD130は、半導体メモリを記憶媒体とするため、データの読み書きの際に、HDDのようにヘッドを移動させるための時間やディスクの回転数を高めるのに必要な時間を要しない。
<システム構成>
図1は、本実施形態の並列計算システムの全体構成を示す図である。
図1に示す並列計算システム100は、1台の管理ノード110と、複数台の計算ノード120と、管理ノード110に接続された外部記憶装置であるSSD(Solid State Drive)130とを備える。各ノード(管理ノード110および計算ノード120)は、ネットワーク接続されており、いわゆるクラスタコンピューティングを実現する。また各ノードは、パーソナルコンピュータやワークステーション等のコンピュータで実現される。SSD130は、記憶媒体としてDRAM(Dynamic Random Access Memory)やフラッシュメモリ等の半導体メモリを用い、HDD(ハードディスクドライブ)等と同様にコンピュータの外部記憶装置として使用される。SSD130は、半導体メモリを記憶媒体とするため、データの読み書きの際に、HDDのようにヘッドを移動させるための時間やディスクの回転数を高めるのに必要な時間を要しない。
本実施形態では、並列計算システム100による計算(解析処理)として、粒子の挙動解析を行う場合を例として説明する。具体的には、例えば電子写真方式による画像形成装置において画像形成に使用される画像形成材などのように、複数の粒子(トナーおよびキャリア粒子等)が混合された状態での粒子の振る舞いをシミュレーションして解析する場合に適用される。このような解析では、個別要素法や有限要素法が用いられる。なお、この粒子の挙動解析は、本実施形態が適用可能な処理の一例を示すに過ぎず、並列計算による分散処理が可能な種々の処理に適用できることは言うまでもない。
図2は、管理ノード110および計算ノード120を実現するコンピュータのハードウェア構成例を示す図である。
図2に示すコンピュータ10は、演算手段であるCPU(Central Processing Unit)10aと、記憶手段である主記憶装置(メインメモリ)10bおよび外部記憶装置10cを備える。外部記憶装置10cとしては、一般に磁気ディスク装置(HDD:Hard Disk Drive)が用いられるが、管理ノード110においてはSSD130が用いられる。また、図2のコンピュータ10は、ネットワークを介して外部装置に接続するためのネットワークI/F(インターフェイス)10dと、ディスプレイ装置へ表示出力を行うための表示機構10eと、音声出力を行うための音声機構10fとを備える。さらに、キーボードやマウス等の入力デバイス10gを備える。CPU10aと他の構成要素との間には、図示しないチップセットやブリッジ回路が介在している。
図2に示すコンピュータ10は、演算手段であるCPU(Central Processing Unit)10aと、記憶手段である主記憶装置(メインメモリ)10bおよび外部記憶装置10cを備える。外部記憶装置10cとしては、一般に磁気ディスク装置(HDD:Hard Disk Drive)が用いられるが、管理ノード110においてはSSD130が用いられる。また、図2のコンピュータ10は、ネットワークを介して外部装置に接続するためのネットワークI/F(インターフェイス)10dと、ディスプレイ装置へ表示出力を行うための表示機構10eと、音声出力を行うための音声機構10fとを備える。さらに、キーボードやマウス等の入力デバイス10gを備える。CPU10aと他の構成要素との間には、図示しないチップセットやブリッジ回路が介在している。
図2において、各構成要素は、システムバスや入出力バス等の各種のバスを介して接続される。例えば、CPU10aと主記憶装置10bの間は、システムバスやメモリバスを介して接続される。また、CPU10aと外部記憶装置10c、ネットワークI/F10d、表示機構10e、音声機構10f、入力デバイス10g等との間は、PCI(Peripheral Components Interconnect)、PCI Express、シリアルATA(AT Attachment)、USB(Universal Serial Bus)、AGP(Accelerated Graphics Port)等の入出力バスを介して接続される。
なお、図2は、並列計算システム100を構成する管理ノード110および計算ノード120を実現するのに好適なコンピュータのハードウェア構成を例示するに過ぎず、図示の構成に限定されないことは言うまでもない。例えば、計算ノード120の補助記憶装置として、外部記憶装置10cの他に、フレキシブルディスクや光学ディスクをメディアとするドライブを設けたり、USBメモリを設けたりしても良い。USBメモリは、USBを介してブリッジ回路に接続されることとなる。また、音声機構10fを独立した構成とせず、チップセットの機能として備えるようにしても良い。
<ノードの機能>
図3は、管理ノード110の機能構成を示す図である。
図3に示すように、管理ノード110は、解析対象のデータを各計算ノード120に割り当てるデータ割り当て部111と、各計算ノード120による計算結果を受け取って解析対象のデータを更新するデータ更新部112と、各計算ノード120による計算が完了した後に終了処理を行う終了処理部113と、管理ノード110および並列計算システム100全体の制御を行う制御部114とを備える。データ割り当て部111、データ更新部112、終了処理部113および制御部114は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。
図3は、管理ノード110の機能構成を示す図である。
図3に示すように、管理ノード110は、解析対象のデータを各計算ノード120に割り当てるデータ割り当て部111と、各計算ノード120による計算結果を受け取って解析対象のデータを更新するデータ更新部112と、各計算ノード120による計算が完了した後に終了処理を行う終了処理部113と、管理ノード110および並列計算システム100全体の制御を行う制御部114とを備える。データ割り当て部111、データ更新部112、終了処理部113および制御部114は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。
また、管理ノード110は、SSD130を外部記憶装置(補助記憶手段)として用いる。解析対象である粒子情報の元データは、SSD130に保持されているものとする。さらにSSD130は、管理ノード110を介して計算ノード120からアクセスできるように設定(共有設定)されている。したがって、計算ノード120は、管理ノード110によるアクセス制御下で、管理ノード110に接続されているSSD130にアクセスして直接データの読み書きを行う。
データ割り当て部111は、SSD130から解析対象である粒子情報のデータを読み込み、読み込んだデータを各計算ノード120に割り当て、割り当てたデータを各計算ノード120に送信する。計算ノード120に送られるデータには、粒子の位置や属性など計算ノード120による計算に必要なデータを含む。データの割り当ては、例えば粒子分割法や領域分割法などの既存の手法にて行う。また、データ割り当て部111は、各計算ノード120に対して、割り当てたデータと共に、このデータに対応する粒子(自ノードに割り当てられた粒子)の挙動に影響を与える他の粒子のデータを送信する。この他の粒子のデータは、各計算ノード120が粒子の挙動解析を行う上で必要なデータ(計算に必要なデータ)である。
データ更新部112は、各計算ノード120の計算結果を受信して解析結果としてまとめ、SSD130に保持されている粒子情報を更新する。SSD130における粒子情報の更新は、解析結果を追加書き込みすることによって行っても良いし、現在の粒子情報を解析結果で上書きすることによって行っても良い。計算ノード120による粒子の挙動解析のための計算は、通常、複数回の計算ステップによって行われる。したがって、データ更新部112は、計算ノード120から各計算ステップの計算結果を受信するたびに粒子情報の更新を行うこととなる。
終了処理部113は、各計算ノード120による計算ステップが予め設定された回数に到達したならば、音声出力や表示出力等の出力手段を介してシステムユーザに解析終了を通知する。また、最終的な解析結果(更新された情報)を出力しても良い。本実施形態では各計算ノード120の計算結果をデータ更新部112がまとめて解析結果としてSSD130に書き込む。したがって、終了処理部113は、解析結果を出力する場合、SSD130に保持されている粒子情報のデータをそのまま出力すれば良い。
制御部114は、データ割り当て部111および終了処理部113の動作を制御する。また、解析処理全体の開始、進行、終了等の動作を制御する。解析処理に異常が発生した後、処理を再開する場合には、異常が発生する前の段階から再開するための処理を行う。解析処理の再開時の動作の詳細については後述する。
図4は、計算ノード120の機能構成を示す図である。
図4に示すように、各計算ノード120は、それぞれ、管理ノード110から解析対象のデータを受け付ける受け付け部121と、計算処理を行う計算部122と、計算部122による計算結果を管理ノード110へ送信する送信部123と、再開用ファイルをSSD130に出力する出力部124とを備える。受け付け部121、送信部123および出力部124は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行しネットワークI/F10dを制御することで実現される。また、計算部122は、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能である。このように、図4に示す計算ノード120の各機能ブロックは、ソフトウェアとハードウェア資源とが協働して実現される手段である。
図4に示すように、各計算ノード120は、それぞれ、管理ノード110から解析対象のデータを受け付ける受け付け部121と、計算処理を行う計算部122と、計算部122による計算結果を管理ノード110へ送信する送信部123と、再開用ファイルをSSD130に出力する出力部124とを備える。受け付け部121、送信部123および出力部124は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行しネットワークI/F10dを制御することで実現される。また、計算部122は、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能である。このように、図4に示す計算ノード120の各機能ブロックは、ソフトウェアとハードウェア資源とが協働して実現される手段である。
受け付け部121は、管理ノード110から送信された自ノードの計算に必要なデータを受け付ける。ここで、自ノードの計算に必要なデータとは、管理ノード110により自ノードに割り当てられたデータおよびこのデータに対応する粒子(自ノードに割り当てられた粒子)の挙動に影響を与える他の粒子のデータである。例えば、自ノードに割り当てられた粒子に近接し、電磁力の影響が無視できない粒子や接触の可能性がある粒子などのデータである。
計算部122は、受け付け部121により読み込まれたデータに基づき、自ノードに割り当てられた粒子の挙動を解析する。具体的には、粒子の現在位置と属性、粒子に作用する力に基づいて、粒子の位置がどのように変化するかを計算する。粒子の属性としては、例えば大きさ、質量、速度、電荷、磁化などが挙げられる。
送信部123は、計算部122による計算結果を管理ノード110へ送信する。計算部122による粒子の挙動解析のための計算は、通常、複数回の計算ステップによって行われる。したがって、送信部123は、計算部122による1回の計算ステップが実行されるたびに計算結果を管理ノード110へ送信することとなる。
出力部124は、管理ノード110に接続されているSSD130にアクセスし、自ノード(計算ノード120)の再開用ファイルとして、計算部122による計算結果を書き込む。再開用ファイルの出力頻度は、適宜定め得るが、本実施形態では、計算部122による1回の計算ステップが実行されるたびに出力するものとする。再開用ファイルのファイル名には、再開用ファイルを作成した計算ノード120の識別情報(ID)および何回目の計算ステップかを示す情報が含まれる。SSD130への計算結果(再開用ファイル)の書き込みは、新たな計算結果を新たな再開用ファイルとして追加書き込みすることによって行われる。この場合、SSD130の記憶容量を超えて書き込むことはできないので、全体のデータ量に応じて古い粒子情報ファイルから削除していく等の操作が必要になる場合もある。
<並列計算システムの動作>
次に、上記のように構成された並列計算システム100の動作について説明する。
図5は、個別要素法により粒子の挙動解析を行う場合を例として、並列計算システム100の全体動作を説明するフローチャートである。
図5に示すように、並列計算システム100は、まず管理ノード110の制御部114が計算ノード120の数を取得し(ステップ501)、解析対象である粒子のデータをSSD130から読み込む(ステップ502)。そして、データ割り当て部111が、この解析対象の粒子群を各計算ノード120に割り当て、割り当てた粒子のデータを各計算ノード120に送信する(ステップ503)。送信されたデータは、各計算ノード120の受け付け部121により受け付けられ、計算部122に渡される。
次に、上記のように構成された並列計算システム100の動作について説明する。
図5は、個別要素法により粒子の挙動解析を行う場合を例として、並列計算システム100の全体動作を説明するフローチャートである。
図5に示すように、並列計算システム100は、まず管理ノード110の制御部114が計算ノード120の数を取得し(ステップ501)、解析対象である粒子のデータをSSD130から読み込む(ステップ502)。そして、データ割り当て部111が、この解析対象の粒子群を各計算ノード120に割り当て、割り当てた粒子のデータを各計算ノード120に送信する(ステップ503)。送信されたデータは、各計算ノード120の受け付け部121により受け付けられ、計算部122に渡される。
ステップ504〜507の動作は、各計算ノード120において個別に実行される動作である。
各計算ノード120では、計算部122が、まず各粒子について、磁気力(磁気的な相互作用力)、静電気力(静電気による相互作用力)、接触力(機械的な相互作用力)を計算する(ステップ504)。このとき、計算された磁気力、静電気力、接触力は、内部キャッシュ等に一時的に保持される。また、各計算ノード120がSSD等の高速な外部記憶装置を備える場合は、作業ファイルとして出力し、外部記憶装置に保持させても良い。次に計算部122は、内部キャッシュ等に保持されている磁気力、静電気力、接触力を読み込み、各作用力の和を求める(ステップ505)。そして、ステップ505で求まった作用力の和と粒子の位置情報および属性情報に基づいて運動方程式を解き、各粒子の位置情報(座標)を計算する(ステップ506)。計算部122の計算が終了すると、出力部124が今回の計算ステップにおける自ノードの計算結果を再開用ファイルとしてSSD130に書き込む(ステップ507)。また、このとき、送信部123が管理ノード110に計算が終了したことを通知する。
各計算ノード120では、計算部122が、まず各粒子について、磁気力(磁気的な相互作用力)、静電気力(静電気による相互作用力)、接触力(機械的な相互作用力)を計算する(ステップ504)。このとき、計算された磁気力、静電気力、接触力は、内部キャッシュ等に一時的に保持される。また、各計算ノード120がSSD等の高速な外部記憶装置を備える場合は、作業ファイルとして出力し、外部記憶装置に保持させても良い。次に計算部122は、内部キャッシュ等に保持されている磁気力、静電気力、接触力を読み込み、各作用力の和を求める(ステップ505)。そして、ステップ505で求まった作用力の和と粒子の位置情報および属性情報に基づいて運動方程式を解き、各粒子の位置情報(座標)を計算する(ステップ506)。計算部122の計算が終了すると、出力部124が今回の計算ステップにおける自ノードの計算結果を再開用ファイルとしてSSD130に書き込む(ステップ507)。また、このとき、送信部123が管理ノード110に計算が終了したことを通知する。
管理ノード110のデータ更新部112は、全ての計算ノード120から計算終了の通知を受け付けると、次に各計算ノード120から計算結果を受信し、ステップ502でSSD130から読み込んだデータを更新する(ステップ508、509)。そして、各計算ノード120による次の計算ステップに用いるために、更新したデータを各計算ノード120に送信する(ステップ510)。全ての計算ノード120に更新したデータを送信した後、データ更新部112は、各計算ノード120の計算結果をSSD130に書き込む(ステップ511、512)。
以下、各計算ノード120の計算ステップが予め設定された回数に達するまでステップ504〜ステップ512の処理が繰り返される(ステップ513)。そして、計算ステップが設定数に到達したならば、終了処理部113が、ステップ512で出力された計算結果を解析結果として終了処理を行う(ステップ514)。終了処理としては、例えばシステムユーザに処理の終了を通知したり、SSD130に保持されている粒子情報ファイルを解析結果として出力したりする。
<異常終了後、再開時の動作>
解析処理の実行中に、いずれかの計算ノード120に障害が発生し、その計算ノード120が解析処理のジョブを実行できなくなった場合を考える。この場合、ステップ508において、障害が発生した計算ノード120の計算が完了しないため、データ更新部112は、SSD130のデータを更新できない。したがって、データ更新部112による更新待ちの状態が長時間続くと、システムユーザは、システムに異常が発生し、解析処理が進行しない状態であることに気づく。また、制御部114が、データ更新部112による更新待ちの状態での時間経過を計測し、予め定められた時間が経過した場合に、音声出力や表示出力等によって、異常が発生していることをシステムユーザに報知するようにしても良い。
解析処理の実行中に、いずれかの計算ノード120に障害が発生し、その計算ノード120が解析処理のジョブを実行できなくなった場合を考える。この場合、ステップ508において、障害が発生した計算ノード120の計算が完了しないため、データ更新部112は、SSD130のデータを更新できない。したがって、データ更新部112による更新待ちの状態が長時間続くと、システムユーザは、システムに異常が発生し、解析処理が進行しない状態であることに気づく。また、制御部114が、データ更新部112による更新待ちの状態での時間経過を計測し、予め定められた時間が経過した場合に、音声出力や表示出力等によって、異常が発生していることをシステムユーザに報知するようにしても良い。
システムユーザは、解析処理が進行しない状態になると、システムの動作を中断(異常終了)させて、復旧のための操作を行う。具体的には、各計算ノード120における解析処理のジョブを停止させ、各計算ノード120を再起動させる。このとき、障害の発生した計算ノード120のみを再起動させても良いし、全ての計算ノード120を再起動させても良い。そして、管理ノード110に、解析処理を再開させる。
上記のように、障害が発生した計算ノード120は、自ノードに割り当てられたジョブの計算を完了できない。本実施形態では、計算ステップごとに再開用ファイルをSSD130へ出力するため、いずれかの計算ノード120で障害が発生する直前の計算ステップまでは、全ての計算ノード120が出力した再開用ファイルがSSD130に出力されている。したがって、解析処理に異常が発生したならば、その時点で最後にSSD130に出力された再開用ファイルを調べ、再開用ファイルを出力していない計算ノード120を特定することによって、障害が発生した計算ノード120が特定される。
図6は、解析処理の再開時の動作を示すフローチャートである。
図6に示すように、管理ノード110の制御部114は、各計算ノード120に問い合わせを行い、解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)を取得する(ステップ601)。ここで、解析処理のジョブを実行可能な計算ノードは、再起動によって障害が解決した計算ノード120および障害の発生していない計算ノード120である。
図6に示すように、管理ノード110の制御部114は、各計算ノード120に問い合わせを行い、解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)を取得する(ステップ601)。ここで、解析処理のジョブを実行可能な計算ノードは、再起動によって障害が解決した計算ノード120および障害の発生していない計算ノード120である。
次に、制御部114は、計算ノード数と解析処理のジョブの実行に必要な計算ノード120の数(必要ノード数)とを比較する。ここで、「計算ノード数」は、上記のように、障害が発生していない計算ノード120と再起動により復旧した計算ノード120の合計である。また、「必要ノード数」は、障害が発生する前に解析処理のジョブを実行していた計算ノード120の数である。この「必要ノード数」は、図5のステップ501で取得した計算ノード120の数と等しいので、この値を用いても良いし、障害が発生する前の再開用ファイルの数とも等しいので、この値を用いても良い。
計算ノード数が必要ノード数以上である場合(ステップ602でYes)、制御部114からデータ割り当て部111に処理が移行し、ジョブを実行可能な計算ノード120に再開用ファイルのデータを割り当てる(ステップ603)。そして、ジョブを実行可能な各計算ノード120が、割り当てられた再開用ファイルをSSD130から読み込んで(ステップ604)、ジョブを再開する(動作は、図5のステップ504に戻る)。
一方、計算ノード数が必要ノード数よりも少ない場合(ステップ602でNo)、再開用ファイルを全て割り当ててジョブを実行することができない。そのため、再開処理部114は、ジョブを実行可能な計算ノード120の数が不足しているために解析処理を再開できないことをシステムユーザに通知して(ステップ605)、処理を終了する。
なお、図6において、ステップ602の判断で、計算ノード数が必要ノード数よりも多い場合があるように記載されている。最初の割り当て(図5のステップ503)で、並列計算システム100の全ての計算ノード120にデータを割り当てた場合、計算ノード数の最大値は必要ノード数に等しい。しかし、並列計算システム100の構成に冗長性を持たせ、解析処理のジョブを実行しない計算ノード120を確保しておいた場合、この余剰分の計算ノード120を解析処理に参加させることによって、計算ノード数が必要ノード数よりも多くなる場合があり得る。
以上のように、本実施形態では、各計算ノード120が、管理ノード110との間で共有設定されたSSD130に再開用ファイルを出力する。このため、再開用ファイルをSSD130以外の、磁気ディスク等の外部記憶装置に保存したり、各計算ノード120の再開用ファイルをネットワーク通信にて管理ノード110に集めて保存したりする場合と比較して、再開用ファイルの出力作業に要する時間が大幅に短縮される。また、本実施形態では、SSD130へ出力される再開用ファイルを調べることによって、いずれかの計算ノード120に障害が発生した場合にも、障害が発生した計算ノード120を特定して復旧させることができ、効率良く解析処理を再開させることが可能となる。
<並列計算システムの他の動作例>
上記の動作例では、解析処理の異常終了後の再開時の動作において、解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)が当該ジョブの実行に必要な計算ノード120の数(必要ノード数)よりも少ない場合は、解析処理を再開せずに終了した(図6のステップ602、605を参照)。これに対し、計算ノード数が必要ノード数よりも少ない場合、再開用ファイルのデータを結合し、計算ノード数に応じて再構成し、再構成された計算ノード数分のデータを、ジョブを実行可能な計算ノード120に割り当てて、解析処理を再開しても良い。
上記の動作例では、解析処理の異常終了後の再開時の動作において、解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)が当該ジョブの実行に必要な計算ノード120の数(必要ノード数)よりも少ない場合は、解析処理を再開せずに終了した(図6のステップ602、605を参照)。これに対し、計算ノード数が必要ノード数よりも少ない場合、再開用ファイルのデータを結合し、計算ノード数に応じて再構成し、再構成された計算ノード数分のデータを、ジョブを実行可能な計算ノード120に割り当てて、解析処理を再開しても良い。
図7は、本動作例における並列計算システム100の再開時の動作を示すフローチャートである。
図7において、ステップ701からステップ704までの動作は、図6に示したステップ601からステップ604までの動作と同様である。
図7において、ステップ701からステップ704までの動作は、図6に示したステップ601からステップ604までの動作と同様である。
計算ノード数が必要ノード数よりも少ない場合(ステップ702でNo)、制御部114は、SSD130に書き込まれている再開用ファイルのデータを合成し、計算ノード数に応じて再分割する(ステップ705)。そして、制御部114からデータ割り当て部111に処理が移行し、各計算ノード120に再開用ファイルのデータを割り当てる(ステップ703)。この後、ジョブを実行可能な各計算ノード120が、割り当てられた再開用ファイルをSSD130から読み込んで(ステップ704)、ジョブを再開する。
<並列計算システムの他の構成例>
図8は、並列計算システム100の他の構成例を示す図である。また、図9は、計算ノード120の機能構成を示す図である。
図1に示した構成では、並列計算システム100を構成するノードのうち管理ノード110のみがSSD130を備える構成とした。これに対し、図8に示すように、管理ノード110と共に各計算ノード120も外部記憶装置としてSSD140を備える構成を採っても良い。
図8は、並列計算システム100の他の構成例を示す図である。また、図9は、計算ノード120の機能構成を示す図である。
図1に示した構成では、並列計算システム100を構成するノードのうち管理ノード110のみがSSD130を備える構成とした。これに対し、図8に示すように、管理ノード110と共に各計算ノード120も外部記憶装置としてSSD140を備える構成を採っても良い。
図9に示すように、本構成における計算ノード120は、受け付け部121と、計算部122と、送信部123と、出力部125とを備える。図9に示す計算ノード120において、受け付け部121、計算部122および送信部123の機能は、図4に示した計算ノード120の各機能と同様である。したがって、同一の符号を付して詳細な説明を省略する。
出力部125は、SSD130ではなく、自ノード(計算ノード120)に接続されたSSD140へ再開用ファイルを出力する。そして、再開時には、各計算ノード120は、自ノードに接続されたSSD140から再開用ファイルを読み込み、解析処理のジョブを再開する。この場合、再開用ファイルは各計算ノード120に保持されるため、図1に示した構成の場合のように、SSD130に出力された再開用ファイルに基づいて障害が発生した計算ノード120を特定することはできない。したがって、この場合、システムを復旧させるためには、管理ノード100のデータ更新部112が、どの計算ノード120から計算結果を受信していないかを判断し、システムユーザに報知するか、または、障害が発生した計算ノード120を特定せずに、全ての計算ノード120を対象として、再起動させる。
なお、図9に示した構成の他、出力部125がSSD130およびSSD140の両方へ再開用ファイルを出力するようにしても良い。この場合、各計算ノード120は、解析処理の再開後に新たに割り当てられた再開用ファイルのデータのみを管理ノード110のSSD130から取得すれば良い。
100…並列計算システム、110…管理ノード、111…データ割り当て部、112…データ更新部、113…終了処理部、114…制御部、120…計算ノード、121…受け付け部、122…計算部、123…送信部、124、125…出力部、130、140…SSD(Solid State Drive)
Claims (5)
- 計算を行う複数の計算ノードと、
前記複数の計算ノードに接続され、当該複数の計算ノードによる並列計算を管理する管理ノードと、
前記管理ノードに接続され、当該管理ノードおよび前記複数の計算ノードからアクセス可能な、半導体メモリを記憶媒体とする外部記憶装置とを備え、
前記計算ノードは、解析処理の計算ステップごとに、当該計算ステップにおける計算結果のファイルを前記外部記憶装置に出力し、
前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードに前記ファイルのデータを改めて割り当て、当該解析処理を実行させることを特徴とする、並列計算システム。 - 前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、その旨を報知する出力を行って、解析処理を終了することを特徴とする、請求項1に記載の並列計算システム。
- 前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、前記ファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てることを特徴とする、請求項1に記載の並列計算システム。
- 前記管理ノードは、前記外部記憶装置に出力された前記ファイルの数に基づいて、前記解析処理に異常が発生する前に当該解析処理を行っていた計算ノードの数を取得することを特徴とする、請求項2または請求項3に記載の並列計算システム。
- 複数の前記計算ノードは、各々、半導体メモリを記憶媒体とする外部記憶装置を備え、
前記計算ノードは、前記ファイルを自ノードの外部記憶装置に保持させることを特徴とする請求項1乃至請求項4に記載の並列計算システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009075438A JP2010231296A (ja) | 2009-03-26 | 2009-03-26 | 並列計算システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009075438A JP2010231296A (ja) | 2009-03-26 | 2009-03-26 | 並列計算システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010231296A true JP2010231296A (ja) | 2010-10-14 |
Family
ID=43047082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009075438A Pending JP2010231296A (ja) | 2009-03-26 | 2009-03-26 | 並列計算システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010231296A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014191594A (ja) * | 2013-03-27 | 2014-10-06 | Nec Corp | 分散処理システム |
JP2020526849A (ja) * | 2017-07-20 | 2020-08-31 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | ブロックチェーンの監視 |
-
2009
- 2009-03-26 JP JP2009075438A patent/JP2010231296A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014191594A (ja) * | 2013-03-27 | 2014-10-06 | Nec Corp | 分散処理システム |
JP2020526849A (ja) * | 2017-07-20 | 2020-08-31 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | ブロックチェーンの監視 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9335998B2 (en) | Multi-core processor system, monitoring control method, and computer product | |
US20060117300A1 (en) | Tracking modified pages on a computer system | |
US8928677B2 (en) | Low latency concurrent computation | |
US8661163B2 (en) | Tag allocation for queued commands across multiple devices | |
JP6123626B2 (ja) | 処理再開方法、処理再開プログラムおよび情報処理システム | |
US9996349B2 (en) | Clearing specified blocks of main storage | |
US10331581B2 (en) | Virtual channel and resource assignment | |
US10579416B2 (en) | Thread interrupt offload re-prioritization | |
JP2009087282A (ja) | 並列計算システムおよび並列計算方法 | |
US20210117240A1 (en) | Cpu utilization for service level i/o scheduling | |
US10963182B2 (en) | System and method for on-demand recovery points | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
US10846138B2 (en) | Allocating resources of a memory fabric | |
US10877790B2 (en) | Information processing apparatus, control method and storage medium | |
KR102315102B1 (ko) | 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체 | |
US20140068214A1 (en) | Information processing apparatus and copy control method | |
CN112214292A (zh) | 多核系统和控制多核系统的操作的方法 | |
JP2010231296A (ja) | 並列計算システム | |
JP2010231295A (ja) | 解析システム | |
JP2014038551A (ja) | データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム | |
US10713103B2 (en) | Lightweight application programming interface (API) creation and management | |
JPWO2018173300A1 (ja) | I/o制御方法およびi/o制御システム | |
US20230236889A1 (en) | Distributed accelerator | |
US11977907B2 (en) | Hybrid push and pull event source broker for serverless function scaling | |
US9251100B2 (en) | Bitmap locking using a nodal lock |