JP2012093899A - 計算機システム、シミュレーション方法、及びプログラム - Google Patents

計算機システム、シミュレーション方法、及びプログラム Download PDF

Info

Publication number
JP2012093899A
JP2012093899A JP2010239755A JP2010239755A JP2012093899A JP 2012093899 A JP2012093899 A JP 2012093899A JP 2010239755 A JP2010239755 A JP 2010239755A JP 2010239755 A JP2010239755 A JP 2010239755A JP 2012093899 A JP2012093899 A JP 2012093899A
Authority
JP
Japan
Prior art keywords
execution
simulation
node
virtual
management
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.)
Pending
Application number
JP2010239755A
Other languages
English (en)
Inventor
Yasuhiro Ito
康宏 伊藤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010239755A priority Critical patent/JP2012093899A/ja
Priority to US13/277,356 priority patent/US20120102175A1/en
Publication of JP2012093899A publication Critical patent/JP2012093899A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】異種複数のシミュレーションが動作する計算機環境において、任意のモデルと、任意のシミュレータの組合せに対して、投機的通信手法を可能にする。
【解決手段】シミュレーションを一つまたはいくつかの集団に分け、仮想OS501が動作する実行ノード102上に搭載する。シミュレーション間通信の制御プログラムである通信プロトコル模擬装置503と、仮想OS群の実行制御プログラムである仮想OS実行管理サーバ装置502は、各シミュレーションを実行する仮想OS501群とは別に管理ノード100上で動作させる。管理ノード100の通信プロトコル模擬装置503がWARハザードを検出した場合、仮想OS実行管理サーバ装置502が、WARハザードが発生した仮想OS501に対して保存されている中間状態への巻き戻りと、所定の時刻までの再実行を行うよう、仮想OS実行管理クライアント装置500に指示する。
【選択図】図1

Description

