JP2010231295A - 解析システム - Google Patents

解析システム Download PDF

Info

Publication number
JP2010231295A
JP2010231295A JP2009075435A JP2009075435A JP2010231295A JP 2010231295 A JP2010231295 A JP 2010231295A JP 2009075435 A JP2009075435 A JP 2009075435A JP 2009075435 A JP2009075435 A JP 2009075435A JP 2010231295 A JP2010231295 A JP 2010231295A
Authority
JP
Japan
Prior art keywords
calculation
node
file
nodes
analysis
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
Application number
JP2009075435A
Other languages
English (en)
Inventor
Yoichi Watanabe
洋一 渡辺
Takehiro Seko
丈裕 世古
Hideki Okamoto
英樹 岡本
Nobuyuki Hirooka
信行 廣岡
Ryosuke Takahashi
良輔 高橋
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2009075435A priority Critical patent/JP2010231295A/ja
Publication of JP2010231295A publication Critical patent/JP2010231295A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】障害が発生した計算ノードを検知し、復旧のための操作を自動的に行うことが可能な解析システムを提供する。
【解決手段】複数の入出力ポートを備えたSSD300と、SSD300の各入出力ポートに個別に接続した計算サーバ100と、監視サーバ200とを備える。計算サーバ100は、解析処理の計算を並列分散処理にて実行する複数の計算ノード120と、計算ノード120を管理する管理ノード110とを備える。計算ノード120は、解析処理の途中経過である計算結果のファイルをSSD300に出力する。監視サーバ200は、SSD300にアクセスして計算ノード120による計算結果のファイルの出力を検知し、ファイルを出力しない計算ノード120がある場合に、これを障害が発生した計算ノード120と判断し、管理ノード110に障害が発生した計算ノード120を復旧させて解析処理を再開するように指示する。
【選択図】図1

Description

