(57)【要約】【課題】模擬動作に要する時間を短くするためのシミュレーションシステムの構成を決定する構成決定装置を提供する。【解決手段】シミュレーションシステムは、複数のシミュレータと、複数のシミュレータ間の連携処理を行う連携手段と、を含み、ネットワークを介して相互に接続された複数のコンピュータで構成され、構成決定装置は、複数のシミュレータそれぞれについて、連携処理において連携手段との情報の送受信に伴う処理に要する第１処理時間を示す情報と、連携処理において連携手段とネットワークを介した通信に要する第２処理時間を示す情報と、を含む判断基準情報を格納する格納手段と、複数のシミュレータ及び連携手段を複数のコンピュータの何れに実現するかを判断基準情報に基づき判断する判断手段と、を備えている。【選択図】図１
2018041271.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して相互に接続された複数のコンピュータで構成されるシミュレーションシステムの構成決定装置であって、
前記シミュレーションシステムは、複数のシミュレータと、前記複数のシミュレータ間の連携処理を行う連携手段と、を含み、
前記構成決定装置は、
前記複数のシミュレータそれぞれについて、前記連携処理において前記連携手段との情報の送受信に伴う処理に要する第１処理時間を示す情報と、前記連携処理において前記連携手段と前記ネットワークを介した通信に要する第２処理時間を示す情報と、を含む判断基準情報を格納する格納手段と、
前記複数のシミュレータ及び前記連携手段を前記複数のコンピュータの何れに実現するかを前記判断基準情報に基づき判断する判断手段と、
を備えていることを特徴とする構成決定装置。
【請求項２】
前記判断手段は、前記複数のシミュレータ及び前記連携手段の前記複数のコンピュータへの割り当ての組み合わせそれぞれについて、前記連携処理を行うのに必要な時間を前記判断基準情報に基づき判定し、前記連携処理を行うのに必要な時間の最も小さい組み合わせにより、前記複数のシミュレータ及び前記連携手段を前記複数のコンピュータの何れに実現するかを判断することを特徴とする請求項１に記載の構成決定装置。
【請求項３】
前記複数のコンピュータそれぞれの負荷情報を取得する取得手段をさらに備えており、
前記判断手段は、前記連携処理を行うのに必要な時間の最も小さい組み合わせが複数ある場合、前記負荷情報に基づき、前記連携処理を行うのに必要な時間の最も小さい複数の組み合わせから１つの組み合わせを選択し、選択した組み合せにより、前記複数のシミュレータ及び前記連携手段を前記複数のコンピュータの何れに実現するかを判断することを特徴とする請求項２に記載の構成決定装置。
【請求項４】
前記負荷情報は、コンピュータのプロセッサ又は主記憶装置の負荷情報であることを特徴とする請求項３に記載の構成決定装置。
【請求項５】
前記負荷情報は、コンピュータのプロセッサの使用率、主記憶装置の使用率、主記憶装置の使用量、又は、主記憶装置の空き容量を含むことを特徴とする請求項３に記載の構成決定装置。
【請求項６】
前記判断手段は、前記複数のコンピュータの内、前記連携手段を実現するコンピュータについては、当該コンピュータに実現するシミュレータそれぞれの前記第１処理時間の合計値を求め、前記複数のコンピュータの内、前記連携手段を実現しないコンピュータについては、当該コンピュータに実現するシミュレータそれぞれの前記第１処理時間及び前記第２処理時間の合計値を求め、前記複数のコンピュータそれぞれの合計値の最も大きい合計値を、前記連携処理を行うのに必要な時間とすることを特徴とする請求項２から５のいずれか１項に記載の構成決定装置。
【請求項７】
前記連携処理は、前記複数のシミュレータ間のシミュレーション上の時刻を同期させる時刻同期処理であることを特徴とする請求項１から６のいずれか１項に記載の構成決定装置。
【請求項８】
前記判断基準情報は、前記複数のシミュレータのシミュレータを単位として前記第１処理時間及び前記第２処理時間を示すことを特徴とする請求項１から７のいずれか１項に記載の構成決定装置。
【請求項９】
前記判断基準情報は、前記複数のシミュレータそれぞれについて、シミュレータに含まれる１つ以上の模擬対象を単位として前記第１処理時間及び前記第２処理時間を示すことを特徴とする請求項１から７のいずれか１項に記載の構成決定装置。
【請求項１０】
前記構成決定装置は、前記複数のコンピュータとは異なるコンピュータに構成されることを特徴とする請求項１から９のいずれか１項に記載の構成決定装置。
【請求項１１】
前記構成決定装置は、前記複数のコンピュータのいずれかのコンピュータに構成されることを特徴とする請求項１から９のいずれか１項に記載の構成決定装置。
【請求項１２】
前記判断手段の判断結果に従い、前記複数のコンピュータにプログラムを実行させることで、前記複数のコンピュータにより前記シミュレーションシステムを構築する構築手段をさらに備えていることを特徴とする請求項１から１１のいずれか１項に記載の構成決定装置。
【請求項１３】
前記構築手段は、前記シミュレーションシステムを構築後、前記シミュレーションシステムに模擬処理の開始を指示することを特徴とする請求項１２に記載の構成決定装置。
【請求項１４】
請求項１から１３のいずれか１項に記載の構成決定装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム構成の決定技術に関する。
【背景技術】
【０００２】
特許文献１は、コンピュータシステム上で複数のアプリケーションソフトを連携して動作させることで、シミュレーションシステムを実現する構成を開示している。特許文献１のシミュレーションシステムは、模擬対象装置の制御部や、当該制御部により制御される装置等の動作をそれぞれ模擬する複数のシミュレータと、複数のシミュレータを連携・管理するハブモジュール（連携部）と、で構成されている。シミュレーションシステムにおいて、ある動作を模擬することで進行するシミュレーション上の時間（模擬時間と呼ぶ。)と、このある動作の模擬を行うために実際に進行する時間（実時間と呼ぶ。)は異なる。例えば、移動速度が１００ｍｍ／ミリ秒である物体を、５００ｍｍ移動させる処理の模擬動作を行うのに１秒かかったものとすると、実時間は１秒であるが、模擬時間は５秒である。
【０００３】
シミュレーションシステムにおいては、各シミュレータの模擬時間を同期させる必要がある。しかしながら、各シミュレータにおいて、同じ模擬時間の模擬動作に要する実時間は異なる。このため、特許文献１は、一定の模擬時間を単位として各シミュレータのシミュレーション上の時刻（模擬時刻と呼ぶ。）を一致させる時刻同期処理を行っている。具体的には、各シミュレータは、連携部から指定された模擬時刻までの模擬動作を行い、模擬動作が終了すると、模擬動作の終了を連携部に通知して待機する。連携部は、総てのシミュレータから同期処理の終了が通知されると、各シミュレータに模擬時刻を通知し、通知した模擬時刻までの模擬動作を開始させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３３９０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シミュレーションシステムでの模擬処理にかかる実時間を短くするため、複数のコンピュータを相互に通信可能な様に接続し、複数のシミュレータ等を複数のコンピュータに分散して実現することが考えらえる。この場合、異なるコンピュータに分散されたシミュレータ間の時刻同期処理のため、コンピュータ間での通信が、時刻同期処理を行う度に発生する。また、複数のシミュレータそれぞれが時刻同期処理を行うために必要な処理時間もシミュレータ毎に異なる。したがって、各シミュレータ及び連携部の各コンピュータへの割当てによって模擬動作に要する実時間は異なる様になる。このため、シミュレーションシステムを構築する際には、模擬動作に要する実時間を短くする様にシミュレーションシステムの構成を決定する必要がある。より具体的には、模擬動作に要する実時間を短くするための、各シミュレータ及び連携部の各コンピュータへの割り当てを決定する必要がある。
【０００６】
本発明は、模擬動作に要する時間を短くするためのシミュレーションシステムの構成を決定する構成決定装置及びプログラムを提供するものである。
【課題を解決するための手段】
【０００７】
本発明の一側面によると、ネットワークを介して相互に接続された複数のコンピュータで構成されるシミュレーションシステムの構成決定装置であって、前記シミュレーションシステムは、複数のシミュレータと、前記複数のシミュレータ間の連携処理を行う連携手段と、を含み、前記構成決定装置は、前記複数のシミュレータそれぞれについて、前記連携処理において前記連携手段との情報の送受信に伴う処理に要する第１処理時間を示す情報と、前記連携処理において前記連携手段と前記ネットワークを介した通信に要する第２処理時間を示す情報と、を含む判断基準情報を格納する格納手段と、前記複数のシミュレータ及び前記連携手段を前記複数のコンピュータの何れに実現するかを前記判断基準情報に基づき判断する判断手段と、を備えていることを特徴とする。
【発明の効果】
【０００８】
本発明によると、シミュレーションシステムの模擬動作に要する時間を短くすることができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態による構成決定装置を含むシステム構成図。
【図２】一実施形態によるシミュレーションシステムを実現するコンピュータシステムの構成図。
【図３】一実施形態による模擬対象装置である画像形成装置の構成図。
【図４】一実施形態による判断基準情報を示す図。
【図５】一実施形態による割当処理のフローチャート。
【図６】一実施形態による割当処理のフローチャート。
【図７】一実施形態による割当処理の説明図。
【図８】一実施形態による判断基準情報を示す図。
【図９】一実施形態による割当処理の説明図。
【発明を実施するための形態】
【００１０】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１１】
＜第一実施形態＞
図２は、シミュレーションシステムを実現するためのコンピュータシステム構成を示している。本実施形態では、パーソナルコンピュータ（ＰＣ）２００とＰＣ２０１の２つのＰＣを使用する。また、ＰＣ２００とＰＣ２０１は、相互に情報の送受信を行える様に、ネットワーク２１８を介して接続される。本実施形態において、ＰＣ２００及びＰＣ２０１の構成は基本的に同様であり、同様の構成要素には同じ参照符号を使用する。本体部２０２のハードディスク２０５は、シミュレーションシステムが、その模擬対象装置の動作を模擬するのに必要なプログラムや各種データを格納している。具体的には、ハードディスク２０５は、模擬対象装置のＣＰＵや、電気ユニットや、メカユニットの動作を模擬するシミュレータとしてＰＣ２００又は２０１を動作させるためのプログラム及びデータを格納している。さらに、ハードディスク２０５は、模擬対象装置のＣＰＵが実行するプログラムも格納している。中央処理装置２０３は、所謂、プロセッサであり、ハードディスク２０５に格納されているプログラムを主記憶装置２０４にロードして実行する。なお、本実施形態においては、ＰＣ２００及びＰＣ２０１のハードディスクには同じプログラム及びデータが格納されているものとする。後述する様に、ＰＣ２００及びＰＣ２０１は、構成決定装置からの指示のもと、ハードディスク２０５に格納されているプログラムの内、必要なものを主記憶装置２０４にロードして実行する。これにより全体として１つのシミュレーションシステムが実現される。なお、表示装置２０６は、本体部２０２からの指示によりユーザに画面表示を行う。また、キーボード２０７及びマウス２０８は、ユーザがＰＣに指示等を入力するためのものである。ルータ２０９は、ＰＣ２００とＰＣ２０１との通信において情報を示すデータをネットワーク２１８との間で送受信する。
【００１２】
シミュレーションシステムが対象とする模擬対象装置は、制御部と、制御部により制御される１つ以上の機能部を含むものであれば任意であるが、本実施形態では、画像形成装置を模擬対象装置として説明を行う。図３は、画像形成装置３０１の構成図である。画像形成装置３０１は、外部機器より画像形成の指示を受けると、定着ローラ３１２に具備されたヒータの加熱処理を開始し、定着ローラ３１２が所定温度に達すると画像形成処理を実行する。画像形成処理を開始すると、帯電ローラ３０７は、感光ドラム３０６を帯電させ、光学ユニット３１１は、帯電した感光ドラム３０６を露光して感光ドラム３０６に静電潜像を形成する。現像部３０８は、静電潜像をトナーで現像し、感光ドラム３０６にトナー像を形成する。並行して、給紙ローラ３０３は、用紙カセット３０２の用紙を搬送路３１４に給紙する。給紙ローラ３０４は、感光ドラム３０６に形成されたトナー像が転写ローラ３１０の対向位置に到達するタイミングに合わせて、用紙を感光ドラム３０６と転写ローラ３１０のニップ領域に搬送する。転写ローラ３１０は、感光ドラム３０６のトナー像を用紙に転写する。トナー像が転写された用紙は、その後、定着ローラ３１２と加圧ローラ３１３とのニップ領域に搬送される。定着ローラ３１２と加圧ローラ３１３は、用紙を加熱・加圧してトナー像を用紙に定着させる。トナー像の定着が行われた用紙は、画像形成装置３０１外に排出される。なお、例えば、定着ローラ３１２と加圧ローラ３１３は、不図示のステッピングモータにより駆動される。また、搬送路３１４には、搬送されている用紙を検出するためのセンサ３０５、３１５が設けられる。
【００１３】
図１は、本実施形態による構成決定装置１０９を含む全体システムの構成図である。シミュレーションシステム１０２は、図２で説明したＰＣ２００及び２０１を含む構成により実現される。本実施形態において、シミュレーションシステム１０２は、ＣＰＵシミュレータ１０３と、ハードシミュレータ１０４と、メカシミュレータ１０５と、連携部１０６と、を備えている。ＣＰＵシミュレータ１０３は、画像形成装置１０３のＣＰＵを含む制御部の動作を模擬する。また、ハードシミュレータ１０４は、画像形成装置１０３のモータやヒータなどの電気的に動作する機能を模擬する。メカシミュレータ１０５は、画像形成装置１０３の搬送路や、ローラや、用紙といった物理的な対象を模擬する。
【００１４】
連携部１０６は、ＣＰＵシミュレータ１０３と、ハードシミュレータ１０４と、メカシミュレータ１０５とを連携動作させるための連携処理を行う。なお、以下では、ＣＰＵシミュレータ１０３と、ハードシミュレータ１０４と、メカシミュレータ１０５とを区別する必要が無い場合、纏めて単に"シミュレータ"と呼ぶものとする。連携部１０６は、配線部１０７と、同期部１０８とを備えている。配線部１０７は、各シミュレータ間で送受される信号を配線情報として管理しており、あるシミュレータが出力する信号を配線情報に従い他のシミュレータに出力する。同期部１０８は、各シミュレータ間の模擬時刻を同期させる時刻同期処理を行う。具体的には、同期部１０８は、ある模擬時刻を各シミュレータに通知し、通知した模擬時刻までの模擬処理を各シミュレータに実行させる。各シミュレータは、通知された模擬時刻までの模擬処理が完了すると、同期部１０８に終了を通知して処理を停止する。同期部１０８は、すべてのシミュレータから終了の通知を受信すると、時刻同期がとれたと判断し、各シミュレータに次の模擬時刻までの模擬処理を行わせる。
【００１５】
構成決定装置１０９は、ユーザからの指示を受けてシミュレーションシステム１０２の構成を決定する。具体的には、各シミュレータと連携部１０６それぞれをＰＣ２００及びＰＣ２０１のどちらに構築するかを決定する。なお、以下の説明では、構成決定装置１０９は、ＰＣ２００及びＰＣ２０１とは異なるＰＣ上で実現されているものとする。構成決定装置１０９として動作するＰＣの構成は、ＰＣ２００及びＰＣ２０１と同様である。しかしながら、ハードディスクには構成決定装置としてＰＣを機能させるためのプログラムやデータが格納される。また、構成決定装置１０９として動作するＰＣもネットワーク２１８に接続し、ＰＣ２００及びＰＣ２０１と通信可能な様になっている。
【００１６】
構成情報取得部１１２は、シミュレーションシステム１０２の構成を示す構成情報をユーザから取得する。つまり、本例では、ＣＰＵシミュレータ１０３、ハードシミュレータ１０４、メカシミュレータ１０５及び連携部１０６が、シミュレーションシステム１０２の実現に必要であるとの情報を取得する。なお、ユーザから取得するのではなく、ＰＣ２００又はＰＣ２０１のハードディスク２０５に格納されている配線情報を読出してこれら情報を取得する構成であっても良い。計算機情報取得部１１３は、シミュレーションシステム１０２を実現するためのＰＣ２００及びＰＣ２０１の負荷情報を取得する。負荷情報は、例えば、中央処理装置２０３の使用率、主記憶装置２０４及びハードディスク２０５の使用量や、最大使用量までの空き容量や、使用率を含み得る。なお、負荷情報は、構成決定装置１０９がネットワーク２１８を介してＰＣ２００及びＰＣ２０１と通信することで取得できる。
【００１７】
判断基準格納部１１４は、予め作成された判断基準情報を格納している。図４は、判断基準情報の一例を示している。本実施形態において、判断基準情報は、図４（Ａ）に示す様に、各シミュレータについて、連携部１０６との１通信当たりの処理時間と、１回の時刻同期処理当たりの通信回数とを示す情報を含んでいる。なお、処理時間や通信回数は平均的な値である。さらに、判断基準情報は、図４（Ｂ）に示す様に、ネットワーク２１８を介した連携部１０６とシミュレータとの通信において、ネットワーク２１８を介することにより必要となる１通信当たり処理時間（通信処理時間）を示す情報を含んでいる。なお、判断基準情報の処理時間は、模擬時間ではなく実時間である。
【００１８】
判断部１１１は、ユーザから処理開始の指示を受けると以下に説明する割当処理を行う。図５は、割当処理のフローチャートである。Ｓ１０で、判断部１１１は、構成情報取得部１１２から構成情報を取得し、Ｓ１１で、計算機情報取得部１１３から負荷情報を取得する。Ｓ１２で、判断部１１１は、判断基準格納部１１４から判断基準情報を取得する。判断部１１１は、Ｓ１３で、後述する処理により、各シミュレータ及び連携部１０６それぞれについて、ＰＣ２００とＰＣ２０１のどちらで実現するかを判断し、判断結果を割当情報として構築部１１０に通知する。構築部１１０は、Ｓ１４で、割当情報に基づきＰＣ２００とＰＣ２０１それぞれに、割り当てた機能、つまり、割り当てたシミュレータ及び連携部１０６を通知する。これにより、ＰＣ２００及びＰＣ２０１は、ハードディスク２０５から割り当てられた機能に対応するプログラム及びデータを主記憶装置２０４にロードして実行する。ＰＣ２００及びＰＣ２０１が対応するプログラム等を実行することでシミュレーショシステム１０２が構築される。構築部１１０は、シミュレーショシステム１０２の構築後、Ｓ１５で模擬動作の実行をシミュレーションシステム１０２に指示する。
【００１９】
続いて、図５のＳ１３での処理の詳細について図６を用いて説明する。なお、以下では説明の簡略化のため、連携部１０６は、ＣＰＵシミュレータ１０３と同じＰＣ上に固定的に実現されるものとする。上述した様に、連携部１０６とは異なるＰＣ内に実現されたシミュレータは、連携部１０６とのネットワーク２１８を介した通信のため、時刻同期処理時、図４（Ａ）に示す処理時間に加えて、図４（Ｂ）に示す様に、１通信当たり１００の処理時間が必要である。一方、連携部１０６と同じＰＣ内に実現されたシミュレータについては、時刻同期処理時、図４（Ａ）に示す処理時間のみが必要である。
【００２０】
Ｓ２１で、判断部１１１は、ＰＣに対する各シミュレータの割り当て状態の総ての組み合わせを判定する。図７に示す様に、本実施形態では、ケース＃１〜＃８の計８つの組み合わせが存在する。Ｓ２２で、判断部１１１は、まず各シミュレータについて、１回の時刻同期処理（１同期処理）に必要な処理時間を算出する。図４（Ａ）に示す様に、本例で、ＣＰＵシミュレータ１０３は、１回の時刻同期処理で連携部１０６と１０回の通信を行い、１通信当たりの処理時間は１００であるため、１同期処理の処理時間は１０×１００＝１０００となる。同様に、ハードシミュレータ１０４の１同期処理の処理時間は３０×１５＝４５０であり、メカシミュレータ１０５の１同期処理の処理時間は１５０×５＝７５０である。なお、１通信当たりの処理時間は、対象のシミュレータが連携部１０６と同じＰＣ実装されている場合における連携部との通信処理時間と１通信毎に実行されるシミュレーション対象装置の動作模擬の処理時間との合計となる。続いて、判断部１１１は、各組み合わせにそれぞれに対して１同期当たりの処理時間を計算する。例えば、ケース＃１では、ＰＣ２００の１同期処理の処理時間は、ＣＰＵシミュレータ１０３、ハードシミュレータ１０４、メカシミュレータ１０５の１同期処理の処理時間の合計値であり、１０００＋４５０＋７５０＝２２００となる。一方、ＰＣ２０１に割り当てるシミュレータは存在しないため、ＰＣ２０１の処理時間は０となる。また、本実施形態では、連携部１０６とＣＰＵシミュレータ１０３は同じＰＣに実装するものとしている。したがって、ＣＰＵシミュレータ１０３とは異なるＰＣに割り当てたシミュレータは、同期処理時、ＣＰＵシミュレータ１０３を割り当てたＰＣとネットワーク２１８を介した通信を行う必要がある。図７の"通信回数"は、この回数を示している。例えば、ケース＃２では、同期処理時、メカシミュレータ１０５を実行するＰＣ２０１は、ネットワーク２１８を介してＰＣ２００と通信する必要がある。図４（Ａ）に示す様にこの回数は５である。本実施形態では、図４（Ｂ）に示す様に、この通信を行うＰＣ２０１に通信の処理負荷を１通信当たり１００として計上する。したがって、ケース＃２では、ＰＣ２００の処理時間は、ＣＰＵシミュレータ１０３及びハードシミュレータ１０４の１同期処理の処理時間の合計値であり、１０００＋４５０＝１４５０となる。一方、ＰＣ２０１の処理時間は、メカシミュレータ１０５の処理時間と、ネットワーク２１８を介した通信のための処理時間の合計値であり７５０＋５００＝１２５０となる。この様に、各ケースについて、ＰＣ２００及びＰＣ２０１の処理時間を求める。２つのＰＣは並行して動作しているため、ＰＣ２００及びＰＣ２０１の処理時間の大きい方が、１同期処理での処理時間となる。
【００２１】
判断部１１１は、Ｓ２３で、Ｓ２２で求めた各処理時間の最小の組み合わせを選択する。図７に示す様に、本例では、ケース＃２と＃７が１４５０で最も小さいため、ケース＃２とケース＃７がまず選択される。処理時間の最小値を与える組み合わせが複数ある場合、例えば、ＰＣ２００とＰＣ２０１の中央処理装置２０３の使用率の少ない方に、処理時間がより大きいものを割り当てる様にすることができる。例えば、ＰＣ２００の中央処理装置２０３の使用率がＰＣ２０１より少ないものとする。図７に示す様に、ケース＃２では、ＰＣ２００の処理時間がＰＣ２０１の処理時間より長く、ケース＃７では、ＰＣ２００の処理時間がＰＣ２０１の処理時間より短い。したがって、この場合、ケース＃２を選択する。なお、中央処理装置２０３ではなく、主記憶装置２０４の使用量又は使用率が少ないＰＣに対して処理時間がより長い組み合わせを割り当てる構成とすることもできる。さらには、中央処理装置２０３と主記憶装置２０４それぞれの使用量又は使用率を所定の重みで合計し、合計値のより小さいＰＣに処理時間がより長い組み合わせを割り当てる構成とすることもできる。さらに、中央処理装置２０３及び主記憶装置２０４の空き容量の大きいＰＣに処理時間がより大きいものを割り当てる様にすることができる。
【００２２】
以上の様に、各ＰＣに割り当てる機能を判定することで、短い時間で模擬処理を実行できるシミュレーションシステムを構築することができる。
【００２３】
＜第二実施形態＞
続いて第二実施形態について第一実施形態との相違点を中心に説明する。第一実施形態では、図４（Ａ）に示す様に、シミュレータを単位として１同期処理時の通信回数等の情報を判断基準情報として保持していた。しかしながら、シミュレーション内容によっては、模擬対象装置の全体ではなく、一部の模擬対象のシミュレーションを行う場合がある。例えば、ステッピングモータのデバッグをしたい場合、ステッピングモータに係わる部分の模擬動作を行えば良く、ステッピングモータの動作に影響しない部分についてはシミュレーションシステム１０２に実装する必要はない。このため、本実施形態では、図４（Ａ）の判断基準情報に代えて、図８に示す判断基準情報を作成して保持しておく。図８に示す様に、本実施形態において、判断基準情報は、シミュレータ内の模擬対象それぞれについて、連携部１０６との時刻同期処理時の１通信当たりの処理時間及び１同期当たりの通信回数を示す情報を含んでいる。また、本実施形態において、ＰＣ２００及びＰＣ２０１のハードディスク２０５に格納されるプログラムは、図８に示す模擬対象単位で模擬処理が可能な様に構成されている。
【００２４】
本実施形態による割当処理のフローチャートは、図５と同様である。しかしながら、Ｓ１０において、判断部１１は、シミュレータを単位とした構成情報ではなく、各シミュレータ内の模擬対象毎の構成情報をユーザ入力により取得する。このとき、同じ模擬対象が複数ある場合にはその個数も入力される。以下では、図８において値の例を示す、タイマ機能と、割込機能と、ステッピングモータと、ローラと、用紙が構成情報として指定され、ステッピングモータ及びローラは、その個数がそれぞれ２及び５であり、その他の対象の個数は１であるものとする。
【００２５】
この場合の図５のＳ１３での処理の詳細について説明する。なお、Ｓ１３の処理に対応するフローチャートは、第一実施形態と同様に図６に示す通りとなる。図６のＳ２１で、判断部１１１は、ＰＣに対する各シミュレータの割り当て状態の総ての組み合わせを判定する。図９に示す様に、本実施形態では、ケース＃１〜＃８の計８つの組み合わせが存在する。続いて、Ｓ２２で、判断部１１は、まず、模擬対象それぞれについて、１同期処理での処理時間を算出する。図８に示す様に、タイマ機能は、１同期処理で５０回の通信を行い、１通信当たりの処理時間は２０であるため、１同期処理の処理時間は５０×２０＝１０００となる。同様に、割込み機能の１同期処理の処理時間は０．５×２０＝１０である。１つのステッピングモータの１同期処理の処理時間は１×１００＝１００であるが、本実施形態では２つのステッピングモータが対象となるためさらに２倍して２００となる。同様に、５つのローラの１同期処理の処理時間は０．１×１５００×５＝７５０となる。さらに、用紙については０．１×１５００＝１５０となる。
【００２６】
その後、判断部１１１は、シミュレータ毎の１同期処理の処理時間を求める。ＣＰＵシミュレータ１０３は、タイマ機能と割込み機能を有するので、１同期処理の処理時間は１０００＋１０＝１０１０となる。ハードシミュレータ１０４は、ステッピングモータの模擬を行い、よって、１同期処理の処理時間は２００となる。メカシミュレータ１０５は、ローラ及び用紙の模擬を行い、よって、１同期処理の処理時間は７５０＋１５０＝９００となる。
【００２７】
そして、判断部１１１は、各組み合わせそれぞれについて、１同期処理での処理時間を計算する。ケース＃１では、ＰＣ２００の１同期処理の処理時間は、ＣＰＵシミュレータ１０３、ハードシミュレータ１０４、メカシミュレータ１０５の処理時間の合計値であり、１０１０＋２００＋９００＝２１１０となる。一方、ＰＣ２０１に割り当てるシミュレータは存在しないため、ＰＣ２０１の処理時間は０となる。また、本実施形態でも、連携部１０６は、ＣＰＵシミュレータ１０３と同じＰＣに実装するものとしている。したがって、ＣＰＵシミュレータ１０３とは異なるＰＣに割り当てたシミュレータは、同期処理時、ＣＰＵシミュレータ１０３を割り当てたＰＣとネットワーク２１８を介して通信する必要がある。図９の"通信回数"は、この回数を示している。例えば、ケース＃２では、同期時、メカシミュレータ１０５を実行するＰＣ２０１は、ネットワーク２１８を介してＰＣ２００と通信する必要がある。図８に示す様に、１つのローラは０．１回であり、よって、５つのローラでは０．５回となる。さらに、用紙は０．１回であるため、合計では０．６回となる。本実施形態でも、この通信を行うＰＣ２０１に通信の処理負荷を１通信当たり１００として計上する。したがって、ケース＃２では、ＰＣ２００の処理時間は、ＣＰＵシミュレータ１０３及びハードシミュレータ１０４の処理時間の合計値であり１０１０＋２００＝１２１０となる。一方、ＰＣ２０１の処理時間は、メカシミュレータ１０５の処理時間と、ネットワーク２１８を介した通信のための処理時間の合計値であり９００＋６０＝９６０となる。この様に、各ケースについて、ＰＣ２００及びＰＣ２０１の処理時間を求める。２つのＰＣは並行して動作しているため、ＰＣ２００及びＰＣ２０１の処理時間の大きい方が、１同期処理での処理時間となる。
【００２８】
判断部１１１は、Ｓ２３で、Ｓ２２で求めた処理時間の最小の組み合わせを選択する。図９に示す様に、本例では、ケース＃２と＃７が１２１０で最も小さいため、ケース＃２とケース＃７がまず選択される。処理時間の最小値を与える組み合わせが複数ある場合の選択方法は第一実施形態と同様である。
【００２９】
以上の様に、各ＰＣに割り当てる機能を判定することで、短い時間で模擬処理を実行できるシミュレーションシステムを構築することができる。
【００３０】
［その他の実施形態］
なお、上述した各実施形態では２つのＰＣ２００及び２０１にシミュレーションシステム１０２を構築するものとしたが、３つ以上のＰＣにシミュレーションシステム１０２を構築する構成とすることもできる。さらに、上述した実施形態では、ＣＰＵシミュレータ１０３と連携部１０６とを同じＰＣに実現するものとしたが、ＣＰＵシミュレータ１０３と連携部１０６とを異なるＰＣに実現することもできる。この場合、ＰＣに対する各シミュレータの割り当て状態の組み合わせの数が増加するのみである。また、構成決定装置を構成するＰＣを、シミュレーションシステム１０２を構築する複数のＰＣとは異なるものとしたが、シミュレーションシステム１０２を構築する複数のＰＣのいずれかに構成決定装置を構成することもできる。
【００３１】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３２】
１０３：ＣＰＵシミュレータ、１０４：ハードシミュレータ、１０５：メカシミュレータ、１０６：連携部、１１４：判断基準情報格納部、１１１：判断部
【図１】
2018041271.tif 000003
【図２】
2018041271.tif 000004
【図３】
2018041271.tif 000005
【図４】
2018041271.tif 000006
【図５】
2018041271.tif 000007
【図６】
2018041271.tif 000008
【図７】
2018041271.tif 000009
【図８】
2018041271.tif 000010
【図９】
2018041271.tif 000011