本発明は、組込みシステムの開発に於いて複数のシミュレータが連携するシミュレーションの通信技術に関わる。
組込みシステムとは制御対象を構成するメカニズムと、メカニズムから受け取った物理量を元に制御演算を行い、メカニズムに制御値の出力を行なうハードウェアと、ハードウェア上で動作するソフトウェアから構成されるシステムである。例えば、自動車エンジン制御向けの組込みシステムでは、制御対象であるエンジンとエンジンを制御するマイコン等の電子機器とその上で動作するソフトウェアを指す。
組込みシステムに含まれるソフトウェアの挙動は制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。
この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている(特許文献1参照)。
特開2009−271870号公報
上述のメカニズム・ハードウェア・ソフトウェア協調のシミュレーションでは、シミュレーション対象となるメカニズムやハードウェアの構成によって利用できるシミュレータが異なる事と、すでに特定のシミュレータ用に作成されたシミュレーションモデルの蓄積がある事から、異種シミュレータの相互接続による製品全体レベルの協調シミュレーションが行なわれる。この協調シミュレーションを実現するためには、異種複数のシミュレーションの通信を確立する必要がある。一般的に用いられる手法として、一定の周期で予め決定されたデータ構造をシミュレーションで交換する方式が存在し、以下この手法をポーリング方式と呼ぶ。
ポーリング方式では、シミュレーション間のデータ交換方式を簡略化可能である一方、実際のシミュレーション上で意味のある通信が行われていない場合でも、周期的にデータ交換をする必要がある。このシミュレーション間のデータ交換は同一計算機、または別計算機で動作する別プロセスとの通信を発生させる。大量のプロセス間通信は、プログラムの実行速度を大幅に低下させる原因となる。
よって、シミュレーションを効率的に行う為には、すべてのシミュレーション間通信に関して、そのデータ交換回数を最小にするように周期を調整する必要がある。上記の組込みシステム全体レベルの協調シミュレーションでは、シミュレーション間通信の数は自動車を例にとると1000程度にものぼる。これらの通信のすべてに対し、通信周期の最適化を行う事は現実的には不可能であり、これらのシミュレーション実用化の上での課題となっている。
この課題を解決する方法の一つとして考えられるのが、シミュレーション間のデータ交換方式の変更である。すなわち、一定周期のシミュレータ間通信が必要となるポーリング方式に対して、シミュレート対象が外部アクセスを行う時のみに、プロセス間通信を確立する事によって、データ交換効率を高める事が可能である。以下この手法をイベントドリブン方式と呼ぶ。その一方、このイベントドリブン方式では、通信が発生するまでは各シミュレーションは全く独立した状態で動作するため、以下の問題が発生する。
独立して動作するシミュレーションは、それぞれの負荷と利用可能な資源の状況に応じて異なる実行速度で動作し得る。このため、データ交換発生時に以下に定義するハザードが発生する恐れがある。
・WAR(Write After Read)ハザード:データ送信側より受信側のシミュレーションが先に進む状態
・RAW(Read After Write)ハザード:データ送信側が受信側のシミュレーションよりも先に進む状態
後者のRAWハザードの場合、両者が同じ時間になるまでデータ送信側のシミュレーションを一時停止させることでシミュレーションの実行を正常に保つことが可能である。一方、WARハザードの場合、受信側のシミュレーションは送信側から送られるはずであったデータを無視して続行してしまっている状態であり、実物と異なる結果を出力している恐れがあるため、シミュレーションの再実行が必要である。
WARハザードの発生状況は、計算資源の状況、シミュレート対象の動作によっても変化するため、再現性は無く、予測も対策も困難である。そこで、WARハザードの発生が起きた場合にシミュレーションを途中から再実行することによって、シミュレーション結果を正常に保つ方法が考えられる。この手法を投機的通信手法と呼ばれ、上述した特許文献1には、この投機的通信手法が開示されている。しかしながら、特許文献1に記載された投機的通信手法では、各シミュレーションの実行状態を保存し、ハザード発生時には保存された状態への巻き戻し、すなわち再実行を行う機能の追加が各シミュレータ毎に必須となる。そのため、この機能がついていない既存のシミュレータに関しては投機的通信手法が適用不可能となってしまう。
本発明の目的は、任意のモデルと、任意のシミュレータの組合せに対して、投機的通信手法を可能にする計算機システム、シミュレーション方法、及びそのプログラムを提供することにある。
上記の目的を達成するため、本発明においては、管理ノードと、それぞれシミュレータを有する複数の実行ノードがネットワークを介して接続される計算システムであって、管理ノードは、実行ノードの一つが、所定の時刻に管理ノードを経由して他の実行ノードに対してデータの送信要求を送信した際、他の実行ノードのシミュレーション時間が所定の時刻よりも進んでいる場合、当該他の実行ノードに対し、所定の時刻の前の復元ポイントから、所定の時刻までシミュレーションを再実行し、再実行後に送信要求を出した実行ノードに送信要求されたデータを送るよう制御する構成の計算機システムを提供する。
また、上記の目的を達成するため、本発明においては、管理ノードと、それぞれシミュレーションを実行する複数の実行ノードがネットワークを介して接続される計算システムのシミュレーション方法であって、管理ノードは、実行ノードの一つが、所定の時刻に、管理ノードを経由して他の実行ノードに対してデータの送信要求を送信した際、他の実行ノードのシミュレーションのシミュレーション時間が所定の時刻よりも進んでいる場合、他の実行ノードに対し、所定の時刻の前の復元ポイントから、所定の時刻までシミュレーションを再実行するよう再実行指示を行い、他の実行ノードが、再実行後の送信要求されたデータを、送信要求を出した実行ノードに送るよう制御するシミュレーション方法を提供する。
更に、上記の目的を達成するため、それぞれシミュレーションを実行する複数の実行ノードとネットワークを介して接続される管理ノードの処理部で実行されるプログラムであって、処理部を、実行ノードの一つが、所定の時刻に、管理ノードを経由して他の実行ノードに対してデータの送信要求を送信した際、他の実行ノードのシミュレーションのシミュレーション時間が所定の時刻よりも進んでいるか否かを判断し、進んでいると判断した場合、他の実行ノードに対し、所定の時刻の前の復元ポイントから、所定の時刻までシミュレーションを再実行するよう再実行指示を行い、他の実行ノードが、送信要求を出した実行ノードに、再実行後の送信要求されたデータを送るよう制御する、よう動作させるプログラムを提供する。
すなわち、上記の目的を達成するため、本発明の好適な態様においては、シミュレーションを一つまたはいくつかの集団に分け、仮想オペレーティングシステム (Operating System:OS)上に搭載する。シミュレーション間通信の制御プログラムと、仮想OS群の実行制御プログラムは、シミュレーションを実行するこれらの仮想OS群とは別に動作させる。シミュレーション間通信制御プログラムで、WARハザードを検出した場合、ハザードが発生した仮想OSに対して保存されている中間状態への巻き戻りと所定の時刻までの再実行を指示する。
本発明によれば、仮想OSの単位で実行途中状態の保存と巻き戻し再実行を行うことにより、シミュレータ単位での巻き戻しの機能が不要となり、任意のシミュレータでも投機的通信方法が利用可能となる。
第1の実施例に係る、計算機シミュレーションシステムの概略構成を示す図である。 第1の実施例に係る、シミュレーション対象の組込みシステムの一構成例を示す図である。 第1の実施例に係る、シミュレーション対象中のECU(電子制御ユニット)の一構成例を示す図である。 第1の実施例に係る、計算機システム中の計算機の基本構成例を示す図である。 第1の実施例に係る、クラスタ型並列計算システムの基本構成を示す図である。 第1の実施例に係る、シミュレーションシステムの一詳細構成例を示す図である。 第1の実施例に係る、シミュレータ間の投機的通信の動作を説明するフローチャート図である。 第1の実施例に係る、協調シミュレーションで利用するシミュレータの一構成例を示す図である。 第1の実施例に係る、協調シミュレーションで送出されるデータ送信伺いのデータフォーマット例を示す図である。 第1の実施例に係る、シミュレーション実行状態保存周期適応制御の動作を説明するための図である。 第1の実施例に係る、図6の動作フロー中の一ステップの詳細を説明するフローチャート図である。 第1の実施例に係る、図6の動作フロー中の他のステップの詳細を説明するフローチャート図である。 第1の実施例に係る、図9の動作フロー中のステップの詳細を説明するフローチャート図である。 第1の実施例に係る、図5の実行状態保存部に保存されるデータを説明するための図である。 第1の実施例に係る、図5の通信プロトコル模擬装置の機能を説明するための図である。
以下、本発明の各種の実施例を図面に従い説明する。なお、本明細書において、各ノードを構成する計算機が実行するプログラムを、「装置」や「部」と表現する場合がある。例えば、仮想OS実行制御プログラムを、「仮想OS実行管理装置」あるいは「仮想OS実行管理部」と、シミュレーション間通信制御プログラムを、「通信プロトコル模擬装置」あるいは「通信プロトコル模擬部」と表現する場合がある。
図1は、第1の実施例に係るシミュレーションを実行する計算機システムの概略機能ブロック構成を示す。本実施例の計算機システムは、任意のシミュレータの組に対して投機的通信手法を利用可能にするシミュレーションシステムである。本計算機システムは、一つの管理ノード100に対して、1または複数の実行ノード102が、ネットワーク101を介して接続されている。なお、各ノードは後で説明するように、プロセッサである中央処理部(Central Processing Unit:CPU)と、メモリなどの記憶部、およびネットワークインターフェイスなどの入出力インターフェイス部を含む計算機で構成される。
図2Aは、本計算機システムの適用対象となる、組込みシステムの一構成例を示す図である。本構成例は自動車の制御系システムを例示している。同図において、エンジン205、ブレーキ206、ユーザ操作パネル207、車体姿勢208の各機械系(メカ)に対し、それぞれを制御する各電子制御ユニット(Electrical Control Unit:ECU)である、エンジンECU201、ブレーキECU202、ユーザインターフェイスECU203、ステアリングECU204が接続されている。またこの制御系システムにおいては、各ECUは車載通信コントローラ209によって互いに接続されることで、協調して動作している。
なお、各ECUは、図2Bにその一例として示したECU2100の様に、車載通信コントローラ209に接続するための通信インターフェイス2104と、通信インターフェイス2104に接続されるマイクロコントローラ2103、マイクロコントローラ2103にそれぞれ接続される専用IC2101、アナログIO2102によって構成される。このアナログIC2102は機械系(メカ)につながる。
図7に本実施例のシミュレーション対象である、自動車の制御系システムのような組込みシステムを、全体レベルで検証するためのシミュレータ構成の一例を示す。シミュレータ構成700は、機械系とつながるアナログIC2102にはそれぞれ適した機械系(メカ)シミュレータ703を用い、専用IC2101の模擬には電子系シミュレータ702を用いる。マイクロコントローラ2103と通信インターフェイス2104の模擬にはマイコンシミュレータ701を用いるのが一般的である。この接続は、図2Aに示したように、複数のECUが一つの通信線によってつながっているため、マイコンシミュレータ同士のデータ交換と調停を行う通信シミュレーションインターフェイス704が用いられる。なお、図7中の、複数あるマイコンシミュレータには、それぞれ電子系シミュレータ702や機械系シミュレータ703がそれぞれ接続されているが、簡略のため図示を省略してある点、留意されたい。
一般的にマイコンシミュレータ701と機械系シミュレータ703や電子系シミュレータ702間の通信は物理量を直接交換するため、周期的に行われるという特徴がある。一方で、マイコンシミュレータ701間の通信は何らかの通信プロトコルに基づいており、非周期的なデータ交換をするという特徴がある。また、図7のシミュレータ構成においては、各ECUが複数のECUと接続されることから、多対多のシミュレータ間通信をサポートする必要がある。
図3に、図1の計算機シミュレーションシステムの実行ノード102や管理ノード100が動作する計算機の基本構成の一例を示した。同図の計算機301はCPU302と、メモリ303と、IOブリッジ304が接続されておリ、IOブリッジ304に接続されたネットワークインターフェイス305を経由して外部のネットワーク306と接続される。もちろん、この構成に限定されるものでは無く、同等の機能を有する種々の構成を取り得る。
図4に外部のネットワーク306を介して、複数の計算機301が相互に接続された計算機クラスタの一例を示した。同図の計算クラスタ400に含まれる複数の計算機301の中から、シミュレーション毎に適切な数が確保され、実行ノード102として動作し、一つの計算機301が確保され、管理ノード100として動作する。
図5は本実施例の計算機シミュレーションシステムの詳細構成の一例を示している。なお、同図においては、実行ノード102は簡略のため、1個のみ図示されているが、図1に示したように複数の実行ノードが接続される。
同図において、計算機で構成される管理ノード100は、ネットワーク101を通して、各実行ノード102での仮想OS501の実行状態の保存指示と、実行状態保存の周期の制御、再実行である巻き戻しを指示する仮想OS実行管理サーバ装置502と、実行ノード102間のデータ交換とその交換順序の調停を、シミュレーション対象である通信プロトコルに則り行う通信プロトコル模擬装置503が接続された形で動作する。通信プロトコル模擬装置503は、複数の通信プロトコルに対応を可能にするため、バス送信順序判断式と通信レイテンシの算出式をユーザが定義することが可能である。
この仮想OS実行管理サーバ装置502と通信プロトコル模擬装置503は、それぞれ管理ノード100の計算機上で実行される仮想OS実行制御プログラムと、シミュレーション間通信制御プログラムで構成される。
この仮想OS実行管理サーバ装置502は、以下に順次説明するように、ネットワークを介し、全ての実行ノード102と通信プロトコル模擬装置503と接続されており、実行ノード102からの通信要求に応じて、接続された全ての実行ノード102上のシミュレーション実行時間が全て同一となるよう各実行ノード102を管理する機能と、通信プロトコル模擬装置503から取得した各種のネットワーク動作に関する情報を元に、実行ノード102間の通信順序とその遅延時間を、各実行ノード102に伝え、各実行ノード102で実行されるシミュレーションに挿入する機能を備える。また、通信プロトコル模擬装置503は通信プロトコルの基本動作の模擬を可能にするライブラリを備えており、ユーザがライブラリを組み合わせることにより任意のネットワークプロトコルの模擬を可能にする機能を備えている。
一方、所定数の計算機で構成される実行ノード102は、その実行ノード102に割当てられたシミュレーションが動作する仮想OS(Operating System)501と、仮想OS実行管理サーバ装置502の指示を受け取り、仮想OS501の状態保存と巻き戻しを行う仮想OS実行管理クライアント装置500と、仮想OS501の実行途中状態をファイルに保存したスナップショットと、保存時のシミュレーション時間を組として保存する、実行状態保存部504が接続された形で動作する。なお、この実行状態保存部504の詳細は、後で図13を用いて説明するが、復元ポイントデータベース(DB)1300と復元イメージストレージ1301とを備える構成を持つ。
仮想OS実行管理クライアント装置500は、実行ノード102の計算機上で実行され、仮想OS実行管理サーバ装置502と同様、仮想OS実行制御プログラムの一部を構成する。この仮想OS実行管理クライアント装置500は、実行ノード102上の各仮想OS501に対する実行の停止、実行状態保存を指示する機能を有する。また、実行状態保存部504に対する、エントリ追加、検索エントリ削除を指示する機能を有する。更に、管理ノード100からの再実行指示を受信して、その再実行指示を元に実行状態保存部504の復元ポイントDB1300を検索し、最適な復元イメージを見つけ、復元イメージストレージ1301から呼び出し、仮想OS501を再実行させる機能を備える。再実行するべき仮想OSの実行状態を検索する場合は、実行されているシミュレーションの実行時間をキーとして検索を行う。
実行ノード102の仮想OS501上に割当てられるシミュレーションは、ECUとそれによって制御されるメカの模擬が原則となる。よって、図7に示した一つのマイコンシミュレータ701と、一つまたは複数の機械系(メカ)シミュレータ703及び電子系シミュレータ702が協調して動作する。また、これらのシミュレーション間の通信は前述のポーリング方式と投機的通信方式のどちらかが使用可能である。
図6に本実施例のシミュレーションシステムによる投機的通信手法によるシミュレーションの流れ、処理フローの一例を示した。
同図において、ある実行ノード102内のシミュレーション実行が、車載通信コントローラ209へのデータ送信を行う段階まで来たとき、その実行ノード102から管理ノード100に対して、データ送信伺い800を送出する(ステップ600)。
そのデータ送信伺い800を、管理ノード100の通信プロトコル模擬装置503が受理する。そして、そのデータ送信伺い800に記載された、シミュレーション時間をタイムスタンプとしてメモリ中に保存する(ステップ601)。
すると、その管理ノード100に接続されたすべての実行ノード102に対して、シミュレーション時間を問い合わせてこれを取得する(ステップ602)。なお、このステップ602の処理フローの詳細は、後で図10を用いて説明する。
取得した各実行ノード102のシミュレーション時間と、そのタイムスタンプを比較し、タイムスタンプよりも値が大きいものがあるかどうかを判定する(ステップ603)。
そのタイムスタンプよりも大きなシミュレーション時間をもつ実行ノード102が存在した場合、それらの実行ノード102に対し通信プロトコル模擬装置503がシミュレーションの再実行指示を発行する(ステップ604)。
再実行指示を受け取った実行ノード102の仮想OS実行管理クライアント装置500は、そのタイムスタンプよりも前で最新のシミュレーション時間と対応するスナップショットを検索し、そのスナップショットを用いてシミュレーションを再実行する(ステップ605)。このステップ602の処理フローの詳細については、後で図11を用いて説明する。
そして、各実行ノード102は、上記のタイムスタンプまで到達した場合は、管理ノード100に対しタイムスタンプ到着報告を送出し、他のすべての実行ノード102がタイムスタンプ到着報告を送出されるまでシミュレーション実行を停止する(ステップ606)。
すべての実行ノード102のシミュレーション時間が同じになると、管理ノード100は通信データ転送を開始する(ステップ607)。
同時に管理ノード100の通信プロトコル模擬装置503が、予め設定されたバス送信順序判断式と通信レイテンシの算出式に乗っとり、送信されるデータが各実行ノード102で有効となるシミュレーション上での時間を算出する(ステップ608)。これをコミットタイムスタンプとして、各実行ノード102に対して送出する(ステップ609)。
全実行ノード102内部の仮想OS501の実行状態をファイルとして、図13に示したように、各実行ノード102中の実行状態保存部504の復元イメージストレージ1301にOS実行状態1302とタイムスタンプと組にして保存する(ステップ610)。
転送後、各実行ノード102のシミュレーションが再開される。このとき転送されたデータは、各実行ノード102のシミュレーション時間がコミットタイムスタンプに到達すると、有効化されシミュレーション内部で使われる(ステップ611)。
そして、すべての実行ノード102がコミットタイムスタンプに到達した時点で通信終了となる(ステップ612)。
図8に図6のステップ600、601で説明した、本実施例のデータ送信伺いに含まれるデータ種類の一例を示した。
同図に示すように、各実行ノード102から送出されるデータ送信伺い800には、通信設定ID801、シミュレーション時間802、転送長803、転送内容804が含まれる。
通信設定ID801の列は通信プロトコル模擬装置503が用いる通信遅延、バス送信順序判断式を指定するための識別子を収容する。シミュレーション時間802の列はそのデータ送信伺い800を送出した実行ノード102におけるシミュレーション時間を収容する。転送長803の列は、その実行ノード102が転送しようとするデータのサイズ、転送内容804の列はそのデータ本体をバイナリ形式で収容する。
図10は、図6に示した本実施例のシミュレーションシステムによる投機的通信手法によるシミュレーションの処理フローのステップ602を詳細化して示している。
まず管理ノード100の仮想OS実行管理サーバ装置502がそれに接続されているすべての実行ノード102に対して実行時間取得命令を発行する(ステップ1000)。
次に仮想OS実行管理サーバ装置502はすべての実行ノード102から実行時間が返信されるまで待機する(ステップ1001)。
各実行ノード102の仮想OS実行管理クライアント装置500は、その実行時間取得命令を受信すると(ステップ1002)、仮想OS501中で実行されているシミュレーションの実行状態を問い合わせる。このとき、仮想OS501中で実行されているシミュレータのうちいずれかがその実行時間を返す(ステップ1003)。シミュレータの実行時間取得には、シミュレータ固有の機能を使うことも、シミュレーション対象内に実行時間を回答する仮想のブロックを追加することが可能である。
仮想OS実行管理クライアント装置500は、取得したシミュレーション実行時間と、その実行ノード102の識別子をペアとして、仮想OS実行管理サーバ装置502に返送する(ステップ1004)。以上のステップ1002-1004は、仮想OS実行管理クライアント装置500が実行するステップであるが、先に述べたように、この仮想OS実行管理クライアント装置500は、本実施例の仮想OS実行制御プログラムのクライアント側の一部である。
すべての実行ノード102より実行時間が確認されたのを仮想OS実行管理サーバ装置502が確認し、保存する(ステップ1005)。
図11は、同様に図6に示した本実施例のシミュレーションシステムによる投機的通信手法によるシミュレーションの処理フロー中の、再実行を指示された実行ノード102の仮想OS実行管理クライアント装置500が実行するステップ605を詳細化して示している。
仮想OS実行管理サーバ装置502は、図6のステップ603において、タイムスタンプより先に進んだシミュレーション時間を持つ実行ノード102の仮想OS実行管理クライアント装置500に対して、再実行対象ノードを指示するノード識別子とタイムスタンプを組として持つ再実行命令を発行する(ステップ604)。
その再実行対象ノードである実行ノード102の仮想OS実行管理クライアント装置500は、その再実行命令を受信すると(ステップ1101)、図13に図示した実行状態保存部504の復元ポイントデータベース(DB)1300に対して検索を行う。その検索には、受け取ったタイムスタンプよりも小さい復元ポイント値を持つ復元ポイントのうち最大のエントリの復元イメージパスを取得する検索条件を用いる(ステップ1102)。
次に仮想OS実行管理クライアント装置500は仮想OS501の実行を中断し、それまでの結果を破棄する(ステップ1103)。そして、実行状態保存部504の復元イメージストレージ1301からステップ1102で取得した復元イメージパスにある、仮想OSの実行状態イメージファイルを仮想OS501にロードすることによって、仮想OS実行管理サーバ装置502が指定したタイムスタンプ近傍からのシミュレーションが再実行される(ステップ1104)。
最後に、再実行を行った仮想OS実行管理クライアント装置500は、再実行完了報告を仮想OS実行管理サーバ装置502に対して発行する(ステップ1105)。
以上説明したように、本実施例においては、図6のステップ610において、通信終了時にすべての実行ノードが実行状態を保存することによって、それ以降の転送でシミュレーションの進行が逆に進むことを防いでいる。しかし、通信周期が長い場合、ハザード発生時の再実行オーバーヘッドが増大する。このオーバーヘッドを低減するためには、通信終了後から次の通信発生までの間で最低1回の実行状態保存を行う必要がある。そこで、本実施例の好適な態様として、前回までの通信周期に基づいた実行状態保存周期の適応制御を行う。
図9は本実施例の好適な態様としての適応制御の動作フローの一例を示す図である。同図において、この適応制御はシミュレーション上の通信動作終了(図6のステップ612)をトリガとして、管理サーバ100の仮想OS実行管理サーバ装置502で開始される(ステップ900)。
まず、仮想OS実行管理サーバ装置502は、通信終了時刻を通信プロトコル模擬装置503より取得する(ステップ901)。そして、これまでに保存された通信終了時刻より、平均の通信周期パターンを算出する(ステップ902)。
次回の状態保存指示時間を、例えば通信終了時刻+平均通信周期/2として算出、対象とする実行ノード102に対して送出する(ステップ903)。
各実行ノード102は、指定された状態保存指示時間までシミュレーションの実行を進める(ステップ904)。
最後に、指定された状態保存指示時間に達した状態で、シミュレーション実行状態の保存を行い、実行を再開する(ステップ905)。
図12に、図9のステップ905の実行状態の保存の詳細フローの一例を示した図である。なお、この保存された実行状態は、例えば、図6のステップ605において利用される。
図12の処理フローにおいて、まず、管理ノード100の仮想OS実行管理サーバ装置502が、実行状態保存命令を発行する(ステップ1200)。
実行ノード102の仮想OS実行管理クライアント装置500はその実行状態保存命令を受信すると(ステップ1201)、仮想OS501で実行中のシミュレーションの実行時間を取得して、復元ポイント値として一時保存する(ステップ1202)。
次に、仮想OS実行管理クライアント装置500は仮想OS501の実行を一時中断し、そのOS実行状態1302を実行状態イメージとして復元イメージストレージ1301に格納されたファイルに保存する。そのファイル名を復元イメージパスとして一時保存する(ステップ1203)。最後に、復元ポイント値と復元イメージパスをセットにして、図13に示す、復元ポイントDB1300にエントリを追加する(ステップ1204)。
図13は、本実施例の図5に示した実行状態保存部504の一構成例の詳細を示したものである。
同図において、記憶部中に設けられた実行状態保存部504は、仮想OS501の実行状態をファイルとして保存する復元イメージストレージ1301と、保存された復元イメージを保存された際のシミュレーション時間によって検索可能にする復元ポイントDB1300によって構成される。復元ポイントDB1300は、復元ポイント値1303と復元イメージパス1304からなる。一方、復元イメージストレージ1301は、OS実行状態1302が蓄積されている。この実行状態保存部504によって提供される機能は、エントリ追加、エントリ検索、エントリ削除である。
エントリ追加は、図12で記述したように実行状態保存時に行われ、復元イメージストレージに1件の仮想OS実行イメージファイル1301と、復元ポイントDB1300にそのファイルパスである復元イメージパス1304と、シミュレーション実行時間である復元ポイント値1303が保存される。
エントリ検索は、シミュレーション再実行時に利用される。仮想OS実行管理サーバ装置502から送られたタイムスタンプをキーとして、復元ポイントDB1300を検索し、最適な仮想OSの復元イメージを返す。
エントリ削除は、シミュレーション終了時にすべての実行ノード102で自動実行され、復元ポイントDB1300と仮想OS実行イメージファイル1301の全エントリを削除することができる。
復元ポイントDB1300は複数のシミュレーションにおける復元イメージの判別をしていない。よってシミュレーション終了時にそのエントリ全てを削除することによって、シミュレーション間のOSイメージの取り間違いを防ぐことが可能となる。
図14は、本実施例における通信プロトコル模擬装置503の機能構成の一具体例を示した機能ブロック図である。なお、上述のとおり、通信プロトコル模擬装置503は、計算機で構成される管理ノード100上で動作するシミュレーション間通信制御プログラムとして実現される。先に説明したように、この通信プロトコル模擬装置503は通信プロトコルの基本動作の模擬を可能にするライブラリを備えており、ユーザがライブラリを組み合わせることにより任意のネットワークプロトコルの模擬を可能にする機能を有する。そして、通信プロトコル模擬装置503は、仮想OS実行管理サーバ装置502から、実行ノード102からの通信要求、要求発生時間を受け、ネットワーク動作情報として、調停結果である各実行ノード間の通信順序と、通信遅延を提供する。
このような動作を実現するため、通信プロトコル模擬装置503は、図14に示すように、基本動作部1400、ユーザ定義部1401の二つの機能ブロックにより構成される。
同図に示すように、基本動作部1400は、仮想OS実行管理サーバ装置502とのインターフェイスを提供し、実行ノード102が送信した通信要求、要求発生時間が入力され、通信要求が処理される順序である調停結果と通信遅延を出力する。基本動作部1400の順序と通信遅延の決定は通常の方法で可能である。また、基本動作部1400は、実際のネットワーク動作に必要となる操作、すなわち遅延計算、イベントキューの管理、状態遷移を行う関数を備え、遅延記述、状態遷移記述、イベントキュー処理などの共通ライブラリを提供する。
一方、ユーザ定義部1401は、シミュレーション対象毎にユーザが希望するネットワーク挙動を実現するために、基本動作部1400に備えられた前述の関数を組み合わせたプログラムとして動作する。シミュレーションを前にユーザが動作を記述するが、その際、ユーザ定義部1401は基本動作部1400から上述のライブラリを呼び出し、呼び出したライブラリを使い、通信状態遷移、イベントキューの大きさ、各通信動作の遅延などを、プログラミング言語ベースで記述する。
本実施例の管理ノード100では通信シミュレーションの動作が、シミュレーションを行うOSの制御につながっているが、通信の模擬自体とOSの制御を分割するためにこのような構成を採用する。
以上本発明の一実施例を詳述したが、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、実施例やその変形例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。更に、上述した各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアや、プログラムを作成する等によりソフトウェアで実現しても良いことは言うまでもない。
本発明は複数のソフトウェアが連動して動作する計算機システム、または開発システムのプログラムに適用することができる。
100 管理ノード
101 ネットワーク
102 実行ノード
103 マイコンシミュレータ
104 メカシミュレータ
201 エンジンECU
202 ブレーキECU
203 ユーザインターフェイスECU
204 ステアリングECU
205 エンジン
206 ブレーキ
207 ユーザ操作パネル
208 車体姿勢
209 車載通信コントローラ
2100 ECU
2101 専用IC
2102 アナログIO
2103 マイクロコントローラ
2104 通信インターフェイス
301 計算機
302 CPU
303 メモリ
304 IO
305 ネットワークインターフェイス
306 ネットワーク
400 計算クラスタ
500 仮想OS実行管理クライアント装置
501 仮想OS
502 仮想OS実行管理サーバ装置
503 通信プロトコル模擬装置
504 実行状態保存部
700 シミュレーション対象の構成
701 マイコンシミュレータ
702 電子系シミュレータ
703 機械系(メカ)シミュレータ
704 通信シミュレータインターフェイス
800 データ送信伺いデータフォーマット
801 通信設定ID
802 シミュレーション時間
803 転送長
804 転送内容
1300 復元ポイントDB
1301 復元イメージストレージ
1302 仮想OS実行状態
1303 復元ポイント値
1304 復元イメージパス
1400 基本動作部
1401 ユーザ定義部。