本発明は、並列計算を行う解析システムに関する。
大規模解析等の膨大な計算を行う場合に、解析を複数のコンピュータで分散処理する並列計算が行われている。この種の並列計算は、例えば、複数のコンピュータをネットワークで接続したクラスタ上で、MPI(Message-Passing Interface)等の並列ライブラリを用いた解析プログラムを実行することで実現される。
特許文献1に記載された従来技術は、仮想記憶方式のマルチプロセッサのシステムにおいて、主記憶から追い出したページデータを外部記憶装置に書き出し、いずれのプロセッサで追い出したデータを必要とした場合でも、外部記憶から読込むものである。
この種の並列計算を実行するシステムでは、計算ノード(コンピュータ)の1台に障害が発生するとシステム全体の計算が中断する。そのため、予め定められた適当なステップ毎に、各計算ノードが処理中の変数の値を再開用ファイルとして出力し、外部記憶装置に保存することが行われる。そして、システムが障害から復旧した後、外部記憶装置に保存された各計算ノードの再開用ファイルが、該当する各計算ノードによって読み込まれ、計算が再開される。
特開平3−223945号公報
本発明の目的は、復旧のための操作を自動的に行うことが可能な解析システムを提供することにある。
請求項1に記載の発明は、少なくとも2個の入出力ポートを備え、半導体メモリを記憶媒体とする記憶装置と、前記記憶装置の1つの前記入出力ポートに接続し、解析処理における計算を行う計算サーバと、前記記憶装置の他の1つの前記入出力ポートに接続し、前記計算サーバを監視する監視サーバとを備え、前記計算サーバは、前記解析処理の計算を並列分散処理にて実行する複数の計算ノードと、複数の前記計算ノードを管理する管理ノードとを備え、前記計算ノードは、当該解析処理の途中経過である計算結果のファイルを前記記憶装置に出力し、前記監視サーバは、前記記憶装置にアクセスして前記計算ノードによる前記計算結果のファイルの出力を検知し、当該ファイルを出力しない計算ノードがある場合に、当該計算ノードを障害が発生した計算ノードと判断し、前記管理ノードに対し、当該障害が発生した計算ノードを復旧させて前記解析処理を再開するように指示することを特徴とする、解析システムである。
請求項2に記載の発明は、前記監視サーバは、前記管理ノードに計算ノードの復旧および解析処理の再開を指示するための指示ファイルを前記記憶装置に出力し、前記管理ノードは、前記記憶装置にアクセスして前記監視サーバによる前記指示ファイルの出力を検知した場合に、前記障害が発生した計算ノードを復旧し前記解析処理を再開するための操作を行うことを特徴とする、請求項1に記載の解析システムである。
請求項3に記載の発明は、前記監視サーバは、前記障害が発生したと判断した計算ノードの識別情報を前記指示ファイルに記載し、前記管理ノードは、少なくとも、前記指示ファイルに記載された識別情報により特定される計算ノードを再起動させることを特徴とする、請求項2に記載の解析システムである。
請求項4に記載の発明は、前記管理ノードは、前記障害が発生した計算ノードを復旧する操作を行った後、解析処理を実行可能な計算ノードの数が障害発生前に解析処理を実行していた計算ノードの数よりも少ない場合に、前記計算結果のファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てて、解析処理を実行させることを特徴とする、請求項1乃至請求項3に記載の解析システムである。
請求項5に記載の発明は、前記管理ノードは、前記障害が発生した計算ノードを復旧する操作を行った後、解析処理を実行可能な計算ノードの数が障害発生前に解析処理を実行していた計算ノードの数よりも少ない場合に、当該解析処理を実行可能な計算ノードの数を前記監視サーバに報知し、前記監視サーバは、前記計算結果のファイルに記載された計算結果を結合し、前記解析処理を実行可能な計算ノードの数に応じて再分割し、再分割した当該計算結果のファイルを前記記憶装置に出力することを特徴とする、請求項1乃至請求項3に記載の解析システムである。
請求項6に記載の発明は、前記管理ノードは、前記解析処理を実行可能な計算ノードの数を記載した再構成依頼ファイルを前記記憶装置に出力し、前記監視サーバは、前記記憶装置にアクセスして前記管理ノードによる前記再構成依頼ファイルの出力を検知した場合に、当該再構成依頼ファイルに記載された前記解析処理を実行可能な計算ノードの数に基づいて、前記計算結果のファイルを結合し再分割する処理を行うことを特徴とする、請求項5に記載の解析システムである。
請求項7に記載の発明は、少なくとも2個の入出力ポートを備え、半導体メモリを記憶媒体とする記憶装置と、前記記憶装置の1つの前記入出力ポートに接続し、解析処理における計算を行う計算サーバと、前記記憶装置の他の1つの前記入出力ポートに接続し、前記計算サーバを監視する監視サーバとを備え、前記計算サーバは、前記解析処理の計算を並列分散処理にて実行する複数の計算ノードと、複数の前記計算ノードを管理する管理ノードとを備え、前記計算ノードは、当該解析処理の途中経過である計算結果のファイルを前記記憶装置に出力し、前記監視サーバは、前記解析処理の計算を並列分散処理にて実行する複数の副ノードと、前記計算サーバを監視すると共に、複数の前記副ノードを管理する主ノードとを備え、前記監視サーバの前記主ノードは、前記記憶装置にアクセスして前記計算ノードによる前記計算結果のファイルの出力を検知し、当該ファイルを出力しない計算ノードがある場合に、前記解析処理における残りの計算を前記副ノードに割り当てて実行させることを特徴とする、解析システムである。
請求項8に記載の発明は、前記管理ノードは、前記解析処理を実行可能な計算ノードの数を記載した再構成依頼ファイルを前記記憶装置に出力し、前記主ノードは、前記計算結果のファイルの数よりも前記副ノードの数の方が少ない場合に、当該副ノードの数に基づいて、前記計算結果のファイルを結合し再分割する処理を行うことを特徴とする、請求項7に記載の解析システムである。
以上のように構成された本発明によれば、次のような効果を奏する。
請求項1の発明によれば、復旧のための操作を自動的に行うことができる。
請求項2の発明によれば、データ転送のための同期を取ることなく、高速に、監視サーバから計算サーバの管理ノードへ、復旧および解析処理の再開のための指示を行うことができる。
請求項3の発明によれば、障害が発生した計算ノードを復旧させることができる。
請求項4、5の発明によれば、障害の発生した計算ノードが復旧しない場合であっても、解析処理を続行することができる。
請求項6の発明によれば、データ転送のための同期を取ることなく、高速に、管理ノードから監視サーバへ、再開用ファイルの再構成を依頼することができる。
請求項7の発明によれば、計算サーバに障害が発生した場合でも、監視サーバにおいて解析処理を続行することができる。
請求項8の発明によれば、計算サーバの計算ノードの数と監視サーバの副ノードの数とが異なる場合にも、解析処理を続行することができる。
第1の実施形態による並列計算システムの全体構成を示す図である。 本実施形態の計算サーバの管理ノードおよび計算ノード並びに監視サーバを実現するコンピュータのハードウェア構成例を示す図である。 本実施形態の管理ノードの機能構成を示す図である。 本実施形態の計算ノードの機能構成を示す図である。 本実施形態の監視サーバの機能構成を示す図である。 本実施形態のSSDの構成を示す図である。 本実施形態における計算サーバの動作を示すフローチャートである。 本実施形態における監視サーバの動作を示すフローチャートである。 障害時モードでの管理ノードの動作を説明するフローチャートである。 第2の実施形態の監視サーバの機能構成を示す図である。 本実施形態における監視サーバの動作を示すフローチャートである。 第2の実施形態において、障害時モードでの管理ノードの動作を説明するフローチャートである。 第3の実施形態による並列計算システムの全体構成を示す図である。 本実施形態の監視サーバの主ノードの機能構成を示す図である。 本実施形態の監視サーバの副ノードの機能構成を示す図である。 本実施形態の監視サーバの動作を示すフローチャートである。 本実施形態の監視サーバの動作を示すフローチャートである。
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
<第1の実施形態>
図1は、第1の実施形態による並列計算システムの全体構成を示す図である。
図1に示す並列計算システムは、計算サーバ100と、監視サーバ200と、外部記憶装置であるSSD(Solid State Drive)300とを備える。計算サーバ100は、1台の管理ノード110と、複数台の計算ノード120とを備える。計算サーバ100の各ノード(管理ノード110および計算ノード120)および監視サーバ200は、パーソナルコンピュータやワークステーション等のコンピュータで実現される。また、計算サーバ100の各ノードは、ネットワーク接続されており、いわゆるクラスタコンピューティングを実現する。
SSD300は、記憶媒体としてDRAM(Dynamic Random Access Memory)やフラッシュメモリ等の半導体メモリを用い、HDD(ハードディスクドライブ)等と同様にコンピュータの外部記憶装置として使用される。SSD300は、半導体メモリを記憶媒体とするため、データの読み書きの際に、HDDのようにヘッドを移動させるための時間やディスクの回転数を高めるための時間を要しない。また、本実施形態のSSD300は、少なくとも2つの入出力ポートを備える。これにより、計算サーバ100と監視サーバ200とは、図1に示すようにSSD300を介して接続されている。
本実施形態では、計算サーバ100による計算(解析処理)として、粒子の挙動解析を行う場合を例として説明する。具体的には、例えば電子写真方式による画像形成装置において画像形成に使用される画像形成材などのように、複数の粒子(トナーおよびキャリア粒子等)が混合された状態での粒子の振る舞いをシミュレーションして解析する場合に適用される。このような解析では、個別要素法や有限要素法が用いられる。なお、この粒子の挙動解析は、本実施形態が適用可能な処理の一例を示すに過ぎず、本実施形態は並列計算による分散処理が可能な種々の処理に適用できる。
図2は、計算サーバ100の管理ノード110および計算ノード120並びに監視サーバ200を実現するコンピュータのハードウェア構成例を示す図である。
図2に示すコンピュータ10は、演算手段であるCPU(Central Processing Unit)10aと、記憶手段である主記憶装置(メインメモリ)10bおよび外部記憶装置10cを備える。外部記憶装置10cとしては、一般に磁気ディスク装置(HDD:Hard Disk Drive)が用いられるが、管理ノード110および監視サーバ200においてはSSD300が用いられる。また、図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並びに監視サーバ200を実現するのに好適なコンピュータのハードウェア構成を例示するに過ぎず、図示の構成に限定されない。例えば、計算ノード120の補助記憶装置として、外部記憶装置10cの他に、フレキシブルディスクや光学ディスクをメディアとするドライブを設けたり、USBメモリを設けたりしても良い。USBメモリは、USBを介してブリッジ回路に接続されることとなる。また、音声機構10fを独立した構成とせず、チップセットの機能として備えるようにしても良い。
<計算サーバの管理ノードおよび計算ノードの機能>
図3は、管理ノード110の機能構成を示す図である。
図3に示すように、管理ノード110は、解析対象のデータを各計算ノード120に割り当てるデータ割り当て部111と、各計算ノード120による計算結果を受け取って解析対象のデータを更新するデータ更新部112と、各計算ノード120による計算が完了した後に終了処理を行う終了処理部113と、解析処理に異常が発生した場合に処理を再開するための再開処理を行う再開処理部114とを備える。データ割り当て部111、データ更新部112、終了処理部113および再開処理部114は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。
また、管理ノード110は、SSD300を外部記憶装置(補助記憶手段)として用いる。解析対象である粒子情報の元データは、SSD300に保持されているものとする。さらにSSD300は、管理ノード110を介して計算ノード120からアクセスできるように設定(共有設定)されている。したがって、計算ノード120は、管理ノード110によるアクセス制御下で、管理ノード110に接続されているSSD300にアクセスして直接データの読み書きを行う。
データ割り当て部111は、SSD300から解析対象である粒子情報のデータを読み込み、読み込んだデータを各計算ノード120に割り当て、割り当てたデータを各計算ノード120に送信する。計算ノード120に送られるデータには、粒子の位置や属性など計算ノード120による計算に必要なデータを含む。データの割り当ては、例えば粒子分割法や領域分割法などの既存の手法にて行う。また、データ割り当て部111は、各計算ノード120に対して、割り当てたデータと共に、このデータに対応する粒子(自ノードに割り当てられた粒子)の挙動に影響を与える他の粒子のデータを送信する。この他の粒子のデータは、各計算ノード120が粒子の挙動解析を行う上で必要なデータ(計算に必要なデータ)である。
データ更新部112は、各計算ノード120の計算結果を受信して解析結果としてまとめ、SSD300に保持されている粒子情報を更新する。SSD300における粒子情報の更新は、解析結果を追加書き込みすることによって行っても良いし、現在の粒子情報を解析結果で上書きすることによって行っても良い。計算ノード120による粒子の挙動解析のための計算は、通常、複数回の計算ステップによって行われる。したがって、データ更新部112は、計算ノード120から各計算ステップの計算結果を受信するたびに粒子情報の更新を行うこととなる。
終了処理部113は、各計算ノード120による計算ステップが予め設定された回数に到達したならば、システムユーザに解析終了を通知する。また、最終的な解析結果(更新された情報)を出力しても良い。本実施形態では各計算ノード120の計算結果をデータ更新部112がまとめて解析結果としてSSD300に書き込む。したがって、終了処理部113は、解析結果を出力する場合、SSD300に保持されている粒子情報のデータをそのまま出力すれば良い。
再開処理部114は、解析処理に異常が発生した場合に、監視サーバ200からの指示にしたがって解析処理を再開するための処理を行う。具体的には、解析処理のジョブを停止させ、計算ノード120を再起動させる。このとき、障害の発生した計算ノード120のみを再起動させるようにしても良いし、全ての計算ノード120を再起動させるようにしても良い。そして、障害が解決した計算ノード120および障害の発生していない計算ノード120によって残りの処理を行うように、データ割り当て部111に粒子情報のデータを割り当てさせ、各計算ノード120に解析処理を再開させる。
図4は、計算ノード120の機能構成を示す図である。
図4に示すように、各計算ノード120は、それぞれ、管理ノード110から解析対象のデータを受け付ける受け付け部121と、計算処理を行う計算部122と、計算部122による計算結果を管理ノード110へ送信する送信部123と、再開用ファイルをSSD300に出力する出力部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に接続されているSSD300にアクセスし、自ノード(計算ノード120)の再開用ファイルとして、計算部122による計算結果を書き込む。再開用ファイルの出力頻度は、特に限定しないが、本実施形態では、計算部122による1回の計算ステップが実行されるたびに出力するものとする。再開用ファイルのファイル名には、再開用ファイルを作成した計算ノード120の識別情報(ID)および何回目の計算ステップかを示す情報が含まれる。SSD300への計算結果(再開用ファイル)の書き込みは、新たな計算結果を新たな再開用ファイルとして追加書き込みすることによって行われる。この場合、SSD300の記憶容量を超えて書き込むことはできないので、全体のデータ量に応じて古い粒子情報ファイルから削除していく等の操作が必要になる場合もある。
<監視サーバの機能>
図5は、監視サーバ200の機能構成を示す図である。
図5に示すように、監視サーバ200は、計算サーバ100による解析処理におけるジョブの実行状況を監視するジョブ監視部201と、計算サーバ100による解析処理に異常が発生した場合に異常の原因となった計算ノード120(障害ノード)を特定する障害ノード特定部202と、解析処理の再開のための制御を行う再開制御部203とを備える。ジョブ監視部201、障害ノード特定部202および再開制御部203は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。また、監視サーバ200は、SSD300を外部記憶装置(補助記憶手段)として用いる。
ジョブ監視部201は、計算サーバ100の各計算ノード120によるジョブ(並列分散された個々の処理)の実行状況を監視する。上記のように、各計算ノード120による計算結果は、1回の計算ステップごとに、再開用ファイルとしてSSD300に書き出される。また、上記のように、再開用ファイルのファイル名には、再開用ファイルを作成した計算ノード120の識別情報および何回目の計算ステップかを示す情報が含まれる。そこで、ジョブ監視部201は、SSD300にアクセスし、各計算ステップにおいて、各計算ノード120から再開用ファイルが出力されたか否かを監視する。
障害ノード特定部202は、ジョブ監視部201による監視結果に基づいて、計算サーバ100による解析処理に異常が発生した場合に、障害ノードを特定する。ある計算ステップにおいて、いずれかの計算ノード120に障害が発生した場合には、その計算ノード120によるその計算ステップでの再開用ファイルがSSD300に出力されない。したがって、障害ノード特定部202は、再開用ファイルが出力されなかった計算ノード120を障害ノードと特定する。
再開制御部203は、計算サーバ100の管理ノード110を制御し、障害ノード(計算ノード120)を再起動させて解析処理を再開させる。再開制御部203から管理ノード110への指示は、ネットワーク等の通信回線を介した通信によらず、SSD300を介したファイルの交換によって行われる。再開制御部203(監視サーバ200)から管理ノード110への指示の伝達手段の詳細については後述する。
<SSDの機能およびファイル交換による情報伝達>
図6は、SSD300の構成を示す図である。
図6に示すように、SSD300は、記憶部301と、制御部302と、複数の入出力ポート303、304とを備える。記憶部301は、半導体メモリの記憶媒体である。制御部302は、記憶部301へのデータの読み書きを制御する。例えば、入出力ポート303、304のそれぞれから同一のアドレスへの書き込み要求があった場合、一方のアクセスのみを許可する等のアクセス制御が行われる。図6に示す例では、SSD300は2個の入出力ポート303、304を備えており、入出力ポート303は計算サーバ100に接続され、入出力ポート304は監視サーバ200に接続されている。以上の構成により、SSD300は、計算サーバ100および監視サーバ200の外部記憶装置として各々からアクセスされる。
本実施形態では、解析処理に異常が発生した場合の動作として(動作の詳細な手順は後述)、監視サーバ200から計算サーバ100の管理ノード110へ、計算ノード120の再起動の指示と解析処理の再開の指示が行われる。また、管理ノード110から監視サーバ200へ、計算ノード120の再起動が完了したことが報知される。これらの監視サーバ200と管理ノード110との間のやりとりは、全てSSD300を介したファイルの交換によって行われる。
すなわち、監視サーバ200は、SSD300へ再起動指示ファイルや再開指示ファイルを書き込む。そして、管理ノード110は、SSD300にアクセスしてこれらのファイルが出力されたことを検知したことを条件として、計算ノード120を再起動し、解析処理を再開する。また、管理ノード110は、計算ノード120の再起動が完了した後、SSD300へ再起動完了ファイルを書き込む。そして、監視サーバ200は、SSD300にアクセスしてこのファイルが出力されたことを検知することによって、計算ノード120の再起動が完了したことを認識する。
管理ノード110と監視サーバ200との間で交換されるこれらのファイルは、指示が行われたことや計算ノード120の再起動が完了したことを報知するためにのみ用いられる。すなわち、管理ノード110および監視サーバ200は、自身の一連の処理動作(ルーチン)の中で、SSD300にこれらのファイルが書き込まれているか否かを確認し、書き込まれていれば、指示や報知がなされたものとして動作を行う。したがって、各ファイルは、ファイル名等によってその種類が識別できれば良く、ファイル形式や具体的なデータの内容は特に限定されない。なお、各ファイルに指示の内容であるコマンドや報知内容を記述し、管理ノード110や監視サーバ200がファイルの内容を読み込んで、記述された指示や報知内容に応じた動作を行うようにしても良い。
本実施形態では、上記のように、管理ノード110と監視サーバ200との間のやりとりを、SSD300へのファイルの書き込みおよび読み込みによって行っており、ネットワーク等の通信手段を用いていない。そのため、管理ノード110と監視サーバ200との間で通信のための同期を取る必要がなく、各々の処理ルーチンの中で、非同期に指示等の伝達がなされる。
<並列計算システムの動作>
次に、上記のように構成された並列計算システムの動作について説明する。
図7は、個別要素法により粒子の挙動解析を行う場合を例として、計算サーバ100の動作を説明するフローチャートである。
図7に示すように、計算サーバ100は、まず管理ノード110が計算ノード120の数を取得し(ステップ701)、解析対象である粒子のデータをSSD300から読み込む(ステップ702)。そして、データ割り当て部111が、この解析対象の粒子群を各計算ノード120に割り当て、割り当てた粒子のデータを各計算ノード120に送信する(ステップ703)。送信されたデータは、各計算ノード120の受け付け部121により受け付けられ、計算部122に渡される。
次に、管理ノード110は、監視ノード200により、SSD300に再起動指示ファイルが書き込まれているか否かを判断する。再起動指示ファイルが書き込まれている場合は(ステップ704でYes)、計算サーバ100による解析処理に異常が発生したことを示すので、障害時モードへ移行する。障害時モードによる動作については、後述する。一方、再起動指示ファイルが書き込まれていない場合は(ステップ704でNo)、解析処理を行う通常モードでの動作(ステップ705以降の動作)を継続する。
ステップ705〜708の動作は、各計算ノード120において個別に実行される動作である。
各計算ノード120では、計算部122が、まず各粒子について、磁気力(磁気的な相互作用力)、静電気力(静電気による相互作用力)、接触力(機械的な相互作用力)を計算する(ステップ705)。このとき、計算された磁気力、静電気力、接触力は、内部キャッシュ等に一時的に保持される。また、各計算ノード120がSSD等の高速な外部記憶装置を備える場合は、作業ファイルとして出力し、外部記憶装置に保持させても良い。次に計算部122は、内部キャッシュ等に保持されている磁気力、静電気力、接触力を読み込み、各作用力の和を求める(ステップ706)。そして、ステップ706で求まった作用力の和と粒子の位置情報および属性情報に基づいて運動方程式を解き、各粒子の位置情報(座標)を計算する(ステップ707)。計算部122の計算が終了すると、出力部124が今回の計算ステップにおける自ノードの計算結果を再開用ファイルとしてSSD300に書き込む(ステップ708)。また、このとき、送信部123が管理ノード110に計算が終了したことを通知する。
管理ノード110のデータ更新部112は、全ての計算ノード120から計算終了の通知を受け付けると、次に各計算ノード120から計算結果を受信し、ステップ702でSSD300から読み込んだデータを更新する(ステップ709、710)。そして、各計算ノード120による次の計算ステップに用いるために、更新したデータを各計算ノード120に送信する(ステップ711)。全ての計算ノード120に更新したデータを送信した後、データ更新部112は、各計算ノード120の計算結果をSSD300に書き込む(ステップ712、713)。
以下、各計算ノード120の計算ステップが予め設定された回数に達するまでステップ704〜ステップ713の処理を繰り返す(ステップ714)。そして、計算ステップが設定数に到達したならば、終了処理部113が、ステップ713で出力された計算結果を解析結果として終了処理を行う(ステップ715)。終了処理としては、例えばシステムユーザに処理の終了を通知したり、SSD300に保持されている粒子情報ファイルを解析結果として出力したりする。
ここで、監視サーバ200の動作について説明する。
図8は、監視サーバ200の動作を示すフローチャートである。
図8に示すように、まず、監視サーバ200のジョブ監視部201が、解析処理の計算ステップごとに計算サーバ100の各計算ノード120によるSSD300への再開用ファイルの出力を検知する。そして、SSD300に出力された再開用ファイルのファイル名を取得する(ステップ801)。上述したように、再開用ファイルのファイル名には、再開用ファイルを作成した計算ノード120の識別情報および何回目の計算ステップかを示す情報が含まれる。したがって、ジョブ監視部201は、再開用ファイルのファイル名を調べることによって、今回の計算ステップにおいて各計算ノード120から再開用ファイルが出力されたか否かを判断する。言い換えれば、再開用ファイルを出力しなかった計算ノード120が存在するか否かを判断する。再開用ファイルを出力しなかった計算ノード120は、障害が発生して今回の計算ステップにおける計算を完了できなかった計算ノード120である。
全ての計算ノード120から再開用ファイルが出力されたならば(ステップ802でYes)、障害ノードは存在せず、計算サーバ100による解析処理は正常に進んでいるので、ステップ801に戻り、ジョブ監視部201が、再開用ファイルがSSD300に書き込まれるのを待つ。この場合、今回の計算ステップにおける再開用ファイルは全て出力されているので、次にSSD300に書き込まれる再開用ファイルは、次の計算ステップにおける再開用ファイルである。
ここで、並列処理においては、各計算ノード120に対して、処理の負担ができるだけ均等になるように、データの割り当てが行われる。しかし、実際の計算においては、各計算ノード120の計算時間は完全に同一ではなく多少のばらつきがある。そこで、全ての計算ノード120から再開用ファイルが出力と予測される時間を、待ち時間として予め設定しておく。ジョブ監視部201は、いずれかの計算ノード120から再開用ファイルが出力されていない場合(ステップ802でNo)、設定されている待ち時間を経過したか否かを判断する。そして、待ち時間を経過していなければ(ステップ803でNo)、ステップ801に戻り、ジョブ監視部201が、再開用ファイルがSSD300に書き込まれるのを待つ。
いずれかの計算ノード120から再開用ファイルが出力されておらず(ステップ802でNo)、かつ設定されている待ち時間を経過した場合(ステップ803でYes)、計算サーバ100による解析処理に異常が発生したものとみなす。そこで、次に、障害ノード特定部202が、障害の発生した計算ノード120(障害ノード)を特定する(ステップ804)。上記のように、再開用ファイルのファイル名により、いずれの計算ノード120が再開用ファイルを出力したかが分かるので、障害ノード特定部202は、再開用ファイルを出力していない計算ノード120を障害ノードとして特定する。
次に、再開制御部203が、再起動指示ファイルをSSD300に出力する(ステップ805)。システムの設定により、計算サーバ100が再起動処理として障害ノードのみを再起動させる場合、例えば、再起動指示ファイルに障害ノード特定部202により特定された障害ノードの識別情報を記述して、障害ノードを管理ノード110に報知する。計算サーバ100が再起動処理として全ての計算ノード120を再起動させる場合は、障害ノードの識別情報を報知しても良いし、報知しなくても良い。このステップ805の動作以降、管理ノード110は、図7のステップ704において、SSD300に再起動指示ファイルが書き込まれている(Yes)と判断する。
次に、再開制御部203は、SSD300に再起動完了ファイルが出力されるのを待つ(ステップ806)。詳しくは後述するが、計算サーバ100において、計算ノード120の再起動処理が完了したならば、管理ノード110により再起動完了ファイルがSSD300に書き込まれる。再起動完了ファイルが出力されたならば、再開制御部203は、再開指示ファイルをSSD300に出力する(ステップ807)。
次に、計算サーバ100における障害時モードでの動作(図7のステップ704でYesの場合)について説明する。
図9は、障害時モードでの管理ノード110の動作を説明するフローチャートである。
図9に示すように、管理ノード110の再開処理部114は、SSD300に再起動指示ファイルが出力されているのを検知すると(図7のステップ704でYes)、解析処理における今回の計算ステップのジョブを停止する(ステップ901)。そして、計算ノード120を再起動させる(ステップ902)。このとき、システムの設定により、障害ノードのみを再起動させても良いし、全ての計算ノード120を再起動させても良い。前者の場合、例えば、再起動指示ファイルに記述された情報に基づいて障害ノードを特定する。
計算ノード120(障害ノードまたは全ての計算ノード120)の再起動が完了すると、次に再開処理部114は、再起動完了ファイルをSSD300に出力する(ステップ903、904)。そして、監視サーバ200により再開指示ファイルがSSD300に出力されるのを待つ(ステップ905)。
再開指示ファイルがSSD300に出力されたならば、次に再開処理部114は、解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)と、当該ジョブの実行に必要な計算ノード120の数(必要ノード数)とを比較する。ここで、「計算ノード数」は、障害が発生していない計算ノード120と再起動により復旧した計算ノード120の合計である。また、「必要ノード数」は、障害が発生する前に解析処理のジョブを実行していた計算ノード120の数である。「必要ノード数」は、図7のステップ701で取得した計算ノード120の数と等しいので、この値を用いても良いし、障害が発生する前の再開用ファイルの数とも等しいので、この値を用いても良い。
計算ノード数が必要ノード数以上である場合(ステップ906でYes)、再開処理部114からデータ割り当て部111に処理が移行し、ジョブを実行可能な計算ノード120に再開用ファイルのデータを割り当てる(ステップ907)。そして、ジョブを実行可能な各計算ノード120が、割り当てられた再開用ファイルをSSD300から読み込んで(ステップ908)、ジョブを再開する(動作は、図7のステップ704に戻る)。
一方、計算ノード数が必要ノード数よりも少ない場合(ステップ906でNo)、再開用ファイルを全て割り当ててジョブを実行することができない。そのため、再開処理部114は、ジョブを実行可能な計算ノード120の数が不足しているために解析処理を再開できないことをシステムユーザに通知して(ステップ909)、処理を終了する。
なお、図9において、ステップ906の判断で、計算ノード数が必要ノード数よりも多い場合があるように記載されている。最初の割り当て(図7のステップ703)で、計算サーバ100の全ての計算ノード120にデータを割り当てた場合、計算ノード数の最大値は必要ノード数に等しい。しかし、計算サーバ100の構成に冗長性を持たせ、解析処理のジョブを実行しない計算ノード120を確保しておいた場合、この余剰分の計算ノード120を参加させることによって、計算ノード数が必要ノード数よりも多くなる場合があり得る。
以上のように、本実施形態では、各計算ノード120が、管理ノード110との間で共有設定されたSSD300に再開用ファイルを出力する。このため、再開用ファイルをSSD300以外の、磁気ディスク等の外部記憶装置に保存したり、各計算ノード120の再開用ファイルをネットワーク通信にて管理ノード110に集めて保存したりする場合と比較して、再開用ファイルの出力作業に要する時間が大幅に短縮される。また、本実施形態では、SSD300へ出力される再開用ファイルを監視することによって、各計算ノード120に障害が発生していないかを判断する。これにより、いずれかの計算ノード120に障害が発生した場合にも、自動的に計算サーバ100を復旧し、解析処理を再開させる制御が実現される。
<第2の実施形態>
上記の第1の実施形態では、障害時モードにおいて、計算ノード120を再起動させた後、解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)が当該ジョブの実行に必要な計算ノード120の数(必要ノード数)よりも少ない場合は、解析処理を再開せずに終了した(図9のステップ906、909を参照)。これに対し、第2の実施形態は、計算ノード数が必要ノード数よりも少ない場合、再開用ファイルのデータを結合し、計算ノード数に応じて再構成する。そして、再構成された計算ノード数分のデータを、ジョブを実行可能な計算ノード120に割り当てて、解析処理を再開する。なお、以下の実施形態では、再開用ファイルの再構成を監視サーバが行うこととしているが、計算サーバ100の管理ノード110が行っても良い。
第2の実施形態による並列計算システムは、図1に示した第1の実施形態による並列計算システムと同様に構成される。すなわち、計算サーバ100と、監視サーバ210と、SSD300とを備える。計算サーバ100は、1台の管理ノード110と、複数台の計算ノード120とを備える。計算サーバ100の各ノード(管理ノード110および計算ノード120)および監視サーバ210は、例えば図2に示したコンピュータで実現される。また、計算サーバ100の各ノードは、ネットワーク接続されており、いわゆるクラスタコンピューティングを実現する。これらの構成のうち、計算サーバ100の管理ノード110および計算ノード120、SSD300の構成は、上記の第1の実施形態における管理ノード110、計算ノード120およびSSD300と同様である。したがって、同一の符号を付して、説明を省略する。
<監視サーバの機能>
図10は、監視サーバ210の機能構成を示す図である。
図10に示すように、監視サーバ210は、計算サーバ100による解析処理におけるジョブの実行状況を監視するジョブ監視部201と、計算サーバ100による解析処理に異常が発生した場合に異常の原因となった計算ノード120(障害ノード)を特定する障害ノード特定部202と、解析処理の再開のための制御を行う再開制御部203と、再開用ファイルを計算ノード120の数に応じて再構成する再構成部204とを備える。また、監視サーバ210は、SSD300を外部記憶装置(補助記憶手段)として用いる。これらの構成のうち、ジョブ監視部201、障害ノード特定部202および再開制御部203は、図5に示した第1の実施形態における監視サーバ210の対応する各構成と同様である。したがって、同一の符号を付して説明を省略する。
再構成部204は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。この再構成部204は、再開用ファイルのデータを計算ノード120の数に合わせて再分割する再構成処理を依頼するための再構成依頼ファイルがSSD300へ出力された場合に、再開用ファイルのデータの再構成処理を行う。
再構成依頼ファイルは、障害時モードにおいて、計算ノード120の再起動後、計算ノード数が必要ノード数よりも少ない場合に、管理ノード110の再開処理部114により作成されて、SSD300へ出力される。この再構成依頼ファイルには、再構成処理を行うために必要となる計算ノード数が記述される。
<並列計算システムの動作>
次に、上記のように構成された並列計算システムの動作について説明する。
計算サーバ100における通常モードでの解析処理の動作は、図7を参照して説明した第1の実施形態における計算サーバ100の動作と同様である。したがって、図7を参照することとし、詳細な説明を省略する。
図11は、監視サーバ210の動作を示すフローチャートである。
図11において、ステップ1101からステップ1107までの動作は、図8に示した第1の実施形態における監視サーバ200のステップ801からステップ807までの動作と同様である。
監視サーバ210の再開制御部203が再開指示ファイルをSSD300に出力した後(ステップ1107)、計算サーバ100の管理ノード110により再構成依頼ファイルがSSD300に出力されると、再構成部204は、この再構成依頼ファイルに記述された計算ノード数を取得する(ステップ1108、1109)。そして、SSD300に書き込まれている再開用ファイルのデータを合成し、ステップ1109で取得した計算ノード数に応じて再分割する(ステップ1110)。再構成部204により再構成(合成、再分割)される対象となる再開用ファイルは、例えば、全ての計算ノード120から出力された(すなわち、障害が発生していないときに出力された)再開用ファイルのうちで、最後に出力されたものである。これは、通常、障害が検知された計算ステップの1つ前の計算ステップで出力された再開用ファイルである。
図12は、第2の実施形態において、障害時モードでの管理ノード110の動作(図7のステップ704でYesの場合)を説明するフローチャートである。
図12において、ステップ1201からステップ1208までの動作は、図9に示した第1の実施形態における管理ノード110のステップ901からステップ908までの動作と同様である。
解析処理のジョブを実行可能な計算ノード120の数(計算ノード数)が当該ジョブの実行に必要な計算ノード120の数(必要ノード数)よりも少ない場合(ステップ1206でNo)、再開処理部114は、計算ノードを記述した再構成依頼ファイルをSSD300に出力する(ステップ1209)。そして、監視サーバ200により再分割された再開用ファイルがSSD300に出力されたならば、再開処理部114からデータ割り当て部111に処理が移行し、再構成処理後の新たな再開用ファイルのデータを、ジョブを実行可能な計算ノード120に割り当てる(ステップ1210、1207)。そして、ジョブを実行可能な各計算ノード120が、割り当てられた再開用ファイルをSSD300から読み込んで(ステップ1208)、通常モードの動作に戻り(図7を参照)、ジョブを再開する(動作は、ステップ704に戻る)。
<第3の実施形態>
第1の実施形態および第2の実施形態では、解析処理に異常が発生した場合、監視サーバ200が障害の発生した計算ノード120(障害ノード)を特定し、障害が発生していない計算ノード120および復旧した計算ノード120を用いて解析処理を継続した。これに対し、第3の実施形態は、監視サーバにも並列分散処理を実行可能な複数台の計算ノードを接続しておく。そして、解析処理に異常が発生した場合、計算サーバ100から監視サーバに引き継いで、残りの解析処理を行う。
図13は、第3の実施形態による並列計算システムの全体構成を示す図である。
図13に示す並列計算システムは、計算サーバ100と、監視サーバ400と、外部記憶装置であるSSD300とを備える。計算サーバ100は、1台の管理ノード110と、複数台の計算ノード120とを備える。また、監視サーバ400は、1台の主ノード410と、複数台の副ノード420とを備える。計算サーバ100の各ノード(管理ノード110および計算ノード120)および監視サーバ400の各ノード(主ノード410および副ノード420)は、例えば図2に示したコンピュータで実現される。また、計算サーバ100の各ノードおよび監視サーバ400の各ノードは、それぞれネットワーク接続されており、いわゆるクラスタコンピューティングを実現する。これらの構成のうち、計算サーバ100の管理ノード110および計算ノード120、SSD300の構成は、上記の第1の実施形態における管理ノード110、計算ノード120およびSSD300と同様である。したがって、同一の符号を付して、説明を省略する。ただし、本実施形態では、解析処理に異常が発生した場合、計算サーバ100において解析処理を再開しないので、管理ノード110の再開処理部114の機能は使用されない。
<監視サーバの主ノードおよび副ノードの機能>
図14は、主ノード410の機能構成を示す図である。
主ノード410は、計算サーバ100による解析処理の実行状況を監視する機能と、副ノード420による並列分散処理を管理する機能とを兼ね備える。図14に示すように、主ノード410は、計算サーバ100による解析処理におけるジョブの実行状況を監視するジョブ監視部411と、計算サーバ100による解析処理に異常が発生した場合に異常の原因となった計算ノード120(障害ノード)を特定する障害ノード特定部412と、解析処理の再開のための処理を行う再開処理部413とを備える。また、副ノード420による解析処理を管理するための機能として、解析対象のデータを各副ノード420に割り当てるデータ割り当て部414と、各副ノード420による計算結果を受け取って解析対象のデータを更新するデータ更新部415と、各計算ノード420による計算が完了した後に終了処理を行う終了処理部416とを備える。これらの機能ブロックは、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能であり、ソフトウェアとハードウェア資源とが協働して実現される手段である。また、主ノード410は、SSD300を外部記憶装置(補助記憶手段)として用いる。
ジョブ監視部411は、計算サーバ100の各計算ノード120によるジョブ(並列分散された個々の処理)の実行状況を監視する。上記のように、各計算ノード120による計算結果は、1回の計算ステップごとに、再開用ファイルとしてSSD300に書き出される。また、上記のように、再開用ファイルのファイル名には、再開用ファイルを作成した計算ノード120の識別情報および何回目の計算ステップかを示す情報が含まれる。そこで、ジョブ監視部411は、SSD300にアクセスし、各計算ステップにおいて、各計算ノード120から再開用ファイルが出力されたか否かを監視する。
障害ノード特定部412は、ジョブ監視部411による監視結果に基づいて、計算サーバ100による解析処理に異常が発生した場合に、障害ノードを特定する。ある計算ステップにおいて、いずれかの計算ノード120に障害が発生した場合には、その計算ノード120によるその計算ステップでの再開用ファイルがSSD300に出力されない。したがって、障害ノード特定部412は、再開用ファイルが出力されなかった計算ノード120を障害ノードと特定する。
再開処理部413は、解析処理に異常が発生した場合に、解析処理を計算サーバ100から監視サーバ400に引き継いで再開するための処理を行う。解析処理を監視サーバ400の副ノード420により並列実行するために、必要な場合には、計算サーバ100の計算ノード120により出力された再開用ファイルの再構成処理を行う。再開処理部413による処理の詳細は後述する。
データ割り当て部414は、SSD300から解析対象である粒子情報のデータを読み込み、読み込んだデータを各副ノード420に割り当て、割り当てたデータを各副ノード420に送信する。この副ノード420へのデータの割り当ておよび送信は、計算サーバ100における計算ノード120へのデータの割り当ておよび送信と同様である。すなわち、副ノード420に送られるデータには、粒子の位置や属性など副ノード420による計算に必要なデータが含まれる。データの割り当ては、例えば粒子分割法や領域分割法などの既存の手法にて行う。
データ更新部415は、各副ノード420の計算結果を受信して解析結果としてまとめ、SSD300に保持されている粒子情報を更新する。データ更新部415によるSSD300に保持されているデータの更新方式は、計算サーバ100の管理ノード110におけるデータ更新部112による更新方式と同様である。データ更新部415は、副ノード420から各計算ステップの計算結果を受信するたびに粒子情報の更新を行う。
終了処理部416は、各副ノード420による計算ステップが予め設定された回数に到達したならば、システムユーザに解析終了を通知する。また、データ更新部415によりSSD300に書き込まれた最終的な解析結果(更新された情報)を出力しても良い。
図15は、副ノード420の機能構成を示す図である。
図15に示すように、各副ノード420は、それぞれ、主ノード410から解析対象のデータを受け付ける受け付け部421と、計算処理を行う計算部422と、計算部422による計算結果を主ノード410へ送信する送信部423と、再開用ファイルをSSD300に出力する出力部424とを備える。受け付け部421、送信部423および出力部424は、例えば図2に示したコンピュータ10において、主記憶装置10bに読み込まれたプログラムをCPU10aが実行しネットワークI/F10dを制御することで実現される。また、計算部422は、主記憶装置10bに読み込まれたプログラムをCPU10aが実行することで実現される機能である。このように、図15に示す副ノード420の各機能ブロックは、ソフトウェアとハードウェア資源とが協働して実現される手段である。
受け付け部421は、主ノード410から送信された自ノードの計算に必要なデータを受け付ける。ここで、自ノードの計算に必要なデータとは、主ノード410により自ノードに割り当てられたデータおよびこのデータに対応する粒子(自ノードに割り当てられた粒子)の挙動に影響を与える他の粒子のデータである。
計算部422は、受け付け部421により読み込まれたデータに基づき、自ノードに割り当てられた粒子の挙動を解析する。
送信部423は、計算部422による計算結果を主ノード410へ送信する。計算部422による粒子の挙動解析のための計算は、通常、複数回の計算ステップによって行われる。
出力部424は、主ノード410に接続されているSSD300にアクセスし、自ノード(副ノード420)の再開用ファイルとして、計算部422による計算結果を書き込む。再開用ファイルの出力頻度は、特に限定しないが、本実施形態では、計算部422による1回の計算ステップが実行されるたびに出力するものとする。
<並列計算システムの動作>
次に、上記のように構成された並列計算システムの動作について説明する。
計算サーバ100の解析処理の動作は、図7を参照して説明した第1の実施形態における計算サーバ100の動作と同様である。したがって、図7を参照することとし、詳細な説明を省略する。ただし、第1の実施形態では、ステップ704で、再起動指示ファイルが書き込まれている場合は、障害時モードへ移行したが、本実施形態では、解析処理におけるジョブを停止し、処理を終了する。
図16−1、16−2は、監視サーバ400の動作を示すフローチャートである。
図16−1において、ステップ1601からステップ1605までの動作は、図8に示した第1の実施形態における監視サーバ200のステップ801からステップ805までの動作と同様である。
ステップ1605で、再起動指示ファイルをSSD300に出力した後、主ノード410の再開処理部413は、監視サーバ400における副ノード420の数(副ノード数)と、当該ジョブの実行に必要な計算ノード(副ノード420)の数(必要ノード数)とを比較する。副ノード数が必要ノード数以上である場合(ステップ1606でYes)、再開処理部413からデータ割り当て部414に処理が移行し、各副ノード420に再開用ファイルのデータを割り当てる(ステップ1608)。一方、副ノード数が必要ノード数よりも少ない場合(ステップ1606でNo)、再開処理部413が、SSD300に書き込まれている再開用ファイルのデータを合成し、副ノード数に応じて再分割する(ステップ1607)。そして、再開処理部413からデータ割り当て部414に処理が移行し、各副ノード420に再開用ファイルのデータを割り当てる(ステップ1608)。
この後、各副ノード420が、データ割り当て部414により割り当てられた再開用ファイルをSSD300から読み込んで(ステップ1609)、計算サーバ100から引き継いだ解析処理のジョブを実行する。
次に、図16−2を参照する。ステップ1610〜1613の動作は、各副ノード420において個別に実行される動作である。
各副ノード420では、計算部422が、まず各粒子について、磁気力(磁気的な相互作用力)、静電気力(静電気による相互作用力)、接触力(機械的な相互作用力)を計算する(ステップ1610)。このとき、計算された磁気力、静電気力、接触力は、内部キャッシュ等に一時的に保持される。次に計算部422は、内部キャッシュ等に保持されている磁気力、静電気力、接触力を読み込み、各作用力の和を求める(ステップ1611)。そして、ステップ1611で求まった作用力の和と粒子の位置情報および属性情報に基づいて運動方程式を解き、各粒子の位置情報(座標)を計算する(ステップ1612)。計算部422の計算が終了すると、出力部424が今回の計算ステップにおける自ノードの計算結果を再開用ファイルとしてSSD300に書き込む(ステップ1613)。また、このとき、送信部423が主ノード410に計算が終了したことを通知する。
主ノード410のデータ更新部415は、全ての副ノード420から計算終了の通知を受け付けると、次に各副ノード420から計算結果を受信し、ステップ1608で各副ノード420に対して再開用ファイルのデータを割り当てた際にSSD300から読み込んだデータを更新する(ステップ1614、1615)。そして、各副ノード420による次の計算ステップに用いるために、更新したデータを各副ノード420に送信する(ステップ1616)。全ての副ノード420に更新したデータを送信した後、データ更新部415は、各副ノード420の計算結果をSSD300に書き込む(ステップ1617、1618)。
以下、計算サーバ100の計算ノード120と監視サーバ400の副ノード420によって実行された計算ステップの合計が、予め設定された回数に達するまでステップ1610〜ステップ1618の処理を繰り返す(ステップ1619)。そして、計算ステップの合計が設定数に到達したならば、終了処理部416が、ステップ1618で出力された計算結果を解析結果として終了処理を行う(ステップ1620)。
100…計算サーバ、110…管理ノード、111…データ割り当て部、112…データ更新部、113…終了処理部、120…計算ノード、121…受け付け部、122…計算部、123…送信部、124…出力部、200、210、400…監視サーバ、300…SSD(Solid State Drive)

