(57)【特許請求の範囲】
【請求項１】
１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行する複数の計算処理システムと、
複数の前記計算処理システムと通信可能に接続される制御処理システムと、を有し、
前記制御処理システムは、
前記計算処理システムが前記シミュレーションを１回実行する周期である処理周期を、前記計算処理システム毎に設定する処理周期設定部と、
１回のシミュレーション内での経過時間である計算仮想時間を、前記計算処理システム毎に、前記処理周期の長さ同士の関係比と同じ関係比となるように設定する仮想時間設定部と、
前記計算処理システムのそれぞれに、その計算処理システムに設定された前記処理周期毎の各タイミングにおいて計算指示信号を送信して、前記計算処理システムのそれぞれに、自身に設定された前記処理周期毎に、設定された前記計算仮想時間分のシミュレーションを実行させる、計算指示部と、
を有し、
少なくとも一部の計算処理システムに設定された前記処理周期は、他の計算処理システムに設定された前記処理周期と、長さが異なり、
前記制御処理システムは、
前記シミュレーションの処理結果である出力データのうち、他の前記計算処理システムの入力データとして使用する出力データである取り合いデータを取得する計算データ取得部と、
前記計算データ取得部が取得した前記取り合いデータを記憶する計算データ記憶部と、をさらに有し、
前記計算データ取得部は、取得した前記取り合いデータを保持し、前記取り合いデータを算出した処理周期の次の処理周期の開始直前のタイミングである直前タイミングにおいて、前記取り合いデータを前記計算データ記憶部に出力し、
前記取り合いデータを算出した以外の前記計算処理システムは、少なくとも一部が、前記直前タイミングの直後の処理周期におけるシミュレーションを行う際に、前記直前タイミングで記憶された取り合いデータを取得し、その取り合いデータに基づき前記シミュレーションを実行する、分散シミュレーションシステム。
【請求項２】
前記計算指示部は、前記処理周期毎の各タイミングにおいて前記計算指示信号を送信することにより、それぞれの前記処理周期の長さの公倍数の長さを有する基本周期において、複数の前記計算処理システムのシミュレーション実行回数を、互いに異ならせる、請求項１に記載の分散シミュレーションシステム。
【請求項３】
前記制御処理システムは、さらに、操作者によるシミュレーション動作の変更要求の情報である変更要求データを取得する操作情報取得部を有し、
前記計算指示部は、前記変更要求データが取得されたタイミングの直後の前記基本周期の開始タイミングにおいて、前記計算処理システムに前記変更要求データの情報を示す変更要求信号を送信することで、前記計算処理システムに対する前記変更要求信号中の変更処理の反映のタイミングを、他の計算処理システムに同期させる、請求項２に記載の分散シミュレーションシステム。
【請求項４】
前記計算指示部は、前記計算処理システムのそれぞれに対し、各処理周期の公約数の長さの周期である同期周期毎のタイミングで、同期信号を送信するものであり、
前記計算指示部は、前記計算処理システムのそれぞれに対し、その計算処理システムの前記処理周期と一致するタイミングで送信する同期信号に同期させて、計算指示フラグをセットし、その計算処理システムの前記処理周期と一致しないタイミングで送信する同期信号に同期させて、シミュレーションを新たに実行させない情報である計算不実施フラグをセットする、請求項２又は請求項３に記載の分散シミュレーションシステム。
【請求項５】
前記制御処理システムは、それぞれの前記処理周期の長さの最小公倍数の長さの周期となるように、前記基本周期を設定する基本周期設定部を有する、請求項２から請求項４のいずれか１項に記載の分散シミュレーションシステム。
【請求項６】
前記複数の計算処理システムは、それぞれ少なくとも１つのシミュレーションを実行する複数の計算処理装置である、請求項１から請求項５のいずれか１項に記載の分散シミュレーションシステム。
【請求項７】
前記複数の計算処理システムは、複数の前記シミュレーションを実行する一つの計算処理装置である、請求項１から請求項６のいずれか１項に記載の分散シミュレーションシステム。
【請求項８】
１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行する複数の計算処理システムと、複数の前記計算処理システムと通信可能に接続される制御処理システムと、を用いてシミュレーションを実行するシミュレーション実行方法であって、
前記計算処理システムが前記シミュレーションを１回実行する周期である処理周期を、前記計算処理システム毎に設定する処理周期設定ステップと、
１回のシミュレーション内での経過時間である計算仮想時間を、前記計算処理システム毎に、前記処理周期の長さ同士の関係比と同じ関係比となるように設定する仮想時間設定ステップと、
前記計算処理システムのそれぞれに、その計算処理システムに設定された前記処理周期毎の各タイミングにおいて計算指示信号を送信して、前記計算処理システムのそれぞれに、自身に設定された前記計算仮想時間分のシミュレーションを、設定された前記処理周期毎に実行させる、計算指示ステップと、を有し、
前記処理周期設定ステップにおいて、少なくとも一部の計算処理システムに設定された前記処理周期を、他の計算処理システムに設定された前記処理周期と、長さを異ならせる、
さらに、前記シミュレーションの処理結果である出力データのうち、他の前記計算処理システムの入力データとして使用する出力データである取り合いデータを取得する計算データ取得ステップを、さらに有し、
前記計算データ取得ステップにおいて、取得した前記取り合いデータを保持し、前記取り合いデータを算出した処理周期の次の処理周期の開始直前のタイミングである直前タイミングにおいて、前記取り合いデータを、前記取り合いデータを記憶する計算データ記憶部に出力し、
前記取り合いデータを算出した以外の前記計算処理システムの少なくとも一部に、前記直前タイミングの直後の処理周期におけるシミュレーションを行う際に、前記直前タイミングで記憶された取り合いデータを取得させ、その取り合いデータに基づき前記シミュレーションを実行させる、シミュレーション実行方法。
【請求項９】
１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行する複数の計算処理システムを制御する制御システムであって、
前記計算処理システムが前記シミュレーションを１回実行する周期である処理周期を、前記計算処理システム毎に設定する処理周期設定部と、
１回のシミュレーション内での経過時間である計算仮想時間を、前記計算処理システム毎に、前記処理周期の長さ同士の関係比と同じ関係比となるように設定する仮想時間設定部と、
前記計算処理システムのそれぞれに、その計算処理システムに設定された前記処理周期毎の各タイミングにおいて計算指示信号を送信して、前記計算処理システムのそれぞれに、自身に設定された前記処理周期毎に、設定された前記計算仮想時間分のシミュレーションを実行させる、計算指示部と、
を有し、
少なくとも一部の計算処理システムに設定された前記処理周期は、他の計算処理システムに設定された前記処理周期と、長さが異なり、
前記シミュレーションの処理結果である出力データのうち、他の前記計算処理システムの入力データとして使用する出力データである取り合いデータを取得する計算データ取得部と、
前記計算データ取得部が取得した前記取り合いデータを記憶する計算データ記憶部と、をさらに有し、
前記計算データ取得部は、取得した前記取り合いデータを保持し、前記取り合いデータを算出した処理周期の次の処理周期の開始直前のタイミングである直前タイミングにおいて、前記取り合いデータを前記計算データ記憶部に出力し、
前記取り合いデータを算出した以外の前記計算処理システムの少なくとも一部に、前記直前タイミングの直後の処理周期におけるシミュレーションを行う際に、前記直前タイミングで記憶された取り合いデータを取得させ、その取り合いデータに基づき前記シミュレーションを実行させる、制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散シミュレーションシステム、シミュレーション実行方法及び制御システムに関する。
【背景技術】
【０００２】
プラントの運転訓練等に用いられるシミュレータは、複数のシミュレーションモデルを有することがある。各シミュレーションモデルは、１サイクルのシミュレーションを経時毎に繰り返す。シミュレータの操作者は、経時毎の各シミュレーションモデルの計算結果に基づき、シミュレーション上でのプラントの状態を把握して、運転制御の訓練を行う。
【０００３】
シミュレータの計算結果は、再現性を必要とされる。すなわち、シミュレータは、同一の入力条件があった場合、同一の計算結果となることが求められる。複数のシミュレーションモデルを有するシミュレータ（分散シミュレーションシステム）の場合、再現性を実現するためには、複数のシミュレーション同士の同期を取ることが重要となる。シミュレーション同士の同期とは、シミュレーション上での経過時間同士の同期を取ることである。例えば、特許文献１には、シミュレーションを実行する複数の中央処理装置と、その複数の中央処理装置の動作を制御するスケジューラを有する１つの中央処理装置と、を有するシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２６５２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、複数のシミュレーションモデルは、異なるシミュレーションを実行するため、１つの計算周期での計算時間が互いに異なる場合がある。このような場合、シミュレーション上での経過時間の同期をとることは、より困難となる。特許文献１の１つの中央処理装置は、複数の中央処理装置の計算周期の同期を取っているが、複数の中央処理装置の１つの計算周期での計算時間が互いに異なる場合における同期については、記載がされていない。
【０００６】
従って、本発明は、１つの計算周期での計算時間が互いに異なる複数のシミュレーションモデルを有する分散シミュレーションシステムにおいて、各シミュレーション同士の同期を適切にとる分散シミュレーションシステム、シミュレーション実行方法、又は制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の分散シミュレーションシステムは、１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行する複数の計算処理システムと、複数の前記計算処理システムと通信可能に接続される制御処理システムと、を有し、前記制御処理システムは、前記計算処理システムが前記シミュレーションを１回実行する周期である処理周期を、前記計算処理システム毎に設定する処理周期設定部と、１回のシミュレーション内での経過時間である計算仮想時間を、前記計算処理システム毎に、前記処理周期の長さ同士の関係比と同じ関係比となるように設定する仮想時間設定部と、前記計算処理システムのそれぞれに、その計算処理システムに設定された前記処理周期毎の各タイミングにおいて計算指示信号を送信して、前記計算処理システムのそれぞれに、自身に設定された前記処理周期毎に、設定された前記計算仮想時間分のシミュレーションを実行させる、計算指示部と、を有し、少なくとも一部の計算処理システムに設定された前記処理周期は、他の計算処理システムに設定された前記処理周期と、長さが異なる。
【０００８】
この分散シミュレーションシステムによると、同じ時間だけ各処理システムを作動させた際に、計算処理システム毎のシミュレーション上での経過時間が同じとなる。従って、分散シミュレーションシステムは、各計算処理システムのシミュレーション毎の同期を適切にとることができる。
【０００９】
前記分散シミュレーションシステムにおいて、計算指示部は、前記処理周期毎の各タイミングにおいて前記計算指示信号を送信することにより、それぞれの前記処理周期の長さの公倍数の長さを有する基本周期において、複数の前記計算処理システムのシミュレーション実行回数を、互いに異ならせることが好ましい。この分散シミュレーションシステムによると、シミュレーションの種類及びその計算処理システムのスペックに合わせてシミュレーションの処理回数を設定することができる。そのため、この分散シミュレーションシステムによると、シミュレーションの精度を向上させることができる。
【００１０】
前記分散シミュレーションシステムにおいて、前記制御処理システムは、前記シミュレーションの処理結果である出力データのうち、他の前記計算処理システムの入力データとして使用する出力データである取り合いデータを取得する計算データ取得部と、前記計算データ取得部が取得した前記取り合いデータを記憶する計算データ記憶部と、をさらに有し、複数の前記計算処理システムは、少なくとも一部が、前記計算データ記憶部に記憶された前記取り合いデータを取得して、前記取り合いデータに基づき前記シミュレーションを実行することが好ましい。この分散シミュレーションシステムによると、取り合いデータを適切に計算処理システムに提供することができる。
【００１１】
前記分散シミュレーションシステムにおいて、前記計算データ取得部は、取得した前記取り合いデータを保持し、前記取り合いデータを算出した処理周期の次の処理周期の開始直前のタイミングである直前タイミングにおいて、前記取り合いデータを前記計算データ記憶部に出力し、前記取り合いデータを算出した以外の前記計算処理システムは、少なくとも一部が、前記直前タイミングの直後の処理周期におけるシミュレーションを行う際に、前記直前タイミングで記憶された取り合いデータを取得し、その取り合いデータに基づき前記シミュレーションを実行することが好ましい。この分散シミュレーションシステムによると、取り合いデータの取得についても同期を適切に取ることができる。
【００１２】
前記分散シミュレーションシステムにおいて、前記制御処理システムは、さらに、操作者によるシミュレーション動作の変更要求の情報である変更要求データを取得する操作情報取得部を有し、前記計算指示部は、前記変更要求データが取得されたタイミングの直後の前記基本周期の開始タイミングにおいて、前記計算処理システムに前記変更要求データの情報を示す変更要求信号を送信することで、前記計算処理システムに対する前記変更要求信号中の変更処理の反映のタイミングを、他の計算処理システムに同期させることが好ましい。この分散シミュレーションシステムによると、操作者による変更要求を各計算処理システムに同期させて反映するため、各シミュレーションの同期を適切にとることができる。
【００１３】
前記分散シミュレーションシステムにおいて、前記計算指示部は、前記計算処理システムのそれぞれに対し、各処理周期の公約数の長さの周期である同期周期毎のタイミングで、同期信号を送信するものであり、前記計算指示部は、前記計算処理システムのそれぞれに対し、その計算処理システムの前記処理周期と一致するタイミングで送信する同期信号に同期させて、計算指示フラグをセットし、その計算処理システムの前記処理周期と一致しないタイミングで送信する同期信号に同期させて、シミュレーションを新たに実行させない情報である計算不実施フラグをセットすることが好ましい。この分散シミュレーションシステムによると、同期信号を送信するため、各シミュレーションの同期を適切にとることができる。
【００１４】
前記分散シミュレーションシステムにおいて、前記制御処理システムは、それぞれの前記処理周期の長さの最小公倍数の長さの周期となるように、前記基本周期を設定する基本周期設定部を有することが好ましい。この分散シミュレーションシステムによると、基本周期をできるだけ短く設定することができる。
【００１５】
前記分散シミュレーションシステムにおいて、前記複数の計算処理システムは、それぞれ少なくとも１つのシミュレーションを実行する複数の計算処理装置であることが好ましい。この分散シミュレーションシステムによると、多種のシミュレーションを実行しつつ、シミュレーション毎の同期を適切にとることができる。
【００１６】
前記分散シミュレーションシステムにおいて、前記複数の計算処理システムは、複数の前記シミュレーションを実行する一つの計算処理装置であることが好ましい。この分散シミュレーションシステムによると、各シミュレーションの制御が容易となる。
【００１７】
上述した課題を解決し、目的を達成するために、本発明のシミュレーション実行方法は、１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行する複数の計算処理システムと、複数の前記計算処理システムと通信可能に接続される制御処理システムと、を用いてシミュレーションを実行するシミュレーション実行方法であって、
前記計算処理システムが前記シミュレーションを１回実行する周期である処理周期を、前記計算処理システム毎に設定する処理周期設定ステップと、１回のシミュレーション内での経過時間である計算仮想時間を、前記計算処理システム毎に、前記処理周期の長さ同士の関係比と同じ関係比となるように設定する仮想時間設定ステップと、前記計算処理システムのそれぞれに、その計算処理システムに設定された前記処理周期毎の各タイミングにおいて計算指示信号を送信して、前記計算処理システムのそれぞれに、自身に設定された前記計算仮想時間分のシミュレーションを、設定された前記処理周期毎に実行させる、計算指示ステップと、を有し、前記処理周期設定ステップにおいて、少なくとも一部の計算処理システムに設定された前記処理周期を、他の計算処理システムに設定された前記処理周期と、長さを異ならせる。このシミュレーション実行方法によると、シミュレーション毎の同期を適切にとることができる。
【００１８】
上述した課題を解決し、目的を達成するために、本発明の制御処理システムは、１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行する複数の計算処理システムを制御する制御処理システムであって、前記計算処理システムが前記シミュレーションを１回実行する周期である処理周期を、前記計算処理システム毎に設定する処理周期設定部と、１回のシミュレーション内での経過時間である計算仮想時間を、前記計算処理システム毎に、前記処理周期の長さ同士の関係比と同じ関係比となるように設定する仮想時間設定部と、前記計算処理システムのそれぞれに、その計算処理システムに設定された前記処理周期毎の各タイミングにおいて計算指示信号を送信して、前記計算処理システムのそれぞれに、自身に設定された前記処理周期毎に、設定された前記計算仮想時間分のシミュレーションを実行させる、計算指示部と、を有し、少なくとも一部の計算処理システムに設定された前記処理周期は、他の計算処理システムに設定された前記処理周期と、長さが異なる。この制御処理システムによると、シミュレーション毎の同期を適切にとることができる。
【発明の効果】
【００１９】
本発明によれば、各シミュレーション同士の同期を適切にとることができる。
【図面の簡単な説明】
【００２０】
【図１】図１は、第１実施形態に係る分散シミュレーションシステムの構成を示すブロック図である。
【図２】図２は、第１実施形態に係る計算処理装置が実行するシミュレーションのタイムチャートである。
【図３】図３は、第１実施形態に係る制御処理装置の構成を示すブロック図である。
【図４】図４は、各周期の設定を説明するためのチャートである。
【図５】図５は、同期処理を説明するためのタイムチャートである。
【図６】図６は、制御処理装置の同期処理を説明するフローチャートである。
【図７】図７は、各計算処理装置のシミュレーション実行処理を説明するフローチャートである。
【図８】図８は、取り合い同期処理を説明するためのタイムチャートである。
【図９】図９は、制御処理装置の取り合い同期処理を説明するフローチャートである。
【図１０】図１０は、要求データ同期処理を説明するためのタイムチャートである。
【図１１】図１１は、制御処理装置の要求データ同期処理を説明するフローチャートである。
【図１２】図１２は、各計算処理装置のシミュレーション実行処理を説明するフローチャートである。
【図１３】図１３は、第２実施形態に係る制御処理装置の構成を示すブロック図である。
【図１４】図１４は、速度変更処理を説明するためのタイムチャートである。
【発明を実施するための形態】
【００２１】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施例を組み合わせて構成するものも含むものである。
【００２２】
（第１実施形態）
最初に、第１実施形態について説明する。図１は、第１実施形態に係る分散シミュレーションシステムの構成を示すブロック図である。図１に示すように、第１実施形態に係る分散シミュレーションシステム１は、第１計算処理装置１０Ａ、第２計算処理装置１０Ｂ、第３計算処理装置１０Ｃ、及び第４計算処理装置１０Ｄと、制御処理装置２０と、インストラクタ操作装置３０と、を有する。以下、第１計算処理装置１０Ａ、第２計算処理装置１０Ｂ、第３計算処理装置１０Ｃ、及び第４計算処理装置１０Ｄをそれぞれ区別しない場合は、計算処理装置１０と記載する。
【００２３】
分散シミュレーションシステム１は、制御処理装置２０の制御により複数の計算処理装置１０のそれぞれにシミュレーションを実行させる分散シミュレーションシステムである。分散シミュレーションシステム１は、プラントの運転訓練、特に原子力の再処理プラントの運転訓練に用いるものであるが、用途はこれに限られない。
【００２４】
（計算処理装置）
計算処理システムとしての計算処理装置１０は、１つのシミュレーションを実行する処理装置（コンピュータ）である。図１に示すように、計算処理装置１０は、通信部１２と計算処理部１４とを有する。通信部１２は、制御処理装置２０と通信を行う。通信部１２は、制御処理装置２０から、シミュレーションを実行する旨の命令やシミュレーション用の入力データを取得したり、シミュレーション結果である出力データを制御処理装置２０に出力したりする。計算処理部１４は、通信部１２を介した制御処理装置２０からの命令に基づき、所定のシミュレーションを実行する。なお、計算処理装置１０は、本実施形態では、４つであるが、複数であればこれに限られない。また、計算処理装置１０は、少なくとも１種類のシミュレーションを経時毎に実行する複数の処理装置で構成されるが、複数種類のシミュレーションを実行する１つの処理装置で構成されてもよい。また、計算処理装置１０と制御処理装置２０とインストラクタ操作装置３０とも、互いに別の処理装置であるが、１つの処理装置であってもよい。
【００２５】
以下、計算処理装置１０が実行するシミュレーションについて説明する。図２は、第１実施形態に係る計算処理装置が実行するシミュレーションのタイムチャートである。図２に示すように、計算処理装置１０が実行するシミュレーションは、制御処理装置２０から入力データを取得する入力処理と、入力データに基づきシミュレーション（計算）を実行する計算処理と、計算処理の結果である出力データを制御処理装置２０に出力する出力処理と、の各処理を実行するものである。計算処理装置１０が実行するシミュレーションは、この入力処理と計算処理と出力処理とを、１つの計算周期とする。本説明におけるシミュレーションは、この入力処理と計算処理と出力処理とを一度だけ行うものをいう。言い換えれば、本説明におけるシミュレーションは、１つの計算周期のみを有する。計算処理装置１０は、このシミュレーションを経時毎に複数回繰り返すことにより、シミュレーション内での経過時間である仮想時間毎に、プラントの状態を出力データとして出力する。
【００２６】
計算処理装置１０は、実行するシミュレーションの内容が互いに異なる。シミュレーションの内容としては、プラント内の各部の温度、プラント内の配管の水流、バルブの開度、プラント内での化学反応、プラント内の制御装置の制御等が例示される。計算処理装置１０は、１つのシミュレーションに要する計算時間Ａが互いに異なる。図２に示すクロックタイミングＴＡは、各処理の長さを説明するためのタイミングであり、ＴＡ１、ＴＡ２、・・・ＴＡ１２の順で、等間隔に時間の経過を示している。本実施形態では、各クロックタイミングＴＡは、０．１秒刻みである。すなわち、ＴＡ１は処理開始時点のタイミングであり、ＴＡ２は０．１秒経過時点でのタイミングであり、ＴＡ３は０．２秒経過時点のタイミングであり、ＴＡ１２は１．１秒経過時点のタイミングである。
【００２７】
図２に示すように、第１計算処理装置１０Ａは、クロックタイミングＴＡ１で入力処理の指令を受けると、クロックタイミングＴＡ１からＴＡ２までの時間で、入力処理を実行する。そして、第１計算処理装置１０Ａは、クロックタイミングＴＡ２からＴＡ３までの時間で、計算処理を実行し、クロックタイミングＴＡ３からＴＡ４までの時間で、出力処理を実行する。クロックタイミングＴＡ１からＴＡ４が、第１計算処理装置１０Ａのシミュレーションの計算周期となる。すなわち、第１計算処理装置１０Ａの計算時間ＡＡは、クロックタイミングＴＡ１からＴＡ４までの時間である０．３秒である。第１計算処理装置１０Ａは、このシミュレーションを経時毎に繰り返す。
【００２８】
第２計算処理装置１０Ｂは、クロックタイミングＴＡ１で入力処理の指令を受けると、クロックタイミングＴＡ１からＴＡ２までの時間で、入力処理を実行し、クロックタイミングＴＡ２からＴＡ４までの時間で、計算処理を実行し、クロックタイミングＴＡ４からＴＡ５までの時間で、出力処理を実行する。すなわち、第２計算処理装置１０Ｂの計算時間ＡＢは、クロックタイミングＴＡ１からＴＡ５までの時間である０．４秒である。第２計算処理装置１０Ｂは、このシミュレーションを経時毎に繰り返す。
【００２９】
第３計算処理装置１０Ｃは、クロックタイミングＴＡ１で入力処理の指令を受けると、クロックタイミングＴＡ１からＴＡ２までの時間で、入力処理を実行し、クロックタイミングＴＡ２からＴＡ１２までの時間で、計算処理を実行し、クロックタイミングＴＡ１２からＴＡ１３までの時間で、出力処理を実行する。すなわち、第３計算処理装置１０Ｃの計算時間ＡＣは、クロックタイミングＴＡ１からＴＡ１３までの時間である１．２秒である。第３計算処理装置１０Ｃは、このシミュレーションを経時毎に繰り返す。
【００３０】
第４計算処理装置１０Ｄは、クロックタイミングＴＡ１で入力処理の指令を受けると、クロックタイミングＴＡ１からＴＡ２までの時間で、入力処理を実行し、クロックタイミングＴＡ２からＴＡ５までの時間で、計算処理を実行し、クロックタイミングＴＡ５からＴＡ６までの時間で、出力処理を実行する。すなわち、第４計算処理装置１０Ｄの計算時間ＡＤは、クロックタイミングＴＡ１からＴＡ６までの時間である０．５秒である。第４計算処理装置１０Ｄは、このシミュレーションを経時毎に繰り返す。
【００３１】
各計算処理装置１０は、１つのシミュレーションを実行するのに、以上説明した計算時間Ａを要する。ただし、計算時間Ａは、その計算処理装置１０のスペックとシミュレーションの内容とに依存するため、以上の説明は一例である。
【００３２】
また、計算処理装置１０の少なくとも一部は、他の計算処理装置１０の出力データ（計算結果）を、自身の入力データとして使用する。本実施形態の説明例では、第２計算処理装置１０Ｂは、第１計算処理装置１０Ａの出力データを、自身の入力データとして使用する。また、第２計算処理装置１０Ｂは、第４計算処理装置１０Ｄの出力データについても、自身の入力データとして使用する。また、第３計算処理装置１０Ｃは、第２計算処理装置１０Ｂの出力データを、自身の入力データとして使用する。
【００３３】
計算処理装置１０のシミュレーションは以上説明したものであるが、これらは例であり、互いに１つの計算周期での計算時間が互いに異なるシミュレーションを経時毎に実行するものであれば、以上の説明に限られない。
【００３４】
（インストラクタ操作装置）
インストラクタ操作装置３０は、操作者（インストラクタ）からの操作情報を取得するマンマシン（コンピュータ）である。図１に示すように、インストラクタ操作装置３０は、操作部３２と通信部３４とを有する。操作部３２は、操作者からが操作情報を入力するためのインターフェイスであり、例えばコンピュータのマウスやキーボード、タッチパネル等である。通信部３４は、操作者からが操作情報を制御処理装置２０に送信する。操作情報は、シミュレーションの動作を設定する情報であり、例えば、計算処理装置１０全てのシミュレーションを開始させるＲＵＮ操作、計算処理装置１０全てのシミュレーションを停止させるＦＲＥＥＺＥ操作、シミュレーションの速度を変更する速度変更操作等がある。
【００３５】
（制御処理装置）
制御処理システムとしての制御処理装置２０は、計算処理装置１０と通信可能に接続され、全ての計算処理装置１０のシミュレーション処理を一括で制御する処理装置（コンピュータ）である。図３は、第１実施形態に係る制御処理装置の構成を示すブロック図である。図３に示すように、制御処理装置２０は、制御通信部４０と、周期設定部４２と、計算指示部４４と、計算データ部４６と、変更要求データ取得部４８と、を有する。
【００３６】
制御通信部４０は、計算処理装置１０の通信部１２と通信を行って、計算処理装置１０と情報のやり取りを行うものであり、インストラクタ操作装置３０の通信部３４と通信を行って、インストラクタ操作装置３０と情報のやり取りを行うものである。
【００３７】
周期設定部４２は、処理周期設定部５２と、基本周期設定部５４と、同期周期設定部５６と、仮想時間設定部５８と、を有する。
【００３８】
処理周期設定部５２は、計算処理装置１０毎に処理周期Ｂを設定するものである。処理周期Ｂは、各計算処理装置１０がシミュレーションを１回実行する周期、言い換えれば、シミュレーションを開始してから次のシミュレーションを開始するまでの時間である。上述のように、計算処理装置１０が１つのシミュレーションの計算に要する時間である計算時間Ａは、その計算処理装置１０のスペックとシミュレーションの内容とに依存する。そのため、計算処理装置１０は、計算時間Ａよりも短い周期でシミュレーションを繰り返すことはできない。従って、処理周期設定部５２は、各計算処理装置１０について、それぞれの計算時間Ａ以上の長さを有するように、処理周期Ｂを設定する。処理周期の設定方法の詳細は後述する。
【００３９】
基本周期設定部５４は、計算処理装置１０全てに共通する基本周期Ｃを設定するものである。基本周期Ｃは、各処理周期Ｂの公倍数の長さを有する周期である。基本周期Ｃの詳細については後述する。
【００４０】
同期周期設定部５６は、計算処理装置１０全てに共通する同期周期Ｄを設定するものである。同期周期Ｄは、各処理周期Ｂの公約数の長さを有する周期である。同期周期Ｄについては後述する。
【００４１】
仮想時間設定部５８は、計算処理装置１０毎に、計算仮想時間Ｅを設定するものである。計算仮想時間Ｅは、シミュレーション内での経過時間である。計算処理装置１０は、１回のシミュレーションで、計算仮想時間Ｅ分だけシミュレーションを実行する。すなわち、例えば温度変化のシミュレーションを行う場合、計算処理装置１０は、計算仮想時間Ｅの経過前後における温度変化を算出する。従って、計算仮想時間Ｅは、実際の経過時間（ここでは計算時間Ａ又は処理周期Ｂ）とは異なる場合がある。計算処理装置１０は、このシミュレーションを複数回繰り返すことで、シミュレーション内の仮想の経過時間毎の処理結果を算出することができる。計算仮想時間Ｅの設定方法の詳細は後述する。
【００４２】
以上のように、周期設定部４２は、各計算処理装置１０の同期をとるための設定値である、処理周期Ｂと基本周期Ｃと同期周期Ｄと計算仮想時間Ｅとを設定する。周期設定部４２は、各計算処理装置１０の計算時間Ａ及び実行するシミュレーションの内容に基づき、自身でこれらを設定するものであるが、操作者の周期設定部４２への入力操作によりこれらを設定してもよい。
【００４３】
次に、制御処理装置２０の計算指示部４４について説明する。図３に示すように、計算指示部４４は、同期信号生成部６２と、計算処理フラグセット部６４と、計算仮想時間フラグセット部６６と、操作フラグセット部６８と、を有する。
【００４４】
同期信号生成部６２は、同期信号ＳＤを、同期周期Ｄ毎に生成する。同期信号生成部６２は、制御通信部４０を介して、同期周期Ｄ毎に計算処理装置１０のそれぞれに同期信号ＳＤを出力する。同期信号ＳＤを取得した各計算処理装置１０は、シミュレーション実行のための処理をスタートさせたりするが、詳しくは後述する。
【００４５】
計算処理フラグセット部６４は、後述する同期処理を行うためのものである。計算処理フラグセット部６４は、同期信号ＳＤに同期させて、自身の書き込み可能領域内に、計算処理フラグＦＢをセットする。計算処理フラグセット部６４は、計算処理装置１０のそれぞれに対応した計算処理フラグＦＢをセットする。本実施形態では、計算処理フラグセット部６４は、各計算処理装置１０に対応させて、計算指示フラグＦ１及び計算不実施フラグＦ２をセットする。計算指示フラグＦ１は、その計算処理装置１０に新たにシミュレーションを行わせる指示を出すためのフラグである。計算不実施フラグＦ２は、その計算処理装置１０に新たにシミュレーションを行わせない指示を出すためのフラグである。計算処理装置１０は、自身のために設定された計算処理フラグＦＢを計算処理フラグセット部６４から読み込み、その計算処理フラグＦＢに基づき、新たなシミュレーションを開始させたりさせなかったりする。
【００４６】
例えば、計算処理フラグセット部６４は、第２計算処理装置１０Ｂに対し、第２計算処理装置１０Ｂの処理周期Ｂ（第２処理周期ＢＢ）と一致するタイミングで送信する同期信号ＳＤに同期させて、第２計算処理装置１０Ｂのための計算指示フラグＦ１をセットする。また、計算処理フラグセット部６４は、例えば第２計算処理装置１０Ｂに対し、第２計算処理装置１０Ｂの処理周期Ｂ（第２処理周期ＢＢ）と一致しないタイミングで送信する同期信号ＳＤに同期させて、第２計算処理装置１０Ｂのための計算不実施フラグＦ２をセットする。第２計算処理装置１０Ｂは、計算指示フラグＦ１を読み込んだ場合に、新たなシミュレーションをスタートさせ、計算不実施フラグＦ２を読み込んだ場合に、新たなシミュレーションをスタートさせない。
【００４７】
計算仮想時間フラグセット部６６は、同期信号ＳＤに同期させて、自身の書き込み可能領域内に、計算仮想時間フラグＦＥをセットする。計算仮想時間フラグセット部６６は、各計算処理装置１０に対応させて、計算仮想時間フラグＦＥをセットする。計算仮想時間フラグＦＥは、１回のシミュレーションでの経過時間である計算仮想時間Ｅの情報を示すフラグである。計算処理装置１０は、自身のために設定された計算仮想時間フラグＦＥを計算仮想時間フラグセット部６６から読み込み、その計算仮想時間フラグＦＥにおける計算仮想時間Ｅの長さ分だけ、シミュレーションを実行する。
【００４８】
操作フラグセット部６８は、後述する要求データ同期処理を行うためのものである。操作フラグセット部６８は、基本周期Ｃに同期させて、自身の書き込み可能領域内に操作フラグＦＧをセットする。操作フラグセット部６８は、各計算処理装置１０の全てに共通する操作フラグＦＧをセットする。操作フラグＦＧは、インストラクタ操作装置３０に入力された操作者（インストラクタ）からの操作情報に基づいてセットされるフラグである。インストラクタ操作装置３０に入力された操作情報は、変更要求データ取得部４８に入力される。変更要求データ取得部４８は、その操作情報がシミュレーション動作の変更要求の情報である変更要求データである場合であって、ＲＵＮ操作又はＦＲＥＥＺＥ操作である場合、その変更要求データを操作フラグセット部６８に出力する。操作フラグセット部６８は、その変更要求データに基づき、操作フラグＦＧをセットする。各計算処理装置１０は、その操作フラグＦＧを読み込み、その操作フラグＦＧに基づき、自身の実行するシミュレーション動作を変更させる。操作フラグＦＧの詳細については後述する。
【００４９】
次に、制御処理装置２０の計算データ部４６について説明する。図３に示すように、計算データ部４６は、計算データ取得部７２と、計算データ記憶部７４と、を有する。計算データ取得部７２は、各計算処理装置１０の出力データを取得する。計算データ記憶部７４は、各計算処理装置１０の入力データを記憶するとともに、計算データ取得部７２から各計算処理装置１０の出力データを取得して記憶する。各計算処理装置１０は、計算データ記憶部７４から入力データを読み出して、シミュレーションを実行する。なお、計算データ記憶部７４は、各計算処理装置１０の出力データのみを記憶していてもよく、各計算処理装置１０の入力データは、計算処理装置１０自身が記憶してもよい。
【００５０】
また、計算データ取得部７２は、後述する取り合いデータ同期処理のために用いられる。計算データ取得部７２は、出力データのうちの取り合いデータを所定時間保持するバッファとしての機能を有する。取り合いデータは、他の計算処理装置１０の入力データとして使用する出力データである。取り合いデータの保持の詳細については、後述する。
【００５１】
変更要求データ取得部４８は、上述のように、インストラクタ操作装置３０に入力された操作情報を取得するものである。
【００５２】
制御処理装置２０は、以上説明したような構成を有する。制御処理装置２０は、各計算処理装置１０のシミュレーション同士の同期をとるため、周期設定、同期処理、取り合いデータ同期処理、及び要求データ同期処理を行う。以下に、制御処理装置２０の各処理について説明する。
【００５３】
（周期設定）
最初に、周期設定部４２における処理周期Ｂと、基本周期Ｃと、同期周期Ｄと、計算仮想時間Ｅとの設定について説明する。図４は、各周期の設定を説明するためのチャートである。周期設定部４２は、最初に、処理周期設定部５２により、各計算処理装置１０の処理周期Ｂを設定する。処理周期設定部５２は、計算時間Ａと、実行するシミュレーションの内容とに基づき、処理周期Ｂを設定する。処理周期設定部５２は、各計算処理装置１０について、その計算処理装置１０の計算時間Ａ以上の長さとなるように、処理周期Ｂを設定する。また、処理周期設定部５２は、計算時間Ａ以上の長さであり、かつできるだけ長さが短くなるように、処理周期Ｂを設定してもよい。処理周期Ｂを短くすることにより、シミュレーションの頻度が増加するため、シミュレーション精度を高めることが可能となる。また、処理周期設定部５２は、シミュレーションの種類に基づいて、処理周期Ｂを設定する。例えば、処理周期設定部５２は、プラントの制御装置の制御変更についてのシミュレーション（例えば温度制御や水量制御）であれば、シミュレーションの精度を高めるために、計算時間Ａ以上の長さであって、かつ、できるだけ長さが短くなるように、処理周期Ｂを設定する。また、処理周期設定部５２は、化学反応のシミュレーションの場合は、反応の進行が遅いため、処理周期Ｂを、計算時間Ａ以上の長さであって、かつ、同じ計算時間Ａとなる制御装置の制御変更についてのシミュレーションよりも長く設定してもよい。すなわち、処理周期設定部５２は、計算時間Ａが同じと仮定した場合に、頻繁に状態の確認が必要なパラメータに関するシミュレーションにおいては、できるだけ長さが短くなるように処理周期Ｂを設定し、頻繁な状態確認が不要なパラメータに関するシミュレーションにおいては、それよりも長くなるように処理周期Ｂを設定する。
【００５４】
また、処理周期設定部５２は、例えば、計算時間Ａが短く処理周期Ｂを短く設定できるシミュレーションについて、処理周期Ｂを、実際の原子力プラントの制御装置の処理周期と同じ長さとすることで、シミュレーションを実際の原子力プラントの動きと同じにすることができる。また、密閉配管内の圧力の伝播、爆発事象、又は臨界事象等は、パラメータ変化の速度が高いため、処理周期設定部５２は、これらのパラメータ変化の速度が高い
事象に関するシミュレーションについては、処理周期Ｂをできるだけ長さが短くなるように設定する。すなわち、処理周期設定部５２は、パラメータ変化の速度が高い事象ほど、計算時間Ａに対する処理周期Ｂの長さを短くする。計算時間Ａに対する処理周期Ｂの長さを短くすることにより、処理周期Ｂの長さを計算時間Ａに近づけて、処理周期Ｂをできるだけ短くすることができる。また、処理周期設定部５２は、例えば火災事象等の計算負荷が大きいシミュレーションについては、処理周期Ｂの長さを長くする。また、処理周期設定部５２は、収束計算が必要なシミュレーションについては、取り合い先のシミュレーションに影響（発散など）を与えない範囲の処理周期Ｂを設定する。
【００５５】
本実施形態の例では、処理周期設定部５２は、図４に示すように、第１計算処理装置１０Ａの処理周期である第１処理周期ＢＡを、クロックタイミングＴＡ１からＴＡ４までの時間である０．３秒と設定している。第１処理周期ＢＡは、第１計算処理装置１０Ａの計算時間ＡＡと同じ長さである。第１処理周期ＢＡの開始タイミングを処理周期タイミングＴＢとして、処理周期タイミングＴＢ１をクロックタイミングＴＡ１と同じタイミングとした場合、処理周期タイミングＴＢ２がクロックタイミングＴＡ４と同タイミングとなる。同様に、処理周期タイミングＴＢ３はクロックタイミングＴＡ７と同タイミングとなり、処理周期タイミングＴＢ４はクロックタイミングＴＡ１０と同タイミングとなり、処理周期タイミングＴＢ５はクロックタイミングＴＡ１３と同タイミングとなる。
【００５６】
第１計算処理装置１０Ａは、図４に示すように、処理周期タイミングＴＢ１でシミュレーションを開始した場合、処理周期タイミングＴＢ１からＴＢ２の間、処理周期タイミングＴＢ２からＴＢ３の間、処理周期タイミングＴＢ３からＴＢ４の間、処理周期タイミングＴＢ４からＴＢ５の間で、各１回ずつシミュレーションを実行する。
【００５７】
また、処理周期設定部５２は、第２計算処理装置１０Ｂの処理周期である第２処理周期ＢＢを、クロックタイミングＴＡ１からＴＡ７までの時間である０．６秒と設定している。すなわち、第２処理周期ＢＢは、処理周期タイミングＴＢ１からＴＢ３までの時間となる。第２処理周期ＢＢは、第２計算処理装置１０Ｂの計算時間ＡＢより長い。処理周期設定部５２は、計算時間ＡＢ以上であって、自身より計算時間の短い第１処理装置１０Ａの第１処理周期ＢＡの倍数となり、かつできるだけ長さが短くなるように、第２処理周期ＢＢを設定している。
【００５８】
第２計算処理装置１０Ｂは、図４に示すように、処理周期タイミングＴＢ１でシミュレーションを開始した場合、処理周期タイミングＴＢ１からＴＢ３の間、処理周期タイミングＴＢ３からＴＢ５の間で、各１回ずつシミュレーションを実行する。
【００５９】
処理周期設定部５２は、第３計算処理装置１０Ｃの処理周期である第３処理周期ＢＣを、クロックタイミングＴＡ１からＴＡ１３までの時間である１．２秒と設定している。すなわち、第３処理周期ＢＣは、処理周期タイミングＴＢ１からＴＢ５までの時間となる。第３処理周期ＢＣは、第３計算処理装置１０Ｃの計算時間ＡＣより長い。処理周期設定部５２は、計算時間ＡＣ以上であって、自身より計算時間の短い第１処理周期ＢＡ、第２処理周期ＢＢの公倍数となり、かつできるだけ長さが短くなるように、第３処理周期ＢＣを設定している。
【００６０】
第３計算処理装置１０Ｃは、図４に示すように、処理周期タイミングＴＢ１でシミュレーションを開始した場合、処理周期タイミングＴＢ１からＴＢ５の間で、１回シミュレーションを実行する。
【００６１】
処理周期設定部５２は、第４計算処理装置１０Ｄの処理周期である第４処理周期ＢＤを、クロックタイミングＴＡ１からＴＡ１３までの時間である１．２秒と設定している。すなわち、第４処理周期ＢＤは、処理周期タイミングＴＢ１からＴＢ１３までの時間となる。第４処理周期ＢＤは、第４計算処理装置１０Ｄの計算時間ＡＤより長い。第４計算処理装置１０Ｄの第４処理周期ＢＤは、計算時間ＡＤ以上であって、自身より計算時間の短い第１処理周期ＢＡ、第２処理周期ＢＢの倍数となり、かつできるだけ長さが短くなるように設定した場合は、０．６秒となる。ただし、第４計算処理装置１０Ｄのシミュレーションは、シミュレーション頻度を多くする必要がないため、処理周期設定部５２は、第４処理周期ＢＤを、その倍の１．２秒としている。
【００６２】
第４計算処理装置１０Ｄは、図４に示すように、処理周期タイミングＴＢ１でシミュレーションを開始した場合、処理周期タイミングＴＢ１からＴＢ５の間で、１回シミュレーションを実行する。
【００６３】
ただし、処理周期設定部５２による、処理周期Ｂの設定方法は、以上説明した方法に限られない。処理周期設定部５２は、計算時間Ａ以上の長さとなるように、処理周期Ｂを設定するものであればよい。
【００６４】
次に、周期設定部４２は、基本周期設定部５４により、各計算処理装置１０に共通する基本周期Ｃを設定する。基本周期設定部５４は、各処理周期Ｂの公倍数となるように、基本周期Ｃを設定する。より詳しくは、基本周期設定部５４は、各処理周期Ｂの最小公倍数となるように、基本周期Ｃを設定することが好ましい。すなわち、図４の例では、基本周期Ｃは、第１処理周期ＢＡ、第２処理周期ＢＢ、第３処理周期ＢＣ、第４処理周期ＢＤの最小公倍数である第３処理周期ＢＣ、第４処理周期ＢＤと同じ長さの周期（１．２秒）を、基本周期Ｃとする。基本周期Ｃの開始タイミングを基本周期タイミングＴＣとして、基本周期タイミングＴＣ１を処理周期タイミングＴＢ１と同じタイミングとした場合、基本周期タイミングＴＣ２が処理周期タイミングＴＢ５と同タイミングとなる。
【００６５】
なお、基本周期設定部５４は、各計算時間Ａ中の最長の計算時間以上の長さを基本周期Ｃとして設定し、処理周期設定部５２が、その計算処理装置１０における計算時間Ａ以上の長さであり、かつ基本周期Ｃの約数の長さを有するように、各計算処理装置１０の処理周期Ｂを設定してもよい。この場合において、処理周期設定部５２は、基本周期Ｃの長さができるだけ短くなるように、各処理周期Ｂを設定することが好ましい。
【００６６】
次に、周期設定部４２は、同期周期設定部５６により、計算処理装置１０全てに共通する同期周期Ｄを設定する。同期周期設定部５６は、各処理周期Ｂの公約数の長さとなるように、同期周期Ｄを設定する。図４の例では、同期周期設定部５６は、第１処理周期ＢＡ、ＢＢ、ＢＣ、ＢＤの最大公約数である第１処理周期ＢＡと同じ長さの周期（０．３秒）を、同期周期Ｄとする。同期周期Ｄの開始タイミングを同期タイミングＴＤとして、同期タイミングＴＤ１を処理周期タイミングＴＢ１と同じタイミングとした場合、同期タイミングＴＤ２が処理周期タイミングＴＢ２と同タイミングとなり、同期タイミングＴＤ３が処理周期タイミングＴＢ３と同タイミングとなり、同期タイミングＴＤ４が処理周期タイミングＴＢ４と同タイミングとなり、同期タイミングＴＤ５が処理周期タイミングＴＢ５と同タイミングとなる。
【００６７】
次に、周期設定部４２は、仮想時間設定部５８により、計算処理装置１０毎に、計算仮想時間Ｅを設定する。計算仮想時間Ｅは、１つのシミュレーション上の経過時間である。すなわち、計算仮想時間Ｅは、１処理周期において実行したシミュレーションの、そのシミュレーション内における仮想の経過時間である。仮想時間設定部５８は、各処理周期Ｂ同士の長さの関係比と同じ関係比となるように、各計算仮想時間Ｅを設定する。ここで、第１計算処理装置１０Ａに設定される計算仮想時間Ｅを第１計算仮想時間ＥＡとし、第２計算処理装置１０Ｂに設定される計算仮想時間Ｅを第２計算仮想時間ＥＢとし、第３計算処理装置１０Ｃに設定される計算仮想時間Ｅを第３計算仮想時間ＥＣとし、第４計算処理装置１０Ｄに設定される計算仮想時間Ｅを第４計算仮想時間ＥＤとする。図４の例では、第１処理周期ＢＡ、第２処理周期ＢＢ、第３処理周期ＢＣ、第４処理周期ＢＤの長さの比が１：２：４：４であるため、第１計算仮想時間ＥＡ、第２計算仮想時間ＥＢ、第３計算仮想時間ＥＣ、第４計算仮想時間ＥＤの長さの比は、１：２：４：４となる。第１計算仮想時間ＥＡは、長さがΔ３となり、第２計算仮想時間ＥＢは、長さがその倍のΔ６となり、第３計算仮想時間ＥＣ及び第４計算仮想時間ＥＤは、長さが第２計算仮想時間ＥＢの倍のΔ１２となっている。例えば、Δ３は０．３秒であり、Δ６は、０．６秒であり、Δ１２は１．２秒であるが、これに限られない。
【００６８】
ここで、基本周期Ｃにおけるシミュレーション上の仮想的な経過時間を基本仮想時間ＣＸとする。基本周期Ｃの長さは、１つの計算処理装置１０において、基本周期Ｃ内の処理周期Ｂの長さの合計である。すなわち、基本周期Ｃの長さは、第１処理周期ＢＡの４倍であり、第２処理周期ＢＢの２倍であり、第３処理周期ＢＣ、第４処理周期ＢＤの等倍である。従って、基本仮想時間ＣＸは、第１計算仮想時間ＥＡの４倍であり、第２計算仮想時間ＥＢの２倍であり、第３計算仮想時間ＥＣ、第４計算仮想時間ＥＤの等倍である。上述のように、第１計算仮想時間ＥＡ、第２計算仮想時間ＥＢ、第３計算仮想時間ＥＣ、第４計算仮想時間ＥＤの長さの比は、１：２：４：４である。そのため、基本仮想時間ＣＸは、計算処理装置１０毎に同一であるということができる。
【００６９】
以上のように、周期設定部４２は、処理周期Ｂと、基本周期Ｃと、同期周期Ｄと、計算仮想時間Ｅとを設定する。周期設定部４２は、処理周期Ｂと、基本周期Ｃと、同期周期Ｄと、計算仮想時間Ｅとの順で設定を行ったが、処理の順番はこれに限られない。周期設定部４２は、処理周期Ｂを最初に算出し、処理周期Ｂに基づき、基本周期Ｃと、同期周期Ｄと、計算仮想時間Ｅとを算出することが好ましい。例えば、周期設定部４２は、処理周期Ｂと、計算仮想時間Ｅと、基本周期Ｃと、同期周期Ｄとの順で設定を行ってもよい。ただし、周期設定部４２は、処理周期Ｂを最初に算出することに限られない。
【００７０】
（同期処理）
次に、制御処理装置２０による各計算処理装置１０の同期処理について説明する。図５は、同期処理を説明するためのタイムチャートである。制御処理装置２０は、同期信号生成部６２が、同期周期Ｄ毎に同期信号ＳＤを生成し、制御通信部４０を介して、同期周期Ｄ毎に計算処理装置１０のそれぞれに同期信号ＳＤを出力する。図５の例では、同期信号生成部６２は、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５の各タイミングで、各計算処理装置１０に同期信号ＳＤを出力する。基本周期タイミングＴＣ１は同期タイミングＴＤ１と一致し、基本周期タイミングＴＣ２は同期タイミングＴＤ５と一致する。また、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５は、それぞれ処理周期タイミングＴＢ１、ＴＢ２、ＴＢ３、ＴＢ４、ＴＢ５と一致する（図４参照）。
【００７１】
また、制御処理装置２０は、計算処理フラグセット部６４により、計算処理装置１０のそれぞれに対応した計算処理フラグＦＢをセットする。計算処理フラグセット部６４は、各計算処理装置１０の処理周期Ｂに基づき、セットする計算処理フラグＦＢを、計算指示フラグＦ１又は計算不実施フラグＦ２のうちから選択する。計算処理フラグセット部６４は、各計算処理装置１０に対し、その計算処理装置１０の処理周期Ｂと一致するタイミングで送信する同期信号ＳＤに同期させて、その計算処理装置１０のための計算指示フラグＦ１をセットする。また、計算処理フラグセット部６４は、各計算処理装置１０に対し、計算処理装置１０の処理周期Ｂと一致しないタイミングで送信する同期信号ＳＤに同期させて、その計算処理装置１０のための計算不実施フラグＦ２をセットする。
【００７２】
本説明の例では、第１計算処理装置１０Ａの第１処理周期ＢＡは、同期周期Ｄと同じ長さである。従って、計算処理フラグセット部６４は、第１計算処理装置１０Ａの第１計算処理フラグＦＢＡとして、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５で出力する同期信号ＳＤに同期させて、計算指示フラグＦ１をセットする。
【００７３】
本説明の例では、第２計算処理装置１０Ｂの第２処理周期ＢＢは、同期周期Ｄの２倍の長さである。従って、計算処理フラグセット部６４は、第２計算処理装置１０Ｂの第２計算処理フラグＦＢＢとして、同期タイミングＴＤ１、ＴＤ３、ＴＤ５で出力する同期信号ＳＤに同期させて、計算指示フラグＦ１をセットする。そして、計算処理フラグセット部６４は、第２計算処理フラグＦＢＢとして、同期タイミングＴＤ２、ＴＤ４で出力する同期信号ＳＤに同期させて、計算不実施フラグＦ２をセットする。
【００７４】
本説明の例では、第３計算処理装置１０Ｃの第３処理周期ＢＣは、同期周期Ｄの４倍の長さである。従って、計算処理フラグセット部６４は、第３計算処理装置１０Ｃの第３計算処理フラグＦＢＣとして、同期タイミングＴＤ１、ＴＤ５で出力する同期信号ＳＤに同期させて、計算指示フラグＦ１をセットする。そして、計算処理フラグセット部６４は、第３計算処理フラグＦＢＣとして、同期タイミングＴＤ２、ＴＤ３ＴＤ４で出力する同期信号ＳＤに同期させて、計算不実施フラグＦ２をセットする。第４計算処理装置１０Ｄの第４処理周期ＢＤは、第３処理周期ＢＣと同じ長さである。従って、第４計算処理装置１０Ｄの第４計算処理フラグＦＢＤは、第３計算処理フラグＦＢＣと同じとなる。
【００７５】
また、制御処理装置２０は、計算仮想時間フラグセット部６６により、同期信号ＳＤに同期させて、各計算処理装置１０に対応した計算仮想時間フラグＦＥをセットする。計算仮想時間フラグＦＥは、設定された計算仮想時間Ｅの情報を有するフラグである。
【００７６】
本説明の例では、第１計算処理装置１０Ａの第１計算仮想時間ＥＡは、Δ３であり、第２計算処理装置１０Ｂの第２計算仮想時間ＥＢは、Δ６であり、第３計算処理装置１０Ｃの第３計算仮想時間ＥＣは、Δ１２であり、第４計算処理装置１０Ｄの第４計算仮想時間ＥＤは、Δ１２である。従って、計算仮想時間フラグセット部６６は、Δ３の情報を持たせた第１計算処理装置１０Ａの第１計算仮想時間フラグＦＥＡを、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５で出力する同期信号ＳＤに同期させてセットする。計算仮想時間フラグセット部６６は、Δ６の情報を持たせた第２計算処理装置１０Ｂの第２計算仮想時間フラグＦＥＢを、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５で出力する同期信号ＳＤに同期させてセットする。計算仮想時間フラグセット部６６は、Δ１２の情報を持たせた第３計算処理装置１０Ｃの第３計算仮想時間フラグＦＥＣを、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５で出力する同期信号ＳＤに同期させてセットする。計算仮想時間フラグセット部６６は、Δ１２の情報を持たせた第４計算処理装置１０Ｄの第４計算仮想時間フラグＦＥＤを、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５で出力する同期信号ＳＤに同期させてセットする。
【００７７】
なお、計算仮想時間フラグセット部６６は、計算指示フラグＦ１をセットする場合にのみ、計算仮想時間フラグＦＥをセットしてもよい。すなわち、計算仮想時間フラグセット部６６は、例えば第２計算仮想時間フラグＦＥＢを、同期タイミングＴＤ１、ＴＤ３、ＴＤ５で出力する同期信号ＳＤにのみ同期させてセットしてもよい。
【００７８】
各計算処理装置１０は、同期信号ＳＤを取得すると、制御処理装置２０から、自身に対応する計算処理フラグＦＢ及び計算仮想時間フラグＦＥを読み込む。各計算処理装置１０は、計算処理フラグＦＢが計算指示フラグＦ１である場合に、計算仮想時間フラグＦＥに示された計算仮想時間Ｅ分のシミュレーションを開始する。また、各計算処理装置１０は、計算処理フラグＦＢが計算不実施フラグＦ２である場合には、シミュレーションを開始しない。
【００７９】
図５の例では、第１計算処理装置１０Ａは、同期タイミングＴＤ１における同期信号ＳＤを取得すると、制御処理装置２０の計算処理フラグセット部６４にセットされた第１計算処理フラグＦＢＡと、計算仮想時間フラグセット部６６にセットされた第１計算仮想時間フラグＦＥＡとを読み出す。同期タイミングＴＤ１における第１計算処理フラグＦＢＡは計算指示フラグＦ１であるため、第１計算処理装置１０Ａは、第１計算仮想時間ＥＡ分（Δ３分）のシミュレーションを新たに開始する。図５に示すように、このシミュレーションは、同期タイミングＴＤ２までに終了する。
【００８０】
また、同期タイミングＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５における第１計算処理フラグＦＢＡも、計算指示フラグＦ１である。従って、第１計算処理装置１０Ａは、同期タイミングＴＤ２、ＴＤ３、ＴＤ４、ＴＤ５においても、同様に、第１計算仮想時間ＥＡ分（Δ３分）のシミュレーションを新たに開始する。
【００８１】
図５の例では、第２計算処理装置１０Ｂは、同期タイミングＴＤ１における同期信号ＳＤを取得すると、第２計算処理フラグＦＢＢと第２計算仮想時間フラグＦＥＢとを読み出す。同期タイミングＴＤ１における第２計算処理フラグＦＢＢは計算指示フラグＦ１であるため、第２計算処理装置１０Ｂは、第２計算仮想時間ＥＢ分（Δ６分）のシミュレーションを新たに開始する。図５に示すように、このシミュレーションは、同期タイミングＴＤ３までに終了する。
【００８２】
また、同期タイミングＴＤ２における第２計算処理フラグＦＢＢは、計算不実施フラグＦ２である。従って、第２計算処理装置１０Ｂは、同期タイミングＴＤ２においては、シミュレーションを新たに開始しない。なお、同期タイミングＴＤ２において、第２計算処理装置１０Ｂは、同期タイミングＴＤ１で開始したシミュレーションを実行中である。
【００８３】
また、同期タイミングＴＤ３、ＴＤ５における第２計算処理フラグＦＢＢは、計算指示フラグＦ１である。従って、第２計算処理装置１０Ｂは、同期タイミングＴＤ３、ＴＤ５において、第２計算仮想時間ＥＢ分（Δ６分）のシミュレーションを新たに開始する。また、第２計算処理装置１０Ｂは、計算不実施フラグＦ２がセットされている同期タイミングＴＤ４においては、シミュレーションを新たに開始しない。
【００８４】
図５の例では、第３計算処理装置１０Ｃは、同期タイミングＴＤ１における同期信号ＳＤを取得すると、第３計算処理フラグＦＢＣと第３計算仮想時間フラグＦＥＣとを読み出す。同期タイミングＴＤ１における第３計算処理フラグＦＢＣは計算指示フラグＦ１であるため、第３計算処理装置１０Ｃは、第３計算仮想時間ＥＣ分（Δ１２分）のシミュレーションを新たに開始する。図５に示すように、このシミュレーションは、同期タイミングＴＤ５までに終了する。
【００８５】
また、同期タイミングＴＤ２、ＴＤ３、ＴＤ４における第３計算処理フラグＦＢＣは、計算不実施フラグＦ２である。従って、第３計算処理装置１０Ｃは、同期タイミングＴＤ２、ＴＤ３、ＴＤ４においては、シミュレーションを新たに開始しない。なお、同期タイミングＴＤ２、ＴＤ３、ＴＤ４において、第３計算処理装置１０Ｃは、同期タイミングＴＤ１で開始したシミュレーションを実行中である。
【００８６】
また、同期タイミングＴＤ５における第３計算処理フラグＦＢＣは、計算指示フラグＦ１である。従って、第３計算処理装置１０Ｃは、同期タイミングＴＤ５において、第３計算仮想時間ＥＣ分（Δ１２分）のシミュレーションを新たに開始する。
【００８７】
図５の例では、第４計算処理装置１０Ｄは、同期タイミングＴＤ１における同期信号ＳＤを取得すると、第４計算処理フラグＦＢＤと第４計算仮想時間フラグＦＥＤとを読み出す。同期タイミングＴＤ１における第４計算処理フラグＦＢＤは計算指示フラグＦ１であるため、第４計算処理装置１０Ｄは、第４計算仮想時間ＥＤ分（Δ１２分）のシミュレーションを新たに開始する。図５に示すように、このシミュレーションは、同期タイミングＴＤ３までに終了する。
【００８８】
また、同期タイミングＴＤ２、ＴＤ３、ＴＤ４における第４計算処理フラグＦＢＤは、計算不実施フラグＦ２である。従って、第４計算処理装置１０Ｄは、同期タイミングＴＤ２、ＴＤ３、ＴＤ４においては、シミュレーションを新たに開始しない。なお、同期タイミングＴＤ１で開始したシミュレーションは、同期タイミングＴＤ３においては既に終了しているが、第４計算処理装置１０Ｄは、同期タイミングＴＤ３において、シミュレーションを新たに開始しない。
【００８９】
また、同期タイミングＴＤ５における第４計算処理フラグＦＢＤは、計算指示フラグＦ１である。従って、第４計算処理装置１０Ｄは、同期タイミングＴＤ５において、第４計算仮想時間ＥＤ分（Δ１２分）のシミュレーションを新たに開始する。
【００９０】
同期タイミングＴＤ５以降の同期タイミングにおける処理は、同期タイミングＴＤ１からＴＤ４での処理と同じである。すなわち、制御処理装置２０及び各計算処理装置１０は、同期タイミングＴＤ１からＴＤ４までの処理を１サイクルとして繰り返す。言い換えれば、制御処理装置２０及び各計算処理装置１０は、基本周期Ｃ（基本周期タイミングＴＣ１からＴＣ２）を１サイクルとして、この１サイクルでの処理を経時毎に繰り返す。
【００９１】
基本周期Ｃ（基本周期タイミングＴＣ１からＴＣ２）において、第１計算処理装置１０Ａは、シミュレーションを４回実行し、第２計算処理装置１０Ｂは、シミュレーションを２回実行し、第３計算処理装置１０Ｃ及び第４計算処理装置１０Ｄは、シミュレーションを１回実行する。第１計算仮想時間ＥＡ、第２計算仮想時間ＥＢ、第３計算仮想時間ＥＣ、第４計算仮想時間ＥＤは、それぞれΔ３、Δ６、Δ１２、Δ１２であるため、基本周期毎のシミュレーション上の経過時間（基本仮想時間ＣＸ）は、Δ１２となり全ての計算処理装置１０で一致する。
【００９２】
また、以上説明したように、各計算処理装置１０は、計算指示フラグＦ１と同期した同期信号ＳＤに基づき、その計算指示フラグＦ１を読み出してシミュレーションを実行する。そして、各計算処理装置１０は、計算不実施フラグＦ２と同期した同期信号ＳＤに基づき、その計算不実施フラグＦ２を読み出してシミュレーションを実行する。従って、計算指示フラグＦ１と同期した同期信号ＳＤは、各計算処理装置１０にシミュレーションを実行させるための計算指示信号であるということができる。また、計算不実施フラグＦ２と同期した同期信号ＳＤは、各計算処理装置１０にシミュレーションを新たに実行させないための計算不実施信号であるということができる。
【００９３】
以上説明した同期処理のフローを、フローチャートに基づき説明する。図６は、制御処理装置の同期処理を説明するフローチャートである。図７は、各計算処理装置のシミュレーション実行処理を説明するフローチャートである。図６に示すように、制御処理装置２０は、処理を開始した後、同期周期Ｄが経過すると（ステップＳ１０；Ｙｅｓ）、経過時間をリセットし（ステップＳ１２）、フラグをセットする（ステップＳ１４）。制御処理装置２０は、ステップＳ１４において、各計算処理装置１０に対応させて、計算処理フラグＦＢ及び計算仮想時間フラグＦＥをセットする。なお、制御処理装置２０は、同期周期Ｄが経過していない場合（ステップＳ１０；Ｎｏ）、ステップＳ１０に戻り、同期周期Ｄが経過するまで待機する。
【００９４】
フラグをセットした後、制御処理装置２０は、同期信号ＳＤを各計算処理装置１０に出力する（ステップＳ１６）。その後、制御処理装置２０は、ステップＳ１８に進み、処理を終了する場合（ステップＳ１８；Ｙｅｓ）、本処理を終了する。制御処理装置２０は、処理を終了しない場合（ステップＳ１８；Ｎｏ）、ステップＳ１０に戻り、次の同期周期Ｄの経過を待つ。
【００９５】
図７は、図６のステップＳ１６で出力された同期信号ＳＤを受け取った計算処理装置１０の処理を説明するフローチャートである。図７に示すように、計算処理装置１０は、制御処理装置２０から同期信号ＳＤを取得すると（ステップＳ２０）、制御処理装置２０からフラグを読み出す（ステップＳ２１）。ステップＳ２１において、計算処理装置１０は、自身に関連付けてセットされた計算処理フラグＦＢ及び計算仮想時間フラグＦＥを読み出す。計算処理装置１０は、読み出したフラグに計算指示フラグＦ１がある場合（ステップＳ２２；Ｙｅｓ）、制御処理装置２０の計算データ記憶部７４から、シミュレーションに使用する入力データを取得する（ステップＳ２４）。計算処理装置１０は、読み出したフラグに計算指示フラグＦ１がない場合（ステップＳ２２；Ｎｏ）、新たにシミュレーションを実行せず、ステップＳ２０に戻って次の同期信号ＳＤの取得を行う。
【００９６】
計算処理装置１０は、ステップＳ２２で入力データを取得した後、シミュレーションを実行し（ステップＳ２６）、シミュレーション結果である出力データを、制御処理装置２０の計算データ取得部７２に出力する（ステップＳ２８）。その後、計算処理装置１０は、ステップＳ２９に進み、処理を終了する場合（ステップＳ２９；Ｙｅｓ）、本処理を終了する。計算処理装置１０は、処理を終了しない場合（ステップＳ２９；Ｎｏ）、ステップＳ２０に戻り、次の同期信号ＳＤの取得を行う。
【００９７】
制御処理装置２０は、以上説明したように同期処理を行い、各計算処理装置１０のシミュレーション実行処理を制御する。ただし、制御処理装置２０は、計算処理フラグＦＢ及び計算仮想時間フラグＦＥを自身の領域にセットするかわりに、これらの情報を有する信号を、同期周期Ｄ又はそれぞれの処理周期Ｂ毎に、各計算処理装置１０に出力してもよい。
【００９８】
（取り合い同期処理）
次に、制御処理装置２０による各計算処理装置１０の取り合い同期処理について説明する。図８は、取り合い同期処理を説明するためのタイムチャートである。取り合い同期処理とは、取り合いデータを同期させるための処理である。取り合いデータとは、上述のように、計算処理装置１０の出力データのうち、その計算処理装置１０以外の計算処理装置１０の入力データである。本説明においては、第２計算処理装置１０Ｂは、第１計算処理装置１０Ａの取り合いデータ、及び第４計算処理装置１０Ｄの取り合いデータを使用する。また、第３計算処理装置１０Ｃは、第２計算処理装置１０Ｂの取り合いデータを使用する。
【００９９】
制御処理装置２０は、計算データ取得部７２が、各計算処理装置１０の出力データを取得する。計算データ取得部７２は、出力データを計算データ記憶部７４に出力し、計算データ記憶部７４がその出力データを記憶する。また、計算データ取得部７２は、出力データのうち取り合いデータを一時的に保持し、直前タイミングＴＩにおいて、その取り合いデータを計算データ記憶部７４に出力する。従って、計算データ記憶部７４は、直前タイミングＴＩ以降において、取り合いデータを記憶する。すなわち、計算データ取得部７２は、取り合いデータを計算データ記憶部７４に記憶させるタイミングを、直前タイミングＴＩまで遅らせる。
【０１００】
ここで、取り合いデータを算出した計算処理装置１０において、その取り合いデータを算出した処理周期Ｂを取り合い処理周期ＢＸとし、その次の処理周期を次処理周期ＢＸ＋１とする。直前タイミングＴＩは、次処理周期ＢＸ＋１の開始タイミングＴＢの直前の同期タイミングＴＤより後のタイミングであり、かつ、次処理周期ＢＸ＋１の処理周期タイミングＴＢ（次処理周期ＢＸ＋１の開始タイミング）より前のタイミングである。
【０１０１】
図８の例では、第２計算処理装置１０Ｂは、同期タイミングＴＤ２、ＴＤ４での第１計算処理装置１０Ａのシミュレーションの出力データ（取り合いデータ）を、同期タイミングＴＤ３、ＴＤ５での自身のシミュレーションの入力データとして用いている。ここで、第１計算処理装置１０Ａにおける取り合い処理周期ＢＸが、同期タイミングＴＤ２で始まる処理周期ＴＢであり、次処理周期ＢＸ＋１が、同期タイミングＴＤ３で始まる処理周期ＴＢである場合について説明する。この場合、図８に示すように、第１計算処理装置１０Ａの直前タイミングＴＩである第１直前タイミングＴＩＡは、同期タイミングＴＤ３での処理周期ＴＢ（次処理周期ＢＸ＋１）の直前の同期タイミングＴＤ２より後であり、同期タイミングＴＤ３での処理周期ＴＢの開始タイミング（同期タイミングＴＤ３）より前である。
【０１０２】
なお、第１直前タイミングＴＩＡは、同期タイミングＴＤ２でのシミュレーションの出力データを取り合いデータとしているため、同期タイミングＴＤ２でのシミュレーションの出力データの出力のタイミング以降となっている。第１計算処理装置１０Ａにおける取り合い処理周期ＢＸを、同期タイミングＴＤ４での処理周期ＴＢとした場合も、直前タイミングＴＩＡは同様のタイミングとなる。
【０１０３】
また、図８の例では、第２計算処理装置１０Ｂは、同期タイミングＴＤ１での第４計算処理装置１０Ｄのシミュレーションの出力データ（取り合いデータ）を、同期タイミングＴＤ５での自身のシミュレーションの入力データとして用いている。ここで、第４計算処理装置１０Ｄにおける取り合い処理周期ＢＸを、同期タイミングＴＤ１での処理周期ＴＢとし、次処理周期ＢＸ＋１を、同期タイミングＴＤ５での処理周期ＴＢとした場合について説明する。この場合、図８に示すように、第４計算処理装置１０Ｄの第４直前タイミングＴＩＤは、同期タイミングＴＤ５での処理周期ＴＢ（次処理周期ＢＸ＋１）の直前の同期タイミングＴＤ４より後のタイミングであり、同期タイミングＴＤ５での処理周期ＴＢの開始タイミング（同期タイミングＴＤ５）より前である。第２計算処理装置１０Ｂは、同期タイミングＴＤ１での第４計算処理装置１０Ｄのシミュレーションの出力データ（取り合いデータ）を、同期タイミングＴＤ３での自身のシミュレーションの入力データとしては用いていない。
【０１０４】
また、図８の例では、第３計算処理装置１０Ｃは、同期タイミングＴＤ３での第２計算処理装置１０Ｂのシミュレーションの出力データ（取り合いデータ）を、同期タイミングＴＤ５での自身のシミュレーションの入力データとして用いている。ここで、第２計算処理装置１０Ｂにおける取り合い処理周期ＢＸを、同期タイミングＴＤ３での処理周期ＴＢとし、次処理周期ＢＸ＋１を、同期タイミングＴＤ５での処理周期ＴＢとした場合について説明する。この場合、図８に示すように、第２計算処理装置１０Ｂの第２直前タイミングＴＩＢは、同期タイミングＴＤ５での処理周期ＴＢ（次処理周期ＢＸ＋１）の直前の同期タイミングＴＤ４より後のタイミングであり、同期タイミングＴＤ５での処理周期ＴＢの開始タイミング（同期タイミングＴＤ５）より前のタイミングである。
【０１０５】
計算データ取得部７２は、以上説明したような直前タイミングＴＩまで取り合いデータを保持し、直前タイミングＴＩにおいて、計算データ記憶部７４に出力する。これにより、制御処理装置２０は、各計算処理装置１０がデータの取り合いを行う場合に、取り合いデータの同期を適切に行うことができる。例えば、計算データ取得部７２が取り合いデータを直前タイミングＴＩまで保持せず、すぐに計算データ記憶部７４に出力した場合、計算処理装置１０は、同期の取れていない取り合いデータに基づき、シミュレーションを行うおそれがある。この場合、シミュレーションの精度が低下する。
【０１０６】
例えば、同期タイミングＴＤ１で行った第４計算処理装置１０Ｄのシミュレーションの出力データ（取り合いデータ）は、同期タイミングＴＤ３よりも前に算出され、計算データ取得部７２に出力される。この場合、計算データ取得部７２が第４直前タイミングＴＩＤまで保持しなかった場合、計算データ記憶部７４は、同期タイミングＴＤ３より前にこの取り合いデータを記憶する。その取り合いデータを使用する第２計算処理装置１０Ｂは、同期タイミングＴＤ３で行うシミュレーションに、この取り合いデータを読み出して使用するおそれがある。この取り合いデータは、同期タイミングＴＤ１で行った第４計算処理装置１０Ｄの出力データであり、シミュレーション上でΔ１２分（第４計算仮想時間ＥＤ分）計算したデータ、すなわちΔ１２分経過したデータである。しかし、第２計算処理装置１０Ｂが同期タイミングＴＤ３で行うシミュレーションは、Δ６（第３計算仮想時間ＥＣ）の直後から行う計算である。従って、この場合、第２計算処理装置１０Ｂが同期タイミングＴＤ３で行うシミュレーションは、シミュレーション上での異なる時刻におけるデータを使用することとなり、シミュレーションの精度が低下する。
【０１０７】
しかし、同期タイミングＴＤ１で行った第４計算処理装置１０Ｄのシミュレーションの出力データ（取り合いデータ）は、第４直前タイミングＴＩＤ、すなわち同期タイミングＴＤ３よりも後まで保持される。この場合、第２計算処理装置１０Ｂは、上述のように同期タイミングＴＤ５での計算において、同期タイミングＴＤ１で行った第４計算処理装置１０Ｄの取り合いデータを使用する。同期タイミングＴＤ５での第２計算処理装置１０Ｂのシミュレーションは、Δ１２（第３計算仮想時間ＥＣの２回分）の直後から行う計算である。そのため、このシミュレーションは、シミュレーション上での同じ時刻におけるデータを使用することになる。このように、本実施形態における第２計算処理装置１０Ｂは、シミュレーション上での異なる時刻におけるデータを使用することがなく、シミュレーションの精度低下を抑制することができる。
【０１０８】
なお、直前タイミングＴＩは、上述で説明したタイミングに限られない。ここで、取り合いデータを出力する側の計算処理装置１０の次処理周期ＢＸ＋１の直前における、取り合いデータを使用する側の計算処理装置１０の処理周期Ｂを、相手側処理周期ＢＹとする。直前タイミングＴＩは、相手側処理周期ＢＹの処理周期タイミングＴＢ（相手側処理周期ＢＹの開始タイミング）より後のタイミングであって、次処理周期ＢＸ＋１の処理周期タイミングＴＢ（次処理周期ＢＸ＋１の開始タイミング）より前のタイミングであればよい。例えば、図８の例での第４直前タイミングＴＩＤにおいて、取り合いデータを使用する相手側の計算処理装置１０は、第２計算処理装置１０Ｂであり、相手側処理周期ＢＹは、同期タイミングＴＤ３での処理周期Ｂである。この場合、第４直前タイミングＴＩＤは、同期タイミングＴＤ３（相手側処理周期ＢＹの開始タイミング）より後のタイミングであって、次処理周期ＢＸ＋１である同期タイミングＴＤ５での処理周期ＴＢの開始タイミング（同期タイミングＴＤ５）より前である。
【０１０９】
以上説明した取り合い同期処理のフローを、フローチャートに基づき説明する。図９は、制御処理装置の取り合い同期処理を説明するフローチャートである。図９に示すように、制御処理装置２０は、計算データ取得部７２が、取り合いデータを取得した後（ステップＳ３０）、その取り合いデータを出力した計算処理装置１０に対する直前タイミングＴＩに到達したかを判断する（ステップＳ３２）。直前タイミングＴＩに到達していない場合（ステップＳ３２；Ｎｏ）、計算データ取得部７２は、ステップＳ３２に戻り、直前タイミングＴＩに到達するまで、取得した取り合いデータを保持する。直前タイミングＴＩに到達した場合（ステップＳ３２；Ｙｅｓ）、計算データ取得部７２は、取得した取り合いデータを、計算データ記憶部７４に出力する（ステップＳ３４）。計算データ記憶部３４は、その取得した取り合いデータを記憶する。その取り合いデータを使用する計算処理装置１０は、計算データ記憶部７４が記憶した取り合いデータを、自身の入力データとして読み出す。制御処理装置２０は、ステップＳ３４の後、ステップＳ３６に進み、処理が終了していない場合（ステップＳ３６；Ｎｏ）は、ステップＳ３０に戻り処理を継続し、処理が終了する場合（ステップＳ３６；Ｙｅｓ）、これらの処理を終了する。
【０１１０】
制御処理装置２０は、以上説明したように取り合い同期処理を行い、各計算処理装置１０の取り合いデータの取得タイミングを制御する。なお、計算データ取得部７２は、出力データが取り合いデータであるかを判断し、取り合いデータのみを直前タイミングＴＩまで保持しているが、これに限られず、取得した出力データを全て直前タイミングＴＩまで保持してもよい。
【０１１１】
（要求データ同期処理）
次に、制御処理装置２０による各計算処理装置１０の要求データ同期処理について説明する。図１０は、要求データ同期処理を説明するためのタイムチャートである。要求データ同期処理とは、変更要求データに示された操作者からのシミュレーション動作の変更要求を、各計算処理装置１０に同期して反映する処理である。
【０１１２】
インストラクタ操作装置３０に入力された操作情報は、変更要求データ取得部４８に入力される。変更要求データ取得部４８は、その操作情報がシミュレーション動作の変更要求の情報である変更要求データである場合であって、ＲＵＮ操作又はＦＲＥＥＺＥ操作である場合、その変更要求データを操作フラグセット部６８に出力する。
【０１１３】
操作フラグセット部６８は、その変更要求データに基づき、基本周期Ｃに同期させて、操作フラグＦＧをセットする。より詳しくは、操作フラグセット部６８は、その変更要求データを取得した直後の基本周期Ｃの開始タイミング（直後の基本周期タイミングＴＣ）において、その変更要求データを反映した操作フラグＦＧをセットする。操作フラグセット部６８は、その変更要求データがＲＵＮ操作に変更する内容である場合、基本周期Ｃに同期させて、操作実行フラグＦＧ１をセットする。操作フラグセット部６８は、その変更要求データがＦＲＥＥＺＥ操作に変更する内容である場合、基本周期Ｃに同期させて、操作停止フラグＦＧ２をセットする。各計算処理装置１０は、その操作フラグＦＧをセットしたタイミングに同期した同期タイミングＴＤの同期信号ＳＤを取得すると、その操作フラグＦＧを読み出す。各計算処理装置１０は、読み出した操作フラグＦＧが操作実行フラグＦＧ１である場合、その同期タイミングＴＤから、新たにシミュレーションを開始する。また、各計算処理装置１０は、読み出した操作フラグＦＧが操作停止フラグＦＧ２である場合、その同期タイミングＴＤ以降、シミュレーションを実行しない。なお、この操作フラグＦＧは、全ての計算処理装置１０に共通するフラグであるが、個別に異なる種類のフラグをセットするものであってもよい。
【０１１４】
図１０の例では、基本周期タイミングＴＣ１の直前の基本周期Ｃにおいて、各計算処理装置１０のシミュレーションは、実行されておらず、その基本周期タイミングＴＣ１の直前の基本周期Ｃにおいて、ＲＵＮ操作に変更する変更要求データＲＵが入力された場合を示している。変更要求データ取得部４８は、その変更要求データＲＵを操作フラグセット部６８に出力する。操作フラグセット部６８は、その直後の基本周期Ｃの開始タイミングである同期タイミングＴＤ１において、操作実行フラグＦＧ１をセットする。
【０１１５】
また、制御処理装置２０は、基本周期タイミングＴＣ１と同期されている同期タイミングＴＤ１において、同期信号ＳＤを出力する。各計算処理装置１０は、この同期信号ＳＤを取得すると、操作フラグセット部６８にセットされた操作フラグＦＧを読み出す。同期タイミングＴＤ１における操作フラグＦＧは、操作実行フラグＦＧ１であるため、各計算処理装置１０は、同期タイミングＴＤ１からシミュレーション処理を開始する。
【０１１６】
さらに、図１０の例では、同期タイミングＴＤ３と同期タイミングＴＤ４の間のタイミングで、ＦＲＥＥＺＥ操作に変更する変更要求データＦＲが入力されている。変更要求データ取得部４８は、その変更要求データＦＲを操作フラグセット部６８に出力する。操作フラグセット部６８は、その直後の基本周期Ｃの開始タイミングである同期タイミングＴＤ５において、操作停止フラグＦＧ２をセットする。基本周期タイミングＴＣ１の基本周期Ｃにおいては、変更要求データＦＲが入力された後の同期タイミングＴＤ４においても、操作実行フラグＦＧ１がセットされたままである。従って、各計算処理装置１０は、基本周期タイミングＴＣ１の基本周期Ｃにおいては、シミュレーションを停止しない。各計算処理装置１０は、操作停止フラグＦＧ２がセットされた同期タイミングＴＤ５の同期信号ＳＤにより、操作停止フラグＦＧ２を読み出し、同期タイミングＴＤ５以降から、シミュレーションを停止する。
【０１１７】
このように、操作フラグセット部６８は、変更要求データを取得した直後の基本周期Ｃの開始タイミングにおいて、その変更要求データ中の情報を示す操作実行フラグＦＧ１をセットする。これにより、制御処理装置２０は、操作者による変更要求を、各計算処理装置１０に同期させて反映することができる。例えば、変更要求データを、直後の基本周期Ｃの開始タイミングまで待たずにセットした場合、計算処理装置１０毎に、シミュレーション上での経過時間が異なってしまうおそれがある。この場合、各シミュレーションの整合が取れずに、シミュレーションの精度が低下する。
【０１１８】
例えば、図１０の例において、同期タイミングＴＤ３と同期タイミングＴＤ４の間のタイミングで入力された変更要求データＦＲをすぐに反映して、例えば同期タイミングＴＤ４において操作停止フラグＦＧ２をセットした場合を考える。この場合、第１計算処理装置１０Ａは、同期タイミングＴＤ１からＴＤ３まで、３回シミュレーションを実行した後に、シミュレーションを停止させる。この場合、第１計算処理装置１０Ａにおける停止までのシミュレーション上の経過時間は、Δ３を３回分でΔ９となる。一方、第２計算処理装置１０Ｂは、同期タイミングＴＤ１とＴＤ３とで２回シミュレーションを実行した後にシミュレーションを停止させる。そして、第３計算処理装置１０Ｃ、第４計算処理装置１０Ｄは、同期タイミングＴＤ１で１回シミュレーションを実行した後にシミュレーションを停止させる。この場合、第２計算処理装置１０Ｂ、第３計算処理装置１０Ｂ、第４計算処理装置１０Ｄにおける停止までのシミュレーション上の経過時間は、Δ１２となる。従って、第１計算処理装置１０Ａと他の計算処理装置１０とのシミュレーション上の経過時間が異なってしまう。例えばこの場合、シミュレーションを再開した場合に、シミュレーション上の時刻が異なってしまう。
【０１１９】
一方、本実施形態においては、同期タイミングＴＤ３と同期タイミングＴＤ４の間のタイミングで入力された変更要求データＦＲを、同期タイミングＴＤ５において反映する。すなわち、計算処理装置１０は、シミュレーション上の経過時間における同じタイミングで、要求された変更処理を実行する。従って、シミュレーション停止までの各計算処理装置１０のシミュレーション上の経過時間は、同じとなる。
【０１２０】
また、以上説明したように、各計算処理装置１０は、操作実行フラグＦＧ１と同期した同期信号ＳＤに基づき、その操作実行フラグＦＧ１を読み出して新たにシミュレーションを実行する。そして、各計算処理装置１０は、操作停止フラグＦＧ２と同期した同期信号ＳＤに基づき、その操作停止フラグＦＧ２を読み出してシミュレーションを停止する。従って、操作フラグＦＧと同期した同期信号ＳＤは、各計算処理システムに変更要求データの情報を示す変更要求信号であるということができる。
【０１２１】
以上説明した要求データ同期処理のフローを、フローチャートで説明する。図１１は、制御処理装置の要求データ同期処理を説明するフローチャートである。図１２は、各計算処理装置のシミュレーション実行処理を説明するフローチャートである。図１１に示すように、制御処理装置２０は、変更要求データ取得部４８が、変更要求情報を取得すると（ステップＳ４０）、変更要求情報を取得した旨の情報を、インストラクタ操作装置３０に出力し（ステップＳ４２）、取得した変更要求情報を、操作フラグセット部６８に出力する（ステップＳ４３）。
【０１２２】
基本周期Ｃが経過したら（ステップＳ４４；Ｙｅｓ）、制御処理装置２０は、操作フラグセット部６８が、操作フラグＦＧを自身の領域にセットする（ステップＳ４６）。具体的には、操作フラグセット部６８は、変更要求情報が入力された直後の基本周期タイミングＴＣにおいて、操作フラグＦＧをセットする。基本周期が経過していない場合（ステップＳ４４；Ｎｏ）、制御処理装置２０は、ステップＳ４４に戻り、基本周期経過まで待機する。制御処理装置２０は、操作フラグＦＧをセットした後、同期信号ＳＤを各計算処理装置１０に出力する（ステップＳ４８）。その後、制御処理装置２０は、ステップＳ４９に進み、処理を終了する場合（ステップＳ４９；Ｙｅｓ）、本処理を終了する。制御処理装置２０は、処理を終了しない場合（ステップＳ４９；Ｎｏ）、ステップＳ４０に戻り変更処理要求を待つ。
【０１２３】
図１２は、図１１のステップＳ４８で出力された同期信号ＳＤを受け取った計算処理装置１０の処理を説明するフローチャートである。図１２に示すように、計算処理装置１０は、制御処理装置２０から同期信号ＳＤを取得すると（ステップＳ５０）、制御処理装置２０から操作フラグＦＧを読み出し、操作フラグＦＧに変化があるかを判断する（ステップ５２）。計算処理装置１０は、操作フラグＦＧに変化があって（ステップＳ５２；Ｙｅｓ）、かつ、その変化した操作フラグＦＧが操作停止フラグＦＧ２である場合（ステップＳ５４；Ｙｅｓ）、その後のシミュレーションを停止させる（ステップＳ５６）。また、計算処理装置１０は、操作フラグＦＧに変化があって（ステップＳ５２；Ｙｅｓ）、かつ、その変化した操作フラグＦＧが操作停止フラグＦＧ２でない、すなわち操作実施フラグＦＧ１への変更である場合（ステップＳ５４；Ｎｏ）、次のシミュレーションを実行する（ステップＳ５８）。
【０１２４】
また、計算処理装置１０は、操作フラグＦＧに変化がなく（ステップＳ５２；Ｎｏ）、現在の操作フラグＦＧが操作実行フラグＦＧ１である場合（ステップＳ５３；Ｙｅｓ）、次のシミュレーションを続けて実行する（ステップＳ５８）。また、計算処理装置１０は、操作フラグＦＧに変化がなく（ステップＳ５２；Ｎｏ）、現在の操作フラグＦＧが操作実行フラグＦＧ１でない、すなわち操作停止フラグＦＧ２である場合（ステップＳ５３；Ｎｏ）、新たにシミュレーションを開始せずに、ステップＳ５０に戻って次の同期信号ＳＤの取得を待つ。
【０１２５】
計算処理装置１０は、ステップＳ５６、Ｓ５８の後にステップＳ５９に進み、処理を終了する場合（ステップＳ５９；Ｙｅｓ）、本処理を終了する。計算処理装置１０は、処理を終了しない場合（ステップＳ５９；Ｎｏ）、ステップＳ５０に戻り、次の同期信号ＳＤの取得を行う。
【０１２６】
以上説明した分散シミュレーションシステム１は、１つの計算周期での計算時間Ａが互いに異なるシミュレーションを経時毎に実行する複数の計算処理装置１０と、複数の計算処理装置１０と通信可能に接続される制御処理装置２０と、を有する。制御処理装置２０は、処理周期設定部５２と、仮想時間設定部５８と、計算指示部４４と、を有する。処理周期設定部５２は、計算処理装置１０がシミュレーションを１回実行する周期である処理周期Ｂを、計算処理装置１０毎に設定する。仮想時間設定部５８は、１回のシミュレーション内での経過時間である計算仮想時間Ｅを、計算処理装置１０毎に、処理周期Ｂの長さ同士の関係比と同じ関係比となるように設定する。計算指示部４４は、計算処理装置１０のそれぞれに、その計算処理装置１０に設定された処理周期Ｂ毎の各タイミングにおいて計算指示信号（計算指示フラグＦ１に同期した同期信号ＳＤ）を送信して、計算処理装置１０のそれぞれに、自身に設定された処理周期Ｂ毎に、設定された計算仮想時間Ｅ分のシミュレーションを実行させる。そして、少なくとも一部の計算処理装置１０の処理周期Ｂは、他の計算処理装置１０の処理周期Ｂと異なる。
【０１２７】
分散シミュレーションシステム１は、シミュレーションを実行する上での計算時間Ａが互いに異なる複数の計算処理装置１０にシミュレーションを実行させる。制御処理装置２０は、そのような計算処理装置１０に合わせて、それぞれ異なる長さの処理周期Ｂを設定する。さらに、制御処理装置２０は、処理周期Ｂの長さの比にと同じ関係となるように、１回のシミュレーション上での仮想の経過時間である計算仮想時間Ｅを設定する。
【０１２８】
処理周期Ｂが異なる計算処理装置１０を同じ時間だけ作動させると、シミュレーションの実行回数がそれぞれ異なる場合がある。ここで計算仮想時間Ｅと処理周期Ｂとの整合が取れていない場合、同じ時間だけ計算処理装置１０を作動させた際に、計算処理装置１０毎のシミュレーション上での経過時間の同期がとれない場合がある。例えば計算仮想時間Ｅが計算処理装置１０毎に同じである場合、処理周期Ｂが短い（シミュレーションの実行回数が多い）計算処理装置１０のシミュレーションの方が、シミュレーション上での経過時間が先に進んでしまう。このような場合、シミュレーションの精度が低下する。しかし、本実施形態においては、計算仮想時間Ｅを、処理周期Ｂの長さの比にと同じ関係となるように設定する。そのため、同じ時間だけ処理装置１０を作動させた際に、計算処理装置１０毎のシミュレーション上での経過時間も同じとなる。このように、本実施形態に係る分散シミュレーションシステム１は、各計算処理装置１０のシミュレーション毎の同期を適切にとることができる。
【０１２９】
また、計算指示部４４は、処理周期Ｂ毎の各タイミングにおいて計算指示信号を送信することにより、基本周期における複数の計算処理装置１０のシミュレーション実行回数を、互いに異ならせる。この分散シミュレーションシステム１は、基本周期におけるシミュレーションの実行回数を互いに異ならせることにより、シミュレーションの種類及びその計算処理装置１０のスペックに合わせてシミュレーションの処理回数を設定することができる。そのため、この分散シミュレーションシステム１は、シミュレーションの精度を向上させることができる。
【０１３０】
また、制御処理装置２０は、計算データ取得部７２と、計算データ記憶部７４とを有する。計算データ取得部７２は、他の計算処理システムの入力データとして使用する出力データである取り合いデータを取得する。計算データ記憶部７４は、計算データ取得部７２が取得した取り合いデータを記憶する。複数の計算処理装置１０は、少なくとも一部が、計算データ記憶部７４に記憶された取り合いデータを取得して、取り合いデータに基づきシミュレーションを実行する。この分散シミュレーションシステム１は、計算処理装置１０が互いのシミュレーションの結果を利用し合う場合において、制御処理装置２０の共通する領域（計算データ取得部７２と計算データ記憶部７４）で、取り合いデータを記憶する。従って、この分散シミュレーションシステム１は、取り合いデータを適切に計算処理装置１０に提供することができる。
【０１３１】
また、計算データ取得部７２は、取得した取り合いデータを保持し、直前タイミングＴＩにおいて、取り合いデータを計算データ記憶部７４に出力する。取り合いデータを算出した以外の計算処理装置１０は、少なくとも一部が、直前タイミングＴＩの直後の処理周期Ｂにおけるシミュレーションを行う際に、直前タイミングＴＩで記憶された取り合いデータを取得し、その取り合いデータに基づきシミュレーションを実行する。直前タイミングＴＩは、取り合いデータを算出した処理周期Ｂの次の処理周期Ｂの開始直前のタイミングである。この計算データ取得部７２は、取り合いデータを直前タイミングＴＩまで保持するため、計算処理装置１０は、直前タイミングＴＩ以降に、その取り合いデータを読み出す。従って、この分散シミュレーションシステム１は、計算処理装置１０が互いのシミュレーションの結果を利用し合う場合において、取り合いデータの取得についても同期を取ることが可能となる。
【０１３２】
また、制御処理装置２０は、さらに、操作者によるシミュレーション動作の変更要求の情報である変更要求データを取得する変更要求データ取得部４８を有する。計算指示部４４は、変更要求データが取得されたタイミングの直後の基本周期Ｃの開始タイミングにおいて、計算処理装置１０に変更要求データの情報を示す変更要求信号（操作フラグＦＧと同期した同期信号ＳＤ）を送信する。これにより、計算指示部４４は、計算処理装置１０に対する変更要求信号中の変更処理の反映のタイミングを、他の計算処理装置１０に同期させる。この制御処理装置２０は、操作者による変更要求を、各計算処理装置１０に同期させて反映するため、各シミュレーションの整合を取って、シミュレーションの精度低下を抑制する。
【０１３３】
また、制御処理装置２０は、それぞれの処理周期Ｂの長さの最小公倍数の長さの周期となるように、基本周期Ｃを設定する。制御処理装置２０は、基本周期Ｃが処理周期Ｂの長さの最小公倍数とすることで、基本周期Ｃをできるだけ短く設定することができる。これにより、例えば、変更処理の反映のタイミングを、同期を取りながらできるだけ早く行うことができる。
【０１３４】
また、計算処理装置１０は、それぞれ少なくとも１つのシミュレーションを実行する複数の装置である。計算処理装置１０が複数の装置からなる場合、多種のシミュレーションを実行することができる。一方、このような場合、それぞれ異なるＣＰＵを有することになるため、計算時間Ａを統一することが困難となる。このような場合においても、制御処理装置２０は、各計算処理装置１０のシミュレーション毎の同期を適切にとることができる。
【０１３５】
また、計算処理装置１０は、複数のシミュレーションを実行する一つの装置であってもよい。計算処理装置１０が一つの装置からなる場合、各シミュレーションの制御が容易となる。このような場合でも、制御処理装置２０は、シミュレーション毎の同期を適切にとることができる。
【０１３６】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態に係る分散シミュレーションシステム１ａは、シミュレーションの速度を変更可能な点で、第１実施形態とは異なる。第２実施形態において、第１実施形態と構成が共通する点は、説明を省略する。
【０１３７】
図１３は、第２実施形態に係る制御処理装置の構成を示すブロック図である。図１３に示すように、第２実施形態に係る分散シミュレーションシステム１ａが有する制御処理装置２０ａは、計算指示部４４ａと、変更要求データ取得部４８ａとを有する。計算指示部４４ａは、操作フラグセット部６８ａが、操作フラグＦＧに加え、速度フラグＦＨをセットする点で、第１実施形態とは異なる。
【０１３８】
操作フラグセット部６８ａは、操作フラグＦＧと同タイミングで、すなわち、基本周期Ｃに同期させて、自身の書き込み可能領域内に速度フラグＦＨをセットする。操作フラグセット部６８ａは、各計算処理装置１０の全てに共通する速度フラグＦＨをセットする。速度フラグＦＨは、インストラクタ操作装置３０に入力された操作者（インストラクタ）からの操作情報に基づいてセットされるフラグである。インストラクタ操作装置３０に入力された操作情報は、変更要求データ取得部４８ａに入力される。変更要求データ取得部４８ａは、その操作情報がシミュレーション動作の変更要求の情報である変更要求データである場合であって、速度変更操作の要求である場合、その変更要求データを操作フラグセット部６８ａに出力する。操作フラグセット部６８ａは、その速度変更の変更要求データに基づき、速度フラグＦＨをセットする。操作フラグセット部６８ａは、速度変更の変更要求データが入力されたタイミングの直後の基本周期Ｃの開始タイミングで、速度フラグＦＨをセットする。制御処理装置２０は、速度フラグＦＨが変化した場合に、速度変更処理を実行する。
【０１３９】
速度変更操作とは、シミュレーションの速度を変更する指示である。シミュレーションの速度を変更させる場合、制御処理装置２０は、基本仮想時間ＣＸを変更する速度変更処理を行う。基本仮想時間ＣＸが長くなると、同じ時間だけ計算処理装置１０を作動させた場合におけるシミュレーション上の経過時間が長くなるため、シミュレーションの速度が上がっているということができる。逆に、基本仮想時間ＣＸが短くなると、同じ時間だけ計算処理装置１０を作動させた場合におけるシミュレーション上の経過時間が短くなるため、シミュレーションの速度が下がっているということができる。
【０１４０】
制御処理装置２０は、速度変更処理として、速度変更の変更要求データを取得した直後の基本周期Ｃにおいて、セットする計算指示フラグＦ１の数、又は計算仮想時間フラグＦＥ中での計算仮想時間Ｅの長さの少なくともいずれか一方を変化させる。基本周期Ｃ内でセットする計算指示フラグＦ１の数が変化すると、シミュレーションの実施回数が変化するため、基本周期Ｃでのトータルの仮想経過時間である基本仮想時間ＣＸが変化する。また、計算仮想時間Ｅの長さが変化すると、トータルの基本仮想時間ＣＸが変化する。以下、より具体的に説明する。
【０１４１】
図１４は、速度変更処理を説明するためのタイムチャートである。図１４は、速度変更の変更要求データとして、速度を２倍とする指示が、基本周期タイミングＴＣ１の直前の基本周期Ｃで入力された例を示している。この場合、操作フラグセット部６８ａは、変更要求データが入力された直後の基本周期Ｃの開始タイミングである同期タイミングＴＤ１に同期して、速度フラグＦＨ２をセットする。速度フラグＦＨ２は、速度を２倍にする内容のフラグである。
【０１４２】
図１４の例での速度変更処理は、第１計算処理装置１０Ａ、第２計算処理装置１０Ｂ、第３計算処理装置１０Ｃについて、計算仮想時間Ｅの長さを変更し、第４計算処理装置１０Ｄについて、基本周期Ｃ内でセットする計算指示フラグＦ１の数を変更する。計算仮想時間フラグセット部６６は、速度フラグＦＨ２がセットされている場合、同じ基本周期Ｃにおける同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４における第１計算仮想時間ＥＡを、従来の２倍のΔ６とする。同様に、計算仮想時間フラグセット部６６は、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４における第２計算仮想時間ＥＢを、従来の２倍のΔ１２とする。同様に、計算仮想時間フラグセット部６６は、同期タイミングＴＤ１、ＴＤ２、ＴＤ３、ＴＤ４における第３計算仮想時間ＥＣを、従来の２倍のΔ２４とする。
【０１４３】
一方、計算処理フラグセット部６４は、速度フラグＦＨ２がセットされている場合、その基本周期Ｃにおける計算指示フラグＦ１の数を２倍にする。具体的には、計算処理フラグセット部６４は、同期タイミングＴＤ３における第４計算処理フラグＦＢＤを、計算不実施フラグＦ２から計算指示フラグＦ１に変更する。計算処理フラグセット部６４は、シミュレーションが実施されていないタイミングであれば、同期タイミングＴＤ３以外の同期タイミングの第４計算処理フラグＦＢＤを、計算指示フラグＦ１に変更してもよい。
【０１４４】
このような速度変更処理を行うことで、図１４に示すように、第１計算処理装置１０Ａは、計算仮想時間Δ６のシミュレーションを４回実行し、第２計算処理装置１０Ｂは、計算仮想時間Δ１２のシミュレーションを２回実行し、第３計算処理装置１０Ｃは、計算仮想時間Δ２４のシミュレーションを１回実行し、第４計算処理装置１０Ｄは、計算仮想時間Δ１２のシミュレーションを２回実行するようになる。従って、全ての計算処理装置１０の基本仮想時間ＣＸが、従来の２倍のΔ２４となる。
【０１４５】
また、図１４の例では、基本周期タイミングＴＣ１の基本周期Ｃであって、同期タイミングＴＤ３と同期タイミングＴＤ４の間のタイミングで、速度を１倍に戻す変更要求データが入力されている。この場合、操作フラグセット部６８ａは、変更要求データが入力された直後の基本周期Ｃの開始タイミングである同期タイミングＴＤ５に同期して、速度フラグＦＨ１をセットする。速度フラグＦＨ１は、速度を１倍にする内容のフラグである。同期タイミングＴＤ５の基本周期Ｃにおいて、計算処理フラグセット部６４と計算仮想時間フラグセット部６６とは、計算処理フラグＦＢ及び計算仮想時間フラグＦＥを、元に戻す。
【０１４６】
以上のように、計算指示部４４は、変更要求データとして速度変更要求が入力された場合にも、その変更要求データが取得されたタイミングの直後の基本周期Ｃの開始タイミングにおいて、計算処理装置１０に変更要求データの情報を示す変更要求信号（速度フラグＦＨと同期した同期信号ＳＤ）を送信する。これにより、計算指示部４４は、計算処理装置１０に対する変更要求信号中の変更処理の反映のタイミングを、他の計算処理装置１０に同期させる。この制御処理装置２０は、操作者による変更要求を、各計算処理装置１０に同期させて反映するため、各シミュレーションの整合を取って、シミュレーションの精度低下を抑制する。
【０１４７】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【０１４８】
１  分散シミュレーションシステム
１０  計算処理装置
１０Ａ  第１計算処理装置
１０Ｂ  第２計算処理装置
１０Ｃ  第３計算処理装置
１０Ｄ  第４計算処理装置
２０  制御処理装置
３０  インストラクタ操作装置
４４  計算指示部
５２  処理周期設定部
５４  基本周期設定部
５６  同期周期設定部
５８  仮想時間設定部
６２  同期信号設定部
６４  計算処理フラグセット部
６６  計算仮想時間フラグセット部
６８  操作フラグセット部
７２  計算データ取得部
７４  計算データ記憶部
Ａ  計算時間
Ｂ  処理周期
Ｃ  基本周期
Ｄ  同期周期
Ｅ  計算仮想時間
ＴＡ  クロックタイミング
ＴＢ  処理周期タイミング
ＴＣ  基本周期タイミング
ＴＤ  同期タイミング
【図１】
0006568746.tif 000002
【図２】
0006568746.tif 000003
【図３】
0006568746.tif 000004
【図４】
0006568746.tif 000005
【図５】
0006568746.tif 000006
【図６】
0006568746.tif 000007
【図７】
0006568746.tif 000008
【図８】
0006568746.tif 000009
【図９】
0006568746.tif 000010
【図１０】
0006568746.tif 000011
【図１１】
0006568746.tif 000012
【図１２】
0006568746.tif 000013
【図１３】
0006568746.tif 000014
【図１４】
0006568746.tif 000015