Claims (15)

  1. 計算機システム
    管理ノードと、シミュレーションを実行するシミュレータを有する複数の実行ノードがネットワークを介して接続される計算システムであって、
    前記管理ノードは、
    前記実行ノードの一つが、所定の時刻に、前記管理ノードを経由して他の実行ノードに対してデータの送信要求を送信した際、前記他の実行ノードの前記シミュレータのシミュレーション時間が前記所定の時刻よりも進んでいる場合、
    前記他の実行ノードに対し、前記所定の時刻の前の復元ポイントから、前記所定の時刻まで前記シミュレーションを再実行するよう再実行指示を行い、前記他の実行ノードが、前記送信要求を出した前記実行ノードに、再実行後の送信要求された前記データを送るよう制御する、
    ことを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記実行ノードは、
    割り当てられた前記シミュレーションを実行する前記シミュレータとして機能する仮想オペレーティングシステム(OS)と、前記仮想OSの実行を管理する仮想OS実行管理クライアント装置と、前記仮想OSの実行状態を保存する実行状態保存部とを備え、
    前記仮想OS実行管理クライアント装置は、前記管理ノードからの前記再実行指示に従い、前記仮想OSに対し、前記所定の時刻の前の復元ポイントから、前記所定の時刻までシミュレーションを再実行するよう制御する、
    ことを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記実行状態保存部は、
    前記仮想OSのシミュレーション時間と、前記仮想OSの実行状態を復元イメージとして保存したファイルパスを組として蓄積する復元ポイントデータベース(DB)と、前記復元イメージを格納する復元イメージストレージとを備える、
    ことを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記実行状態保存部は、前記シミュレーションの終了時に、前記復元ポイントDBと前記復元イメージストレージのエントリを削除する、
    ことを特徴とする計算機システム。
  5. 請求項2に記載の計算機システムであって、
    前記管理ノードは、
    任意の通信プロトコルの基本動作の模擬を可能にするライブラリを備え、ネットワーク動作情報を生成する通信プロトコル模擬装置と、
    前記実行ノードと前記通信プロトコル模擬装置とに接続され、前記実行ノードからの前記送信要求に応じて、前記実行ノード上の前記シミュレーション時間が同一となるよう管理する仮想OS実行管理サーバ装置とを備える、
    ことを特徴とする計算機システム。
  6. 請求項5に記載の計算機システムであって、
    前記管理ノードの前記仮想OS実行管理サーバ装置は、
    前記通信プロトコル模擬装置から取得した前記ネットワーク動作情報を元に、前記実行ノード間の通信順序と遅延時間を前記実行ノードで実行される前記シミュレーションに挿入するよう制御する、
    ことを特徴とする計算機システム。
  7. 請求項5に記載の計算機システムであって、
    前記管理ノードの前記仮想OS実行管理サーバ装置は、
    前記実行ノードにおける前記仮想OSの実行状態の保存周期を、前記シミュレーションで発生した通信の周期に基づき制御する、
    ことを特徴とする計算機システム。
  8. 管理ノードと、それぞれシミュレーションを実行する複数の実行ノードがネットワークを介して接続される計算システムのシミュレーション方法であって、
    前記管理ノードは、
    前記実行ノードの一つが、所定の時刻に、前記管理ノードを経由して他の実行ノードに対してデータの送信要求を送信した際、前記他の実行ノードの前記シミュレーションのシミュレーション時間が前記所定の時刻よりも進んでいる場合、
    前記他の実行ノードに対し、前記所定の時刻の前の復元ポイントから、前記所定の時刻まで前記シミュレーションを再実行するよう再実行指示を行い、
    前記他の実行ノードが、再実行後の送信要求された前記データを、前記送信要求を出した前記実行ノードに送るよう制御する、
    ことを特徴とするシミュレーション方法。
  9. 請求項8に記載のシミュレーション方法であって、
    前記実行ノードは、
    当該実行ノードで動作する仮想OSにより割り当てられた前記シミュレーションを実行すると共に、
    前記管理ノードからの前記再実行指示に従い、前記所定の時刻の前の復元ポイントから、前記所定の時刻まで、前記仮想OSにより前記シミュレーションを再実行する、
    ことを特徴とするシミュレーション方法。
  10. 請求項9に記載のシミュレーション方法であって、
    前記実行ノードは、
    前記仮想OSのシミュレーション時間と前記仮想OSの実行状態を復元イメージとして保存したファイルパスの組と、前記復元イメージを前記実行ノードの記憶部に格納する、
    ことを特徴とするシミュレーション方法。
  11. 請求項9に記載のシミュレーション方法であって、
    前記管理ノードは、
    任意の通信プロトコルの基本動作の模擬を可能にするライブラリを備え、
    前記実行ノードからの前記送信要求に応じて、前記実行ノード上の前記シミュレーション時間が同一となるよう管理する、
    ことを特徴とするシミュレーション方法。
  12. 請求項11に記載のシミュレーション方法であって、
    前記管理ノードは、
    前記実行ノードにおける前記仮想OSの実行状態の保存周期を、前記シミュレーションで発生した通信の周期に基づいて制御する、
    ことを特徴とするシミュレーション方法。
  13. それぞれシミュレーションを実行する複数の実行ノードの処理部、あるいはネットワークを介して接続される前記実行ノードに接続される管理ノードの処理部で実行されるプログラムであって、
    前記管理ノードの処理部を、
    前記実行ノードの一つが、所定の時刻に、前記管理ノードを経由して他の実行ノードに対してデータの送信要求を送信した際、前記他の実行ノードの前記シミュレーションのシミュレーション時間が前記所定の時刻よりも進んでいるか否かを判断し、
    進んでいると判断した場合、前記他の実行ノードに対し、前記所定の時刻の前の復元ポイントから、前記所定の時刻までシミュレーションを再実行するよう再実行指示を行い、
    前記他の実行ノードが、前記送信要求を出した前記実行ノードに、再実行後の送信要求された前記データを送るよう制御する、
    よう動作させる、
    ことを特徴とするプログラム。
  14. 請求項13に記載のプログラムであって、
    前記実行ノードの処理部を、
    前記処理部で動作する仮想OSが、割り当てられた前記シミュレーションを実行し、
    前記管理ノードからの前記再実行指示に従い、前記所定の時刻の前の復元ポイントから、前記所定の時刻まで、前記仮想OSにより前記シミュレーションを再実行する、
    よう動作させる
    ことを特徴とするプログラム。
  15. 請求項13に記載のプログラムであって、
    前記管理ノードの処理部を、
    前記実行ノードに割り当てられた前記シミュレーションを実行する仮想OSの実行状態の保存周期を、前記シミュレーションで発生した通信の周期に基づいて制御する、
    よう動作させる
    ことを特徴とするプログラム。