Claims (8)

  1. 少なくとも2個の入出力ポートを備え、半導体メモリを記憶媒体とする記憶装置と、
    前記記憶装置の1つの前記入出力ポートに接続し、解析処理における計算を行う計算サーバと、
    前記記憶装置の他の1つの前記入出力ポートに接続し、前記計算サーバを監視する監視サーバとを備え、
    前記計算サーバは、
    前記解析処理の計算を並列分散処理にて実行する複数の計算ノードと、
    複数の前記計算ノードを管理する管理ノードとを備え、
    前記計算ノードは、当該解析処理の途中経過である計算結果のファイルを前記記憶装置に出力し、
    前記監視サーバは、前記記憶装置にアクセスして前記計算ノードによる前記計算結果のファイルの出力を検知し、当該ファイルを出力しない計算ノードがある場合に、当該計算ノードを障害が発生した計算ノードと判断し、前記管理ノードに対し、当該障害が発生した計算ノードを復旧させて前記解析処理を再開するように指示することを特徴とする、解析システム。
  2. 前記監視サーバは、前記管理ノードに計算ノードの復旧および解析処理の再開を指示するための指示ファイルを前記記憶装置に出力し、
    前記管理ノードは、前記記憶装置にアクセスして前記監視サーバによる前記指示ファイルの出力を検知した場合に、前記障害が発生した計算ノードを復旧し前記解析処理を再開するための操作を行うことを特徴とする、請求項1に記載の解析システム。
  3. 前記監視サーバは、前記障害が発生したと判断した計算ノードの識別情報を前記指示ファイルに記載し、
    前記管理ノードは、少なくとも、前記指示ファイルに記載された識別情報により特定される計算ノードを再起動させることを特徴とする、請求項2に記載の解析システム。
  4. 前記管理ノードは、前記障害が発生した計算ノードを復旧する操作を行った後、解析処理を実行可能な計算ノードの数が障害発生前に解析処理を実行していた計算ノードの数よりも少ない場合に、前記計算結果のファイルに記載された計算結果を当該解析処理を実行可能な計算ノードの数に応じて再分割したデータを、当該解析処理を実行可能な各計算ノードに割り当てて、解析処理を実行させることを特徴とする、請求項1乃至請求項3に記載の解析システム。
  5. 前記管理ノードは、前記障害が発生した計算ノードを復旧する操作を行った後、解析処理を実行可能な計算ノードの数が障害発生前に解析処理を実行していた計算ノードの数よりも少ない場合に、当該解析処理を実行可能な計算ノードの数を前記監視サーバに報知し、
    前記監視サーバは、前記計算結果のファイルに記載された計算結果を結合し、前記解析処理を実行可能な計算ノードの数に応じて再分割し、再分割した当該計算結果のファイルを前記記憶装置に出力することを特徴とする、請求項1乃至請求項3に記載の解析システム。
  6. 前記管理ノードは、前記解析処理を実行可能な計算ノードの数を記載した再構成依頼ファイルを前記記憶装置に出力し、
    前記監視サーバは、前記記憶装置にアクセスして前記管理ノードによる前記再構成依頼ファイルの出力を検知した場合に、当該再構成依頼ファイルに記載された前記解析処理を実行可能な計算ノードの数に基づいて、前記計算結果のファイルを結合し再分割する処理を行うことを特徴とする、請求項5に記載の解析システム。
  7. 少なくとも2個の入出力ポートを備え、半導体メモリを記憶媒体とする記憶装置と、
    前記記憶装置の1つの前記入出力ポートに接続し、解析処理における計算を行う計算サーバと、
    前記記憶装置の他の1つの前記入出力ポートに接続し、前記計算サーバを監視する監視サーバとを備え、
    前記計算サーバは、
    前記解析処理の計算を並列分散処理にて実行する複数の計算ノードと、
    複数の前記計算ノードを管理する管理ノードとを備え、
    前記計算ノードは、当該解析処理の途中経過である計算結果のファイルを前記記憶装置に出力し、
    前記監視サーバは、
    前記解析処理の計算を並列分散処理にて実行する複数の副ノードと、
    前記計算サーバを監視すると共に、複数の前記副ノードを管理する主ノードとを備え、
    前記監視サーバの前記主ノードは、前記記憶装置にアクセスして前記計算ノードによる前記計算結果のファイルの出力を検知し、当該ファイルを出力しない計算ノードがある場合に、前記解析処理における残りの計算を前記副ノードに割り当てて実行させることを特徴とする、解析システム。
  8. 前記管理ノードは、前記解析処理を実行可能な計算ノードの数を記載した再構成依頼ファイルを前記記憶装置に出力し、
    前記主ノードは、前記計算結果のファイルの数よりも前記副ノードの数の方が少ない場合に、当該副ノードの数に基づいて、前記計算結果のファイルを結合し再分割する処理を行うことを特徴とする、請求項7に記載の解析システム。
