(57)【要約】【課題】クラスタにおいて、計算ノードに障害が発生した場合に、既に行われた計算結果を使用して効率良く復旧可能とする。【解決手段】計算を行う複数の計算ノード１２０と、この複数の計算ノード１２０に接続され、この複数の計算ノード１２０による並列計算を管理する管理ノード１１０と、この管理ノード１１０に接続され、管理ノード１１０および複数の計算ノード１２０からアクセス可能な、半導体メモリを記憶媒体とするＳＳＤ１３０とを備える。計算ノード１２０は、解析処理の計算ステップごとに、各計算ステップにおける計算結果のファイルをＳＳＤ１３０に出力する。管理ノード１１０は、解析処理に異常が発生した後、処理を再開する場合に、解析処理を実行可能な計算ノード１２０に対して、ＳＳＤ１３０に保持されているファイルのデータを改めて割り当て、解析処理を実行させる。【選択図】図１
2010231296.tif 000002
【特許請求の範囲】
【請求項１】
計算を行う複数の計算ノードと、
前記複数の計算ノードに接続され、当該複数の計算ノードによる並列計算を管理する管理ノードと、
前記管理ノードに接続され、当該管理ノードおよび前記複数の計算ノードからアクセス可能な、半導体メモリを記憶媒体とする外部記憶装置とを備え、
前記計算ノードは、解析処理の計算ステップごとに、当該計算ステップにおける計算結果のファイルを前記外部記憶装置に出力し、
前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードに前記ファイルのデータを改めて割り当て、当該解析処理を実行させることを特徴とする、並列計算システム。
【請求項２】
前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、その旨を報知する出力を行って、解析処理を終了することを特徴とする、請求項１に記載の並列計算システム。
【請求項３】
前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、前記ファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てることを特徴とする、請求項１に記載の並列計算システム。
【請求項４】
前記管理ノードは、前記外部記憶装置に出力された前記ファイルの数に基づいて、前記解析処理に異常が発生する前に当該解析処理を行っていた計算ノードの数を取得することを特徴とする、請求項２または請求項３に記載の並列計算システム。
【請求項５】
複数の前記計算ノードは、各々、半導体メモリを記憶媒体とする外部記憶装置を備え、
前記計算ノードは、前記ファイルを自ノードの外部記憶装置に保持させることを特徴とする請求項１乃至請求項４に記載の並列計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算システムに関する。
【背景技術】
【０００２】
大規模解析等の膨大な計算を行う場合に、解析を複数のコンピュータで分散処理する並列計算が行われている。この種の並列計算は、例えば、複数のコンピュータをネットワークで接続したクラスタ上で、ＭＰＩ（Message-Passing Interface）等の並列ライブラリを用いた解析プログラムを実行することで実現される。この場合、コンピュータの外部記憶装置としては、ＨＤＤ（ハードディスクドライブ）が一般的に用いられている。
【０００３】
特許文献１に記載された従来技術は、仮想記憶方式のマルチプロセッサのシステムにおいて、主記憶から追い出したページデータを外部記憶装置に書き出し、いずれのプロセッサで追い出したデータを必要とした場合でも、外部記憶から読込むものである。
【０００４】
この種の並列計算を実行するシステムでは、計算ノード（コンピュータ）の１台に障害が発生するとシステム全体の計算が中断する。そのため、予め定められた適当なステップ毎に、各計算ノードが処理中の変数の値を再開用ファイルとして出力し、外部記憶装置に保存することが行われる。そして、システムが障害から復旧した後、外部記憶装置に保存された各計算ノードの再開用ファイルが、該当する各計算ノードによって読み込まれ、計算が再開される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平３−２２３９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、複数の計算ノードを接続して構成されたクラスタにおいて、計算ノードに障害が発生した場合に、既に行われた計算結果を使用して効率良く復旧可能とすることにある。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、計算を行う複数の計算ノードと、前記複数の計算ノードに接続され、当該複数の計算ノードによる並列計算を管理する管理ノードと、前記管理ノードに接続され、当該管理ノードおよび前記複数の計算ノードからアクセス可能な、半導体メモリを記憶媒体とする外部記憶装置とを備え、前記計算ノードは、解析処理の計算ステップごとに、当該計算ステップにおける計算結果のファイルを前記外部記憶装置に出力し、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードに前記ファイルのデータを改めて割り当て、当該解析処理を実行させることを特徴とする、並列計算システムである。
請求項２に記載の発明は、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、その旨を報知する出力を行って、解析処理を終了することを特徴とする、請求項１に記載の並列計算システムである。
請求項３に記載の発明は、前記管理ノードは、前記解析処理に異常が発生した後、処理を再開する場合に、当該解析処理を実行可能な計算ノードの数と異常発生前に当該解析処理を行っていた計算ノードの数とを比較し、当該解析処理を実行可能な計算ノードの数の方が少ない場合は、前記ファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てることを特徴とする、請求項１に記載の並列計算システムである。
請求項４に記載の発明は、前記管理ノードは、前記外部記憶装置に出力された前記ファイルの数に基づいて、前記解析処理に異常が発生する前に当該解析処理を行っていた計算ノードの数を取得することを特徴とする、請求項２または請求項３に記載の並列計算システムである。
請求項５に記載の発明は、複数の前記計算ノードは、各々、半導体メモリを記憶媒体とする外部記憶装置を備え、前記計算ノードは、前記ファイルを自ノードの外部記憶装置に保持させることを特徴とする請求項１乃至請求項４に記載の並列計算システムである。
【発明の効果】
【０００８】
以上のように構成された本発明によれば、次のような効果を奏する。
請求項１の発明によれば、計算ステップごとに出力された計算結果のファイルを用いて、異常が発生した計算ステップの直前から解析処理を再開することができる。
請求項２の発明によれば、解析処理に異常が発生した後、処理を再開する場合に、実際に処理を実行する前に、解析処理を続行可能か否かを判断することができる。
請求項３の発明によれば、障害の発生した計算ノードが復旧しない場合であっても、解析処理を続行することができる。
請求項４の発明によれば、管理ノードは、各計算ノードに問い合わせることなく、異常が発生した計算ノードを特定することができる。
請求項５の発明によれば、障害が発生していない計算ノードは、管理ノードの外部記憶装置にアクセスすることなく、自ノードの外部記憶装置からファイルのデータを取得することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の並列計算システムの全体構成を示す図である。
【図２】本実施形態の管理ノードおよび計算ノードを実現するコンピュータのハードウェア構成例を示す図である。
【図３】本実施形態の管理ノードの機能構成を示す図である。
【図４】本実施形態の計算ノードの機能構成を示す図である。
【図５】本実施形態における並列計算システムの全体動作を説明するフローチャートである。
【図６】本実施形態における並列計算システムの解析処理の再開時の動作を示すフローチャートである。
【図７】再開時の動作の他の例を示すフローチャートである。
【図８】本実施形態の並列計算システムの他の構成例を示す図である。
【図９】図８に示す並列計算システムの機能構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
＜システム構成＞
図１は、本実施形態の並列計算システムの全体構成を示す図である。
図１に示す並列計算システム１００は、１台の管理ノード１１０と、複数台の計算ノード１２０と、管理ノード１１０に接続された外部記憶装置であるＳＳＤ（Solid State Drive）１３０とを備える。各ノード（管理ノード１１０および計算ノード１２０）は、ネットワーク接続されており、いわゆるクラスタコンピューティングを実現する。また各ノードは、パーソナルコンピュータやワークステーション等のコンピュータで実現される。ＳＳＤ１３０は、記憶媒体としてＤＲＡＭ（Dynamic Random Access Memory）やフラッシュメモリ等の半導体メモリを用い、ＨＤＤ（ハードディスクドライブ）等と同様にコンピュータの外部記憶装置として使用される。ＳＳＤ１３０は、半導体メモリを記憶媒体とするため、データの読み書きの際に、ＨＤＤのようにヘッドを移動させるための時間やディスクの回転数を高めるのに必要な時間を要しない。
【００１１】
本実施形態では、並列計算システム１００による計算（解析処理）として、粒子の挙動解析を行う場合を例として説明する。具体的には、例えば電子写真方式による画像形成装置において画像形成に使用される画像形成材などのように、複数の粒子（トナーおよびキャリア粒子等）が混合された状態での粒子の振る舞いをシミュレーションして解析する場合に適用される。このような解析では、個別要素法や有限要素法が用いられる。なお、この粒子の挙動解析は、本実施形態が適用可能な処理の一例を示すに過ぎず、並列計算による分散処理が可能な種々の処理に適用できることは言うまでもない。
【００１２】
図２は、管理ノード１１０および計算ノード１２０を実現するコンピュータのハードウェア構成例を示す図である。
図２に示すコンピュータ１０は、演算手段であるＣＰＵ（Central Processing Unit）１０ａと、記憶手段である主記憶装置（メインメモリ）１０ｂおよび外部記憶装置１０ｃを備える。外部記憶装置１０ｃとしては、一般に磁気ディスク装置（ＨＤＤ：Hard Disk Drive）が用いられるが、管理ノード１１０においてはＳＳＤ１３０が用いられる。また、図２のコンピュータ１０は、ネットワークを介して外部装置に接続するためのネットワークＩ／Ｆ（インターフェイス）１０ｄと、ディスプレイ装置へ表示出力を行うための表示機構１０ｅと、音声出力を行うための音声機構１０ｆとを備える。さらに、キーボードやマウス等の入力デバイス１０ｇを備える。ＣＰＵ１０ａと他の構成要素との間には、図示しないチップセットやブリッジ回路が介在している。
【００１３】
図２において、各構成要素は、システムバスや入出力バス等の各種のバスを介して接続される。例えば、ＣＰＵ１０ａと主記憶装置１０ｂの間は、システムバスやメモリバスを介して接続される。また、ＣＰＵ１０ａと外部記憶装置１０ｃ、ネットワークＩ／Ｆ１０ｄ、表示機構１０ｅ、音声機構１０ｆ、入力デバイス１０ｇ等との間は、ＰＣＩ（Peripheral Components Interconnect）、ＰＣＩ  Ｅｘｐｒｅｓｓ、シリアルＡＴＡ（AT Attachment）、ＵＳＢ（Universal Serial Bus）、ＡＧＰ（Accelerated Graphics Port）等の入出力バスを介して接続される。
【００１４】
なお、図２は、並列計算システム１００を構成する管理ノード１１０および計算ノード１２０を実現するのに好適なコンピュータのハードウェア構成を例示するに過ぎず、図示の構成に限定されないことは言うまでもない。例えば、計算ノード１２０の補助記憶装置として、外部記憶装置１０ｃの他に、フレキシブルディスクや光学ディスクをメディアとするドライブを設けたり、ＵＳＢメモリを設けたりしても良い。ＵＳＢメモリは、ＵＳＢを介してブリッジ回路に接続されることとなる。また、音声機構１０ｆを独立した構成とせず、チップセットの機能として備えるようにしても良い。
【００１５】
＜ノードの機能＞
図３は、管理ノード１１０の機能構成を示す図である。
図３に示すように、管理ノード１１０は、解析対象のデータを各計算ノード１２０に割り当てるデータ割り当て部１１１と、各計算ノード１２０による計算結果を受け取って解析対象のデータを更新するデータ更新部１１２と、各計算ノード１２０による計算が完了した後に終了処理を行う終了処理部１１３と、管理ノード１１０および並列計算システム１００全体の制御を行う制御部１１４とを備える。データ割り当て部１１１、データ更新部１１２、終了処理部１１３および制御部１１４は、例えば図２に示したコンピュータ１０において、主記憶装置１０ｂに読み込まれたプログラムをＣＰＵ１０ａが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。
【００１６】
また、管理ノード１１０は、ＳＳＤ１３０を外部記憶装置（補助記憶手段）として用いる。解析対象である粒子情報の元データは、ＳＳＤ１３０に保持されているものとする。さらにＳＳＤ１３０は、管理ノード１１０を介して計算ノード１２０からアクセスできるように設定（共有設定）されている。したがって、計算ノード１２０は、管理ノード１１０によるアクセス制御下で、管理ノード１１０に接続されているＳＳＤ１３０にアクセスして直接データの読み書きを行う。
【００１７】
データ割り当て部１１１は、ＳＳＤ１３０から解析対象である粒子情報のデータを読み込み、読み込んだデータを各計算ノード１２０に割り当て、割り当てたデータを各計算ノード１２０に送信する。計算ノード１２０に送られるデータには、粒子の位置や属性など計算ノード１２０による計算に必要なデータを含む。データの割り当ては、例えば粒子分割法や領域分割法などの既存の手法にて行う。また、データ割り当て部１１１は、各計算ノード１２０に対して、割り当てたデータと共に、このデータに対応する粒子（自ノードに割り当てられた粒子）の挙動に影響を与える他の粒子のデータを送信する。この他の粒子のデータは、各計算ノード１２０が粒子の挙動解析を行う上で必要なデータ（計算に必要なデータ）である。
【００１８】
データ更新部１１２は、各計算ノード１２０の計算結果を受信して解析結果としてまとめ、ＳＳＤ１３０に保持されている粒子情報を更新する。ＳＳＤ１３０における粒子情報の更新は、解析結果を追加書き込みすることによって行っても良いし、現在の粒子情報を解析結果で上書きすることによって行っても良い。計算ノード１２０による粒子の挙動解析のための計算は、通常、複数回の計算ステップによって行われる。したがって、データ更新部１１２は、計算ノード１２０から各計算ステップの計算結果を受信するたびに粒子情報の更新を行うこととなる。
【００１９】
終了処理部１１３は、各計算ノード１２０による計算ステップが予め設定された回数に到達したならば、音声出力や表示出力等の出力手段を介してシステムユーザに解析終了を通知する。また、最終的な解析結果（更新された情報）を出力しても良い。本実施形態では各計算ノード１２０の計算結果をデータ更新部１１２がまとめて解析結果としてＳＳＤ１３０に書き込む。したがって、終了処理部１１３は、解析結果を出力する場合、ＳＳＤ１３０に保持されている粒子情報のデータをそのまま出力すれば良い。
【００２０】
制御部１１４は、データ割り当て部１１１および終了処理部１１３の動作を制御する。また、解析処理全体の開始、進行、終了等の動作を制御する。解析処理に異常が発生した後、処理を再開する場合には、異常が発生する前の段階から再開するための処理を行う。解析処理の再開時の動作の詳細については後述する。
【００２１】
図４は、計算ノード１２０の機能構成を示す図である。
図４に示すように、各計算ノード１２０は、それぞれ、管理ノード１１０から解析対象のデータを受け付ける受け付け部１２１と、計算処理を行う計算部１２２と、計算部１２２による計算結果を管理ノード１１０へ送信する送信部１２３と、再開用ファイルをＳＳＤ１３０に出力する出力部１２４とを備える。受け付け部１２１、送信部１２３および出力部１２４は、例えば図２に示したコンピュータ１０において、主記憶装置１０ｂに読み込まれたプログラムをＣＰＵ１０ａが実行しネットワークＩ／Ｆ１０ｄを制御することで実現される。また、計算部１２２は、主記憶装置１０ｂに読み込まれたプログラムをＣＰＵ１０ａが実行することで実現される機能である。このように、図４に示す計算ノード１２０の各機能ブロックは、ソフトウェアとハードウェア資源とが協働して実現される手段である。
【００２２】
受け付け部１２１は、管理ノード１１０から送信された自ノードの計算に必要なデータを受け付ける。ここで、自ノードの計算に必要なデータとは、管理ノード１１０により自ノードに割り当てられたデータおよびこのデータに対応する粒子（自ノードに割り当てられた粒子）の挙動に影響を与える他の粒子のデータである。例えば、自ノードに割り当てられた粒子に近接し、電磁力の影響が無視できない粒子や接触の可能性がある粒子などのデータである。
【００２３】
計算部１２２は、受け付け部１２１により読み込まれたデータに基づき、自ノードに割り当てられた粒子の挙動を解析する。具体的には、粒子の現在位置と属性、粒子に作用する力に基づいて、粒子の位置がどのように変化するかを計算する。粒子の属性としては、例えば大きさ、質量、速度、電荷、磁化などが挙げられる。
【００２４】
送信部１２３は、計算部１２２による計算結果を管理ノード１１０へ送信する。計算部１２２による粒子の挙動解析のための計算は、通常、複数回の計算ステップによって行われる。したがって、送信部１２３は、計算部１２２による１回の計算ステップが実行されるたびに計算結果を管理ノード１１０へ送信することとなる。
【００２５】
出力部１２４は、管理ノード１１０に接続されているＳＳＤ１３０にアクセスし、自ノード（計算ノード１２０）の再開用ファイルとして、計算部１２２による計算結果を書き込む。再開用ファイルの出力頻度は、適宜定め得るが、本実施形態では、計算部１２２による１回の計算ステップが実行されるたびに出力するものとする。再開用ファイルのファイル名には、再開用ファイルを作成した計算ノード１２０の識別情報（ＩＤ）および何回目の計算ステップかを示す情報が含まれる。ＳＳＤ１３０への計算結果（再開用ファイル）の書き込みは、新たな計算結果を新たな再開用ファイルとして追加書き込みすることによって行われる。この場合、ＳＳＤ１３０の記憶容量を超えて書き込むことはできないので、全体のデータ量に応じて古い粒子情報ファイルから削除していく等の操作が必要になる場合もある。
【００２６】
＜並列計算システムの動作＞
次に、上記のように構成された並列計算システム１００の動作について説明する。
図５は、個別要素法により粒子の挙動解析を行う場合を例として、並列計算システム１００の全体動作を説明するフローチャートである。
図５に示すように、並列計算システム１００は、まず管理ノード１１０の制御部１１４が計算ノード１２０の数を取得し（ステップ５０１）、解析対象である粒子のデータをＳＳＤ１３０から読み込む（ステップ５０２）。そして、データ割り当て部１１１が、この解析対象の粒子群を各計算ノード１２０に割り当て、割り当てた粒子のデータを各計算ノード１２０に送信する（ステップ５０３）。送信されたデータは、各計算ノード１２０の受け付け部１２１により受け付けられ、計算部１２２に渡される。
【００２７】
ステップ５０４〜５０７の動作は、各計算ノード１２０において個別に実行される動作である。
各計算ノード１２０では、計算部１２２が、まず各粒子について、磁気力（磁気的な相互作用力）、静電気力（静電気による相互作用力）、接触力（機械的な相互作用力）を計算する（ステップ５０４）。このとき、計算された磁気力、静電気力、接触力は、内部キャッシュ等に一時的に保持される。また、各計算ノード１２０がＳＳＤ等の高速な外部記憶装置を備える場合は、作業ファイルとして出力し、外部記憶装置に保持させても良い。次に計算部１２２は、内部キャッシュ等に保持されている磁気力、静電気力、接触力を読み込み、各作用力の和を求める（ステップ５０５）。そして、ステップ５０５で求まった作用力の和と粒子の位置情報および属性情報に基づいて運動方程式を解き、各粒子の位置情報（座標）を計算する（ステップ５０６）。計算部１２２の計算が終了すると、出力部１２４が今回の計算ステップにおける自ノードの計算結果を再開用ファイルとしてＳＳＤ１３０に書き込む（ステップ５０７）。また、このとき、送信部１２３が管理ノード１１０に計算が終了したことを通知する。
【００２８】
管理ノード１１０のデータ更新部１１２は、全ての計算ノード１２０から計算終了の通知を受け付けると、次に各計算ノード１２０から計算結果を受信し、ステップ５０２でＳＳＤ１３０から読み込んだデータを更新する(ステップ５０８、５０９)。そして、各計算ノード１２０による次の計算ステップに用いるために、更新したデータを各計算ノード１２０に送信する（ステップ５１０）。全ての計算ノード１２０に更新したデータを送信した後、データ更新部１１２は、各計算ノード１２０の計算結果をＳＳＤ１３０に書き込む（ステップ５１１、５１２）。
【００２９】
以下、各計算ノード１２０の計算ステップが予め設定された回数に達するまでステップ５０４〜ステップ５１２の処理が繰り返される（ステップ５１３）。そして、計算ステップが設定数に到達したならば、終了処理部１１３が、ステップ５１２で出力された計算結果を解析結果として終了処理を行う（ステップ５１４）。終了処理としては、例えばシステムユーザに処理の終了を通知したり、ＳＳＤ１３０に保持されている粒子情報ファイルを解析結果として出力したりする。
【００３０】
＜異常終了後、再開時の動作＞
解析処理の実行中に、いずれかの計算ノード１２０に障害が発生し、その計算ノード１２０が解析処理のジョブを実行できなくなった場合を考える。この場合、ステップ５０８において、障害が発生した計算ノード１２０の計算が完了しないため、データ更新部１１２は、ＳＳＤ１３０のデータを更新できない。したがって、データ更新部１１２による更新待ちの状態が長時間続くと、システムユーザは、システムに異常が発生し、解析処理が進行しない状態であることに気づく。また、制御部１１４が、データ更新部１１２による更新待ちの状態での時間経過を計測し、予め定められた時間が経過した場合に、音声出力や表示出力等によって、異常が発生していることをシステムユーザに報知するようにしても良い。
【００３１】
システムユーザは、解析処理が進行しない状態になると、システムの動作を中断（異常終了）させて、復旧のための操作を行う。具体的には、各計算ノード１２０における解析処理のジョブを停止させ、各計算ノード１２０を再起動させる。このとき、障害の発生した計算ノード１２０のみを再起動させても良いし、全ての計算ノード１２０を再起動させても良い。そして、管理ノード１１０に、解析処理を再開させる。
【００３２】
上記のように、障害が発生した計算ノード１２０は、自ノードに割り当てられたジョブの計算を完了できない。本実施形態では、計算ステップごとに再開用ファイルをＳＳＤ１３０へ出力するため、いずれかの計算ノード１２０で障害が発生する直前の計算ステップまでは、全ての計算ノード１２０が出力した再開用ファイルがＳＳＤ１３０に出力されている。したがって、解析処理に異常が発生したならば、その時点で最後にＳＳＤ１３０に出力された再開用ファイルを調べ、再開用ファイルを出力していない計算ノード１２０を特定することによって、障害が発生した計算ノード１２０が特定される。
【００３３】
図６は、解析処理の再開時の動作を示すフローチャートである。
図６に示すように、管理ノード１１０の制御部１１４は、各計算ノード１２０に問い合わせを行い、解析処理のジョブを実行可能な計算ノード１２０の数（計算ノード数）を取得する（ステップ６０１）。ここで、解析処理のジョブを実行可能な計算ノードは、再起動によって障害が解決した計算ノード１２０および障害の発生していない計算ノード１２０である。
【００３４】
次に、制御部１１４は、計算ノード数と解析処理のジョブの実行に必要な計算ノード１２０の数（必要ノード数）とを比較する。ここで、「計算ノード数」は、上記のように、障害が発生していない計算ノード１２０と再起動により復旧した計算ノード１２０の合計である。また、「必要ノード数」は、障害が発生する前に解析処理のジョブを実行していた計算ノード１２０の数である。この「必要ノード数」は、図５のステップ５０１で取得した計算ノード１２０の数と等しいので、この値を用いても良いし、障害が発生する前の再開用ファイルの数とも等しいので、この値を用いても良い。
【００３５】
計算ノード数が必要ノード数以上である場合（ステップ６０２でＹｅｓ）、制御部１１４からデータ割り当て部１１１に処理が移行し、ジョブを実行可能な計算ノード１２０に再開用ファイルのデータを割り当てる（ステップ６０３）。そして、ジョブを実行可能な各計算ノード１２０が、割り当てられた再開用ファイルをＳＳＤ１３０から読み込んで（ステップ６０４）、ジョブを再開する（動作は、図５のステップ５０４に戻る）。
【００３６】
一方、計算ノード数が必要ノード数よりも少ない場合（ステップ６０２でＮｏ）、再開用ファイルを全て割り当ててジョブを実行することができない。そのため、再開処理部１１４は、ジョブを実行可能な計算ノード１２０の数が不足しているために解析処理を再開できないことをシステムユーザに通知して（ステップ６０５）、処理を終了する。
【００３７】
なお、図６において、ステップ６０２の判断で、計算ノード数が必要ノード数よりも多い場合があるように記載されている。最初の割り当て（図５のステップ５０３）で、並列計算システム１００の全ての計算ノード１２０にデータを割り当てた場合、計算ノード数の最大値は必要ノード数に等しい。しかし、並列計算システム１００の構成に冗長性を持たせ、解析処理のジョブを実行しない計算ノード１２０を確保しておいた場合、この余剰分の計算ノード１２０を解析処理に参加させることによって、計算ノード数が必要ノード数よりも多くなる場合があり得る。
【００３８】
以上のように、本実施形態では、各計算ノード１２０が、管理ノード１１０との間で共有設定されたＳＳＤ１３０に再開用ファイルを出力する。このため、再開用ファイルをＳＳＤ１３０以外の、磁気ディスク等の外部記憶装置に保存したり、各計算ノード１２０の再開用ファイルをネットワーク通信にて管理ノード１１０に集めて保存したりする場合と比較して、再開用ファイルの出力作業に要する時間が大幅に短縮される。また、本実施形態では、ＳＳＤ１３０へ出力される再開用ファイルを調べることによって、いずれかの計算ノード１２０に障害が発生した場合にも、障害が発生した計算ノード１２０を特定して復旧させることができ、効率良く解析処理を再開させることが可能となる。
【００３９】
＜並列計算システムの他の動作例＞
上記の動作例では、解析処理の異常終了後の再開時の動作において、解析処理のジョブを実行可能な計算ノード１２０の数（計算ノード数）が当該ジョブの実行に必要な計算ノード１２０の数（必要ノード数）よりも少ない場合は、解析処理を再開せずに終了した（図６のステップ６０２、６０５を参照）。これに対し、計算ノード数が必要ノード数よりも少ない場合、再開用ファイルのデータを結合し、計算ノード数に応じて再構成し、再構成された計算ノード数分のデータを、ジョブを実行可能な計算ノード１２０に割り当てて、解析処理を再開しても良い。
【００４０】
図７は、本動作例における並列計算システム１００の再開時の動作を示すフローチャートである。
図７において、ステップ７０１からステップ７０４までの動作は、図６に示したステップ６０１からステップ６０４までの動作と同様である。
【００４１】
計算ノード数が必要ノード数よりも少ない場合（ステップ７０２でＮｏ）、制御部１１４は、ＳＳＤ１３０に書き込まれている再開用ファイルのデータを合成し、計算ノード数に応じて再分割する（ステップ７０５）。そして、制御部１１４からデータ割り当て部１１１に処理が移行し、各計算ノード１２０に再開用ファイルのデータを割り当てる（ステップ７０３）。この後、ジョブを実行可能な各計算ノード１２０が、割り当てられた再開用ファイルをＳＳＤ１３０から読み込んで（ステップ７０４）、ジョブを再開する。
【００４２】
＜並列計算システムの他の構成例＞
図８は、並列計算システム１００の他の構成例を示す図である。また、図９は、計算ノード１２０の機能構成を示す図である。
図１に示した構成では、並列計算システム１００を構成するノードのうち管理ノード１１０のみがＳＳＤ１３０を備える構成とした。これに対し、図８に示すように、管理ノード１１０と共に各計算ノード１２０も外部記憶装置としてＳＳＤ１４０を備える構成を採っても良い。
【００４３】
図９に示すように、本構成における計算ノード１２０は、受け付け部１２１と、計算部１２２と、送信部１２３と、出力部１２５とを備える。図９に示す計算ノード１２０において、受け付け部１２１、計算部１２２および送信部１２３の機能は、図４に示した計算ノード１２０の各機能と同様である。したがって、同一の符号を付して詳細な説明を省略する。
【００４４】
出力部１２５は、ＳＳＤ１３０ではなく、自ノード（計算ノード１２０）に接続されたＳＳＤ１４０へ再開用ファイルを出力する。そして、再開時には、各計算ノード１２０は、自ノードに接続されたＳＳＤ１４０から再開用ファイルを読み込み、解析処理のジョブを再開する。この場合、再開用ファイルは各計算ノード１２０に保持されるため、図１に示した構成の場合のように、ＳＳＤ１３０に出力された再開用ファイルに基づいて障害が発生した計算ノード１２０を特定することはできない。したがって、この場合、システムを復旧させるためには、管理ノード１００のデータ更新部１１２が、どの計算ノード１２０から計算結果を受信していないかを判断し、システムユーザに報知するか、または、障害が発生した計算ノード１２０を特定せずに、全ての計算ノード１２０を対象として、再起動させる。
【００４５】
なお、図９に示した構成の他、出力部１２５がＳＳＤ１３０およびＳＳＤ１４０の両方へ再開用ファイルを出力するようにしても良い。この場合、各計算ノード１２０は、解析処理の再開後に新たに割り当てられた再開用ファイルのデータのみを管理ノード１１０のＳＳＤ１３０から取得すれば良い。
【符号の説明】
【００４６】
１００…並列計算システム、１１０…管理ノード、１１１…データ割り当て部、１１２…データ更新部、１１３…終了処理部、１１４…制御部、１２０…計算ノード、１２１…受け付け部、１２２…計算部、１２３…送信部、１２４、１２５…出力部、１３０、１４０…ＳＳＤ（Solid State Drive）
【図１】
2010231296.tif 000003
【図２】
2010231296.tif 000004
【図３】
2010231296.tif 000005
【図４】
2010231296.tif 000006
【図５】
2010231296.tif 000007
【図６】
2010231296.tif 000008
【図７】
2010231296.tif 000009
【図８】
2010231296.tif 000010
【図９】
2010231296.tif 000011