JP2010239755A 2010-10-26 2010-10-26 計算機システム、シミュレーション方法、及びプログラム Pending JP2012093899A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010239755A JP2012093899A (ja) 2010-10-26 2010-10-26 計算機システム、シミュレーション方法、及びプログラム
US13/277,356 US20120102175A1 (en) 2010-10-26 2011-10-20 Computer System, Simulation Method and Program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010239755A JP2012093899A (ja) 2010-10-26 2010-10-26 計算機システム、シミュレーション方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2012093899A true JP2012093899A (ja) 2012-05-17

Family

ID=45973918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010239755A Pending JP2012093899A (ja) 2010-10-26 2010-10-26 計算機システム、シミュレーション方法、及びプログラム

Country Status (2)

Country Link
US (1) US20120102175A1 (ja)
JP (1) JP2012093899A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203314A (ja) * 2013-04-08 2014-10-27 日立オートモティブシステムズ株式会社 Ecuシミュレーション装置
JP2019016121A (ja) * 2017-07-06 2019-01-31 日立オートモティブシステムズ株式会社 車両制御装置、及び、車両制御模擬装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017084016A1 (zh) 2015-11-16 2017-05-26 华为技术有限公司 模型参数融合方法及装置
CN109117277B (zh) * 2017-06-23 2020-11-27 上海木鸡网络科技有限公司 异步环境中模拟同步阻塞的方法及装置、存储介质、服务器、终端
DE102018111851A1 (de) * 2018-05-17 2019-11-21 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur ereignisbasierten Simulation eines Systems
CN111124700B (zh) * 2018-10-31 2023-07-18 百度在线网络技术(北京)有限公司 仿真软件模型的接入方法和装置
CN115081233B (zh) * 2022-06-30 2023-06-06 上海弘玑信息技术有限公司 一种流程仿真方法及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867724A (en) * 1997-05-30 1999-02-02 National Semiconductor Corporation Integrated routing and shifting circuit and method of operation
US6237073B1 (en) * 1997-11-26 2001-05-22 Compaq Computer Corporation Method for providing virtual memory to physical memory page mapping in a computer operating system that randomly samples state information
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203314A (ja) * 2013-04-08 2014-10-27 日立オートモティブシステムズ株式会社 Ecuシミュレーション装置
JP2019016121A (ja) * 2017-07-06 2019-01-31 日立オートモティブシステムズ株式会社 車両制御装置、及び、車両制御模擬装置
JP7017871B2 (ja) 2017-07-06 2022-02-09 日立Astemo株式会社 車両制御模擬装置
US11409252B2 (en) 2017-07-06 2022-08-09 Hitachi Astemo, Ltd. Vehicle control device and vehicle control simulation device