JP2009075435A 2009-03-26 2009-03-26 解析システム Pending JP2010231295A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009075435A JP2010231295A (ja) 2009-03-26 2009-03-26 解析システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009075435A JP2010231295A (ja) 2009-03-26 2009-03-26 解析システム

Publications (1)

Publication Number Publication Date
JP2010231295A true JP2010231295A (ja) 2010-10-14

Family

ID=43047081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009075435A Pending JP2010231295A (ja) 2009-03-26 2009-03-26 解析システム

Country Status (1)

Country Link
JP (1) JP2010231295A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016048514A (ja) * 2014-08-28 2016-04-07 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US9996132B2 (en) 2013-07-18 2018-06-12 Fujitsu Limited Distributed processing method, system, and computer product
CN111459642A (zh) * 2020-04-08 2020-07-28 广州欢聊网络科技有限公司 一种分布式***中故障处理和任务处理方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996132B2 (en) 2013-07-18 2018-06-12 Fujitsu Limited Distributed processing method, system, and computer product
JP2016048514A (ja) * 2014-08-28 2016-04-07 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN111459642A (zh) * 2020-04-08 2020-07-28 广州欢聊网络科技有限公司 一种分布式***中故障处理和任务处理方法及装置
CN111459642B (zh) * 2020-04-08 2023-04-28 广州欢聊网络科技有限公司 一种分布式***中故障处理和任务处理方法及装置

