(57)【要約】      （修正有） 【課題】複数のアプリケーション・プログラムを同時に並列処理するシステムにおける障害発生時、予備の計算ノード群に切り替えて処理を続行する方法の提供。【解決手段】予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおいて、計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを計算ノード群に関連付け、各々の管理ノードが、使用中である各々の計算ノード群ステータス情報を情報管理サーバーにアクセスして更新する。管理ノードが障害発生を検知すると、情報管理サーバーにアクセスして、予備の計算ノード群を特定し予備の計算ノード群の計算ノード群情報を得る。該管理ノードが使用する計算ノード群を処理不可となった計算ノード群から特定された予備の計算ノード群に切り替えて処理を続行する。【選択図】 図５
2007172334.tif 000002
【特許請求の範囲】
【請求項１】
予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおける冗長性を確保するための方法であって、
計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを前記計算ノード群に関連付けるステップと、
各々の前記管理ノードが、使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新するステップと、
管理ノードが障害発生を検知するステップと、
前記障害発生により処理不可となった計算ノード群を使用中だった管理ノードが、前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、予備の計算ノード群を特定するステップと、
前記処理不可となった計算ノード群を使用中だった管理ノードが、特定された前記予備の計算ノード群の計算ノード群情報を得るステップと、
前記処理不可となった計算ノード群を使用中だった管理ノードが、特定された前記予備の計算ノード群の前記計算ノード群情報に基づいて、使用する計算ノード群を前記処理不可となった計算ノード群から特定された前記予備の計算ノード群に切り替えて処理を続行するステップと、
を含む、並列型演算システムにおける冗長性を確保するための方法。
【請求項２】
前記予備の計算ノード群に切り替えて処理を続行するステップが、前記処理不可となった計算ノード群を使用中だった前記管理ノードのジョブスケジューラによって障害発生時にすでにキューに入れられていたジョブを前記予備の計算ノード群で処理するステップを含む、請求項１に記載の方法。
【請求項３】
前記処理不可となった計算ノード群の障害が復旧すると、前記処理不可となった計算ノード群が新たな予備の計算ノード群として前記情報管理サーバーに登録される請求項１に記載の方法。
【請求項４】
前記計算ノード群の総数は、同時に動作させる必要があるジョブに必要な数の計算ノード群の数に、前記予備の計算ノード群の数を加算した数である請求項１に記載の方法。
【請求項５】
前記計算ノード群情報は、前記計算ノード群の識別情報、前記計算ノード群のロケーション情報、および前記計算ノード群の故障情報を含み、前記計算ノード群ステータス情報は、前記計算ノード群の状態を示す情報を含む、請求項１に記載の方法。
【請求項６】
各々の前記計算ノード群ステータス情報、および、各々の前記計算ノード群の計算ノード群情報が、前記情報管理サーバーに一括管理されている請求項１に記載の方法。
【請求項７】
各々の前記計算ノード群ステータス情報は、前記情報管理サーバーに一括管理されており、かつ、各々の前記計算ノード群の計算ノード群情報は、各々の前記管理ノードが管理する請求項１に記載の方法。
【請求項８】
各々の前記計算ノード群ステータス情報は、前記情報管理サーバーに一括管理されており、かつ、各々の前記管理ノードが、各々の前記計算ノード群の計算ノード群情報、および前記予備の計算ノード群の計算ノード群情報を管理する請求項１に記載の方法。
【請求項９】
予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムであって、
計算ノード群にジョブを割り当てる複数の管理ノードおよび各々の前記計算ノード群ステータス情報を有する情報管理サーバーと、
各々の前記管理ノードにおいて、使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新する手段と、
前記管理ノードにおいて、障害発生を検知する手段と、
前記障害発生により処理不可となった計算ノード群を使用中だった管理ノードにおいて、前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、前記予備の計算ノード群を特定する手段と、
前記処理不可となった計算ノード群を使用中だった前記管理ノードにおいて、前記予備の計算ノード群の計算ノード群情報を得る手段と、
前記処理不可となった計算ノード群を使用中だった前記管理ノードにおいて、前記予備の計算ノード群の計算ノード群情報に基づいて、使用する計算ノード群を前記処理不可となった計算ノード群から前記予備の計算ノード群に切り替えて処理を続行する手段と、
を含む、冗長性を確保するための並列型演算システム。
【請求項１０】
予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムであって、
計算ノード群にジョブを割り当てる複数の管理ノードおよび各々の計算ノード群ステータス情報を有する情報管理サーバーと、
前記管理ノードは、ノード管理プログラムを当該管理ノードの記憶媒体に格納しており、
前記ノード管理プログラムは、当該管理ノードを、
使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新する手段と、
障害発生を検知する手段と、
前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、前記予備の計算ノード群を特定する手段と、
特定された前記予備の計算ノード群の計算ノード群情報を得る手段と、
特定された前記予備の計算ノード群の前記計算ノード群情報に基づいて、使用する計算ノード群を前記障害により処理不可となった計算ノード群から前記予備の計算ノード群に切り替えて処理を続行する手段と、して機能させる冗長性を確保するための並列型演算システム。
【請求項１１】
予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおける冗長性を確保するためのプログラムであって、
前記並列型演算システムに、
計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを前記計算ノード群に関連付けるステップと、
各々の前記管理ノードが、使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新するステップと、
前記管理ノードが障害発生を検知するステップと、
前記障害発生により処理不可となった計算ノード群を使用中だった管理ノードが、前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、前記予備の計算ノード群を特定するステップと、
前記処理不可となった計算ノード群を使用中だった前記管理ノードが、特定された前記予備の計算ノード群の計算ノード群情報を得るステップと、
前記処理不可となった計算ノード群を使用中だった前記管理ノードが、特定された前記予備の計算ノード群の前記計算ノード群情報に基づいて、使用する計算ノード群を前記処理不可となった計算ノード群から特定された前記予備の計算ノード群に切り替えて処理を続行するステップと、
を実行させることにより並列型演算システムの冗長性を確保するためのプログラム。
【請求項１２】
前記予備の計算ノード群に切り替えて処理を続行するステップが、前記処理不可となった計算ノード群を使用中だった前記管理ノードのジョブスケジューラによって障害発生時にすでにキューに入れられていたジョブを前記予備の計算ノード群で処理するステップを含む、請求項１１に記載のプログラム。
【請求項１３】
前記処理不可となった計算ノード群の障害が復旧すると、前記処理不可となった計算ノード群が新たな予備の計算ノード群として前記情報管理サーバーに登録される請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、複数のアプリケーション・プログラムをマルチプロセッサ・システムにより並列処理する並列型演算システムの信頼性向上を実現するために、冗長性を確保するための方法、システム、およびプログラムに関する発明である。
【背景技術】
【０００２】
近年は、目覚ましいコンピュータ・システムの性能の向上と、ネットワークの高速化により、複数のコンピュータ・システムをネットワークで結んだマルチプロセッサ・システムにおいて、複数のアプリケーション・プログラムを同時に並列処理する並列型演算システムが登場し、処理の高速化を実現している。
そこで、複数のアプリケーション・プログラムを複数のコンピュータ・システムに分散して並列処理するという複雑な並列型演算システムにおいて障害が発生した場合でも、処理が停止することのない信頼性の高いシステムの実現が求められている。
【０００３】
そこで、特開平１−２１７６４２号公報、特開平１−２１７６４３号公報、特開平３−１３２８６１号公報の発明のように、予備の要素プロセッサを設けて、障害が発生した場合、予備の要素プロセッサに切り替えて処理を続行する発明や、管理ノードをマルチプロセッサにより多重化することにより管理ノードの障害に対応できるようにした発明が登場した。
また、マルチプロセッサ・システムにおける無停止運転による信頼性の向上を目指した発明として特開平３−３３５１５１９号公報の「サーバープログラムの管理処理方式」という発明があるが、これは、現用サーバーおよび待機サーバーの管理処理をする双空間管理サーバーを現用および待機用の少なくとも２つ用意し、現用双空間管理サーバーの生存情報がメモリに書き込まれ、現用双空間管理サーバーがダウンした場合には、待機用双空間管理サーバーが現用双空間管理サーバーとして機能するようになるという発明である。
【０００４】
しかし、従来の並列型演算システムは、図１に示したように、ジョブを計算ノード群に割り当てるジョブスケジューラ１１０、および計算ノード管理プログラム１２０を含む管理ノード１００が、処理計算を行うすべての計算ノード群１３０を管理している。
このように、管理ノードと計算ノード群とは一体化されているので、予備のプロセッサ、または予備の管理ノード等に切り替えて処理を続行する機能しか有しない従来技術では、ネットワークの一部に障害が発生した場合や、電源のトラブルなどのその他の構成要素のより大きなシステム単位での障害が発生した場合に、すでにキューに入れられていたジョブを処理可能な計算ノード群に引き継ぐことが出来ず、処理の一部が続行できなくなってシステム全体として影響が生じる場合があった。
【０００５】
【特許文献１】特開平１−２１７６４２号公報
【特許文献２】特開平１−２１７６４３号公報
【特許文献３】特開平３−１３２８６１号公報
【特許文献４】特開平３−３３５１５１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本願発明の目的は、異なる複数のアプリケーション・プログラムをマルチプロセッサ・システムにより同時に並列処理する並列型演算システムにおいて障害が発生した際に、予備の計算ノード群に切り替えて、予備の計算ノード群が、既にキューに入れられたジョブを障害が発生した計算ノード群から引き継いで処理を続行することのできる方法、システム、およびプログラムを提供することである。
【０００７】
また本願発明の別の目的は、障害が修復された計算ノード群は、新たな待機中である予備の計算ノード群として登録され、さらなる障害が発生した場合には、切り替えて使用することのできる計算ノード群として機能する方法、システム、およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおいて、計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを計算ノード群に関連付け、各々の管理ノードが、使用中である各々の計算ノード群ステータス情報を情報管理サーバーにアクセスして更新する。
そして、管理ノードが障害発生を検知すると、障害発生により処理不可となった計算ノード群を使用中だった管理ノードが、情報管理サーバーにおける計算ノード群ステータス情報にアクセスして、予備の計算ノード群を特定する。
そして、処理不可となった計算ノード群を使用中だった管理ノードが、特定された予備の計算ノード群の計算ノード群情報を得る。
そして、処理不可となった計算ノード群を使用中だった管理ノードが、特定された予備の計算ノード群の計算ノード群情報に基づいて、使用する計算ノード群を処理不可となった計算ノード群から特定された予備の計算ノード群に切り替えて処理を続行することができるので、並列型演算システムにおける冗長性を確保することができる。
【発明の効果】
【０００９】
本願発明により、並列型演算システムの計算ノード群自身の障害に加えて、ネットワークの一部、または電源などに障害が発生して計算ノード群の一部が使用できなくなった場合でも、即座に待機中である予備の計算ノード群に切り替えて、既にキューに入っていたジョブも含めて処理を続行することが出来る並列型演算システムを実現することができる。
また、障害を起こした計算ノード群が障害から復旧した場合には、新たな予備の計算ノード群として登録され、さらなる障害に対応することが出来る。
さらに、定期保守を行う際に、待機中である予備の計算ノード群に切り替えて保守点検を行うことが出来るので、ユーザから見てシステム停止することなく定期保守を行うことが出来る。
【発明を実施するための最良の形態】
【００１０】
図２に示したように、本願発明は、図１に示した従来技術とは異なり、１つの管理ノードがすべての計算ノード群を管理するのではなく、複数の管理ノードと複数の計算ノード群を具備している。この理由に関して次に説明する。
【００１１】
本願発明は図２に示したように、各ノード群２００は、ジョブを計算ノード群に割り当てるジョブスケジューラおよび計算ノード群を管理するノード管理プログラムを含む管理ノード２１０と、計算ノード群２２０とを具備する。
そして、システム全体では最大Ｍ個の計算ノード群で実行するジョブを同時にＮ個動作させる必要がある場合には、予備のノード群を１つ用意するとすれば、計算ノード群の総数は、（Ｎ＋１）個となる。
つまり、本願発明を実現する並列型演算システムは、ジョブの実行に必要な最大リソースを提供する複数の独立管理のシステムと予備システムを具備しているわけである。
このように各計算ノード群ごとに管理ノードを有しており、かつ各計算ノード群と各管理ノードとは別のラックに入っているので、ある計算ノード群に障害が発生しても、その障害が発生した計算ノード群を使用中だった管理ノードは、予備の計算ノード群に切り替えて処理を続行することができるわけである。
【００１２】
以上をわかりやすく図を用いて説明すると、図３に示したように、本願発明においては、ノード群ｍの管理ノードｍが計算ノード群ｍを用いて処理を行っていた際に、計算ノード群ｍで障害が発生した場合には、管理ノードｍは、予備の計算ノード群Ｎに切り替えて処理を続行することができる。
例えば、障害が発生すると、管理ノード群ｍはノード管理プログラムがデータとして持っているエラーコードテーブルを見に行って、Error/Failure/Fatal/Info/Severe/Warningなど障害の状況を確認する。そして、計算ノード群ｍで処理を続行するのは不可能だと管理ノードｍが判断した場合には、処理不可となった計算ノード群から予備の計算ノード群である計算ノード群Ｎに切り替えて、ジョブスケジューラによって既にキューに入れられていたジョブも含めて処理を続行する。
なお、キューに入れられるジョブの例としては、タスクとして起動するアプリケーションのバイナリイメージ、アプリケーションに渡すパラメータのリスト、タスクを走らせるノードのグループ名、アプリケーションが使用するノードの数、ジョブのプライオリティなどがある。
【００１３】
そして図４に示したように、計算ノード群Ｎに切り替えて処理を続行した後、計算ノード群ｍの障害が復旧した場合には、計算ノード群ｍは、新たな予備の計算ノード群として登録される。従ってさらなる障害が発生した場合には、処理不可となった計算ノード群を使用中だった管理ノードは、障害から復旧して予備の計算ノード群となっている計算ノード群ｍに切り替えて、処理を続行させることが出来る。
【００１４】
図1に示したように、従来技術ではジョブスケジューラを含む管理ノードが計算ノード群と一体化していたため、ジョブスケジューラによって既にジョブがキューに入っていた時に、ある計算ノード群が障害を起こすと、既にキューに入っていたジョブは処理されなくなってしまっていた。
しかし、本願発明は、複数の管理ノードと計算ノード群を具備した構成を有しており、かつ、任意の計算ノード群の情報をネットワーク経由で管理ノードからアクセスできるようにした仕組みと、予備の計算ノード群への切り替えを、管理ノードと計算ノード群との間のネットワークの切り替えで行えるようにしているので、ある計算ノード群に障害が発生した場合でも予備の計算ノード群に切り替えて処理を続行することができるわけである。
【００１５】
次に図５を用いて本願発明を実現するハードウェア構成例を説明する。
本願発明を実現する並列型演算システムは、情報管理サーバー３７０、ユーザーコンピュータ３００、および、ネットワークコントローラ３１５、３８０を経由してネットワーク１を介して接続される複数個の管理ノードサーバーを有し、さらに、ネットワーク２を介しネットワークコントローラ３６５を経由して管理ノードサーバーと接続される複数個の計算ノード群などを具備する。
そして、各計算ノード群の１つ１つは、さらに複数個のノードカード３６０を含んでおり、各ノードカード間はノード間バス３５５で接続されており、さらに、各ノードカード３６０は、相互に内部バスで接続されたプロセッサ３４５およびメモリ３５０を具備する。
そして、各ノードカード３６０はノード間バス３５５の動的な相互接続によるグループ化が可能で、グループの単位で１つのアプリケーション・プログラムを複数のプロセッサを使って実行する並列演算処理を行う事ができる。
なおグループ内の各プロセッサ３４５は、ノード間バス３５５を通して相互通信を行いながらプログラムを実行できる。そして、計算ノード群はネットワークコントローラ３６５を介して、外部ネットワーク２に接続され、同じくネットワークコントローラを介してネットワーク２に接続されている管理ノードサーバーと通信を行うことができる。
【００１６】
さらに詳細に説明すると、管理ノードサーバー１にはジョブスケジューラ３３０とノード管理プログラム３３５あり、ノード管理プログラム３３５はネットーワーク２を経由して、さらにノード間バス３５５、内部バスの経路を経由してノードカード３６０上のハードウェア資源であるメモリ３５０、プロセッサー３４５、バスコントローラ等にアクセスを行い、ノードカードのグループ化、グループ化されたノードカード上のメモリへのプログラムのロードおよび実行、計算ノード群内の各構成要素(プロセッサ、メモリ、バス等)のRAS情報の取得を行い、ノード群の制御を行う。
なお、RAS情報は、障害を起こしたハードウェアの種類、障害を起こしたハードウェア固体の識別子、ハードウェア障害の種類（エラーコード）、障害の発生したソフトウェア、障害の発生したジョブのID、ジョブの状況(エラーコード)等を含む。
そして、管理ノードサーバーと計算ノード群はネットワークを介して通信しているため、例えば、管理ノードサーバー１が使用している計算ノード群で障害が発生した場合には、管理ノード１は、通信先の計算ノード群のアドレスを変更することでノード管理プログラム３３５が制御する計算ノード群を切り替える事が可能である。
【００１７】
では次になぜこのように管理ノードサーバー１は通信先の計算ノード群のアドレスを変更することが出来るのかというと、計算ノード群を制御するために必要な情報である計算ノード群情報３４０、３９０および計算ノード群ステータス情報３９５にノード管理プログラム３３５がアクセス可能であるからである。
計算ノード群情報は、各計算ノード群の識別情報、計算ノード群のロケーション情報、計算ノード群の故障情報などを含んでいる。
また、計算ノード群ステータス情報は、ノード群のID、ノード群のネットワーク上のアドレス、およびノード群の状態（「予備」「使用中」「故障」）などを含んでいる。
従って、ノード管理プログラム３３５は、計算ノード群情報３４０、３９０および計算ノード群ステータス情報３９５にアクセスして上記の情報を得ることにより、計算ノード群を切り替えることができるわけである。
【００１８】
なお、ノード管理プログラム３３５は、自分が管理するノード群情報がローカル・データベース内の３４０になく、他の管理ノードサーバー、または情報管理サーバー３７０に存在する場合でも、ネットワークコントローラで接続されたネットワークを介して他の管理ノードサーバーまたは情報管理サーバー３７０上のデータベース管理プログラム３７５と通信を行い、必要なノード群情報にアクセスすることができる。
【００１９】
また、管理ノードからのジョブの実行は、管理ノード上にあるジョブスケジューラ３３０によって開始される。ジョブスケジューラ３３０へのジョブの投入はネットワーク１を介して接続されたユーザーコンピュータ３００から、ジョブスケジューラクライアント３１０を使って、ユーザーコンピュータ３００のハードディスク３０５上に存在する計算ノード群上で動作するアプリケーションの投入リクエストをジョブスケジューラ３３０に対して行うことにより行われる。
ジョブを投入されたジョブスケジューラ３３０は、ノード管理プログラムを介して新しいジョブを投入できるハードウェア資源を検索し、使用可能なハードウェア資源が存在する場合には、新しいジョブの開始をノード管理プログラムにリクエストする。
なお、ハードウェア資源に空きがない場合は、ジョブリクエストは管理ノードサーバーのメモリ上にある待ち行列に入れられる。そしてジョブ実行のリクエストを受けたノード管理プログラムは、前述のようにネットワーク２を経由して計算ノード群内のノードカードをグループ化し、使用可能なハードウェア資源を確保したらアプリケーション・プログラムを読み込んで処理を開始する。
【００２０】
また、ネットワーク２を経由して、計算ノード群からRAS情報を受け取った管理ノードサーバー上のノード管理プログラム３３５は、ネットワーク１を介して情報管理サーバー３７０上のデータベース管理プログラム３７５と通信を行い、情報管理サーバー３７０に接続されているデータベース３８５内の計算ノード群ステータス情報３９５の参照および更新を行う。  計算ノードステータス情報は各計算ノード群の状態(「使用中」「予備」「故障」)と計算ノード群のネットワーク２でのアドレスなどを持つことができる。
【００２１】
そして計算ノード群で障害が発生すると、障害が発生した計算ノード群を使用していたノード管理プログラムは、ネットワーク１を介して、情報管理サーバー内の計算ノード群ステータス情報３９５を参照して、「予備」の計算ノード群を検索し、予備の計算ノード群のアドレスを取得し、管理ノードのノード管理プログラムが、ノード群情報の参照先と、制御する計算ノード群のアドレスを切り替えることで、待機中であった正常な予備の計算ノード群を使って、ジョブスケジューラが管理する待ち行列内にあるジョブも含めて処理を続行することができる。
この時ノード管理プログラムは、新しく使い始めるノード群の計算ノード群ステータス情報を「予備」から「使用中」に変更して、故障が発生した計算ノード群の情報を「故障」に変更する。「故障」のステータスは、保守作業で計算ノード群が正常な状態に復旧した際に「予備」に変更される。
【００２２】
今までに説明したように、計算ノード群情報は、各計算ノード群の識別情報、計算ノード群のロケーション情報、計算ノード群の故障情報などを含んでおり、また、計算ノード群ステータス情報は、ノード群の状態（「予備」「使用中」「故障」）などの情報を含んでいる。
そして、計算ノード群情報、および計算ノード群ステータス情報の管理の仕方には、次の３つの方式がある。
方式Ａ：全ての計算ノード群情報、及び全ての計算ノード群ステータス情報（使用中、予備、故障）を情報管理サーバーが管理する。
方式Ｂ：各計算ノード群の計算ノード群情報は、各々の管理ノードが管理し、全ての計算ノード群ステータス情報（使用中、予備、故障）は情報管理サーバーで管理する。
方式Ｃ：全ての計算ノード群の計算ノード群情報を各々の管理ノードが管理し、全ての計算ノード群ステータス情報（使用中、予備、故障）は情報管理サーバーで管理する。
次に、方式Ａ、Ｂ、Ｃのそれぞれを実施例１、２、３として詳細に説明する。
【実施例１】
【００２３】
図６に示したように、方式Ａでは、全ての計算ノード群情報、及び全ての計算ノード群ステータス情報を情報管理サーバーが管理する。つまり、並列型演算システムの各管理ノードがどの計算ノード群を使用しているか、またどの計算ノード群が障害を起こしているか、また、どの計算ノード群が予備の計算ノード群として待機中かという情報を情報管理サーバーが一元管理している。
そして各管理ノードのノード管理プログラムは、ネットワークを介して情報管理サーバーにアクセスして、自分のノードの計算ノード群情報を更新する。
【００２４】
従って図７に示したように、計算ノード群１で障害が発生した場合には、管理ノード１のノード管理プログラムは、情報管理サーバーにある計算ノード群ステータス情報を参照して、計算ノード群Ｎが予備の計算ノード群であるという情報を得る。そして、情報管理サーバーにある計算ノード群情報に基づいて、管理ノード１が使用する計算ノード群１を計算ノード群Ｎに切り替える。
そしてキューに入っているジョブの情報は、各管理ノードが持っているので、障害が発生した時にすでにキューに入っていたジョブも新たな計算ノード群で処理を続行することができる。
【００２５】
では次に図８を用いて、傷害が発生する前の平常時の処理の流れについて説明する。
まずジョブスケジューラｍに、クライアントプログラムからジョブが投入されると、ジョブスケジューラｍがジョブの実行処理を開始する（４００）。
そして、ジョブスケジューラｍは、ジョブの実行に必要なリソースがあるかどうかをノード管理プログラムｍに問合せる（４１０）。
すると、ノード管理プログラムｍは、利用可能なハードウエアのリストと、各々のステータス(使用可/不可)を返す（４２０）。
そして、ジョブスケジューラｍは、必要なリソースの空きがあるかどうかを確認し（４３０）、必要なリソースの空きがない場合は、もう一度、空きリソース確認４１０に戻る。
なお、リソースの空きがある場合は、ジョブスケジューラｍがノード管理プログラムｍにジョブの投入を要求する（４４０）。
そしてジョブが投入されると、ノード管理プログラムｍは、ジョブの処理を行うために計算ノード群をグループ化し（４５０）、計算ノード群のグループへアプリケーションを読み込んで処理を実行し（４６０）、アプリケーションの処理が完了したら（４７０）、ジョブスケジューラｍへジョブの終了を通知する（４８０）。
【００２６】
次に、方式Ａで障害が発生した際の詳細な処理の流れを図９を用いて説明する。まず計算ノード群ｍで障害が発生（５００）すると、計算ノード群mと管理ノードm間を接続するネットワークを経由してRAS情報が、管理ノードｍのノード管理プログラムｍに通知される。そしてノード管理プログラムmは、渡されたエラーコードを確認し、回復不可能な障害の場合は、ノード群ｍが障害を起こしたと認識する。（５０５）
また計算ノード群mと管理ノードm間を接続するネットワークの障害や、RAS情報を生成する機構そのものに障害が発生した時のために、管理ノードｍのノード管理プログラムｍは、定期的にノード群ｍの情報をネットワークを介して照会する。そして、この照会への戻りがない場合も、ノード群ｍで障害が発生したと認識される（５０５）。
なお、「障害発生」情報はジョブスケジューラｍに渡され（５１０）、ジョブスケジューラｍからノード群ｍへのジョブ投入が停止される。（５４５）
【００２７】
ある並列型演算システムを例にとって説明すると、「障害発生」情報とは、先のRAS情報内のジョブIDとジョブのステータス情報等である。  障害を認識したジョブスケジューラは、ジョブの再投入を行おうとするが、ジョブスケジューラからノード群へのジョブの投入を行う前に、まず、ジョブスケジューラは使用可能なハードウェア資源があるかどうかをノード管理プログラムに対して照会する。
照会の結果、ノード群内で利用可能なハードウェア資源のリストと、それぞれのステータス情報(「故障」「使用可」「使用中」)が返される。障害発生時はノード管理プログラムがRAS情報により障害の発生を認識しているため、ハードウェア資源は「故障」としてジョブスケジューラに伝えられる。従って、ノード群のハードウェア資源が使用可能でないことを伝えられたジョブスケジューラは、ジョブ投入要求を停止する（５４５）。
以後、定期的にジョブスケジューラは使用可能な資源があるかどうかの照会をノード管理プログラムに対して行う。
【００２８】
次に図９の５１５に示したように、ノード管理プログラムｍは、情報管理サーバー上の計算ノード群ステータス情報のノード群の状態が「予備」になっているものを検索し、計算ノードＮが予備の計算ノード群であるという情報を情報管理サーバーから得る（５１５）。そして計算ノード群Nの計算ノード群情報を取得して（５２０）、計算ノード群情報の参照先を計算ノード群ｍから計算ノード群Nに切り替える。
【００２９】
そして、新たに使用することになったノード群Ｎのステータスを「予備」から「使用」に変更し、今まで「使用」だったノード群ｍのステータスを「故障」に変更して（５２５）、ノード管理プログラムｍは、計算ノード群Ｎと接続を確立する（５３０）。
接続の切り替えは、管理ノードｍからの接続先を、情報管理サーバー上の計算ノード群ステータス情報から取得した計算ノード群Nのネットワークアドレスに変更することで行われる。
【００３０】
管理ノードが予備の計算ノード群である計算ノード群Ｎとの接続を確立すると、使用可能な資源を定期的に照会していたジョブスケジューラに対して、ノード管理プログラムから使用可能なハードウェア資源を含むリストを返す事で「システム回復」情報がジョブスケジューラに通知され（５３５）、ジョブスケジューラからのジョブの投入が再開され、計算ノード群Ｎでのジョブの処理が開始する（５４０）。
【００３１】
なお、計算ノード群ｍの故障が修理されると（５５５）、計算ノード群ｍのステータスは、「故障」から「予備」に変更され、計算ノード群ｍは新たな予備の計算ノード群として登録される（５６０）。
なお、他の方式ＢおよびＣも計算ノード群情報がどこにあるかの違いはあるが、基本的な処理の流れは、以上説明した方式Ａと同様である。
【実施例２】
【００３２】
次に図１０に示した方式Ｂに関して説明する。方式Ｂは、各計算ノード群の計算ノード群情報は、各々の管理ノードが管理し、全ての計算ノード群ステータス情報は情報管理サーバーで管理する。
従って、方式Ａと違って方式Ｂの各ノード管理プログラムは、使用中の計算ノード群が同じノード内の計算ノード群である場合には、同じ管理ノード内にある計算ノード群情報にローカルにアクセスして計算ノード群情報を更新することができる。
また使用中である計算ノード群が、管理ノードとは異なるノード内の計算ノード群である場合には、ノード管理プログラムは、該当するノード群情報を持つ管理ノードにネットワークを介してアクセスして計算ノード群情報の更新を行う。
また、計算ノード群ステータス情報が変わる場合のみノード管理プログラムは情報管理サーバーにアクセスして「使用中」、「予備」、「故障」などの計算ノード群ステータス情報を更新する。
従って、計算ノード群１で障害が発生した場合には、管理ノード１内のノード管理プログラムは、情報管理サーバーにある計算ノード群ステータス情報を参照して、計算ノード群Ｎが予備として待機していることを知る。そして、管理ノード１内のノード管理プログラムは、使用する計算ノード群を計算ノード群１から予備の計算ノード群Ｎに切り替えて処理を続行する。
【実施例３】
【００３３】
次に図１１に示した方式Ｃに関して説明する。方式Ｃは、全ての計算ノード群の計算ノード群情報を各々の管理ノードが管理し、全ての計算ノード群ステータス情報（使用中、予備、故障）は情報管理サーバーで管理する。
だから方式Ｃにおいては、例えば管理ノード１が使用している計算ノード群１の計算ノード群１情報、および予備の計算ノード群である計算ノード群Nの情報が共にローカル、つまり管理ノード１内にある。
従って図１１に示したように、方式Ｃにおいて計算ノード群１で障害が発生した場合には、管理ノード１内のノード管理プログラムは、情報管理サーバー内の計算ノード群ステータス情報を参照して計算ノード群Ｎが予備として待機していることを知り、同じ管理ノード１内にある計算ノード群Ｎの情報を参照して、使用する計算ノード群を計算ノード群１から予備の計算ノード群Ｎに切り替えて処理を続行することができる。
また使用する計算ノード群情報の更新も、ネットワークを介して情報管理サーバーにアクセスする必要はなく、ノード管理プログラムと同じ管理ノード内にある計算ノード群情報を更新すればよい。
なお各管理ノードにおいては、予備の計算ノード群の情報が同じであればよく、それ以外のノード群の情報は同じ値を持つように維持される必要は無い。従って、各管理ノードのノード管理プログラムは、自分の管理ノードにある、自分が現在使用中の計算ノード群情報を更新すればよい。
そして、計算ノード群ステータス情報が変わる場合には、計算ノード管理プログラムは情報管理サーバーにアクセスして「使用中」、「予備」、「故障」などの計算ノード群ステータス情報を更新する。
【００３４】
なお以上の説明では、待機中である予備の計算ノード群が１つである場合に関して説明したが、予備の計算ノード群を複数持つように構成することも可能である。
待機中である予備の計算ノード群が複数ある場合は、図１２に示したように、計算ノード群ステータス情報が「予備」である計算ノード群がＮとＮ＋ｎというように複数個ある。そして、障害が発生したノードのノード管理プログラムは、切り替える計算ノード群を検索し、最初に見つかった予備の計算ノード群に切り替えるだけであって、切り替え方は今まで説明した予備の計算ノード群が１つの場合と同じである。
待機中である予備の計算ノード群が複数個あれば、ある計算ノード群で障害が発生して予備の計算ノード群を使用し、障害を起こした計算ノード群がまだ復旧していない間にさらなる障害が別の計算ノード群で発生した場合でも、別の予備のノード群に切り替えて処理を続行させることが出来るので、システムが停止することのないさらに信頼性の高いシステムを構築することができる。
【００３５】
また、管理ノードで動作するノード管理プログラムを多重化する。または、１つの管理ノードプログラムで管理するノード群のインスタンスを複数個持てば、１つのノードで複数個の計算ノード群を管理することも可能なので、管理ノードよりも計算ノード群の数が多いという構成にすることも可能である。
【００３６】
なお本願発明の諸実施形態は、さまざまなハードウェア、およびソフトウェア構成によって実現することが出来る。また本願発明を実現するプログラムは、外部の記憶媒体に格納されていてもよい。なお外部の記憶媒体としては、CD-ROMやフレキシブル・ディスクの他に、DVD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、インターネットや専用通信ネットワークに接続されたサーバー・システムにおけるハードディスクやRAM等の記憶装置を記録媒体として使用してネットワークを介してプログラムをコンピュータに提供してもよい。 
【図面の簡単な説明】
【００３７】
【図１】並列型演算システム（従来技術）
【図２】本願のノード群の構成図
【図３】障害発生時のノード群構成図
【図４】障害復旧時のノード群構成図
【図５】ハードウェア・システム構成図
【図６】方式Ａでのシステム構成図
【図７】方式Ａでの計算ノード群切り替えを示す図
【図８】平常時の処理の流れを示すフローチャート
【図９】障害発生から復旧までの処理の流れを示すフロー・チャート
【図１０】方式Ｂでの計算ノード群切り替えを示す図
【図１１】方式Ｃでの計算ノード群切り替えを示す図
【図１２】待機中である予備の計算ノード群が複数ある場合のシステム構成図
【符号の説明】
【００３８】
１００：管理ノード
１１０：ジョブスケジューラ
１２０：計算ノード管理プログラム
１３０：計算ノード群
２００：ノード群１
２１０：管理ノード１
２２０：計算ノード群１
２３０：ノード群Ｎ
２４０：管理ノードＮ
２５０：計算ノード群Ｎ
２６０：予備の計算ノード群Ｎ＋１
３００：ユーザ・コンピュータ
３０５：ハードディスク
３１０：ジョブスケジューラ・クライアント
３１５：ネットワーク・コントローラ
３２０：ネットワーク・コントローラ
３２５：メモリ
３３０：ジョブスケジューラ
３３５：ノード管理プログラム
３４０：計算ノード群情報
３４５：プロセッサ
３５０：メモリ
３６０：ノードカード
３６５：ネットワーク・コントローラ
３７０：情報管理サーバー
３７５：データベース管理プログラム
３８０：ネットワーク・コントローラ
３８５：データベース
３９０：計算ノード群情報
３９５：計算ノード群ステータス情報
【図１】
2007172334.tif 000003
【図２】
2007172334.tif 000004
【図３】
2007172334.tif 000005
【図４】
2007172334.tif 000006
【図５】
2007172334.tif 000007
【図６】
2007172334.tif 000008
【図７】
2007172334.tif 000009
【図８】
2007172334.tif 000010
【図９】
2007172334.tif 000011
【図１０】
2007172334.tif 000012
【図１１】
2007172334.tif 000013
【図１２】
2007172334.tif 000014