JP2009140346A - 統合シミュレーションシステム - Google Patents

統合シミュレーションシステム Download PDF

Info

Publication number
JP2009140346A
JP2009140346A JP2007317419A JP2007317419A JP2009140346A JP 2009140346 A JP2009140346 A JP 2009140346A JP 2007317419 A JP2007317419 A JP 2007317419A JP 2007317419 A JP2007317419 A JP 2007317419A JP 2009140346 A JP2009140346 A JP 2009140346A
Authority
JP
Japan
Prior art keywords
simulation
unit
time
calculation unit
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007317419A
Other languages
English (en)
Other versions
JP5173385B2 (ja
Inventor
Kazunori Araya
和徳 荒谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007317419A priority Critical patent/JP5173385B2/ja
Publication of JP2009140346A publication Critical patent/JP2009140346A/ja
Application granted granted Critical
Publication of JP5173385B2 publication Critical patent/JP5173385B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】システム全体の計算時間を効率よく短縮させ易い統合シミュレーションシステムを得ること。
【解決手段】モデル計算を行う複数のシミュレーション演算部10a〜10nと、該複数のシミュレーション演算部の各々とメッセージの送受信を行ってシミュレーション演算部間での時間的な同期を制御する同期整合制御部30とを備え、複数のシミュレーション演算部の各々による分散処理結果を統合してシミュレーション結果を得る統合シミュレーションシステム50を構成するにあたり、複数のシミュレーション演算部それぞれでのシミュレーション時刻を監視して各シミュレーション演算部での演算負荷を判断し、演算負荷が高いシミュレーション演算部があったときには、該シミュレーション演算部にシミュレーションサイクルを長くする指令を含んだメッセージを通知する機能を同期整合制御部にもたせる。
【選択図】 図1

Description

この発明は、複数のシミュレーション演算部による分散処理の結果を統合してシミュレーションを行う統合シミュレーションシステムに関するものである。
複数のシミュレーション演算部による分散処理の結果を統合してシミュレーションを行う統合シミュレーションシステムでは、時間的な同期をとりながら各シミュレーション演算部で演算処理が行われる。シミュレーション演算部間での時間的な同期をとるために、シミュレーション演算部の他に管理部が設けられる。自己が分担する1サイクル分の処理を完了したシミュレーション演算部は、シミュレーション時刻を進行させる要求を含んだメッセージを管理部に送り、当該メッセージを受信した管理部は、全てのシミュレーション演算部から上記の要求を受信した後に、各シミュレーション演算部にシミュレーション時刻の進行許諾を出力する。これにより、シミュレーション演算部間での時間的な同期がとられる。
ただし、シミュレーション演算部の数が多い統合シミュレーションシステムでは、各シミュレーション演算部と管理部とのメッセージの送受信に比較的長時間を要することとなるので、システム全体でのシミュレーション処理の進行が遅くなり易い。シミュレーション演算部の数が多くてもシステム全体での処理効率を高めることができるように、例えば特許文献1に記載された統合シミュレーションシステムでは、シミュレーションを実行するうえで情報交換が必要なシミュレーション演算部(シミュレータ)間でのみ時間的な同期をとるようにして、同期をとるための通信量を低減させている。
特開2004−38785号公報(第6図)
しかしながら、統合シミュレーションシステムを構成する各シミュレーション演算部の処理能力や処理量は必ずしも同じではない。従来の統合シミュレーションシステムでは、たとえ他のシミュレーション演算部よりも演算処理を早く完了したシミュレーション演算部があったとしても、該シミュレーション演算部と同期をとるべきシミュレーション演算部のうちで演算処理が最も遅れているシミュレーション演算部が演算処理を完了するまでは次の演算処理に移行できないため、システム全体の計算時間を効率よく短縮させることが困難である。
この発明は上記の事情に鑑みてなされたものであり、システム全体の計算時間を効率よく短縮させ易い統合シミュレーションシステムを得ることを目的とする。
上記の目的を達成するこの発明の統合シミュレーションシステムは、モデル計算を行う複数のシミュレーション演算部と、複数のシミュレーション演算部の各々とメッセージの送受信を行ってシミュレーション演算部間での時間的な同期を制御する同期整合制御部とを備え、複数のシミュレーション演算部の各々による分散処理結果を統合してシミュレーション結果を得る統合シミュレーションシステムであって、同期整合制御部は、複数のシミュレーション演算部それぞれでのシミュレーション時刻を監視して各シミュレーション演算部での演算負荷を判断し、演算負荷が高いシミュレーション演算部があったときには、該シミュレーション演算部にシミュレーションサイクルを長くする指令を含んだメッセージを通知することを特徴とするものである。
この発明の統合シミュレーションシステムでは、演算負荷が高いシミュレーション演算部があったときに、該シミュレーション演算部のシミュレーションサイクルを長くするので、当該シミュレーション演算部でのモデル計算回数が減ってシミュレーション進行速度が上がる。その結果として、演算負荷が高いシミュレーション演算部のシミュレーションサイクルを長くしない場合に比べてシミュレーション精度は低下するものの、システム全体での計算時間を加速させることができる。したがって、この発明によれば、システム全体の計算時間を効率よく短縮させ易い統合シミュレーションシステムが得られる。
以下、この発明の統合シミュレーションシステムの実施の形態について、図面を参照して詳細に説明する。なお、この発明は以下に説明する実施の形態に限定されるものではない。
実施の形態1.
図1は、統合シミュレーションシステムの一例を概略的に示すブロック図である。同図に示す統合シミュレーションシステム50は、第1から第Nまでの計N個のシミュレーション演算部10a〜10nと、シミュレーション演算部間での時間的な同期を制御する同期整合制御部30とを備えたタイムドリブン型の統合シミュレーションシステムである。
この統合シミュレーションシステム50では、シミュレーションで用いられるパラメータデータ等の情報を含んだメッセージをシミュレーション演算部間で授受しながら、各シミュレーション演算部10a〜10nがそれぞれ独自のシミュレーション時刻、シミュレーションサイクルの下に動作して分散処理を進める。そして、各シミュレーション演算部10a〜10nによる分散処理結果を最終的に統合してシミュレーション結果を得る。
個々のシミュレーション演算部10a〜10nはモデル計算部1、時刻制御部3、パラメータ生成部5、データ出力部7、データ入力部9、および図示を省略した記憶部を有しており、記憶部に予め格納されたシナリオに従って動作して上記の分散処理を進める。このとき、モデル計算部1は、他のシミュレーション演算部から通知されるメッセージ中のパラメータデータを利用しながら演算処理を行う。
また、時刻制御部3はモデル計算部1でのシミュレーション時刻およびシミュレーションサイクルを制御し、パラメータ生成部5は、上記のシナリオに従った所定のシミュレーション演算部に宛てて通知すべきパラメータデータをモデル計算部1の演算結果の中から抽出する。
データ出力部7は、モデル計算部1でのシミュレーション時刻およびシミュレーションサイクルそれぞれの情報を時刻制御部3から受け取ると共に上記のパラメータデータをパラメータ生成部5から受け取って、これらを含んだメッセージを所定のシミュレーション演算部宛に作成して発信する。ただし、データ出力部7から発信されたメッセージは、一旦、同期整合制御部30により受信され、その後、同期整合制御部30から所定のシミュレーション演算部に送信される。
データ入力部9は、他のシミュレーション演算部から同期整合制御部30を介して送られているメッセージを受信する。データ入力部9が受信したメッセージに含まれているパラメータデータはモデル計算部1に送られ、当該メッセージに含まれているシミュレーションサイクルに関する情報は時刻制御部3に送られる。時刻制御部3は、当該情報にそってモデル計算部1でのシミュレーションサイクルを制御する。
一方、同期整合制御部30は、各シミュレーション演算部10a〜10nでのシミュレーション時刻を監視して個々のシミュレーション演算部10a〜10nでの演算負荷を判断し、演算負荷が高いと判断されるシミュレーション演算部があったときには、該シミュレーション演算部にシミュレーションサイクルを長くする指令を含んだメッセージを通知して、シミュレーション演算部間での時間的な同期を制御する。そのために、当該同期整合制御部30はデータ入力部11、時刻監視部13、時刻記録部15、時刻同期部17、パラメータ情報処理部19、メッセージ生成部21、およびデータ出力部23を有している。
上記のデータ入力部11は各シミュレーション演算部10a〜10nが発信したメッセージを受信する。時刻監視部13は、データ入力部11が受信したメッセージから情報元(発信元)シミュレーション演算部の識別情報と、当該情報元シミュレーション演算部でのシミュレーション時刻およびシミュレーションサイクルの各情報とを抽出する。また、当該時刻監視部13は、メッセージの相手先(送信先)シミュレーション演算部でのシミュレーション時刻の情報を時刻記録部15から読み出し、該シミュレーション時刻と上記情報元シミュレーション演算部でのシミュレーション時刻との進み具合を比較して比較結果を時刻同期部17に送る。
時刻記録部15は、時刻監視部13から送られてくるシミュレーション時刻およびシミュレーションサイクルの各情報を上記情報元シミュレーション演算部の識別情報と関連付けて記録し、保存する。
時刻同期部17は、時刻監視部13から送られてくる比較結果を基に上記情報元シミュレーション演算部での演算負荷と上記相手先シミュレーション演算部での演算負荷とを判断する。例えば、時刻監視部13での比較結果から一方のシミュレーション演算部でのシミュレーション時刻が他方のシミュレーション演算部でのシミュレーション時刻よりも遅れていると判断されたときには、シミュレーション時刻が遅れているシミュレーション演算部での演算負荷の方が他方のシミュレーション演算部での演算負荷よりも高いと判断する。
そして、一方のシミュレーション演算部での演算負荷の方が他方のシミュレーション演算部での演算負荷よりも高いと判断されたときには、演算負荷が高いと判断されたシミュレーション演算部でのシミュレーションサイクルを他方のシミュレーション演算部でのシミュレーションサイクルよりも長くする制御指令をメッセージ生成部21に生成させて、情報元シミュレーション演算部と相手先シミュレーション演算部との時間的な同期を制御する。また、その後に情報元シミュレーション演算部での演算負荷と相手先シミュレーション演算部での演算負荷とに差がないと判断されたときには、シミュレーションサイクルを長くしていたシミュレーション演算部でのシミュレーションサイクルを短くする制御指令をメッセージ生成部21に生成させて、情報元シミュレーション演算部と相手先シミュレーション演算部との時間的な同期を制御する。
具体的には、一方のシミュレーション演算部での演算負荷の方が他方のシミュレーション演算部での演算負荷よりも高いと初めて判断されたときに、演算負荷が高いと判断されたシミュレーション演算部でのシミュレーションサイクルが長くなるように時刻記録15での保存情報を書き換え、その後の適当な時期に当該演算負荷が高いと判断されたシミュレーション演算部に宛てたメッセージをメッセージ生成部21に生成させる。また、保存情報を書き換えたシミュレーション演算部での演算負荷がその後に下がったときには、当該シミュレーション演算部でのシミュレーションサイクルが短くなるように時刻記録15での保存情報を書き換え、その後の適当な時期に当該シミュレーション演算部に宛てたメッセージをメッセージ生成部21に生成させる。
パラメータ情報処理部19は、データ入力部11が受信したメッセージから情報元シミュレーション演算部の識別情報、相手先シミュレーション演算部の識別情報、および情報元シミュレーション演算部が算出したパラメータデータを抽出してこれらをメッセージ生成部21に送る。
メッセージ生成部21は、時刻同期部17から送られている情報元シミュレーション演算部でのシミュレーション時刻および相手先シミュレーション演算部でのシミュレーションサイクルの各情報、ならびにパラメータ情報処理部19から送られてくる情報元シミュレーション演算部の識別情報、相手先シミュレーション演算部の識別情報、および情報元シミュレーション演算部が算出したパラメータデータの各々を含んだメッセージを生成してデータ出力部23に送る。そして、データ出力部23は、メッセージ生成部21から送られてきたメッセージを上記相手先シミュレーション演算部に宛てて発信する。
図2は、データ出力部23から発信されるメッセージの一例を概略的に示す概念図である。同図に示すメッセージMeは、ヘッダ部Hとデータ部Dとを有している。ヘッダ部Hには情報元シミュレーション演算部の識別情報Is、相手先シミュレーション演算部の識別情報Id、情報元シミュレーション演算部でのシミュレーション時刻St、相手先シミュレーション演算部でのシミュレーションサイクルScが格納される。必要に応じて、当該メッセージの通知タイプ情報、例えばパラメータデータが有るメッセージかパラメータデータが無いメッセージかを特定する通知タイプ情報Ntもヘッダ部Hに格納される。また、データ部Dには、情報元シミュレーション演算部が算出したパラメータデータが格納される。図示の例では#1から#nまでの計n種類のパラメータデータPd1〜Pdnがデータ部Dに格納されている。
上述のように構成された統合シミュレーションシステム50では、演算負荷が高いシミュレーション演算部があったときに、該シミュレーション演算部のシミュレーションサイクルを長くするので、結果として、当該シミュレーション演算部でのモデル計算回数が減ってそのシミュレーション進行速度が上がる。そのため、演算負荷が高いシミュレーション演算部のシミュレーションサイクルを長くしない場合に比べてシミュレーション精度は低下するものの、システム全体での計算時間を加速させることができる。この統合シミュレーションシステム50では、システム全体の計算時間を効率よく短縮させることが容易である。
以下、統合シミュレーションシステム50での同期制御方法について、図1または図2で用いた参照符号を適宜引用しつつ図3または図4を参照して具体的に説明する。
図3は、図1に示した統合シミュレーションシステムでの同期制御方法の一例を示すシーケンス図である。このシーケンス図は、図1に示した第1シミュレーション演算部10aと第2シミュレーション演算部10bとがパラメータデータの授受を行って分散処理を進める過程で各々の演算負荷に実質的に差が生じなかったときの同期制御方法を示している。
なお、下記の例では、第1シミュレーション演算部10aは、その演算負荷が過多にならない限り、シミュレーションサイクル(シミュレーションの時間間隔)Δt1で所定回数のモデル計算を行い、当該モデル計算で得られたパラメータデータのうちで第2シミュレーション演算部10bで用いられるものを第2シミュレーション演算部10bに宛てて発信するものとする。また、第2シミュレーション演算部10bは、その演算負荷が過多にならない限り、シミュレーションサイクル(シミュレーションの時間間隔)Δt2で所定回数のモデル計算を行い、当該モデル計算で得られたパラメータデータのうちで第1シミュレーション演算部10bで用いられるものを第1シミュレーション演算部10aに宛てて発信するものとする。
図示の例では、第1シミュレーション演算部10aでのシミュレーション時刻が時刻T101になったときに、当該第1シミュレーション演算部10aがシミュレーション時刻T101およびシミュレーションサイクルΔt1の各情報とパラメータデータとを含んだメッセージを生成し、発信する。このメッセージは第2シミュレーション演算部10bを相手先(発信先)とするものであるが、同期整合制御部30により一旦受信される。図3においては、このときの第1シミュレーション演算部10aから同期整合制御部30へのメッセージの送信を「データ送信DT11」と表記している。
以下の説明においては、第1シミュレーション演算部10aから同期整合制御部30へのメッセージの送信、および第2シミュレーション演算部10bから同期整合制御部30へのメッセージの送信をそれぞれ「データ送信」と表記し、個々の「データ送信」に参照符号を付して説明する。また、同期整合制御部30から第1シミュレーション演算部10aへのメッセージの送信、および同期整合制御部30から第2シミュレーション演算部10bへのメッセージの送信をそれぞれ「データメッセージ通知」と表記し、個々の「データメッセージ通知」に参照符号を付して説明する。これらの点は、後述する実施の形態2,3においても同様である。
データ送信DT11を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T101およびシミュレーションサイクルΔt1の各情報を第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15(図1参照)に保存する。この後、ヘッダ部H(図2参照)での情報元のシミュレーション時刻StがT101に設定され、データ部D(図2参照)に上記メッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN11を行う。このとき、第2シミュレーション演算部10bでのシミュレーションサイクルの情報を同期整合制御部30が未だ取得していないことから、上記のヘッダ部Hは相手先のシミュレーションサイクルScの情報を抜いた状態で生成される。
演算処理を開始していた第2シミュレーション演算部10bは、同期整合制御部30からデータメッセージ通知MN11を受けた後のシミュレーション時刻T201に、シミュレーション時刻T201およびシミュレーションサイクルΔt2の各情報とパラメータデータとを含んだメッセージを生成してデータ送信DT21を行う。このメッセージは第1シミュレーション演算部10aを相手先とするものであるが、同期整合制御部30により一旦受信される。
データ送信DT21を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T201およびシミュレーションサイクルΔt2の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T201と、時刻記録部15(図1参照)に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T101とを時刻監視部13(図1参照)で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T201>時刻T101であるので、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻St(図2参照)がT201に設定され、相手先のシミュレーションサイクルSc(図2参照)がΔt1に設定され、データ部Dに上記データ送信DT21で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN21を行う。
各シミュレーション演算部10a,10bは、個々のシミュレーション時刻を進めることで次の演算処理を行い、第1シミュレーション演算部10aは、そのシミュレーション時刻がT102のときにデータ送信DT12を行う。このときのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T102およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT12を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T102およびシミュレーションサイクルΔt1の各情報を第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15に保存する。また、第1シミュレーション演算部10aでのシミュレーション時刻T102と、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーション時刻T201とを時刻監視部13で比較して、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T102>時刻T201であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻StがT102に設定されていると共に相手先のシミュレーションサイクルScがΔt2に設定され、データ部Dに上記データ送信DT12で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN12を行う。
第2シミュレーション演算部10bは、同期整合制御部30からデータメッセージ通知MN12を受けた後、シミュレーション時刻T202にデータ送信DT22を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T202およびシミュレーションサイクルΔt2の各情報とパラメータデータとが含まれている。
データ送信DT22を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T202およびシミュレーションサイクルΔt2の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T202と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T102とを時刻監視部13で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T202>時刻T102であるので、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻StがT202に設定されていると共に相手先のシミュレーションサイクルScがΔt1に設定され、データ部Dに上記データ送信DT22で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN22を行う。
以上説明したように、同期整合制御部30は、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないと判断されたときには、時刻記録部15に保存されている情報の書換えを行うことなくメッセージ通知を行って、これらシミュレーション演算部10a,10b間での時間的な同期を制御する。第1シミュレーション演算部10aと第2シミュレーション演算部10bとの同期制御に限らず、パラメータデータの授受を行うシミュレーション演算部間で演算負荷に差がないと判断されたときには、図3を参照して説明した要領で時間的な同期を制御する。
次に、パラメータデータの授受を行うシミュレーション演算部間で演算負荷に差があると判断されたときの同期制御方法について説明する。統合シミュレーションシステム50(図1参照)では、パラメータデータの授受を行うシミュレーション演算部間で演算負荷に差があると判断されたときに、同期整合制御部30が時刻記録部15に保存されている情報を書き換えてからメッセージ通知を行って、これらシミュレーション演算部間での時間的な同期を制御する。このときの同期制御方法について、図1または図2で用いた参照符号を適宜引用しつつ図4を参照して具体的に説明する。
図4は、図1に示した統合シミュレーションシステムでの同期制御方法の他の例を示すシーケンス図である。このシーケンス図は、図1に示した第1シミュレーション演算部10aと第2シミュレーション演算部10bとがパラメータデータの授受を行って分散処理を進める過程で各々の演算負荷に差が生じたときの同期制御方法を示している。
図示の例では、図3に示した例におけるのと同様にしてデータ送信DT11、データメッセージ通知MN11、データ送信DT21、データメッセージ通知MN21、データ送信DT12、およびデータメッセージ通知MN12がこの順番で行われた後、第2シミュレーション演算部10bが同期整合制御部30にデータ送信DT22を行う前に、第1シミュレーション演算部10bが同期整合制御部30にデータ送信DT13を行っている。
すなわち、第2シミュレーション演算部10bでの演算負荷がシミュレーション時刻T201からシミュレーション時刻T202までの間に高くなって、データ送信DT22がデータ送信DT13に遅れて行われている。ただし、同期整合制御部30は、第2シミュレーション演算部10bからデータ送信DT22を受けるまで、第2シミュレーション演算部10bでの演算負荷の増大を認識できない。
第1シミュレーション演算部10bから同期整合制御部30へのデータ送信DT13でのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T103およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT13を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T103およびシミュレーションサイクルΔt1の各情報を第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15に保存する。また、第1シミュレーション演算部10aでのシミュレーション時刻T103と、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーション時刻T201とを時刻監視部13で比較して、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T103>時刻T201であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻StがT103に設定されていると共に相手先のシミュレーションサイクルScがΔt2に設定され、データ部Dに上記データ送信DT13で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN13を行う。
第2シミュレーション演算部10bは、同期整合制御部30からデータメッセージ通知MN13を受けた後、シミュレーション時刻T202にデータ送信DT22を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T202およびシミュレーションサイクルΔt2の各情報とパラメータデータとが含まれている。
データ送信DT22を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T202およびシミュレーションサイクルΔt2の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T202と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T103とを時刻監視部13で比較し、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T202<時刻T103であるので、第2シミュレーション演算部10bでの演算負荷が第1シミュレーション演算部10aでの演算負荷よりも高いと判断して、時刻記録部15に保存されている情報の書換えを行う。すなわち、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルをΔt2よりも所定時間だけ長いΔt3に書き換える。同期整合制御部30は、情報元のシミュレーション時刻StがT202に設定されていると共に相手先のシミュレーションサイクルがΔt1に設定され、データ部Dに上記データ送信DT22で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN22を行う。
第1シミュレーション演算部10aは、同期整合制御部30からデータメッセージ通知MN22を受けた後、シミュレーション時刻T104にデータ送信DT14を行う。このときのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T104およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT14を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T104およびシミュレーションサイクルΔt1の各情報を第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15に保存する。また、第1シミュレーション演算部10aでのシミュレーション時刻T104と、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーション時刻T202とを時刻監視部13で比較して、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T104>時刻T202であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。ただし、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルは、データ送信DT22を受けたときにΔt3に書き換えられている。同期整合制御部30は、情報元のシミュレーション時刻StがT104に設定されていると共に相手先のシミュレーションサイクルScがΔt3に設定され、データ部Dに上記データ送信DT14で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN14を行う。
データメッセージ通知MN14を受けた第2シミュレーション演算部10bは、メッセージに格納されているシミュレーションサイクルの情報が現在のシミュレーションサイクルΔt2に対応していないので、自己のシミュレーションサイクルを上記のメッセージに格納されているシミュレーションサイクルの情報に対応した値Δt3に変更する。すなわち、自己のシミュレーションサイクルをΔt2よりも長いΔt3にする。
その結果として、第2シミュレーション演算部10bでのモデル計算回数が減って、シミュレーション進行速度が上がる。シミュレーション時刻T203までの演算処理とシミュレーション時刻T204までの演算処理とが速やかに行われる。
第2シミュレーション演算部10bでのシミュレーション時刻がT203になると、当該第2シミュレーション演算部10bはデータ送信DT23を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T203およびシミュレーションサイクルΔt3の各情報とパラメータデータとが含まれている。
データ送信DT23を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T203およびシミュレーションサイクルΔt3の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T203と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T104とを時刻監視部13で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T203<時刻T104であるので、第2シミュレーション演算部10bでの演算負荷が第1シミュレーション演算部10aでの演算負荷よりも高いと判断する。ただし、第2シミュレーション演算部10bからの直近のデータ送信DT22を受けたときにも第2シミュレーション演算部10bでの演算負荷が高いと判断して、時刻記録部15に保存されている情報の書換えを行っているので、ここでは時刻記録部15に保存されている情報の書換えを行わない。
なお、同期整合制御部30は、同じ情報元シミュレーション演算部からのデータ送信に基づく情報の書換えを複数回続けて行うように構成することもできるし、情報の書換えを1度行った後は、同じ情報元シミュレーション演算部からのデータ送信に基づく情報の書換えを1回おきまたは複数回おきに行うように構成することもできる。さらには、情報の書換えを1度行った後は、情報元シミュレーション演算部の演算負荷と相手先シミュレーション演算部の演算負荷とに差がないと判断されるまで情報の書換えを行わないように構成することもできる。
データ送信DT23を受けた同期整合制御部30は、情報元のシミュレーション時刻StがT203に設定されていると共に相手先のシミュレーションサイクルScがΔt1に設定され、データ部Dに上記データ送信DT23で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN23を行う。
シミュレーションサイクルをΔt2からΔt3にすることでシミュレーション進行速度が上がった第2シミュレーション演算部10bでは、第1シミュレーション演算部10aでのシミュレーション時刻がT105になるよりも早く自己のシミュレーション時刻がT204になる。第2シミュレーション演算部10bは、当該時刻T204にデータ送信DT24を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T204およびシミュレーションサイクルΔt3の各情報とパラメータデータが含まれている。
データ送信DT24を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T204およびシミュレーションサイクルΔt3の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T204と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T104とを時刻監視部13で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T204>時刻T104であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がなくなったものと判断して、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルの情報を書き換える。すなわち、シミュレーションサイクルを長くしていた第2シミュレーション演算部10bでの演算負荷が小さくなったものと判断して、第2シミュレーション演算部10bでのシミュレーションサイクルがΔt3よりも短くなるように、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルの情報を書き換える。このときの情報の書換えは、第2シミュレーション演算部10bでのシミュレーションサイクルを元のΔt2に戻すものであってもよいし、元のΔt2とは異なる値にするものであってもよい。ここでは元のΔt2に戻す書換えを行うものとして説明を続ける。
時刻同期部17により上記の書換えを行った同期整合制御部30は、情報元のシミュレーション時刻StがT204に設定されていると共に相手先のシミュレーションサイクルがΔt1に設定され、データ部Dに上記データ送信DT24で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN24を行う。
第1シミュレーション演算部10aは、同期整合制御部30からデータメッセージ通知MN24を受けた後、シミュレーション時刻T105にデータ送信DT15を行う。このときのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T105およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT15を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T105およびシミュレーションサイクルΔt1の情報を第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15に保存する。また、第1シミュレーション演算部10aでのシミュレーション時刻T105と、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーション時刻T204とを時刻監視部13で比較して、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T105>時刻T204であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻StがT105に設定されていると共に相手先のシミュレーションサイクルScがΔt2に設定され、データ部Dに上記データ送信DT15で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN15を行う。
データメッセージ通知MN15を受けた第2シミュレーション演算部10bは、メッセージに格納されているシミュレーションサイクルの情報が現在のシミュレーションサイクルΔt3に対応していないので、自己のシミュレーションサイクルを上記のメッセージに格納されているシミュレーションサイクルの情報に対応した値Δt2に変更する。すなわち、自己のシミュレーションサイクルを元のシミュレーションサイクルΔt2に戻す。その結果として、第2シミュレーション演算部10bでのシミュレーション進行速度が元に戻される。第2シミュレーション演算部10bは、シミュレーション時刻が進み過ぎないように制御されたことになる。
以上説明したように、同期整合制御部30は、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差が生じたと判断されたときに、時刻記録部15に保存されている情報を書き換えてからメッセージ通知を行うことで、シミュレーション演算部10a,10b間での時間的な同期を制御する。第1シミュレーション演算部10aと第2シミュレーション演算部10bとの同期制御に限らず、パラメータデータの授受を行うシミュレーション演算部間で演算負荷に差が生じたと判断されたときには、図4を参照して説明した要領で時間的な同期を制御する。
実施の形態2.
この発明の統合シミュレーションシステムにおいては、パラメータデータを授受するシミュレーション演算部間で演算負荷に差が生じたと判断されたときに、演算負荷が高いシミュレーション演算部に同期整合制御部からパラメータデータ含んでいないメッセージを通知して、該メッセージによりそのシミュレーションサイクルを長くする制御を行うこともできる。
この場合の統合シミュレーションシステムの構成は、例えば、同期整合制御部の時刻同期部に新たな機能、すなわち演算負荷が高いと判断されたシミュレーション演算部に上記パラメータデータを含んでいないメッセージを通知する機能を付加する以外は、図1に示した統合シミュレーションシステム50と同様の構成とすることができるので、ここではその図示を省略する。以下、同期整合制御部に上記の機能が付加された統合シミュレーションシステムによる同期制御方法について、図1または図2で用いた参照符号を適宜引用しつつ図5を参照して具体的に説明する。
図5は、演算負荷が高いと判断されたシミュレーション演算部に同期整合制御部からパラメータデータを含んでいないメッセージを通知してそのシミュレーションサイクルを長くする制御を行う統合シミュレーションシステムでの同期制御方法の一例を示すシーケンス図である。このシーケンス図は、図1に示した第1シミュレーション演算部10aと第2シミュレーション演算部10bとがパラメータデータの授受を行って分散処理を進める過程で各々の演算負荷に差が生じたときの同期制御方法を示している。
図示の例では、図4に示した例におけるのと同様にしてデータ送信DT11、データメッセージ通知MN11、データ送信DT21、データメッセージ通知MN21、データ送信DT12、データメッセージ通知MN12、データ送信DT13、データメッセージ通知MN13、データ送信DT22、およびデータメッセージ通知MN22がこの順番で行われている。この後、同期整合制御部30から第2シミュレーション演算部10b(図1参照)にデータ無しメッセージ通知ND、すなわちパラメータデータを含んでいないメッセージ通知が行われる。
図4を参照して既に説明したように、同期整合制御部30は、第2シミュレーション演算部10bからデータ送信DT22を受けたときに、第2シミュレーション演算部10bでの演算負荷が第1シミュレーション演算部10aでの演算負荷よりも高いと判断して、時刻記録部15(図1参照)に保存されている第2シミュレーション演算部10bのシミュレーションサイクルをΔt2からΔt3に書き換える。図5に示す例では、当該書換えを行った同期整合制御部30が第1シミュレーション演算部10aにデータメッセージ通知MN22を行った後、第1シミュレーション演算部10aからのデータ送信DT14を待たずに、第2シミュレーション演算部10bに対してデータ無しメッセージ通知NDを行う。
このデータ無しメッセージ通知NDでは、情報元のシミュレーション時刻StがT202に設定されていると共に相手先のシミュレーションサイクルSc(図2参照)がΔt3に設定され、データ部Dにはパラメータデータが格納されていないメッセージを同期整合制御部30が生成して、第2シミュレーション演算部10bに宛てて送信する。
同期整合制御部30からデータ無しメッセージ通知NDを受けた第2シミュレーション演算部10bは、メッセージに格納されているシミュレーションサイクルの情報が現在のシミュレーションサイクルΔt2に対応していないので、自己のシミュレーションサイクルを上記のメッセージに格納されているシミュレーションサイクルの情報に対応した値Δt3に変更する。すなわち、自己のシミュレーションサイクルをΔt2よりも長いΔt3にする。
その結果として、第2シミュレーション演算部10bでのモデル計算回数が減って、シミュレーション進行速度が上がる。シミュレーション時刻T203までの演算処理が速やかに行われる。
第2シミュレーション演算部10bでのシミュレーション時刻がT203になると、当該第2シミュレーション演算部10bはデータ送信DT23を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T203およびシミュレーションサイクルΔt3の各情報とパラメータデータとが含まれている。
データ送信DT23を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T203およびシミュレーションサイクルΔt3の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T203と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T103とを時刻監視部13(図1参照)で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17(図1参照)が判断する。
時刻同期部17は、時刻T203>時刻T103であるので、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷との差が解消されたものと判断して、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルの情報を書き換える。すなわち、シミュレーションサイクルを長くしていた第2シミュレーション演算部10bでの演算負荷が小さくなったものと判断して、第2シミュレーション演算部10bでのシミュレーションサイクルがΔt3よりも短くなるように、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルの情報を書き換える。このときの情報の書換えは、第2シミュレーション演算部10bでのシミュレーションサイクルを元のΔt2に戻すものであってもよいし、元のΔt2とは異なる値にするものであってもよい。ここでは元のΔt2に戻す書換えを行うものとして説明を続ける。
データ送信DT23を受けた同期整合制御部30は、情報元のシミュレーション時刻StがT203に設定されていると共に相手先のシミュレーションサイクルScがΔt1に設定され、データ部Dに上記データ送信DT23で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN23を行う。
第1シミュレーション演算部10aは、同期整合制御部30からデータメッセージ通知MN23を受けた後、シミュレーション時刻T104にデータ送信DT14を行う。このときのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T104およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT14を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T104およびシミュレーションサイクルΔt1の各情報を第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15に保存する。また、第1シミュレーション演算部10aでのシミュレーション時刻T104と、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーション時刻T203とを時刻監視部13で比較して、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T104>時刻T203であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。ただし、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルは、データ送信DT23を受けたときにΔt2に書き換えられている。同期整合制御部30は、情報元のシミュレーション時刻StがT104に設定されていると共に相手先のシミュレーションサイクルScがΔt2に設定され、データ部Dに上記データ送信DT14で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN14を行う。
同期整合制御部30からデータメッセージ通知MN14を受けた第2シミュレーション演算部10bは、当該データメッセージ通知MN14でのメッセージに格納されているシミュレーションサイクルの情報が現在のシミュレーションサイクルΔt3に対応していないので、自己のシミュレーションサイクルを上記のメッセージに格納されているシミュレーションサイクルの情報に対応した値Δt2に変更する。すなわち、自己のシミュレーションサイクルを元のシミュレーションサイクルΔt2に戻す。その結果として、第2シミュレーション演算部10bでのシミュレーション進行速度が元に戻される。第2シミュレーション演算部10bは、シミュレーション時刻が進み過ぎないように制御されたことになる。
この後、第2シミュレーション演算部10bは、そのシミュレーション時刻がT204になるとデータ送信DT24を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T204およびシミュレーションサイクルΔt2の各情報とパラメータデータとが含まれている。
データ送信DT24を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T204およびシミュレーションサイクルΔt2の各情報を第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T204と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T104とを時刻監視部13で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T204>時刻T104であるので、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷とに差がないものと判断する。したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻StがT204に設定されていると共に相手先のシミュレーションサイクルScがΔt1に設定され、データ部Dに上記データ送信DT24で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN24を行う。
本実施の形態2の統合シミュレーションシステムでは、第1シミュレーション演算部10aと第2シミュレーション演算部10bとの同期制御に限らず、パラメータデータの授受を行うシミュレーション演算部間で演算負荷に差が生じたと判断されたときには、図5を参照して説明した要領で時間的な同期を制御する。この統合シミュレーションシステムでは、演算負荷が相対的に低いシミュレーション演算部でのメッセージの送信間隔(データ送信の間隔)に左右されることなく上記パラメータデータ含んでいないメッセージの通知(データ無しメッセージ通知)が行われるので、実施の形態1で説明した統合シミュレーションシステム50(図1参照)に比べて、演算負荷が高いと判断されたシミュレーション演算部のシミュレーションサイクルを速やかに制御することができる。
なお、シミュレーション演算部間での演算負荷の差が解消されたと判断されときには、シミュレーションサイクルを長くしていたシミュレーション演算部に上記データ無しメッセージ通知と同様の要領でメッセージ通知を行ってそのシミュレーションサイクルを短くするように当該統合シミュレーションシステムを構成することも可能である。
実施の形態3.
この発明の統合シミュレーションシステムは、パラメータデータを授受するシミュレーション演算部間で演算負荷に差が生じることを予測し、該予測結果に基づいてシミュレーション演算部間での時間的な同期を制御するものであってもよい。上記の予測は、例えば、シミュレーション演算部から同期整合制御部へデータ送信の実時刻(現実の時刻)と各シミュレーション演算部でのシミュレーション時刻とを用いて行うことができる。
上記の予測機能を備えた統合シミュレーションシステムの構成は、例えば、時刻監視部にデータ送信の実時刻を監視して該実時刻を時刻記録部に記録し、保存させる機能を付加すると共に、時刻同期部に上記の予測機能を付加する以外は、図1に示した統合シミュレーションシステム50と同様の構成とすることができるので、ここではその図示を省略する。以下、同期整合制御部に上記の予測機能が付加された統合シミュレーションシステムによる同期制御方法について、図1または図2で用いた参照符号を適宜引用しつつ図6を参照して具体的に説明する。
図6は、パラメータデータを授受するシミュレーション演算部間で演算負荷に差が生じることを予測し、該予測結果に基づいてシミュレーション演算部間での時間的な同期を制御する統合シミュレーションシステムでの同期制御方法の一例を示すシーケンス図である。このシーケンス図は、図1に示した第1シミュレーション演算部10aと第2シミュレーション演算部10bとがパラメータデータの授受を行って分散処理を進める過程で各々の演算負荷に差が生じたときの同期制御方法を示している。
図示の例では、図3に示した例におけるのと同様にしてデータ送信DT11、データメッセージ通知MN11、データ送信DT21、データメッセージ通知MN21、データ送信DT12、データメッセージ通知MN12、データ送信DT22、およびデータメッセージ通知MN22がこの順番で行われている。ただし、同期整合制御部30(図1参照)では、各データ送信DT11,DT21,DT12,DT22を受けたときの実時刻S101,S201,S102,S202を時刻記録部15に記録し、保存している。
また、データ送信の実時刻と各シミュレーション演算部でのシミュレーション時刻とを用いた上述の予測は、第1シミュレーション演算部10aおよび第2シミュレーション演算部10bの各々が少なくとも2回のデータ送信を行った後に初めて可能になるので、データメッセージ通知MN22が行われるまでの間に当該予測は行われていない。
上記のデータメッセージ通知MN22を受けた第1シミュレーション演算部10aは、そのシミュレーション時刻がT103になると、同期整合制御部30にデータ送信DT13を行う。このデータ送信DT13でのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T103およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT13を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T103およびシミュレーションサイクルΔt1の各情報とデータ送信DT13を受けた実時刻S103とを第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15(図1参照)に保存する。また、時刻同期部17(図1参照)は、第1〜第3ステップの3段階に分けて、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷との大小関係を判断する。ただし、第3ステップは、第2ステップの判断結果に応じて省略されることもある。
上記の第1ステップでは、第1シミュレーション演算部10aでのシミュレーション時刻T103と、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーション時刻T201とから、シミュレーション演算部10a,10b間での演算負荷の大小関係を判断する。また、第2ステップでは、第2シミュレーション演算部10bから次回のデータ送信を受ける実時刻を時刻同期部17が予測し、該予測時刻とデータ送信DT13を受けた実時刻S103との進み具合から、シミュレーション演算部10a,10b間での演算負荷の大小関係を判断する。そして第3ステップでは、第2シミュレーション演算部10bが次回のデータ送信を行うときのシミュレーション時刻を時刻同期部17が予測し、該予測シミュレーション時刻と第1シミュレーション演算部10aがデータ送信DT13を行ったときのシミュレーション時刻T103との進み具合から、シミュレーション演算部10a,10b間での演算負荷の大小関係を判断する。
時刻同期部17は、時刻T103>時刻T202であるので、上記の第1ステップでは第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。また、第2ステップでは、第2シミュレーション演算部10bから次回のデータ送信を受ける実時刻を式 S202−S201+S202 により予測し、S103<S202−S201+S202であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。上記の第3ステップは省略される。
したがって、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行わない。同期整合制御部30は、情報元のシミュレーション時刻StがT103に設定されていると共に相手先のシミュレーションサイクルScがΔt2に設定され、データ部Dに上記データ送信DT13で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN13を行う。
第2シミュレーション演算部10bは、同期整合制御部30からデータメッセージ通知MN13を受けた後、シミュレーション時刻T203にデータ送信DT23を行うが、図示の例では、データ送信DT23よりも先に第1シミュレーション演算部10aでのシミュレーション時刻がT104になって、第1シミュレーション演算部10aから同期整合制御部30にデータ送信DT14が行われている。このデータ送信DT14でのメッセージには、第1シミュレーション演算部10aでのシミュレーション時刻T104およびシミュレーションサイクルΔt1の各情報とパラメータデータとが含まれている。
データ送信DT14を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T104およびシミュレーションサイクルΔt1の各情報とデータ送信DT14を受けた実時刻S104とを第1シミュレーション演算部10aの識別情報と関連付けて時刻記録部15に保存する。また、時刻同期部17は、第1〜第3ステップの3段階に分けて、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷との大小関係を判断する。
このときの第1ステップでは、時刻T104>時刻T202であるので、時刻同期部17は第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がないものと判断する。また第2ステップでは、S104>S202−S201+S202であるので、時刻同期部17は第2シミュレーション演算部10bでの演算負荷が第1シミュレーション演算部10aでの演算負荷よりも高いと判断する。第2シミュレーション演算部10bからのデータ送信が遅延していることが予測される。このため、第3ステップが行われる。当該第3ステップでは、第2シミュレーション演算部10bが次回のデータ送信を行うときのシミュレーション時刻T203を式 T202−T201+T202 により予測し、T104>T202−T201+T202であるので、第2シミュレーション演算部10bでの演算負荷が第1シミュレーション演算部10aでの演算負荷よりも高いと判断する。
このため、時刻同期部17は、時刻記録部15に保存されている情報の書換えを行う。すなわち、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルをΔt2よりも所定時間だけ長いΔt3に書き換える。同期整合制御部30は、情報元のシミュレーション時刻StがT104に設定されていると共に相手先のシミュレーションサイクルがΔt3に設定され、データ部Dに上記データ送信DT14で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第2シミュレーション演算部10bに宛ててデータメッセージ通知MN14を行う。
データメッセージ通知MN14を受けた第2シミュレーション演算部10bは、メッセージに格納されているシミュレーションサイクルの情報が現在のシミュレーションサイクルΔt2に対応していないので、自己のシミュレーションサイクルを上記のメッセージに格納されているシミュレーションサイクルの情報に対応した値Δt3に変更する。すなわち、自己のシミュレーションサイクルをΔt2よりも長いΔt3にする。
その結果として、第2シミュレーション演算部10bでのモデル計算回数が減って、シミュレーション進行速度が上がる。シミュレーション時刻T203までの演算処理とシミュレーション時刻T204までの演算処理とが速やかに行われる。
第2シミュレーション演算部10bでのシミュレーション時刻がT203になると、当該第2シミュレーション演算部10bはデータ送信DT23を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T203およびシミュレーションサイクルΔt3の各情報とパラメータデータとが含まれている。
データ送信DT23を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T203およびシミュレーションサイクルΔt3の各情報とデータ送信DT23を受けた実時刻S203とを第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T203と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T104とを時刻監視部13で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T203<時刻T104であるので、第2シミュレーション演算部10bでの演算負荷が第1シミュレーション演算部10aでの演算負荷よりも高いと判断する。ただし、第2シミュレーション演算部10bへの直近のデータメッセージ通知MN14を行うときに第2シミュレーション演算部10bでの演算負荷が高いと判断して、時刻記録部15に保存されている情報の書換えを行っているので、ここでは時刻記録部15に保存されている情報の書換えを行わない。
なお、同期整合制御部30は、シミュレーションサイクルを一旦変更したシミュレーション演算部については、その直後の当該シミュレーション演算部からのデータ送信で演算負荷が高いと判断されても、時刻記録部15に保存されている当該シミュレーション演算部でのシミュレーションサイクルの情報を書き換えないように構成される。そして、シミュレーションサイクルを変更した後での2回目以降のデータ送信で演算負荷に差がないと判断されたときには、当該シミュレーション演算部でのシミュレーションサイクルが短くなるように、時刻記録部15に保存されているシミュレーションサイクルの情報を書き換える。
上述のデータ送信DT23を受けた同期整合制御部30は、情報元のシミュレーション時刻StがT203に設定されていると共に相手先のシミュレーションサイクルScがΔt1に設定され、データ部Dに上記データ送信DT23で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN23を行う。
シミュレーションサイクルをΔt2からΔt3にすることでシミュレーション進行速度が上がった第2シミュレーション演算部10bでは、第1シミュレーション演算部10aでのシミュレーション時刻がT105(図示せず)になるよりも早く自己のシミュレーション時刻がT204になる。第2シミュレーション演算部10bは、当該時刻T204にデータ送信DT24を行う。このときのメッセージには、第2シミュレーション演算部10bでのシミュレーション時刻T204およびシミュレーションサイクルΔt3の各情報とパラメータデータが含まれている。
データ送信DT24を受けた同期整合制御部30は、メッセージ中のシミュレーション時刻T204およびシミュレーションサイクルΔt3の各情報とデータ送信DT24を受けた実時刻S204とを第2シミュレーション演算部10bの識別情報と関連付けて時刻記録部15に保存する。また、第2シミュレーション演算部10bでのシミュレーション時刻T204と、時刻記録部15に保存されている第1シミュレーション演算部10aでのシミュレーション時刻T104とを時刻監視部13で比較して、第2シミュレーション演算部10bでの演算負荷と第1シミュレーション演算部10aでの演算負荷の大小関係を時刻同期部17が判断する。
時刻同期部17は、時刻T204>時刻T104であるので、第1シミュレーション演算部10aでの演算負荷と第2シミュレーション演算部10bでの演算負荷とに差がなくなったものと判断して、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルの情報を書き換える。すなわち、シミュレーションサイクルを長くしていた第2シミュレーション演算部10bでの演算負荷が小さくなったものと判断して、第2シミュレーション演算部10bでのシミュレーションサイクルがΔt3よりも短くなるように、時刻記録部15に保存されている第2シミュレーション演算部10bでのシミュレーションサイクルの情報を書き換える。このときの情報の書換えは、第2シミュレーション演算部10bでのシミュレーションサイクルを元のΔt2に戻すものであってもよいし、元のΔt2とは異なる値にするものであってもよい。
時刻同期部17により上記の書換えを行った同期整合制御部30は、情報元のシミュレーション時刻StがT204に設定されていると共に相手先のシミュレーションサイクルがΔt1に設定され、データ部Dに上記データ送信DT24で受けたメッセージ中のパラメータデータが格納されたメッセージを生成して、第1シミュレーション演算部10aに宛ててデータメッセージ通知MN24を行う。
本実施の形態3の統合シミュレーションシステムでは、第1シミュレーション演算部10aと第2シミュレーション演算部10bとの同期制御に限らず、パラメータデータの授受を行うシミュレーション演算部間で演算負荷に差が生じたと判断されたときには、図6を参照して説明した要領で時間的な同期を制御する。この統合シミュレーションシステムでは、シミュレーション演算部間で演算負荷に差が生じることを予測し、該予測結果に基づいてシミュレーション演算部でのシミュレーションサイクルを制御するので、実施の形態2で説明した統合シミュレーションシステムに比べても、演算負荷が高いシミュレーション演算部のシミュレーションサイクルを速やかに制御することができる。
なお、シミュレーションサイクルを長くしていたシミュレーション演算部のシミュレーションサイクルを短くするという制御は、統合シミュレーションシステム全体での時間進行に影響がないので速やかに行う必要性は必ずしもないが、シミュレーション精度の低下をできるだけ抑えるという観点からは、できるだけ速やかに行うことが好ましい。この点は、実施の形態2で説明した統合シミュレーションシステムにおいても同じである。
以上、この発明の統合シミュレーションシステムについて実施の形態を挙げて説明したが、前述のように、この発明は上述の形態に限定されるものではない。この発明の統合シミュレーションシステムは、演算負荷が高いと判断されたシミュレーション演算部のシミュレーションサイクルを長くするという制御を行うものであり、個々のシミュレーション演算部の具体的構成や同期整合制御の具体的構成は、当該統合シミュレーションシステムの用途等に応じて適宜変更可能である。この発明については、上述したもの以外にも種々の変形、修飾、組み合わせ等が可能である。
この発明の統合シミュレーションシステムの一例を概略的に示すブロック図である。 図1に示した統合シミュレーションシステムにおける同期整合制御部のデータ出力部から発信されるメッセージの一例を概略的に示す概念図である。 図1に示した統合シミュレーションシステムでの同期制御方法の一例を示すシーケンス図である。 図1に示した統合シミュレーションシステムでの同期制御方法の他の例を示すシーケンス図である。 この発明の統合シミュレーションシステムのうちで、演算負荷が高いと判断されたシミュレーション演算部に同期整合制御部からパラメータデータを含んでいないメッセージを通知してそのシミュレーションサイクルを長くする制御を行うものでの同期制御方法の一例を示すシーケンス図である。 この発明の統合シミュレーションシステムのうちで、パラメータデータを授受するシミュレーション演算部間で演算負荷に差が生じることを予測し、該予測結果に基づいてシミュレーション演算部間での時間的な同期を制御するものでの同期制御方法の一例を示すシーケンス図である。
符号の説明
10a〜10n シミュレーション演算部
13 時刻監視部
15 時刻記録部
17 時刻同基部
21 メッセージ生成部
30 同期整合制御部
50 統合シミュレーションシステム

Claims (8)

  1. モデル計算を行う複数のシミュレーション演算部と、該複数のシミュレーション演算部の各々とメッセージの送受信を行ってシミュレーション演算部間での時間的な同期を制御する同期整合制御部とを備え、前記複数のシミュレーション演算部の各々による分散処理結果を統合してシミュレーション結果を得る統合シミュレーションシステムであって、
    前記同期整合制御部は、前記複数のシミュレーション演算部それぞれでのシミュレーション時刻を監視して各シミュレーション演算部での演算負荷を判断し、演算負荷が高いシミュレーション演算部があったときには、該シミュレーション演算部にシミュレーションサイクルを長くする指令を含んだメッセージを通知することを特徴とする統合シミュレーションシステム。
  2. 前記同期整合制御部は、前記シミュレーション時刻が他のシミュレーション演算部でのシミュレーション時刻よりも遅れているシミュレーション演算部があったときに、該シミュレーション演算部での演算負荷が他のシミュレーション演算部での演算負荷よりも高いと判断することを特徴とする請求項1に記載の統合シミュレーションシステム。
  3. 前記同期整合制御部は、前記シミュレーションサイクルを長くする指令を送信した後に前記複数のシミュレーション演算部それぞれのシミュレーション時刻の進み具合に差がなくなったと判断されたときは、前記シミュレーションサイクルを長くする指令を含んだメッセージを通知したシミュレーション演算部に、シミュレーションサイクルを短くする指令を含んだメッセージを通知することを特徴とする請求項1または2に記載の統合シミュレーションシステム。
  4. 前記同期整合制御部がシミュレーション演算部に通知するメッセージは、送信先のシミュレーション演算部でのシミュレーションサイクルを指定する情報を含み、該情報が前記指令として機能することを特徴とする請求項1〜3のいずれか1つに記載の統合シミュレーションシステム。
  5. 前記同期整合制御部がシミュレーション演算部に通知するメッセージは、該メッセージの通知先のシミュレーション演算部と他のシミュレーション演算部とで共有されるデータを含まないことを特徴とする請求項1〜4のいずれか1つに記載の統合シミュレーションシステム。
  6. 前記同期整合制御部から前記メッセージの通知を受けたシミュレーション演算部は、前記メッセージに含まれているシミュレーションサイクルを指定する情報のみを読み出し、該情報に沿ってシミュレーションサイクルを変更することを特徴とする請求項5に記載の統合シミュレーションシステム。
  7. 前記同期整合制御部は、シミュレーション演算部毎に該シミュレーション演算部から前記メッセージを受信したときの実時刻を記録して、前記シミュレーション演算部毎に次のメッセージの受信実時刻を予測し、該予測結果と前記複数のシミュレーション演算部それぞれでのシミュレーション時刻の監視結果とを用いて各シミュレーション演算部での演算負荷を判断することを特徴とする請求項1〜6のいずれか1つに記載の統合シミュレーションシステム。
  8. 前記同期整合制御部は、シミュレーション演算部毎に該シミュレーション演算部が次のメッセージを送信してくるシミュレーション時刻を予測し、該シミュレーション時刻の予測結果と、前記受信実時刻の予測結果と、前記複数のシミュレーション演算部それぞれでのシミュレーション時刻の監視結果とを用いて各シミュレーション演算部での演算負荷を判断することを特徴とする請求項7に記載の統合シミュレーションシステム。
JP2007317419A 2007-12-07 2007-12-07 統合シミュレーションシステム Expired - Fee Related JP5173385B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007317419A JP5173385B2 (ja) 2007-12-07 2007-12-07 統合シミュレーションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007317419A JP5173385B2 (ja) 2007-12-07 2007-12-07 統合シミュレーションシステム

Publications (2)

Publication Number Publication Date
JP2009140346A true JP2009140346A (ja) 2009-06-25
JP5173385B2 JP5173385B2 (ja) 2013-04-03

Family

ID=40870869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007317419A Expired - Fee Related JP5173385B2 (ja) 2007-12-07 2007-12-07 統合シミュレーションシステム

Country Status (1)

Country Link
JP (1) JP5173385B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133121A (ko) * 2014-05-19 2015-11-27 한국과학기술원 이웃 탐색 연산 시스템
KR101644751B1 (ko) * 2015-06-10 2016-08-01 경북대학교 산학협력단 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법
US10776139B2 (en) 2015-05-29 2020-09-15 Mitsubishi Electric Corporation Simulation apparatus, simulation method, and computer readable medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455717B (zh) * 2013-08-27 2016-08-10 南车株洲电力机车研究所有限公司 一种基于疲劳载荷的风力发电机塔筒优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074184A (ja) * 1996-08-30 1998-03-17 Fujitsu Ltd 分散型コンピュータシステムにおける最適負荷制御方法
JP2000259605A (ja) * 1999-03-05 2000-09-22 Mitsubishi Electric Corp シミュレーション装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074184A (ja) * 1996-08-30 1998-03-17 Fujitsu Ltd 分散型コンピュータシステムにおける最適負荷制御方法
JP2000259605A (ja) * 1999-03-05 2000-09-22 Mitsubishi Electric Corp シミュレーション装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150133121A (ko) * 2014-05-19 2015-11-27 한국과학기술원 이웃 탐색 연산 시스템
KR101642823B1 (ko) * 2014-05-19 2016-07-26 한국과학기술원 이웃 탐색 연산 시스템
US10776139B2 (en) 2015-05-29 2020-09-15 Mitsubishi Electric Corporation Simulation apparatus, simulation method, and computer readable medium
KR101644751B1 (ko) * 2015-06-10 2016-08-01 경북대학교 산학협력단 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법

Also Published As

Publication number Publication date
JP5173385B2 (ja) 2013-04-03

Similar Documents

Publication Publication Date Title
JP6450835B2 (ja) エネルギーセービング制御方法、管理サーバ及びネットワークデバイス
CN103152419B (zh) 一种云计算平台的高可用集群管理方法
CN101593133B (zh) 虚拟机资源负载均衡方法及装置
US8543993B2 (en) Compiler, compile method, and processor core control method and processor
JP5173385B2 (ja) 統合シミュレーションシステム
CN103164256A (zh) 一种实现单机支持高并发处理方法及系统
JP2015508523A (ja) モノのインターネットにおけるサービス・インスタンス指向のエネルギー管理のための方法、システム、およびコンピュータ・プログラム
CN107908471B (zh) 一种任务并行处理方法和处理系统
JP2019518258A (ja) 時間ベース調節可能負荷バランシング
CN110223174B (zh) 区块交易记账方法和系统、数据处理终端、区块链系统
CN108075914B (zh) 一种动态扩容缩容的方法及网络设备
CN108632106A (zh) 监控服务设备的系统
WO2024077881A1 (zh) 神经网络训练的调度方法、系统及计算机可读存储介质
KR102020358B1 (ko) 단말 및 그 단말에서 애플리케이션 동기화 방법
CN103108000A (zh) 用于任务同步的方法和系统及系统中的主节点和工作节点
Deb et al. Latency-aware horizontal computation offloading for parallel processing in fog-enabled IoT
CN104834584A (zh) 一种监测主机硬件负载的方法和系统
Tovar et al. Distributed computing for the factory-floor: a real-time approach using WorldFIP networks
CN104243473B (zh) 一种数据传输的方法以及装置
US20140129863A1 (en) Server, power management system, power management method, and program
CN111177160B (zh) 服务更新方法、装置、服务器及介质
KR20170136993A (ko) 시설 관리 장치
EP3330834B1 (en) Method and apparatus for controlling operation resources, and computer storage medium
CN106559861B (zh) 蓝牙设备数据传输方法及装置
EP2654174B1 (en) Charging an energy storage device with a variable speed generator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121227

LAPS Cancellation because of no payment of annual fees