Similar Documents

Publication Publication Date Title
JP6791834B2 (ja) 記憶システム及び制御ソフトウェア配置方法
US7127557B2 (en) RAID apparatus and logical device expansion method thereof
CN107111533B (zh) 虚拟机集群备份
CN110427284B (zh) 数据处理方法、分布式***、计算机***和介质
US9335998B2 (en) Multi-core processor system, monitoring control method, and computer product
US9588787B2 (en) Runtime virtual process creation for load sharing
EP3835936A1 (en) Method and device for memory data migration
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
EP2798461B1 (en) Low latency cluster computing
TW200817920A (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
WO2014174570A1 (ja) ストレージ管理計算機、ストレージ管理方法、およびストレージシステム
US20140298333A1 (en) Migration processing program, migration method, and cloud computing system
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
JP5561334B2 (ja) データ転送装置
US20170177225A1 (en) Mid-level controllers for performing flash management on solid state drives
JP2009087282A (ja) 並列計算システムおよび並列計算方法
US8977752B2 (en) Event-based dynamic resource provisioning
JP2010231295A (ja) 解析システム
WO2024051292A1 (zh) 数据处理***、内存镜像方法、装置和计算设备
US8099563B2 (en) Storage device and access instruction sending method
JP6356822B2 (ja) 計算機システム及びメモリダンプ方法
JP2014038551A (ja) データ記憶装置、データ記憶装置の制御方法、及びデータ記憶装置の制御プログラム
US20150120968A1 (en) Control method and information processing system
JP2010231296A (ja) 並列計算システム
JP6653786B2 (ja) I/o制御方法およびi/o制御システム