(57)【要約】  【課題】  情報処理の実行途中で異常が発生した場合に時間が無駄となること等を防止することができる情報処理システム等を提供する。  【解決手段】  この情報処理システム１は、情報処理装置１１〜１４と、記憶装置１５とを具備する。情報処理装置１１〜１４は、複数の情報処理を分担して実行する。情報処理装置１１は、情報処理装置１２〜１４のいずれかに異常が発生した場合に、異常が発生した情報処理装置が分担していた情報処理を他の情報処理装置に分担させる。情報処理装置１２〜１４は、情報処理装置１１に異常が発生した場合に、情報処理装置１１に代わって、他の情報処理装置の管理を行う。【選択図】  図１
2006072880.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が、複数の情報処理を分担して実行するステップ（ａ）と、
前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出するステップ（ｂ）と、
前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、前記複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を前記複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させるステップ（ｃ）と、
前記複数の情報処理装置の内の他の情報処理装置が、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生したか否かを検出するステップ（ｄ）と、
前記複数の情報処理装置の内の他の情報処理装置が、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生した場合に、前記複数の情報処理装置の内の１つの情報処理装置に代わってステップ（ｂ）及び（ｃ）を実行するステップ（ｅ）と、
を具備する情報処理方法。
【請求項２】
前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置によって所定のタイミングで更新されるべき第１群の情報を含む第１のデータを作成して記憶装置に記憶させるステップ（ｆ）と、
前記複数の情報処理装置の内の１つの情報処理装置が、前記第１群の情報の内の前記複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報を所定のタイミングで更新するステップ（ｇ）と、
前記複数の情報処理装置の内の他の情報処理装置が、前記第１群の情報の内の前記複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報を所定のタイミングで更新するステップ（ｈ）と、
を更に具備し、
ステップ（ｂ）が、前記複数の情報処理装置の内の１つの情報処理装置が、前記第１群の情報の内の前記複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、前記複数の情報処理装置の内の他の情報処理装置に異常が発生したことを検出するステップであり、
ステップ（ｄ）が、前記複数の情報処理装置の内の他の情報処理装置が、前記第１群の情報の内の前記複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生したことを検出するステップである、請求項１記載の情報処理方法。
【請求項３】
前記第１群の情報が、前記複数の情報処理装置によって更新された時刻を表す情報である、請求項２記載の情報処理方法。
【請求項４】
ステップ（ｆ）が、前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置が前記複数の情報処理装置の内の１つの情報処理装置であるか又は前記複数の情報処理装置の内の他の情報処理装置であるかをそれぞれ表す第２群の情報を更に含む前記第１のデータを作成して前記記憶装置に記憶させるステップであり、
ステップ（ｂ）が、前記複数の情報処理装置の内の１つの情報処理装置が、前記第２群の情報を参照することにより前記複数の情報処理装置の内の他の情報処理装置を特定し更に前記第１群の情報の内の前記複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報を特定し、前記第１群の情報の内の前記複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、前記複数の情報処理装置の内の他の情報処理装置に異常が発生したことを検出するステップであり、
ステップ（ｄ）が、前記複数の情報処理装置の内の他の情報処理装置が、前記第２群の情報を参照することにより前記複数の情報処理装置の内の１つの情報処理装置を特定し更に前記第１群の情報の内の前記複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報を特定し、前記第１群の情報の内の前記複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生したことを検出するステップである、請求項２又は３記載の情報処理方法。
【請求項５】
ステップ（ｆ）が、前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置が分担している情報処理の進捗状況を表す第３群の情報を更に含む前記第１のデータを作成して前記記憶装置に記憶させるステップであり、
前記複数の情報処理装置が、分担している情報処理が終了した場合に、前記第３群の情報を更新するステップ（ｉ）と、
前記複数の情報処理装置の内の１つの情報処理装置が、前記第３群の情報を参照することにより前記複数の情報処理装置が分担している情報処理の進捗状況を監視し、前記複数の情報処理装置が分担している情報処理が全て終了した場合に、前記複数の情報処理装置が分担していた情報処理の処理結果を結合するステップ（ｊ）と、
を更に具備する、請求項４記載の情報処理方法。
【請求項６】
前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置が分担している情報処理をそれぞれ表す第４群の情報を含む第２のデータを作成して前記記憶装置に記憶させるステップ（ｋ）を更に具備し、
ステップ（ｃ）が、前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、前記第４群の情報を参照することにより前記複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を特定し、特定した情報処理を前記複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させるとともに前記第４群の情報を更新するステップである、請求項５記載の情報処理方法。
【請求項７】
複数の情報処理装置において、複数の情報処理を分担して実行させる手順（ａ）と、
前記複数の情報処理装置の内の１つの情報処理装置において、前記複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出する手順（ｂ）と、
前記複数の情報処理装置の内の１つの情報処理装置において、前記複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、前記複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を前記複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させる手順（ｃ）と、
前記複数の情報処理装置の内の他の情報処理装置において、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生したか否かを検出する手順（ｄ）と、
前記複数の情報処理装置の内の他の情報処理装置において、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生した場合に、前記複数の情報処理装置の内の１つの情報処理装置に代わって手順（ｂ）及び（ｃ）を実行する手順（ｅ）と、
を前記複数の情報処理装置に実行させるための情報処理プログラム。
【請求項８】
複数の情報処理装置を具備するシステムであって、
前記複数の情報処理装置が、複数の情報処理を分担して実行し、
前記複数の情報処理装置の内の１つの情報処理装置が、前記複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出し、前記複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、前記複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を前記複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させ、
前記複数の情報処理装置の内の他の情報処理装置が、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生したか否かを検出し、前記複数の情報処理装置の内の１つの情報処理装置に異常が発生した場合に、前記複数の情報処理装置の内の１つの情報処理装置に代わって、前記複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出し、前記複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、前記複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を前記複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させる、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報処理装置が複数の情報処理を分担して実行する情報処理方法に関する。さらに、本発明は、そのような情報処理プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
半導体集積回路の設計工程における論理シミュレーション等は、非常に多くの演算を必要とするため、１つの情報処理装置で実行することとすると、実行時間が非常に長くなってしまう。そのため、従来より、このような論理シミュレーション等を構成する複数の情報処理を、複数の情報処理装置に分担させて実行させることが行われている。
【０００３】
このように論理シミュレーション等を複数の情報処理装置に分担させて実行させる場合、いずれかの情報処理装置に何らかの異常（例えば、ハードウェア的な故障、ソフトウェア的な不具合（無限ループに陥った等）等）が情報処理の実行途中で発生しても、複数の情報処理装置は、異常が発生した事実を認識することができない。そして、全ての情報処理の終了後に、オペレータ（人間）が、異常が発生した事実を認識し、故障等が発生した情報処理装置を直したり、異常が発生した情報処理装置を切り離したりした後、論理シミュレーション等を再実行させていた。すなわち、論理シミュレーション等の実行途中で異常が発生した場合に、異常の発生後直ぐに論理シミュレーション等を再実行させることができず、時間が無駄となってしまっていた。
【０００４】
また、複数の情報処理装置のいずれか１つに異常が発生した場合であっても、論理シミュレーション等の全体を再実行しなければならず、論理シミュレーション等を構成する複数の情報処理の内の正常に終了した情報処理の結果を有効に利用できず、無駄となってしまっていた。
【０００５】
ところで、複数の局が伝送路を介して接続され、各局は所定の制御を実施する制御機器と当該制御機器に接続される通信制御装置とを備え、通信制御装置間で論理リングを形成して送信権を順次受渡し、送信権を獲得した通信制御装置のみがデータ伝送を行うネットワークシステムの通信制御装置において、通信制御装置は、自局の制御機器からの要求を受けるインタフェース部と、他局の通信制御装置と論理リングを形成して送信権の受渡しを制御する制御手段とを備え、インタフェース部は、制御機器からリセット要求を受信した時点の通信制御装置の動作状態を識別する識別手段を有し、制御機器からリセット要求を受信時に、通信制御装置の動作状態が故障中の場合にのみ制御手段をリセットすることを特徴とする通信制御装置が知られている（例えば、特許文献１参照）。
特許文献１掲載の通信制御装置は、障害が発生した制御機器が通信制御装置をリセットしようとした場合、通信制御装置が正常動作中であれば、論理リングから離脱することなく通信制御装置をリセットすることができるものであるが、複数の情報処理装置が複数の情報処理を分担して実行するものではない。
【０００６】
【特許文献１】特開平１１−１７７５９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、上記の点に鑑み、本発明は、情報処理の実行途中で異常が発生した場合に時間が無駄となること等を防止することができる情報処理方法を提供することを目的とする。さらに、本発明は、そのような情報処理プログラム及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、本発明に係る情報処理方法は、複数の情報処理装置が、複数の情報処理を分担して実行するステップ（ａ）と、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出するステップ（ｂ）と、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させるステップ（ｃ）と、複数の情報処理装置の内の他の情報処理装置が、複数の情報処理装置の内の１つの情報処理装置に異常が発生したか否かを検出するステップ（ｄ）と、複数の情報処理装置の内の他の情報処理装置が、複数の情報処理装置の内の１つの情報処理装置に異常が発生した場合に、複数の情報処理装置の内の１つの情報処理装置に代わってステップ（ｂ）及び（ｃ）を実行するステップ（ｅ）とを具備する。
【０００９】
ここで、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置によって所定のタイミングで更新されるべき第１群の情報を含む第１のデータを作成して記憶装置に記憶させるステップ（ｆ）と、複数の情報処理装置の内の１つの情報処理装置が、第１群の情報の内の複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報を所定のタイミングで更新するステップ（ｇ）と、複数の情報処理装置の内の他の情報処理装置が、第１群の情報の内の複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報を所定のタイミングで更新するステップ（ｈ）と、を更に具備し、ステップ（ｂ）が、複数の情報処理装置の内の１つの情報処理装置が、第１群の情報の内の複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、複数の情報処理装置の内の他の情報処理装置に異常が発生したことを検出するステップであり、ステップ（ｄ）が、複数の情報処理装置の内の他の情報処理装置が、第１群の情報の内の複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、複数の情報処理装置の内の１つの情報処理装置に異常が発生したことを検出するステップであることとしても良い。
また、第１群の情報が、複数の情報処理装置によって更新された時刻を表す情報であることとしても良い。
【００１０】
また、ステップ（ｆ）が、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置が複数の情報処理装置の内の１つの情報処理装置であるか又は複数の情報処理装置の内の他の情報処理装置であるかをそれぞれ表す第２群の情報を更に含む第１のデータを作成して記憶装置に記憶させるステップであり、ステップ（ｂ）が、複数の情報処理装置の内の１つの情報処理装置が、第２群の情報を参照することにより複数の情報処理装置の内の他の情報処理装置を特定し更に第１群の情報の内の複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報を特定し、第１群の情報の内の複数の情報処理装置の内の他の情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、複数の情報処理装置の内の他の情報処理装置に異常が発生したことを検出するステップであり、ステップ（ｄ）が、複数の情報処理装置の内の他の情報処理装置が、第２群の情報を参照することにより複数の情報処理装置の内の１つの情報処理装置を特定し更に第１群の情報の内の複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報を特定し、第１群の情報の内の複数の情報処理装置の内の１つの情報処理装置によって更新されるべき情報が所定時間以上更新されていない場合に、複数の情報処理装置の内の１つの情報処理装置に異常が発生したことを検出するステップであることとしても良い。
【００１１】
また、ステップ（ｆ）が、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置が分担している情報処理の進捗状況を表す第３群の情報を更に含む第１のデータを作成して記憶装置に記憶させるステップであり、複数の情報処理装置が、分担している情報処理が終了した場合に、第３群の情報を更新するステップ（ｉ）と、複数の情報処理装置の内の１つの情報処理装置が、第３群の情報を参照することにより複数の情報処理装置が分担している情報処理の進捗状況を監視し、複数の情報処理装置が分担している情報処理が全て終了した場合に、複数の情報処理装置が分担していた情報処理の処理結果を結合するステップ（ｊ）とを更に具備することとしても良い。
【００１２】
また、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置が分担している情報処理をそれぞれ表す第４群の情報を含む第２のデータを作成して記憶装置に記憶させるステップ（ｋ）を更に具備し、ステップ（ｃ）が、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、第４群の情報を参照することにより複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を特定し、特定した情報処理を複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させるとともに第４群の情報を更新するステップであることとしても良い。
【００１３】
また、本発明に係る情報処理プログラムは、複数の情報処理装置において、複数の情報処理を分担して実行させる手順（ａ）と、複数の情報処理装置の内の１つの情報処理装置において、複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出する手順（ｂ）と、複数の情報処理装置の内の１つの情報処理装置において、複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させる手順（ｃ）と、複数の情報処理装置の内の他の情報処理装置において、複数の情報処理装置の内の１つの情報処理装置に異常が発生したか否かを検出する手順（ｄ）と、複数の情報処理装置の内の他の情報処理装置において、複数の情報処理装置の内の１つの情報処理装置に異常が発生した場合に、複数の情報処理装置の内の１つの情報処理装置に代わって手順（ｂ）及び（ｃ）を実行する手順（ｅ）とを複数の情報処理装置に実行させる。
【００１４】
また、本発明に係る情報処理システムは、複数の情報処理装置を具備するシステムであって、複数の情報処理装置が、複数の情報処理を分担して実行し、複数の情報処理装置の内の１つの情報処理装置が、複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出し、複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させ、複数の情報処理装置の内の他の情報処理装置が、複数の情報処理装置の内の１つの情報処理装置に異常が発生したか否かを検出し、複数の情報処理装置の内の１つの情報処理装置に異常が発生した場合に、複数の情報処理装置の内の１つの情報処理装置に代わって、複数の情報処理装置の内の他の情報処理装置に異常が発生したか否かを検出し、複数の情報処理装置の内の他の情報処理装置のいずれかに異常が発生した場合に、複数の情報処理装置の中の異常が発生した情報処理装置が分担していた情報処理を複数の情報処理装置の中の異常が発生した情報処理装置以外の情報処理装置に分担させる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。
図１は、本発明の一実施形態に係る情報処理システムを示す図である。図１において、情報処理システム１は、情報処理装置１１〜１４と、記憶装置１５とを具備しており、これらの情報処理装置１１〜１４及び記憶装置１５は、相互にデータ等の受け渡しが可能である。
【００１６】
この情報処理システム１は、情報処理装置１１〜１４が複数の情報処理を分担してそれぞれ実行するためのシステムである。ここでは、一例として、情報処理装置１１〜１４が、半導体集積回路の設計工程における論理シミュレーションを実現するための複数の情報処理（ここでは、情報処理ａ〜ｅとする）を分担してそれぞれ実行するものとする。
また、情報処理装置１１は、他の情報処理装置１２〜１４の管理を行うためのマスタ装置であるものとし、情報処理装置１２〜１４は、情報処理装置１１によって管理されるスレーブ装置であるものとする。
【００１７】
図２は、マスタ装置（ここでは、情報処理装置１１）の動作を示すフローチャートであり、図３は、スレーブ装置（ここでは、情報処理装置１２〜１４）の動作を示すフローチャートである。以下、図２及び図３を参照しながら、情報処理装置１１〜１４の動作について説明する。
図２に示す動作を開始すると、マスタ装置は、ジョブモニタデータ及びスレーブデータを作成し、記憶装置１５に記憶させる（ステップＳ１１）。
【００１８】
ここで、ジョブモニタデータは、情報処理装置１１〜１４の動作状況をモニタリングするためのデータであり、図４は、ジョブモニタデータの一例を示す図である。図４において、ジョブモニタデータは、第１〜第４レコードを有するテーブルとなっており、第１〜第４レコードは、情報処理装置１１〜１４の動作状況に関する情報を格納するための複数のフィールドをそれぞれ有する。具体的には、各レコードは、情報処理装置１１〜１４がマスタ装置であるか又はスレーブ装置であるかを表す情報を格納するための第１フィールド、情報処理装置１１〜１４が分担している処理の進捗状況（例えば、「処理開始前」、「処理中」、「処理終了」等）を表す情報を格納するための第２フィールド、及び、時刻を表す情報を格納するための第３フィールドを有する。この第３フィールドの時刻は、後に説明するように、情報処理装置１１〜１４によって所定の時間間隔でそれぞれ更新される。従って、第３フィールドが所定時間以上更新されていない場合には、情報処理装置１１〜１４になんらかの異常（例えば、ハードウェア的な故障、ソフトウェア的な不具合（無限ループに陥った等）等）が発生したと判断することができる。
【００１９】
また、スレーブデータは、情報処理装置１１〜１４が分担している情報処理をそれぞれ表すためのデータであり、図５は、スレーブデータの一例を示す図である。図５において、スレーブデータは、第１〜第４のレコードを有するテーブルとなっており、第１〜第４のレコードは、情報処理装置１１〜１４が分担している情報処理を表す情報を格納するためのフィールドをそれぞれ有する。図５に示すスレーブデータは、情報処理装置１１が情報処理ａを、情報処理装置１２が情報処理ｂを、情報処理装置１３が情報処理ｃを、情報処理装置１４が情報処理ｄ及び情報処理ｅをそれぞれ分担していることを表している。このスレーブデータを参照することにより、情報処理装置１１〜１４が分担している情報処理を特定することが可能である。
なお、ここでは、情報処理装置１１が情報処理ａを分担することとしているが、情報処理装置１１はマスタ装置として他の情報処理装置１２〜１４を管理することに専念し、情報処理ａ〜ｅのいずれをも分担しないこととしても良い。
【００２０】
再び図２を参照すると、マスタ装置は、分担している情報処理（ここでは、情報処理ａ）を開始してジョブモニタデータの第２フィールドを「処理実行中」に更新すると共に、スレーブ装置に動作開始を指示する（ステップＳ１２）。なお、このとき、マスタ装置が、情報処理ｂ〜ｅに必要な半導体集積回路の設計データ、プログラム等をスレーブ装置に送信することとしても良いし、情報処理ｂ〜ｅに必要な半導体集積回路の設計データ、プログラム等が記憶装置１５に記憶されていることとしても良い。
これにより、スレーブ装置は、図３に示す処理を開始してジョブモニタデータの第２フィールドを「処理実行中」に更新する。図６は、このときのジョブモニタデータの例を示す図である。また、スレーブ装置の動作については、後に詳細に説明する。
【００２１】
次に、マスタ装置は、ジョブモニタデータ内の第１フィールドが「スレーブ」であるレコード（ここでは、第２〜第４レコード）の第３フィールドを監視することにより、スレーブ装置を監視する。後に説明するように、ジョブモニタデータの第２〜第４レコードの第３フィールドの時刻は、情報処理装置１２〜１４によって所定の時間間隔で更新される。従って、第２〜第４レコードの第３フィールドが所定時間以上更新されていない場合には、スレーブ装置になんらかの異常が発生したと判断することができる。マスタ装置は、スレーブ装置のいずれかに異常が発生したと判断した場合には（ステップＳ１３）、スレーブデータを参照して異常が発生したスレーブ装置が分担していた処理を特定し、異常が発生したスレーブ装置が分担していた処理を他の情報処理装置に分担させるとともに、ジョブモニタデータ及びスレーブデータを更新する（ステップＳ１４）。なお、マスタ装置が、異常が発生したスレーブ装置が分担していた処理を自ら分担することとしても良いし、他のスレーブ装置に分担させることとしても良い。ここでは、情報処理装置１２に異常が発生し、情報処理装置１１が、情報処理装置１２が分担していた処理を情報処理装置１３に分担させるものとする。図７及び図８は、このときのジョブモニタデータ及びスレーブデータの例を示す図である。
【００２２】
次に、マスタ装置は、分担している情報処理（ここでは、情報処理ａ）が終了した場合には（ステップＳ１５）、ジョブモニタデータ内の第１レコードの第２フィールドを「処理終了」に更新する（ステップＳ１６）。
また、マスタ装置は、所定の時間が経過した場合には（ステップＳ１７）、ジョブモニタデータ内の第１レコードの第３フィールドの時刻を更新する（ステップＳ２０）。
【００２３】
そして、マスタ装置は、ジョブモニタデータ内の第１〜第４レコードの第２フィールドを参照し、全ての情報処理装置の処理が終了していない場合には（ステップＳ１９）、処理をステップＳ１３に戻し、全ての情報処理装置の処理が終了した場合には、全ての情報処理装置の処理結果を結合し（ステップＳ２０）、動作を終了する。
【００２４】
一方、スレーブ装置は、マスタ装置から動作開始指示を受けると（ステップＳ１２参照）、図３に示す動作を開始する。
図３に示す動作を開始すると、スレーブ装置は、分担している情報処理を開始してジョブモニタデータ内の第２〜第４レコードの第２フィールドを「処理実行中」にそれぞれ更新（図４参照）する（ステップＳ３１）。
【００２５】
そして、スレーブ装置は、ジョブモニタデータの第１フィールドが「マスタ」であるレコード（ここでは、第１レコード）の第３フィールドを監視することにより、マスタ装置の監視を開始する。先に説明したように、ジョブモニタデータの第１レコードの第３フィールドの時刻は、情報処理装置１１により、所定の時間間隔で更新される（図２のステップＳ１８参照）。従って、ジョブモニタデータの第１レコードの第３フィールドが所定時間以上更新されていない場合には、情報処理装置１１になんらかの異常が発生したと判断することができる。
【００２６】
スレーブ装置は、ジョブモニタデータの第１レコードの第３フィールドを参照し、マスタ装置に異常が発生したと判断した場合には（ステップＳ３２）、マスタ装置が行っていた管理処理を担う新たなマスタ装置となるとともに、ジョブモニタデータ及びスレーブデータを書き換える（ステップＳ３３）。なお、情報処理装置１２〜１４のいずれが新たなマスタ装置となることとしても良いが、情報処理装置１２〜１４の内の情報処理装置１１が異常を発生したことを最も早く検出した情報処理装置が新たなマスタ装置となることとするのが好適である。ここでは、情報処理装置１３が、新たなマスタ装置となるものとする。また、新たなマスタ装置である情報処理装置１３が、情報処理装置１１が分担していた情報処理ａを分担することとしても良いし、他の情報処理装置（ここでは、情報処理装置１４）が、情報処理ａを分担することとしても良い。ここでは、情報処理装置１４が、情報処理装置１１が分担していた情報処理ａを分担するものとする。図９及び図１０は、このときのジョブモニタデータ及びスレーブデータの例を示す図である。
そして、新たなマスタ装置（ここでは、情報処理装置１３）は、ステップＳ１３（図２参照）に分岐し、マスタ装置としての動作を行う。
【００２７】
次に、スレーブ装置は、所定の時間が経過した場合には（ステップＳ３５）、ジョブモニタデータ内の第３フィールドの時刻を更新する（ステップＳ３６）。
そして、スレーブ装置は、分担している情報処理が終了していない場合には（ステップＳ３７）、処理をステップＳ３２に戻し、分担している処理が終了した場合には、その旨をジョブモニタデータの第２フィールドに書き込み（ステップＳ３８）、動作を終了する。
【００２８】
以上説明したように、情報処理システム１によれば、スレーブ装置に異常が発生した場合には、マスタ装置が、異常が発生したスレーブ装置が分担していた情報処理を他の情報処理装置に分担させることができる。また、マスタ装置に異常が発生した場合には、スレーブ装置のいずれかが、マスタ装置が行っていた管理処理を担い、新たなマスタ装置となることができる。このように、論理シミュレーションの実行途中でいずれかの情報処理装置に異常が発生した場合であっても、異常が発生した情報処理装置が分担していた情報処理を他の情報処理装置に分担させることができ、時間の無駄を防止することができる。また、複数の情報処理装置のいずれか１つに異常が発生した場合に、論理シミュレーション等の全体を再実行する必要がなく、無駄を防止することができる。
【００２９】
なお、情報処理システム１は、図１１に示すような複数のＣＰＵ（Central Processing Unit）を有するコンピュータ２１として実現することとしても良い。
図１１において、ＣＰＵ２２〜２５、メモリ２６、及び、グラフィックアクセラレータ２８は、ノースブリッジ２７を介して接続されており、グラフィックアクセラレータ２８は、表示部２９に接続されている。また、ノースブリッジ２７には、サウスブリッジ３１が接続されており、サウスブリッジ３１には、入力部３０が接続されている。サウスブリッジ３１は、ＳＣＳＩ（Small Computer System Interface）バスを有しており、ＳＣＳＩバスには、ＨＤＤ（Hard Disc Drive）３２、光学ドライブ３３、及び、ネットワークインタフェース３４が接続されている。ＨＤＤ３２には、オペレーティングシステムプログラム、各種のデバイスドライバ、半導体集積回路の設計工程における論理シミュレーションプログラム等が記録されており、ＣＰＵ２２〜２５がこれらのプログラムを実行する。図１１のＣＰＵ２２〜２５が、図１の情報処理装置１１〜１４に相当し、図１１のメモリ２６及び／又はＨＤＤ３２が、図１の記憶装置１５に相当する。
【００３０】
また、情報処理システム１は、図１２に示すような複数のコンピュータ及びファイルサーバをネットワークで接続した分散処理システム４１として実現することとしても良い。
図１２において、コンピュータ４２〜４５及びファイルサーバ４６は、ネットワークを介して接続されている。図１２のコンピュータ４２〜４５が、図１の情報処理装置１１〜１４に相当し、図１２のファイルサーバ４６が、図１の記憶装置１５に相当する。
【産業上の利用可能性】
【００３１】
本発明は、複数の情報処理装置が複数の情報処理を分担して実行する情報処理方法において利用可能である。また、本発明は、そのような情報処理プログラム及び情報処理システムにおいて利用可能である。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係る情報処理システムの構成を示す図。
【図２】図１の情報処理装置１１の動作を示すフローチャート。
【図３】図１の情報処理装置１２〜１４の動作を示すフローチャート。
【図４】図１の記憶装置１５に記憶されるジョブモニタデータの一例を示す図。
【図５】図１の記憶装置１５に記憶されるスレーブデータの一例を示す図。
【図６】図１の記憶装置１５に記憶されるジョブモニタデータの一例を示す図。
【図７】図１の記憶装置１５に記憶されるジョブモニタデータの一例を示す図。
【図８】図１の記憶装置１５に記憶されるスレーブデータの一例を示す図。
【図９】図１の記憶装置１５に記憶されるジョブモニタデータの一例を示す図。
【図１０】図１の記憶装置１５に記憶されるスレーブデータの一例を示す図。
【図１１】本発明の一実施例としてのコンピュータの構成を示す図。
【図１２】本発明の一実施例としての分散処理システムの構成を示す図。
【符号の説明】
【００３３】
１  情報処理システム、１１〜１４  情報処理装置、１５  記憶装置、２１  コンピュータ、２２〜２５  ＣＰＵ、２６  メモリ、３２  ＨＤＤ、４１  分散処理システム、４２〜４５  コンピュータ、４６  ファイルサーバ
【図１】
2006072880.tif 000003
【図２】
2006072880.tif 000004
【図３】
2006072880.tif 000005
【図４】
2006072880.tif 000006
【図５】
2006072880.tif 000007
【図６】
2006072880.tif 000008
【図７】
2006072880.tif 000009
【図８】
2006072880.tif 000010
【図９】
2006072880.tif 000011
【図１０】
2006072880.tif 000012
【図１１】
2006072880.tif 000013
【図１２】
2006072880.tif 000014