Also Published As

Publication number Publication date
US20120102175A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
US11314907B2 (en) Simulation including multiple simulators
JP2012093899A (ja) 計算機システム、シミュレーション方法、及びプログラム
JP5583773B2 (ja) シミュレーション方法、システム及びプログラム
US9141732B2 (en) Simulation execution method, program, and system
CN108958880B (zh) 数据处理方法与数据处理***
WO2012106908A1 (zh) 多处理器体系结构远端内存访问的模拟方法及模拟器
US20210081585A1 (en) Method for event-based simulation of a system
CN112306623A (zh) 深度学习任务的处理方法、装置及计算机可读存储介质
US9418181B2 (en) Simulated input/output devices
KR102577247B1 (ko) 데이터 관리 메커니즘을 구비하는 전자 시스템 및 그것의 동작 방법
CN101713970A (zh) 重启飞行控制***的方法和***
WO2022123803A1 (ja) 制御システムおよび制御方法
CN117075570A (zh) 数据处理方法、设备及***
KR20170088277A (ko) 데이터 교환 메커니즘을 포함하는 전자 시스템 및 그것의 동작 방법
KR102315102B1 (ko) 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체
Afonso et al. Heterogeneous CPU/FPGA reconfigurable computing system for avionic test application
EP4092531A1 (en) Systems, methods, and apparatus for coordinating computation systems
US10162913B2 (en) Simulation device and simulation method therefor
KR20150096286A (ko) 유휴 컴퓨터를 활용한 클라우드 대용량 데이터 분석 방법
Fu et al. Universal simulation engine (USE) a model-independent library for discrete event simulation
US20210141710A1 (en) Development support device
JP2010231295A (ja) 解析システム
Bradford et al. Exploring the design space of IMA system architectures
KR101478017B1 (ko) 시뮬레이션 데이터 처리 방법 및 시스템
JP6674039B2 (ja) ストリームデータの分散処理方法、ストリームデータの分散処理システム及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140603