(57)【要約】【課題】計算結果の確認のための計算を、低遅延、低コストで行う。【解決手段】管理／先行計算機１００は、処理内容を複数区間に分割し、実行時に分割点で処理状態を保存するとともに、分割した処理内容を低コストな確認計算機１２０ａ、１２０ｚに一区間ずつ複製して転送する。確認計算機１２０ａ、１２０ｚは、各々、全区間を計算する管理／先行計算機１００の計算完了を待たずに、管理／先行計算機１００に保存された処理状態を用いて、分割点から計算を開始する。結果比較手段１０４、状態比較手段１０５は、管理／先行計算機１００での処理状態、及び計算結果と、確認計算機１２０ａ、１２０ｚでの処理状態、及び計算結果とを比較して、双方とも一致していれば計算結果が正しかったと判定する。【選択図】図１
2010122731.tif 000002
【特許請求の範囲】
【請求項１】
処理内容の全てを計算する管理／先行計算機と、処理内容の一部を計算する複数の確認計算機とからなる分割冗長実行システムであって、
前記管理／先行計算機は、
処理内容の入力を受け付ける処理入力手段と、
前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、
前記処理内容の全てを計算する第１の計算手段とを備え、
前記複数の確認計算機は、
前記分割された処理内容を、分割単位毎に計算する第２の計算手段を備え、
前記管理／先行計算機は、
同一分割処理内容に対する、前記第１の計算手段による計算結果と、前記第２の計算手段による計算結果とを比較する結果比較手段と、
同一分割処理内容に対する、前記第１の計算手段による処理状態と、前記第２の計算手段による処理状態とを比較する状態比較手段と、
前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段と
を更に備えたことを特徴とする分割冗長実行システム。
【請求項２】
処理内容の全てを計算する管理／先行計算機と、処理内容の一部を計算する複数の確認計算機とからなる分割冗長実行システムであって、
前記管理／先行計算機は、
処理内容の入力を受け付ける処理入力手段と、
前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、
前記処理内容の全てを計算する第１の計算手段と、
前記第１の計算手段による計算途中の処理状態を任意の時点で保存する第１の状態保存手段とを備え、
前記複数の確認計算機は、少なくとも、
前記分割された処理内容の一部を計算する第２の計算手段と、
前記第２の計算手段による計算完了時点の処理状態を保存する第２の状態保存手段とを備える第１の確認計算機と、
前記第１の状態保存手段で保存した処理状態を利用して計算途中の処理状態を復元する状態復元手段と、
前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算手段とを備える第２の確認計算機とからなり、
前記管理／先行計算機は、
同一分割処理内容に対する、前記第１の計算手段による計算結果と、前記第３の計算手段による計算結果とを比較する結果比較手段と、
同一分割処理内容に対する、前記第１の状態保存手段で保存した処理状態と、前記第２の状態保存手段で保存した処理状態とを比較する状態比較手段と、
前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段と
を備えたことを特徴とする分割冗長実行システム。
【請求項３】
処理内容の全てを計算する管理／先行計算機と、処理内容の一部を計算する複数の確認計算機とからなる分割冗長実行システムであって、
前記管理／先行計算機は、
処理内容の入力を受け付ける処理入力手段と、
前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、
前記処理内容の全てを計算する第１の計算手段と、
前記第１の計算手段による計算途中の処理状態を任意の時点で保存する第１の状態保存手段とを備え、
前記複数の確認計算機は、少なくとも、
前記分割された処理内容の一部を計算する第２の計算手段と、
前記第２の計算手段による計算完了時点の処理状態を保存する第２の状態保存手段とを備える第１の確認計算機と、
前記第１の状態保存手段で保存した処理状態を利用して計算途中の処理状態を復元する第１の状態復元手段と、
前記第１の状態復元手段で復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算手段とを備える第２の確認計算機と、
前記第１の状態保存手段で保存した他の処理状態を利用して計算途中の処理状態を復元する第２の状態復元手段と、
前記第２の状態復元手段で復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第４の計算手段と、
前記第４の計算手段による計算完了時点の処理状態を保存する第３の状態保存手段とを備える第３の確認計算機とからなり、
前記管理／先行計算機は、
同一分割処理内容に対する、前記第１の計算手段による計算結果と、前記第３の計算手段による計算結果とを比較する結果比較手段と、
同一分割処理内容に対する、前記第１の状態保存手段で保存した処理状態と、前記第２の状態保存手段で保存した処理状態とを比較し、更に、前記第１の状態保存手段で保存した処理状態と、前記第３の状態保存手段で保存した処理状態とを比較する状態比較手段と、
前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段と
を備えたことを特徴とする分割冗長実行システム。
【請求項４】
前記管理／先行計算機は、別体に設けられた管理計算機と先行計算機とからなり、
前記管理計算機は、
前記処理入力手段と、前記処理分割手段と、前記結果比較手段と、前記状態比較手段と、前記結果出力手段と、更に、前記先行計算機及び前記複数の確認計算機との間で情報を送受信する第１の通信手段とを備え、
前記先行計算機は、
前記第１の計算手段と、更に、前記管理計算機との間で情報を送受信する第２の通信手段とを備える
ことを特徴とする請求項１記載の分割冗長実行システム。
【請求項５】
前記管理／先行計算機は、別体に設けられた管理計算機と先行計算機とからなり、
前記管理計算機は、
前記処理入力手段と、前記処理分割手段と、前記結果比較手段と、前記状態比較手段と、前記結果出力手段と、更に、前記先行計算機と前記複数の確認計算機との間で、分割された処理内容、処理結果、及び処理状態を送受信する第１の通信手段とを備え、
前記先行計算機は、
前記第１の計算手段と、前記第１の状態保存手段と、更に、前記管理計算機との間で、分割された処理内容、処理結果、及び処理状態を送受信する第２の通信手段とを備える
ことを特徴とする請求項２または３記載の分割冗長実行システム。
【請求項６】
前記処理分割手段は、
前記受け付けた処理内容を時間軸方向に２つ以上の処理に分割することを特徴とする請求項１乃至５のいずれかに記載の分割冗長実行システム。
【請求項７】
前記管理／先行計算機は、
前記第１の状態保存手段に保存した処理状態を送信する時点で、送信先の確認計算機を決定する送信先決定手段を更に備えたことを特徴とする請求項１乃至３、または６のいずれかに記載の分割冗長実行システム。
【請求項８】
前記管理計算機は、前記保存した処理状態を送信する時点で、送信先の確認計算機を決定する送信先決定手段を更に備えたことを特徴とする請求項５記載の分割冗長実行システム。
【請求項９】
管理／先行計算機により処理内容の全てを計算し、複数の確認計算機により前記処理内容の一部を計算する分割冗長実行方法であって、
前記管理／先行計算機で処理内容を２つ以上の処理内容に分割するステップと、
前記分割された処理内容の全てを前記管理／先行計算機で計算するステップと、
前記分割された処理内容を、分割単位毎に前記複数の確認計算機で計算するステップと、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算結果と前記複数の確認計算機の計算結果とを比較するステップと、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算途中の処理状態と前記複数の確認計算機での処理状態とを比較するステップと、
前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力するステップと
を含むことを特徴とする分割冗長実行方法。
【請求項１０】
管理／先行計算機により処理内容の全てを計算し、複数の確認計算機により前記処理内容の一部を計算する分割冗長実行方法であって、
前記管理／先行計算機で、処理内容の入力を受け付けるステップと、
前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割するステップと、
前記管理／先行計算機で、前記処理内容の全てを計算するステップと、
前記管理／先行計算機で、前記計算途中の処理状態を任意の時点で保存するステップと、
前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算するステップと、
前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存するステップと、
前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元するステップと、
前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算するステップと、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較するステップと、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較するステップと、
前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力するステップと
を含むことを特徴とする分割冗長実行方法。
【請求項１１】
管理／先行計算機により処理内容の全てを計算し、複数の確認計算機により前記処理内容の一部を計算する分割冗長実行方法であって、
前記管理／先行計算機で、処理内容の入力を受け付けるステップと、
前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割するステップと、
前記管理／先行計算機で、前記処理内容の全てを計算するステップと、
前記管理／先行計算機で、前記計算手段による計算途中の処理状態を任意の時点で保存するステップと、
前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算するステップと、
前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存するステップと、
前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元するステップと、
前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算するステップと、
前記複数の確認計算機のうち、少なくとも第３の確認計算機で、前記管理／先行計算機で保存した他の処理状態を利用して計算途中の処理状態を復元するステップと、
前記第３の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算するステップと、
前記第３の確認計算機で、前記計算された他の一部の計算完了時点の処理状態を保存するステップと、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較するステップと、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較し、更に、前記管理／先行計算機で保存した処理状態と、前記第２の確認計算機で保存した処理状態とを比較するステップと、
前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力するステップと
を含むことを特徴とする分割冗長実行方法。
【請求項１２】
前記処理内容を分割するステップは、
前記受け付けた処理内容を時間軸方向に２つ以上の処理に分割することを特徴とする請求項９乃至１１のいずれかに記載の分割冗長実行方法。
【請求項１３】
前記処管理／先行計算機は、
前記保存した処理状態を送信する時点で、送信先の確認計算機を決定するステップを更に含むことを特徴とする請求項９乃至１２のいずれかに記載の分割冗長実行方法。
【請求項１４】
処理内容の全てを管理／先行計算機により計算し、前記処理内容の一部を複数の確認計算機により計算するコンピュータに、
前記管理／先行計算機で処理内容を２つ以上の処理内容に分割する処理分割処理と、
前記分割された処理内容の全てを前記管理／先行計算機で計算する第１の計算処理と、
前記分割された処理内容を、分割単位毎に前記複数の確認計算機で計算する第２の計算処理と、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算結果と前記複数の確認計算機での計算結果とを比較する結果比較処理と、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算途中の処理状態と前記複数の確認計算機での処理状態とを比較する状態比較処理と、
前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する出力処理と
を実行させるためのプログラム。
【請求項１５】
処理内容の全てを管理／先行計算機により計算し、前記処理内容の一部を複数の確認計算機により計算するコンピュータに、
前記管理／先行計算機で、処理内容の入力を受け付ける処理入力処理と、
前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割処理と、
前記管理／先行計算機で、前記処理内容の全てを計算する第１の計算処理と、
前記管理／先行計算機で、前記計算途中の処理状態を任意の時点で保存する第１の状態保存処理と、
前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算する第２の計算処理と、
前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存する第２の状態保存処理と、
前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元する状態復元処理と、
前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算処理と、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較する結果比較処理と、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較する状態比較処理と、
前記管理／先行計算機で、前記の双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する出力処理と
を実行させるためのプログラム。
【請求項１６】
処理内容の全てを管理／先行計算機により計算し、前記処理内容の一部を複数の確認計算機により計算するコンピュータに、
前記管理／先行計算機で、処理内容の入力を受け付ける処理入力処理と、
前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割処理と、
前記管理／先行計算機で、前記処理内容の全てを計算する第１の計算処理と、
前記管理／先行計算機で、前記第１の計算処理による計算途中の処理状態を任意の時点で保存する第１の状態保存処理と、
前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算する第２の計算処理と、
前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存する第２の状態保存処理と、
前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元する第１の状態復元処理と、
前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算処理と、
前記複数の確認計算機のうち、少なくとも第３の確認計算機で、前記管理／先行計算機で保存した他の処理状態を利用して計算途中の処理状態を復元する第２の状態復元処理と、
前記第３の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第４の計算処理と、
前記第３の確認計算機で、前記計算された他の一部の計算完了時点の処理状態を保存する第３の状態保存処理と、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較する結果比較処理と、
前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較し、更に、前記管理／先行計算機で保存した処理状態と、前記第２の確認計算機で保存した処理状態とを比較する状態比較処理と、
前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力処理と
を実行させるためのプログラム。
【請求項１７】
前記処理分割処理は、
前記処理内容を時間軸方向に２つ以上の処理に分割することを特徴とする請求項１４乃至１６のいずれかに記載のプログラム。
【請求項１８】
前記管理／先行計算機で、前記第１の状態保存処理で保存した処理状態を送信する時点で、送信先の確認計算機を決定する決定処理をコンピュータに更に実行させることを特徴とする請求項１４乃至１７のいずれかに記載のプログラム。
【請求項１９】
処理内容の入力を受け付ける処理入力手段と、
前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、
前記処理内容の全てを計算する計算手段と、
外部の確認計算機により計算された、処理内容の一部の計算結果を受信するとともに、前記外部の確認計算機による計算完了後の処理状態を受信する受信手段と、
同一分割処理内容に対する、前記計算手段による計算結果と、前記受信手段により受信した前記外部の確認計算機による計算結果とを比較する結果比較手段と、
同一分割処理内容に対する、前記計算手段による処理状態と、前記受信手段により受信した前記外部の確認計算機による計算完了後の処理状態とを比較する状態比較手段と、
前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段と
を備えることを特徴とする計算機。
【請求項２０】
分割された処理内容の一部を計算する計算手段と、
前記計算手段による計算完了時点の処理状態を保存する状態保存手段と
前記状態保存手段に保存された処理状態を送信する通信手段と
を備えることを特徴とする計算機。
【請求項２１】
計算すべき分割された処理内容に対して外部で計算された際の処理状態を復元する状態復元手段と、
前記復元した処理状態を用いて前記分割された処理内容を計算する計算手段と、
前記計算手段による計算結果を送信する通信手段と
を備えることを特徴とする計算機。
【請求項２２】
計算すべき分割された処理内容に対して外部で計算された際の処理状態を利用して計算途中の処理状態を復元する状態復元手段と、
前記復元した処理状態を用いて前記分割された処理内容の一部を計算する計算手段と、
前記計算手段による計算完了時点の処理状態を保存する状態保存手段と
を備えることを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に冗長実行によって計算結果が正常かどうかを判定可能な冗長実行システム、冗長実行方法、冗長実行用プログラム、及び計算機に関する。
【背景技術】
【０００２】
従来、複数の計算手段と、結果比較手段とから構成されている冗長実行システムが知られている（例えば、特許文献１参照）。該特許文献１の冗長実行システムでは、同一の処理内容を複数の計算手段で実行し、それぞれの計算結果を結果比較手段で比較することによって、演算結果が正しいかどうかを判断する。
【特許文献１】特開２００５−１１５７９５号公報  （第３〜７頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した特許文献１の冗長実行システムでは、ある計算手段における計算結果を、大きな遅延を生じさせずに、他の計算手段における計算結果と比較するためには、他の全ての計算手段を上記ある計算手段と同等の性能を持ったものにしなければならない。このため、複数の計算結果の比較にかかる時間は、最も速度が遅い計算手段での計算が完了するまでの時間に左右されるという問題があった。
【０００４】
本発明は、このような事情を考慮してなされたものであり、その目的は、同等の性能を持った計算手段を複数用意しなくとも、性能の低い計算機を複数利用して、計算結果の比較にかかる時間を大きく増加させることなく、演算結果が正しいかどうかを判定することができる冗長実行システム、冗長実行方法、冗長実行用プログラム、及び計算機を提供することにある。
【課題を解決するための手段】
【０００５】
上述した課題を解決するために、本発明は、処理内容の全てを計算する管理／先行計算機と、処理内容の一部を計算する複数の確認計算機とからなる分割冗長実行システムであって、前記管理／先行計算機は、処理内容の入力を受け付ける処理入力手段と、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、前記処理内容の全てを計算する第１の計算手段とを備え、前記複数の確認計算機は、前記分割された処理内容を、分割単位毎に計算する第２の計算手段を備え、前記管理／先行計算機は、同一分割処理内容に対する、前記第１の計算手段による計算結果と、前記第２の計算手段による計算結果とを比較する結果比較手段と、同一分割処理内容に対する、前記第１の計算手段による処理状態と、前記第２の計算手段による処理状態とを比較する状態比較手段と、前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段とを更に備えたことを特徴とする分割冗長実行システムである。
【０００６】
また、上述した課題を解決するために、本発明は、処理内容の全てを計算する管理／先行計算機と、処理内容の一部を計算する複数の確認計算機とからなる分割冗長実行システムであって、前記管理／先行計算機は、処理内容の入力を受け付ける処理入力手段と、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、前記処理内容の全てを計算する第１の計算手段と、前記第１の計算手段による計算途中の処理状態を任意の時点で保存する第１の状態保存手段とを備え、前記複数の確認計算機は、少なくとも、前記分割された処理内容の一部を計算する第２の計算手段と、前記第２の計算手段による計算完了時点の処理状態を保存する第２の状態保存手段とを備える第１の確認計算機と、前記第１の状態保存手段で保存した処理状態を利用して計算途中の処理状態を復元する状態復元手段と、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算手段とを備える第２の確認計算機とからなり、前記管理／先行計算機は、同一分割処理内容に対する、前記第１の計算手段による計算結果と、前記第３の計算手段による計算結果とを比較する結果比較手段と、同一分割処理内容に対する、前記第１の状態保存手段で保存した処理状態と、前記第２の状態保存手段で保存した処理状態とを比較する状態比較手段と、前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段とを備えたことを特徴とする分割冗長実行システムである。
【０００７】
また、上述した課題を解決するために、本発明は、処理内容の全てを計算する管理／先行計算機と、処理内容の一部を計算する複数の確認計算機とからなる分割冗長実行システムであって、前記管理／先行計算機は、処理内容の入力を受け付ける処理入力手段と、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、前記処理内容の全てを計算する第１の計算手段と、前記第１の計算手段による計算途中の処理状態を任意の時点で保存する第１の状態保存手段とを備え、前記複数の確認計算機は、少なくとも、前記分割された処理内容の一部を計算する第２の計算手段と、前記第２の計算手段による計算完了時点の処理状態を保存する第２の状態保存手段とを備える第１の確認計算機と、前記第１の状態保存手段で保存した処理状態を利用して計算途中の処理状態を復元する第１の状態復元手段と、前記第１の状態復元手段で復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算手段とを備える第２の確認計算機と、前記第１の状態保存手段で保存した他の処理状態を利用して計算途中の処理状態を復元する第２の状態復元手段と、前記第２の状態復元手段で復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第４の計算手段と、前記第４の計算手段による計算完了時点の処理状態を保存する第３の状態保存手段とを備える第３の確認計算機とからなり、前記管理／先行計算機は、同一分割処理内容に対する、前記第１の計算手段による計算結果と、前記第３の計算手段による計算結果とを比較する結果比較手段と、同一分割処理内容に対する、前記第１の状態保存手段で保存した処理状態と、前記第２の状態保存手段で保存した処理状態とを比較し、更に、前記第１の状態保存手段で保存した処理状態と、前記第３の状態保存手段で保存した処理状態とを比較する状態比較手段と、前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段とを備えたことを特徴とする分割冗長実行システムである。
【０００８】
また、上述した課題を解決するために、本発明は、管理／先行計算機により処理内容の全てを計算し、複数の確認計算機により前記処理内容の一部を計算する分割冗長実行方法であって、前記管理／先行計算機で処理内容を２つ以上の処理内容に分割するステップと、前記分割された処理内容の全てを前記管理／先行計算機で計算するステップと、前記分割された処理内容を、分割単位毎に前記複数の確認計算機で計算するステップと、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算結果と前記複数の確認計算機の計算結果とを比較するステップと、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算途中の処理状態と前記複数の確認計算機での処理状態とを比較するステップと、前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力するステップとを含むことを特徴とする分割冗長実行方法である。
【０００９】
また、上述した課題を解決するために、本発明は、管理／先行計算機により処理内容の全てを計算し、複数の確認計算機により前記処理内容の一部を計算する分割冗長実行方法であって、前記管理／先行計算機で、処理内容の入力を受け付けるステップと、前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割するステップと、前記管理／先行計算機で、前記処理内容の全てを計算するステップと、前記管理／先行計算機で、前記計算途中の処理状態を任意の時点で保存するステップと、前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算するステップと、前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存するステップと、前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元するステップと、前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算するステップと、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較するステップと、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較するステップと、前記管理／先行計算機で、前記の双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力するステップとを含むことを特徴とする分割冗長実行方法である。
【００１０】
また、上述した課題を解決するために、本発明は、管理／先行計算機により処理内容の全てを計算し、複数の確認計算機により前記処理内容の一部を計算する分割冗長実行方法であって、前記管理／先行計算機で、処理内容の入力を受け付けるステップと、前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割するステップと、前記管理／先行計算機で、前記処理内容の全てを計算するステップと、前記管理／先行計算機で、前記計算手段による計算途中の処理状態を任意の時点で保存するステップと、前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算するステップと、前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存するステップと、前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元するステップと、前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算するステップと、前記複数の確認計算機のうち、少なくとも第３の確認計算機で、前記管理／先行計算機で保存した他の処理状態を利用して計算途中の処理状態を復元するステップと、前記第３の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算するステップと、前記第３の確認計算機で、前記計算された他の一部の計算完了時点の処理状態を保存するステップと、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較するステップと、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較し、更に、前記管理／先行計算機で保存した処理状態と、前記第２の確認計算機で保存した処理状態とを比較するステップと、前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力するステップとを含むことを特徴とする分割冗長実行方法である。
【００１１】
また、上述した課題を解決するために、本発明は、処理内容の全てを管理／先行計算機により計算し、前記処理内容の一部を複数の確認計算機により計算するコンピュータに、前記管理／先行計算機で処理内容を２つ以上の処理内容に分割する処理分割処理と、前記分割された処理内容の全てを前記管理／先行計算機で計算する第１の計算処理と、前記分割された処理内容を、分割単位毎に前記複数の確認計算機で計算する第２の計算処理と、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算結果と前記複数の確認計算機での計算結果とを比較する結果比較処理と、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機での計算途中の処理状態と前記複数の確認計算機での処理状態とを比較する状態比較処理と、前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する出力処理とを実行させるためのプログラムである。
【００１２】
また、上述した課題を解決するために、本発明は、処理内容の全てを管理／先行計算機により計算し、前記処理内容の一部を複数の確認計算機により計算するコンピュータに、前記管理／先行計算機で、処理内容の入力を受け付ける処理入力処理と、前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割処理と、前記管理／先行計算機で、前記処理内容の全てを計算する第１の計算処理と、前記管理／先行計算機で、前記計算途中の処理状態を任意の時点で保存する第１の状態保存処理と、前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算する第２の計算処理と、前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存する第２の状態保存処理と、前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元する状態復元処理と、前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算処理と、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較する結果比較処理と、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較する状態比較処理と、前記管理／先行計算機で、前記の双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する出力処理とを実行させるためのプログラムである。
【００１３】
また、上述した課題を解決するために、本発明は、処理内容の全てを管理／先行計算機により計算し、前記処理内容の一部を複数の確認計算機により計算するコンピュータに、前記管理／先行計算機で、処理内容の入力を受け付ける処理入力処理と、前記管理／先行計算機で、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割処理と、前記管理／先行計算機で、前記処理内容の全てを計算する第１の計算処理と、前記管理／先行計算機で、前記第１の計算処理による計算途中の処理状態を任意の時点で保存する第１の状態保存処理と、前記複数の確認計算機のうち、少なくとも第１の確認計算機で、前記分割された処理内容の一部を計算する第２の計算処理と、前記第１の確認計算機で、前記処理内容の一部の計算完了時点の処理状態を保存する第２の状態保存処理と、前記複数の確認計算機のうち、少なくとも第２の確認計算機で、前記管理／先行計算機で保存した処理状態を利用して計算途中の処理状態を復元する第１の状態復元処理と、前記第２の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第３の計算処理と、前記複数の確認計算機のうち、少なくとも第３の確認計算機で、前記管理／先行計算機で保存した他の処理状態を利用して計算途中の処理状態を復元する第２の状態復元処理と、前記第３の確認計算機で、前記復元した処理状態を用いて前記分割された処理内容の他の一部を計算する第４の計算処理と、前記第３の確認計算機で、前記計算された他の一部の計算完了時点の処理状態を保存する第３の状態保存処理と、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機による計算結果と、前記第２の確認計算機による計算結果とを比較する結果比較処理と、前記管理／先行計算機で、同一分割処理内容に対する、前記管理／先行計算機で保存した処理状態と、前記第１の確認計算機で保存した処理状態とを比較し、更に、前記管理／先行計算機で保存した処理状態と、前記第２の確認計算機で保存した処理状態とを比較する状態比較処理と、前記管理／先行計算機で、前記双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力処理とを実行させるためのプログラムである。
【００１４】
また、上述した課題を解決するために、本発明は、処理内容の入力を受け付ける処理入力手段と、前記受け付けた処理内容を２つ以上の処理内容に分割する処理分割手段と、前記処理内容の全てを計算する計算手段と、外部の確認計算機により計算された、処理内容の一部の計算結果を受信するとともに、前記外部の確認計算機による計算完了後の処理状態を受信する受信手段と、同一分割処理内容に対する、前記計算手段による計算結果と、前記受信手段により受信した前記外部の確認計算機による計算結果とを比較する結果比較手段と、同一分割処理内容に対する、前記計算手段による処理状態と、前記受信手段により受信した前記外部の確認計算機による計算完了後の処理状態とを比較する状態比較手段と、前記結果比較手段と前記状態比較手段との双方の比較結果に基づいて計算が正しく行われたか否かの結果を出力する結果出力手段とを備えることを特徴とする計算機である。
【００１５】
また、上述した課題を解決するために、本発明は、分割された処理内容の一部を計算する計算手段と、前記計算手段による計算完了時点の処理状態を保存する状態保存手段と、前記状態保存手段に保存された処理状態を送信する通信手段とを備えることを特徴とする計算機である。
【００１６】
また、上述した課題を解決するために、本発明は、計算すべき分割された処理内容に対して外部で計算された際の処理状態を復元する状態復元手段と、前記復元した処理状態を用いて前記分割された処理内容を計算する計算手段と、前記計算手段による計算結果を送信する通信手段とを備えることを特徴とする計算機である。
【００１７】
また、上述した課題を解決するために、本発明は、計算すべき分割された処理内容に対して外部で計算された際の処理状態を利用して計算途中の処理状態を復元する状態復元手段と、前記復元した処理状態を用いて前記分割された処理内容の一部を計算する計算手段と、前記計算手段による計算完了時点の処理状態を保存する状態保存手段とを備えることを特徴とする計算機である。
【発明の効果】
【００１８】
この発明によれば、先行計算機から配布される計算途中の処理状態を別々の確認計算機で復元することによって、性能が低くとも並列で確認用計算を実行させることができるため、同等の性能を持った計算手段を複数用意しなくとも、性能の低い計算機を複数利用して、計算結果の比較にかかる時間を大きく増加させることなく、演算結果が正しいかどうかを判定することができるという利点が得られる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態を、図面を参照して説明する。
【００２０】
Ａ．第１の実施形態
図１は、本発明の第１の実施形態による冗長実行システムの構成を示すブロック図である。図において、冗長実行システムは、プログラム処理を管理および実行する管理／先行計算機１００と、プログラム処理の一部分を実行する２つの確認計算機１２０ａ、１２０ｚとから構成されている。管理／先行計算機１００は、処理入力手段１０１と、処理分割手段１０２と、通信手段１０３と、結果比較手段１０４と、状態比較手段１０５と、結果出力手段１０６と、計算手段１１３と、状態保存手段１１４とを備えている。
【００２１】
確認計算機１２０ａ、１２０ｚは、各々、通信手段１２１ａ、１２１ｚと、状態復元手段１２２ａ、１２２ｚと、計算手段１２３ａ、１２３ｚと、状態保存手段１２４ａ、１２４ｚとを備えている。但し、確認計算機１２０ａ、１２０ｚのうち、いずれか一方は、状態復元手段１２２ａ、または状態復元手段１２２ｚを備えていなくてもよく、また、他方は、状態保存手段１２４ａ、または１２４ｚを備えていなくてもよい。
【００２２】
上記構成において、処理入力手段１０１は、本冗長実行システムで処理する処理内容の入力を受け付ける。処理分割手段１０２は、処理入力手段１０１で受け付けた処理内容を時間軸方向に複数の区間に分割する。通信手段１０３は、後述する確認計算機１２０ａの通信手段１２１ａ、及び確認計算機１２０ｚの通信手段１２１ｚとの間で、処理内容、処理結果、及び処理状態を送受信する。結果比較手段１０４は、計算手段１１３で計算された計算結果と、確認計算機１２０ａの計算手段１２３ａ、及び確認計算機１２０ｚの計算手段１２３ｚで計算された計算結果とを比較して、一致していれば、計算結果を結果出力手段１０６に通知し、一致していなければ、エラーを結果出力手段１０６に通知する。
【００２３】
状態比較手段１０５は、状態保存手段１１４で保存された処理状態と、確認計算機１２０ａの状態保存手段１２４ａ、または確認計算機１２０ｚの状態保存手段１２４ｚで保存された処理状態とを比較して、一致していれば、エラーなしを結果出力手段１０６に通知し、一致していなければ、エラーありを結果出力手段１０６に通知する。結果出力手段１０６は、結果比較手段１０４と状態比較手段１０５とからの通知の双方がエラーでない場合、結果比較手段１０４から通知された計算結果をシステムの処理結果として出力する一方、結果比較手段１０４と状態比較手段１０５とからの通知のどちらか一方でもエラーであった場合、システムの処理結果としてエラーを出力する。
【００２４】
計算手段１１３は、処理分割手段１０２から処理内容を受けて計算し、処理分割手段１０２の分割によって作成された区間の切れ目に達すると、状態保存手段１１４に通知する。また、計算手段１１３は、全処理が終了すると、その計算結果を結果比較手段１０４に送信する。状態保存手段１１４は、計算手段１１３からの通知を受けて、その時点での計算手段１１３の処理状態を保存し、これを状態比較手段１０５に供給するとともに、通信手段１０３を通じて確認計算機１２０ａの状態復元手段１２２ａ、または確認計算機１２０ｚの状態復元手段１２２ｚに送信する。
【００２５】
確認計算機１２０ａ、１２０ｚにおいて、状態復元手段１２２ａ、１２２ｚは、通信手段１２１ａ、１２１ｚを通じて、管理／先行計算機１００の状態保存手段１１４に保存された処理状態のうち１つを受信し、計算手段１２３ａ、１２３ｚに適用して処理状態を復元する。計算手段１２３ａ、１２３ｚは、通信手段１２１ａ、１２１ｚを通じて処理内容を受信し、管理／先行計算機１００の処理分割手段１０２によって複数区間に分割された区間のうち１つを、状態復元手段１２２ａ、１２２ｚによって復元された処理状態から計算し、区間の終わりに達すると、状態保存手段１２４ａ、１２４ｚに通知する。また、計算手段１２３ａ、１２３ｚは、処理が終了すると、その計算結果を通信手段１２１ａ、１２１ｚを通じて管理計算機１００の結果比較手段１０４に送信する。状態保存手段１２４ａ、１２４ｚは、計算手段１２３ａ、１２３ｚからの通知を受けて、その時点での計算手段１２３ａ、１２３ｚの処理状態を保存し、これを通信手段１２１ａ、１２１ｚを通じて管理計算機１００の状態比較手段１０５に送信する。
【００２６】
次に、本第１の実施形態の動作について説明する。
図２は、本第１の実施形態の管理／先行計算機１００の動作を説明するためのフローチャートである。まず、管理／先行計算機１００の処理入力手段１０１は、本冗長実行システムで処理する処理内容の入力を受け付ける（ステップＳａ１）。次に、処理分割手段１０２は、処理入力手段１０１で受け付けた処理内容を時間軸方向に２つの区間に分割する（ステップＳａ２）。次に、処理分割手段１０２は、分割された処理内容の全てを計算手段１１３に供給し、分割された処理内容のうち、重複しない各１区間を、通信手段１０３を通じて、確認計算機１２０ａ、１２０ｚの通信手段１２１ａ、１２１ｚのそれぞれに送信する（ステップＳａ３）。
【００２７】
次に、計算手段１１３は、処理分割手段１０２から供給される全処理内容を処理する（先行処理：ステップＳａ４）。次に、通信手段１０３は、状態保存手段１１４に保存されている処理状態、及び確認計算機１２０から処理状態が供給されてくるまで待ち、これを受信する（ステップＳａ５）。次に、状態比較手段１０５は、状態保存手段１１４および確認計算機１２０から供給されてきた処理状態のうち、同一の区間終端によって作成された処理状態同士を比較し、処理状態同士が１つでも一致しなければ、結果出力手段１０６にエラーを通知し、処理状態同士が全て一致すれば、結果出力手段１０６にエラーなしを通知する（ステップＳａ６）。
【００２８】
次に、処理状態同士が全て一致すれば、通信手段１０３は、計算手段１１３及び確認計算機１２０ａ、１２０ｚから送信されてきた計算結果を受信する（ステップＳａ７）。結果比較手段１０４は、計算手段１１３から供給される計算結果と、確認計算機１２０ａ、１２０ｚから送信されてきた計算結果とを比較し、一致しなければ、結果出力手段１０６にエラーを通知し、一致すれば、結果出力手段１０６にエラーなしと計算結果とを通知する（ステップＳａ８）。
【００２９】
最後に、状態比較手段１０５、及び結果比較手段１０４の双方からエラーなしを通知されている場合、結果出力手段１０６は、結果比較手段１０４から通知された計算結果をシステムの計算結果として出力する（ステップＳａ９）。一方、状態比較手段１０５、及び結果比較手段１０４の少なくともどちらか一方からエラーが通知された場合、結果出力手段１０６は、システムの計算結果としてエラーを出力する（ステップＳａ１０）。
【００３０】
次に、上述したステップＳａ４で説明した先行計算の詳細について説明する。
図３は、本第１の実施形態の管理／先行計算機１００で行われる先行計算の動作を説明するためのフローチャートである。計算手段１１３は、分割された処理内容の全てを処理分割手段１０２から受信する（ステップＳｂ１）。次に、計算手段１１３は、上記分割された処理内容を順次計算し（ステップＳｂ２）、区間の終端であるか否かを判定し（ステップＳｂ３）、区間終端でない場合には、処理内容全体の終端、すなわち処理内容全体の計算が完了したか否かを判定する（ステップＳｂ４）。そして、区間終端でも処理内容全体の計算が完了した場合でもなければ、ステップＳｂ２に戻り、計算を継続する。
【００３１】
一方、処理内容の分割区間の終端に処理が来ると（分割区間の終端まで計算が終了すると）、状態保存手段１１４に状態保存要求を通知し、状態保存手段１１４は、計算手段１１３が処理している内容のその時点での処理状態を保存する（ステップＳｂ５）。更に、状態保存手段１１４は、この保存された処理状態を、状態比較手段１０５に供給すると共に、通信手段１１１を通じて確認計算機１２０ａ、１２０ｚの状態復元手段１２２ａ、１２２ｚに送信する（ステップＳｂ６）。その後、ステップＳｂ２に戻り、次の分割区間の処理内容の計算を継続する。
【００３２】
そして、処理内容全体の終端に達すると、すなわち処理内容全体の計算が完了すると、計算手段１１３は、その計算結果を結果比較手段１０４に送信する（ステップＳｂ７）。
【００３３】
次に、本第１の実施形態の確認計算機１２０ａ、１２０ｚの動作について説明する。
図４（ａ）、（ｂ）は、各々、本第１の実施形態の確認計算機１２０ａ、１２０ｚの動作を説明するためのフローチャートである。本第１の実施形態では、２つの確認計算機１２０ａ、１２０ｚが存在し、それぞれで計算する区間を先頭と末尾とに分けるものとする。ここでは、確認計算機１２０ａが先頭の区間を処理し、確認計算機１２０ｚが末尾の区間を処理するものとして説明する。
【００３４】
まず、図４（ａ）に示すように、確認計算機１２０ａの通信手段１２１ａは、分割された処理内容のうち、先頭の区間の処理を通信手段１０３から受信する（ステップＳｃ１）。次に、計算手段１２３ａは、上記処理内容を計算する（ステップＳｃ２）。そして、計算手段１２３ａは、分割区間の終端であるか否かを判定し（ステップＳｃ３）、処理内容の分割区間の終端でない場合には、ステップＳｃ２に戻り、計算処理を繰り返す。
【００３５】
一方、計算手段１２３ａは、処理内容の分割区間の終端に処理が達すると、状態保存手段１２４ａに状態保存要求を通知し、状態保存手段１２４ａは、計算手段１２３ａが処理している処理内容のその時点での処理状態を保存する（ステップｃ４）。更に、状態保存手段１２４ａは、この保存された処理状態を、通信手段１２１ａを通じて管理／先行計算機１００の状態比較手段１０５に送信する（ステップＳｃ５）。
【００３６】
一方、確認計算機１２０ｚの通信手段１２１ｚは、分割された処理内容のうち、末尾の区間の処理を、管理／先行計算機１００の通信手段１０３から受信する（ステップＳｄ１）。次に、通信手段１２１ｚは、管理／先行計算機１００の状態保存手段１１４に保存された分割区間の始端の処理状態を通信手段１０３から受信する（ステップＳｄ２）。計算手段１２３ｚは、管理／先行計算機１００から受信した分割区間の始端の処理状態を利用して、上記処理内容を計算する（ステップＳｄ３）。そして、計算手段１２３ｚは、分割区間の終端であるか否かを判定し（ステップＳｄ４）、処理内容の分割区間の終端でない場合には、ステップＳｄ３に戻り、計算処理を繰り返す。
【００３７】
一方、計算手段１２３ｚは、処理内容の分割区間の終端に処理が達すると、その計算結果を、通信手段１２１ｚを通じて管理／先行計算機１００の状態比較手段１０５に送信する（ステップＳｄ５）。
【００３８】
上述した第１の実施形態によれば、確認計算機１２０ｚが、前の区間を計算する確認計算機１２０ａの計算完了を待たずに、管理／先行計算機１００の生成した処理状態を利用して計算処理を開始し、先頭の区間を計算する確認計算機１２０ａの計算完了後に、管理／先行計算機１００が、その処理状態同士を比較することで、計算の正誤を判定するようにしたので、確認用計算の並列性を高め、管理／先行計算機１００と同等の処理速度を有する確認計算機１２０ａ、１２０ｚを用いなくても、大きな速度低下を生じさせずに計算を完了でき、システムのコストを下げることができる。
【００３９】
Ｂ．第２の実施形態
次に、本発明の第２の実施形態について説明する。
図５は、本第２の実施形態による冗長実行システムの構成を示すブロック図である。なお、図１に対応する部分には同一の符号を付けている。図において、冗長実行システムは、プログラム処理を管理及び実行する管理／先行計算機１００と、プログラム処理の一部分を実行する、複数の確認計算機１２０ａ、１２０ｂ、…、１２０ｙ、１２０ｚとから構成されている。なお、図示の例では、複数の確認計算機１２０ａ、１２０ｂ、…、１２０ｙ、１２０ｚが示されているが、少なくとも３つ以上の確認計算機が存在すればよい。また、第１の実施形態と同様に、確認計算機１２０ａ、１２０ｂ、…、１２０ｙ、１２０ｚのうち、いずれか１つは、状態復元手段１２２ｉ（ｉ＝ａ、ｂ、…、ｙ、ｚ）を備えていなくてもよく、また、それ以外の１つは、状態保存手段１２４ｊ（ｊ＝ａ、ｂ、…、ｙ、ｚ）を備えなくてもよい。
【００４０】
次に、本第２の実施形態の動作について説明する。
なお、本第２の実施形態の管理／先行計算機１００の動作については、上述した第１の発明実施と同様であるので説明を省略する。また、本第２の実施形態では、２つ以上の確認計算機１２０ａ〜１２０ｚが存在し、それぞれで計算する区間を、先頭と中間と末尾とに分けるものとする。ここでは、確認計算機１２０ａが先頭の区間を処理し、確認計算機１２０ｂ〜１２０ｙが中間の区間を処理し、確認計算機１２０ｚが末尾の区間を処理するものとして説明する。したがって、確認計算機１２０ａ及び確認計算機１２０ｚの動作は、前述した第１の実施形態と同様であるので説明を省略する。
【００４１】
図６は、本第２の実施形態の確認計算機１２０ｂ〜１２０ｙの動作を説明するためのフローチャートである。確認計算機１２０ｂ〜１２０ｙの通信手段１２１ｂ〜１２０ｙは、管理／先行計算機１００で分割された処理内容のうち、先頭末尾以外の一区間を、管理／先行計算機１００の通信手段１０３から受信する（ステップＳｅ１）。次に、通信手段１２１ｂ〜１２１ｙは、管理／先行計算機１００の状態保存手段１１４に保存された各分割区間の始端における処理状態を通信手段１０３より受信する（ステップＳｅ２）。計算手段１２３ｂ〜１２３ｙは、管理／先行計算機１００から受信した分割区間の始端の処理状態を利用して、上記処理内容を計算する（ステップＳｅ３）。そして、計算手段１２３ｂ〜１２３ｙは、分割区間の終端であるか否かを判定し（ステップＳｅ４）、処理内容の分割区間の終端でない場合には、ステップＳｅ３に戻り、計算処理を繰り返す。
【００４２】
一方、計算手段１２３ｂ〜１２３ｙは、処理内容の分割区間の終端に処理が達すると、状態保存手段１２４ｂ〜１２４ｙに状態保存要求を通知し、状態保存手段１２４ｂ〜１２４ｙは、各々、計算手段１２３ｂ〜１２３ｙが処理している処理内容のその時点での処理状態を保存する（ステップｅ５）。更に、状態保存手段１２４ｂ〜１２４ｙは、この保存された処理状態を、通信手段１２１ｂ〜１２１ｙを通じて管理／先行計算機１００の状態比較手段１０５に送信する（ステップＳｅ６）。
【００４３】
上述した第２の実施形態によれば、管理／先行計算機１００より処理速度が遅い確認計算機１２０の数を任意に増やすことにより、より並列性を高め、処理完了までの時間を更に短縮することができる。
【００４４】
Ｃ．第３の実施形態
次に、本発明の第３の実施形態について説明する。
図７は、本第３の実施形態による冗長実行システムの構成を示すブロック図である。なお、図１に対応する部分には同一の符号を付けている。図において、冗長実行システムは、プログラム処理を管理する管理計算機３００と、プログラム処理を実行する先行計算機３１０と、プログラム処理の一部分を実行する２つの確認計算機３２０ａ、３２０ｚとから構成されている。
【００４５】
管理計算機３００は、処理入力手段１０１と、処理分割手段１０２と、通信手段３０３と、結果比較手段１０４と、状態比較手段１０５と、結果出力手段１０６とを含む。先行計算機３１０は、通信手段３１１と、計算手段１１３と、状態保存手段１１４とを含む。すなわち、先行計算機３１０の機能を独立させた構成となっている。確認計算機３２０ａ、３２０ｚは、各々、通信手段３２１ａ、３２１ｚと、状態復元手段１２２ａ、１２２ｚと、計算手段１２３ａ、１２３ｚと、状態保存手段１２４ａ、１２４ｚとを含む。但し、確認計算機３２０ａ、３２０ｚのうち、いずれか一方は、状態復元手段１２２ａ、または状態復元手段１２２ｚを備えていなくてもよく、また、他方は、状態保存手段１２４ａ、または１２４ｚを備えていなくてもよい。
【００４６】
上記構成において、管理計算機３００の通信手段３０３と、先行計算機３１０の通信手段３１１と、確認計算機３２０ａの通信手段３２１ａ、及び確認計算機３２０ｚの通信手段３２１ｚは、処理内容、処理結果および処理状態を、他の通信手段との間で送受信する。なお、その他の構成要素については、本発明の第１の実施形態と同様の動作であるので説明を省略する。
【００４７】
次に、本第３の実施形態の動作について説明する。
本第３の実施形態は、前述した第１の実施形態における計算手段１１３、及び状態保存手段１１４が管理計算機３００から独立した別の先行計算機３１０に存在し、通信手段３０３および通信手段３１１を介して通信している点だけが異なり、その他の動作については、第１の実施形態と同様である。
【００４８】
上述した第３の実施形態によれば、管理計算機３００と先行計算機３１０が独立した計算機であるように構成されているため、管理計算機３００の各手段における負荷が高くなった場合においても、計算手段１１３に影響を与えることなく、処理完了までの時間を短くすることができる。
【００４９】
Ｄ．第４の実施形態
次に、本発明の第４の実施形態について説明する。
図８は、本第４の実施形態による冗長実行システムの構成を示すブロック図である。なお、図５に対応する部分には同一の符号を付けている。図において、冗長実行システムは、プログラム処理を管理する管理計算機４００と、プログラム処理を実行する先行計算機４１０と、複数の確認計算機１２０ａ、１２０ｂ、…、１２０ｙ、１２０ｚとから構成されている。なお、図示の例では、複数の確認計算機１２０ａ、１２０ｂ、…、１２０ｙ、１２０ｚが示されているが、少なくとも３つ以上の確認計算機が存在すればよい。また、第２の実施形態と同様に、確認計算機１２０ａ、１２０ｂ、…、１２０ｙ、１２０ｚのうち、いずれか１つは、状態復元手段１２２ｉ（ｉ＝ａ、ｂ、…、ｙ、ｚ）を備えていなくてもよく、また、それ以外の１つは、状態保存手段１２４ｊ（ｊ＝ａ、ｂ、…、ｙ、ｚ）を備えなくてもよい。
【００５０】
管理計算機４００は、処理入力手段１０１と、処理分割手段１０２と、通信手段４０３と、結果比較手段１０４と、状態比較手段１０５と、結果出力手段１０６と、送信先決定手段４０７とを備えている。先行計算機４１０は、通信手段４１１と、計算手段１１３と、状態保存手段１１４とを備えている。確認計算機４２０ａ〜４２０ｚは、各々、通信手段４２１ａ〜４２１ｚと、状態復元手段１２２ａ〜１２２ｚと、計算手段１２３ａ〜１２３ｚと、状態保存手段１２４ａ〜１２４ｚとを備えている。
【００５１】
上述した構成において、管理計算機４００は、通信手段４０３により、処理分割手段１０２により分割された全処理内容を、先行計算機４１０の通信手段４１１に送信するとともに、先行計算機４１０の通信手段４１１から、先行計算機４１０での処理結果、及び状態保存手段１１４に保存された処理状態を受信する。
【００５２】
また、管理計算機４００の送信先決定手段４０７は、先行計算機４１０から処理結果及び処理状態を受信した時点で、処理分割手段１０２によって分割された処理内容、及び処理状態を、確認計算機４２０ａ〜４２０ｚのうち、どの確認計算機に通信手段４０３から送信するかを決定する。
【００５３】
また、管理計算機４００は、通信手段４０３により、分割された処理内容、及び先行計算機４１０での処理状態を、送信先決定手段２０７によって決定された確認計算機４２０ｉ（ｉ＝ａ〜ｚ）に対して送信し、確認計算機４２０ａ〜４２０ｚの通信手段４２１ａ〜４２１ｚから、その処理結果または処理状態を受信する。
【００５４】
先行計算機４１０は、通信手段４１１により、管理計算機４００から全処理内容を受信し、計算手段１１３に渡すとともに、計算手段１１３による処理結果、及び状態保存手段１１４に保存された処理状態を、管理計算機４００の通信手段４０３に送信する。
【００５５】
確認計算機４２０ａ〜４２０ｚは、各々、通信手段４２１ａ〜４２１ｚにより、分割された処理内容を管理計算機４００の通信手段１０３から受信し、それぞれにおける処理結果または処理状態を管理計算機４００の通信手段４０３に送信する。
【００５６】
なお、その他の構成要素については、本発明の第１乃至第３の実施形態と同様の動作であるので説明を省略する。
【００５７】
次に、本第４の実施形態の動作について説明する。
図９は、本第４の実施形態の管理計算機４００の動作を説明するためのフローチャートである。まず、管理計算機４００の処理入力手段１０１は、本冗長実行システムで処理する処理内容の入力を受け付ける（ステップＳｆ１）。次に、処理分割手段１０２は、処理入力手段１０１で受け付けた処理内容を時間軸方向に複数の区間に分割する（ステップＳｆ２）。次に、通信手段４０３は、分割された処理内容の全てを、先行計算機４１０の通信手段４１１に送信する（ステップＳｆ３）。次に、通信手段４０３は、先行計算機４１０から処理状態が送られてくるまで待ち、これを受信する（ステップＳｆ４）。
【００５８】
次に、送信先決定手段４０７は、この時点で、処理状態を送信する確認計算機４２０ｉ（ｉ＝ａ〜ｚ）を選択する（ステップＳｆ５）。次に、通信手段４０３は、上記処理状態と、その状態を開始状態とする分割区間の処理内容を確認計算機４２０ｉの通信手段４２１ｉに送信する（ステップＳｆ６）。上記ステップＳｆ４〜Ｓｆ６は、全ての分割区間の区切りにおける処理状態について実行される。
【００５９】
次に、通信手段４０３は、確認計算機４２０ａ〜４２０ｚから処理状態が送られてくるまで待ち、これを受信する（ステップＳｆ７）。次に、状態比較手段１０５は、先行計算機４１０及び確認計算機４２０ａ〜４２０ｚから送られてきた処理状態のうち、同一の区間終端によって作成された処理状態同士を比較し、状態同士が１つでも一致しなければ、結果出力手段１０６にエラーを通知し、状態同士が全て一致すれば、結果出力手段１０６にエラーなしを通知する（ステップＳｆ８）。
【００６０】
次に、処理状態同士が全て一致すれば、通信手段４０３は、先行計算機４１０及び確認計算機４２０ａ〜４２０ｚから送られてきた計算結果を受信する（ステップＳｆ９）。結果比較手段１０４は、先行計算機４１０及び確認計算機４２０ａ〜４２０ｚから送られてきた計算結果を比較し、一致しなければ、結果出力手段１０６にエラーを通知し、一致すれば、結果出力手段１０６にエラーなしと、計算結果とを通知する（ステップＳｆ１０）。
【００６１】
最後に、状態比較手段１０５、及び結果比較手段１０４の双方からエラーなしを通知されている場合、結果出力手段１０６は、結果比較手段１０４から通知された計算結果をシステムの計算結果として出力する（ステップＳｆ１１）。一方、状態比較手段１０５、及び結果比較手段１０４の少なくともどちらか一方からエラーを通知された場合、結果出力手段１０６は、システムの計算結果としてエラーを出力する（ステップＳｆ１２）。
【００６２】
先行計算機４１０の動作については、通信手段４１１が処理状態を送信する先が管理計算機４００の通信手段４０３である点を除けば、第３の実施形態における先行計算機３１０の動作と同様であるので説明を省略する。また、確認計算機４２０ａ〜４２０ｚの動作については、通信手段４２１が処理状態を受信する元が管理計算機４００の通信手段４０３である点を除けば、第３の実施形態における先行計算機３２０ａ、３２０ｚの動作と同様であるので説明を省略する。
【００６３】
上述した第４の実施形態によれば、通信手段４０３が処理状態を送信する時点で送信先決定手段４０７が送信先の確認計算機を決定するようにしているので、その時点で負荷の低い確認計算機を選択することができ、システム全体の効率を上げることができる。また、本第４の実施形態では、更に、通信手段４１１と通信手段４２１ａ〜４２１ｚが直接通信を行わないというように構成されているため、先行計算機４１１、及び確認計算機４２１は互いの情報を知らなくてもよく、プライバシを守ることができる。
【００６４】
Ｅ．具体的な実施例
次に、上述した第１乃至第４の実施形態を、より具体的な装置に適用した実施例について説明する。
図１０は、本具体的な実施例の冗長実行システムの構成を示すブロック図である。なお、図１に対応する部分には同一の符号を付けている。図において、冗長実行システムは、プログラム処理を管理及び実行する管理／先行計算機１００と、プログラム処理の一部分を実行する２つの確認計算機１２０ａ、１２０ｚとから構成されている。
【００６５】
管理／先行計算機１００は、管理／先行計算用プログラム９００と、処理対象プログラム９０１と、処理結果９０２と、確認計算機リスト９０３とを備えている。管理／先行計算用プログラム９００は、処理入力手段１０１と、処理分割手段１０２と、通信手段１０３と、結果比較手段１０４と、状態比較手段１０５と、結果出力手段１０６と、計算手段１１３と、状態保存手段１１４とを実現する。
【００６６】
確認計算機１２０は、確認計算用プログラム９２０を備えている。確認計算用プログラム９２０は、通信手段１２１と、状態復元手段１２２と、計算手段１２３と、状態保存手段１２４とを実現する。
【００６７】
また、図１１に示すように、処理対象プログラム９０１は、分割可能な複数の処理Ａ１００１、処理Ｚ１００２から構成される。また、図１２に示すように、確認計算機リスト９０３は、本発明の分割冗長実行システムが利用可能な確認計算機１２０ａ、１２０ｚのリストを保持する。
【００６８】
次に、本実施例の動作について説明する。
初めに、処理分割手段１０２が、本システムの入力として処理対象プログラム９０１を受け付ける。処理分割手段１０２は、これを、確認計算機リスト９０３が保持している確認計算機の数に分割する。ここでは、図１２に示すように、確認計算機リスト９０３には、２つの確認計算機１２０ａ、１２０ｚが含まれるため、２つに分割する。処理分割手段１０２は、分割の結果、図１１に示すように、管理／先行計算機用プログラム分割区間（１）１０１１と、管理／先行計算機用プログラム分割区間（２）１０１２と、確認計算機用プログラム分割区間（１）１０２１と、確認計算機用プログラム分割区間（２）１０２２とを作成する。
【００６９】
管理／先行計算機用プログラム分割区間（１）１０１１と、管理／先行計算機用プログラム分割区間（２）１０１２とは、計算手段１１３に供給される。確認計算機用プログラム分割区間（１）１０２１は、通信手段１０３を通して確認計算機リスト９０３にある確認計算機１２０ａに送信される。また、確認計算機用プログラム分割区間（２）１０２２は、通信手段１０３を通して確認計算機リスト９０３にある確認計算機１２０ｚに送信される。
【００７０】
計算手段１１３は、受信した管理／先行計算機用プログラム分割区間（１）１０１１を実行し、処理Ａを行ったあと、状態保存処理１００３を行う。状態保存処理１００３では、状態保存手段１１４がこの時点での処理状態を全て保存し、状態比較手段１０５に供給する。この処理状態を状態Ａとする。通信手段１０３は、該状態Ａを確認計算機リスト９０３にある確認計算機１２０ｚに送信する。次に、計算手段１１３は、続けて管理／先行計算機用プログラム分割区間（２）１０１２を実行し、処理が全て終わった時点で、計算結果を結果比較手段１０４に供給する。この計算結果を結果Ｚとする。
【００７１】
確認計算機１２０ａは、確認計算機用プログラム分割区間（１）１０２１を受信すると、これを実行し、処理Ａを行ったあと、状態保存処理１００３を行う。状態保存処理１００３では、状態保存手段１２４ａがこの時点での処理状態を全て保存する。これを状態Ａ´とする。通信手段１２１ａは、該状態Ａ´を、処理の送信元である管理／先行計算機１００に送信する。
【００７２】
一方、確認計算機１２０ｚは、確認計算機用プログラム分割区間（２）１０２２を受信すると、これを実行し、状態復元処理１００４を行う。状態復元処理１００４では、状態保存手段１１４が処理状態Ａを送信してくるのを待ち、これを受信すると、状態復元手段１２２ｚが状態Ａを計算手段１２３ｚに供給する。次に、計算手段１２３ｚは、処理Ｚ１００２を実行し、処理が全て終わった時点で、計算結果を、通信手段１２１ｚを通して、処理の送信元である管理／先行計算機１００に送信する。この計算結果を結果Ｚ´とする。
【００７３】
管理／先行計算機１００は、通信手段１０３により、確認計算機１２１ａからの状態Ａ´を受信すると、これを状態比較手段１０５に供給する。また、管理／先行計算機１００は、通信手段１０３により、確認計算機１２１ｚからの結果Ｚ´を受信すると、これを結果比較手段１０４に送信する。状態比較手段１０５は、状態Ａと状態Ａ´とを比較し、一致していれば、エラーなしを結果出力手段１０６に通知し、一致していなければ、エラーを結果出力手段１０６に通知する。また、結果比較手段１０４は、結果Ｚと結果Ｚ´とを比較し、一致していれば、エラーなし、更に結果Ｚを結果出力手段１０６に通知し、一致していなければ、エラーを結果出力手段１０６に通知する。
【００７４】
結果出力手段１０６は、結果比較手段１０４、及び状態比較手段１０５からの通知のどちらかがエラーであった場合には、処理結果９０２としてエラーを記録する一方、結果比較手段１０４、及び状態比較手段１０５からの通知のどちらもエラーでない場合には、処理結果９０２として結果Ｚを記録する。
【産業上の利用可能性】
【００７５】
本発明によれば、計算に確認を必要とする科学技術計算用計算機といった用途に適用できる。
【図面の簡単な説明】
【００７６】
【図１】本発明の第１の実施形態による冗長実行システムの構成を示すブロック図である。
【図２】本第１の実施形態の管理／先行計算機１００の動作を説明するためのフローチャートである。
【図３】本第１の実施形態の管理／先行計算機１００で行われる先行計算の動作を説明するためのフローチャートである。
【図４】各々、本第１の実施形態の確認計算機１２０ａ、１２０ｚの動作を説明するためのフローチャートである。
【図５】本第２の実施形態による冗長実行システムの構成を示すブロック図である。
【図６】本第２の実施形態の確認計算機１２０ｂ〜１２０ｙの動作を説明するためのフローチャートである。
【図７】本第３の実施形態による冗長実行システムの構成を示すブロック図である。
【図８】本第４の実施形態による冗長実行システムの構成を示すブロック図である。
【図９】本第４の実施形態の管理計算機４００の動作を説明するためのフローチャートである。
【図１０】本具体的な実施例の冗長実行システムの構成を示すブロック図である。
【図１１】冗長実行システムでの動作を説明するための、プログラム、処理内容を示す概念図である。
【図１２】冗長実行システムでの動作を説明するための、確認計算機リストを示す概念図である。
【符号の説明】
【００７７】
１００  管理／先行計算機
１０１  処理入力手段
１０２  処理分割手段
１０３  通信手段
１０４  結果比較手段
１０５  状態比較手段
１０６  結果出力手段
１１３  計算手段
１１４  状態保存手段
１２０  確認計算機
１２１  通信手段
１２２  状態復元手段
１２３  計算手段
１２４  状態保存手段
３００  管理計算機
３０３  通信手段
３１０  先行計算機
３１１  通信手段
３２０  確認計算機
３２１  通信手段
４００  管理計算機
４０３  通信手段
４０７  送信先決定手段
４１０  先行計算機
４１１  通信手段
４２０  確認計算機
４２１  通信手段
９００  管理／先行計算用プログラム
９０１  処理対象プログラム
９０２  処理結果
９０３  確認計算機リスト
９２０  確認計算用プログラム
１００１  処理Ａ
１００２  処理Ｚ
１００３  状態保存処理
１００４  状態復元処理
１０１１  管理／先行計算機用プログラム分割区間（１）
１０１２  管理／先行計算機用プログラム分割区間（２）
１０２１  確認計算機用プログラム分割区間（１）
１０２２  確認計算機用プログラム分割区間（２）
【図１】
2010122731.tif 000003
【図２】
2010122731.tif 000004
【図３】
2010122731.tif 000005
【図４】
2010122731.tif 000006
【図５】
2010122731.tif 000007
【図６】
2010122731.tif 000008
【図７】
2010122731.tif 000009
【図８】
2010122731.tif 000010
【図９】
2010122731.tif 000011
【図１０】
2010122731.tif 000012
【図１１】
2010122731.tif 000013
【図１２】
2010122731.tif 000014