JP5162531B2 - シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置 - Google Patents

シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置 Download PDF

Info

Publication number
JP5162531B2
JP5162531B2 JP2009155278A JP2009155278A JP5162531B2 JP 5162531 B2 JP5162531 B2 JP 5162531B2 JP 2009155278 A JP2009155278 A JP 2009155278A JP 2009155278 A JP2009155278 A JP 2009155278A JP 5162531 B2 JP5162531 B2 JP 5162531B2
Authority
JP
Japan
Prior art keywords
model
parallel
simulation
block
processes
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.)
Expired - Fee Related
Application number
JP2009155278A
Other languages
English (en)
Other versions
JP2010033567A (ja
JP2010033567A5 (ja
Inventor
晃 川口
子博 康
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.)
Toyota Technical Development Corp
Original Assignee
Toyota Technical Development 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 Toyota Technical Development Corp filed Critical Toyota Technical Development Corp
Priority to JP2009155278A priority Critical patent/JP5162531B2/ja
Publication of JP2010033567A publication Critical patent/JP2010033567A/ja
Publication of JP2010033567A5 publication Critical patent/JP2010033567A5/ja
Application granted granted Critical
Publication of JP5162531B2 publication Critical patent/JP5162531B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明はシミュレーション支援する方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置に関し、特に複数のプロセッサを備えたクラスタコンピュータによる並列演算処理のためのシミュレーションプログラムを編集する技術に関する。
Simulink(登録商標)などのMATLAB(登録商標)ファミリーは実世界のダイナミックシステムのモデリングとシミュレーションと解析のためのシミュレーション・プロトタイピング環境を提供するツールとして広く知られている。コアモジュールであるMATLABはGUIと数値演算機能を提供する。Simulinkはブロック線図型モデルの作成支援機能を提供する。Real−TimeWorkshop(登録商標)はSimulinkで作成しテストしたモデルからスタンドアロンのCコードを編集する。編集されたCコードはリアルタイムまたは非リアルタイムのアプリケーションとして使用することができるため、短時間でのプロトタイプ作成、HIL(Hardware-In-the-Loop)テストを可能にする。
自動車制御システムなど、シミュレーションの対象システムの大規模化にともなってシミュレーションの処理時間は長くなる。特許文献1、2には、分散処理により大規模なモデルのシミュレーションを高速化するための技術が開示されている。
特開2005−222420 特開2007−122602
ところで、クラスタコンピュータにおいて複数のプロセスが並列して繰り返し走行することにより離散時間の応答が連続的に出力される。このような並列演算処理では、n番目のステップでのプロセスが別のプロセスにデータを引き渡す場合、n+1番目のステップのプロセスで、そのデータを入力として演算を実行しなければならない。しかし、上記の技術では、このようなデータの同期性が保証されていないため、モデルが作成される一般的な環境における逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させることはできなかった。
本発明は逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させる技術を提供する。
(1)本発明の第1の態様は、シミュレーションの対象システムを表現したブロック線図型モデルである対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースを生成し、操作インタフェースを介して対象モデルから並列演算用モデルへの変換が指示されると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるために使用されるダミーブロックを対象モデルに挿入し、クラスタコンピュータにおいて並列走行する複数のプロセスを生成するための並列演算用シミュレーションプログラムを、少なくともダミーブロックが挿入された対象モデルである並列演算用モデルに基づいて編集する、ことを含むシミュレーション支援方法に関する。
本発明のシミュレーション支援方法において、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用されてもよい。
本発明によると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるために使用されるダミーブロックを対象モデルに挿入する。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。そのため、逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
本発明のシミュレーション支援方法において、ダミーブロックは、並列演算モデルの入力が対象モデルへの入力と同一であった場合に並列演算によって得られた並列演算用モデルの出力を逐次演算によって得られた対象モデルの出力と同一にするために使用されてもよい。このようにすれば、対象モデルを用いた逐次演算処理によるシミュレーションの実行結果と、並列演算用モデルを用いた並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
シミュレーション支援方法において、操作インタフェースにおいてそれぞれのサブシステムモデルに対応するプロセッサをそれぞれのサブシステムモデルに設定する操作を受け付けてもよい。
複数のプロセスの走行によって並列演算用モデルの応答を演算する場合、複数のプロセスが並列走行し始める1ステップ目においてそれぞれのプロセスが初期値を必要とする。この初期値は逐次処理において先に走行するプロセスの出力である。
そこで、シミュレーション支援方法において、対象モデルの応答を演算することにより、サブシステムモデルの入力の初期値を取得し、サブシステムモデルの入力の初期値をプロセスの入力の初期値となるダミーブロックの初期値に設定することが好ましい。これによりそれぞれのプロセスが必要とする初期値を自動で並列演算用シミュレーションプログラムに設定することができる。
シミュレーション支援方法において、1ステップ毎に、並列走行する複数のプロセスのそれぞれの演算が全て終了してからそれぞれのプロセスの内部データを更新するまでの期間に、並列走行する複数のプロセスの間でデータを受け渡しするための第1コード群を並列演算用シミュレーションプログラムに編入してもよい。
これにより逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
並列走行する複数のプロセスの間でデータを受け渡しするためのコード群には、データを送信するプロセッサと、データを受信するプロセッサとを識別するためのコードが必要である。並列演算モデルを使用して、並列演算用シミュレーションプログラムが編集されるとき、データを送信および受信するプロセッサを識別するコードは、サブシステムモデルの区切りとなる信号線に対応付けて記述される。
そこで、シミュレーション支援方法において、操作インタフェースを介して対象モデルから並列演算用モデルへの変換が指示されると、サブシステムモデルの区切りとなる信号線に、検索キーとなるコードに変換される属性を設定し、コードをキーとしてサブシステムモデルの区切りとなる信号線に対応する第1コード群の位置を特定し、第2コード群から当該信号線に対応するデータの受け渡しを実行するプロセスの識別子を抽出し、並列走行する複数のプロセスの間でデータを受け渡しするための第1コード群に抽出した識別子を設定することが好ましい。
これによりサブシステムモデルの区切りとなる信号線に対応付けて記述されたコードを高速に検索できるため、1ステップ毎に、並列走行する複数のプロセスのそれぞれの演算が全て終了してからそれぞれの内部データを更新するまでの期間に、並列走行する複数のプロセスの間でデータを受け渡しするためのコード群を並列演算用シミュレーションプログラムに編入する処理を高速化できる。
本発明の第2の態様は、シミュレーションの対象システムを表すブロック線図型モデルである対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースと、操作インタフェースを介して対象モデルから並列演算用モデルへの変換がモデリング支援部に指示されると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるために用いられるダミーブロックを対象モデルに挿入するモデリング支援部と、クラスタコンピュータにおいて並列走行する複数のプロセスを生成するための並列演算用シミュレーションプログラムを、少なくともダミーブロックが挿入された対象モデルである並列演算用モデルに基づいて編集するプログラム編集部として、コンピュータを機能させるシミュレーション支援プログラムを記憶する記憶媒体に関する。
本発明のシミュレーション支援プログラムを記憶する記憶媒体において、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用されてもよい。
ダミーブロックは、並列演算モデルの入力が対象モデルへの入力と同一であった場合に並列演算によって得られた並列演算用モデルの出力を逐次演算によって得られた対象モデルの出力と同一にするために使用されてもよい。このようにすれば、対象モデルを用いた逐次演算処理によるシミュレーションの実行結果と、並列演算用モデルを用いた並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体であってもよい。
本発明によると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入するシミュレーション装置としてコンピュータを機能させることができる。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。そのため、逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
本発明の第3の態様は、シミュレーションの対象システムを表すブロック線図型モデルである対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースと、操作インタフェースを介して対象モデルから並列演算用モデルへの変換がモデリング支援部に指示されると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入するモデリング支援部と、クラスタコンピュータにおいて並列走行する複数のプロセスを生成するための並列演算用シミュレーションプログラムを、少なくともダミーブロックが挿入された対象モデルである並列演算用モデルに基づいて編集するプログラム編集部と、を備えるシミュレーション支援装置に関する。
本発明のシミュレーション支援装置を記憶する記憶媒体において、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用されてもよい。
本発明によると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入する。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。そのため、逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
ダミーブロックは、並列演算モデルの入力が対象モデルへの入力と同一であった場合にダミーブロックは並列演算によって得られた並列演算用モデルの出力を逐次演算によって得られた対象モデルの出力と同一にするために使用されてもよい。このようにすれば、対象モデルを用いた逐次演算処理によるシミュレーションの実行結果と、並列演算用モデルを用いた並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
本発明の第4の態様は、第3の態様のシミュレーション支援装置と、対象モデルの応答を演算するシミュレーション部と、を備えるシミュレーション装置に関する。
本発明によると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入する。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。そのため、逐次演算処理によるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
本発明の第5の態様は、ホストコンピュータにおいて、シミュレーションの対象システムを表すブロック線図型モデルである対象モデルの応答を演算し、ホストコンピュータにおいて、対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースを生成し、ホストコンピュータにおいて、操作インタフェースを介して対象モデルから並列演算用モデルへの変換が指示されると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入し、クラスタコンピュータにおいて並列走行する複数のプロセスを生成するための並列演算用シミュレーションプログラムを、少なくともダミーブロックが挿入された対象モデルである並列演算用モデルに基づいて編集し、クラスタコンピュータにおいて、並列演算用シミュレーションプログラムを実行することにより並列演算用モデルの応答を演算する、ことを含むシミュレーション方法に関する。
本発明のシミュレーション支援方法において、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用されてもよい。
ダミーブロックは、並列演算モデルの入力が対象モデルへの入力と同一であった場合に並列演算によって得られた並列演算用モデルの出力を逐次演算によって得られた対象モデルの出力と同一にするために使用されてもよい。このようにすれば、対象モデルを用いた逐次演算処理によるシミュレーションの実行結果と、並列演算用モデルを用いた並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
本発明によると、並列走行するプロセスの間で受け渡されるデータについて複数のプロセスにおける同期させるために使用させる。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。そのため、ホストコンピュータによるシミュレーションの実行結果と、クラスタコンピュータによるシミュレーションの実行結果とを完全に一致させることができる。
ダミーブロックは、並列演算モデルの入力が対象モデルへの入力と同一であった場合に並列演算によって得られた並列演算用モデルの出力を逐次演算によって得られた対象モデルの出力と同一にするために使用されてもよい。このようにすれば、対象モデルを用いた逐次演算処理によるシミュレーションの実行結果と、並列演算用モデルを用いた並列演算処理によるシミュレーションの実行結果とを完全に一致させることができる。
本発明の第6の態様は、シミュレーションの対象システムを表現したブロック線図型モデルである対象モデルを、並列走行する複数のプロセッサにそれぞれ対応した複数のサブシステムモデルが接続された並列演算用モデルに変換するためのユーザインタフェースを生成し、前記ユーザインタフェースにおける前記並列演算用モデルへの変換に係る所定動作に応答して、前記複数のサブシステムモデルにそれぞれ対応するプロセッサを特定する情報と前記並列して走行する複数のプロセッサ間でのデータの受け渡しをするための通信セクションとが編入された並列演算用シミュレーションプログラムを生成する、シミュレーション支援方法に関する。
尚、上記動作の順序は、技術的な阻害要因がない限りにおいて記載順に限定されず、同時に実行されても良いし、記載順の逆順に実行されても良いし、連続した順序で実行されなくても良い。また各部の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各部の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
本発明の実施形態にかかる模式図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるソースコードを示す図。 本発明の実施形態にかかるシーケンスチャート。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるフローチャート。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるフローチャート。 本発明の実施形態にかかるシーケンスチャート。 本発明の実施形態にかかるシーケンスチャート。 本発明の実施形態にかかるシーケンスチャート。
以下、本発明の実施の形態を添付図面を参照しながら順に説明する。各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
1.概要
図1は、本発明の一実施形態であるシミュレーションシステム1の全体構成を示している。シミュレーションシステム1は、単一のプロセッサを備えるホストコンピュータ10と、複数のプロセッサを備えるクラスタコンピュータ20とを備えている。ホストコンピュータ10では、自動車制御システムなどの大規模な対象システムを表す対象モデルの作成と、そのモデルの応答をクラスタコンピュータ20において高速に演算するための並列演算用シミュレーションプログラム105の編集とを行う。クラスタコンピュータ20では、並列演算用シミュレーションプログラム105の実行により対象モデルの応答を演算する。
2.ハードウェアの構成
2.1ホストコンピュータ
図2はホストコンピュータ10のハードウェア構成を示すブロック図である。ストレージ113はハードディスクなどの不揮発性記憶媒体を備える。ストレージ113にはプロセッサ111で実行される各種のプログラムが格納される。主記憶装置であるメモリ112にはプロセッサ111で実行されるOS(Operating System)、MATLAB、Simulink、Real-Time Workshop、シミュレーション支援プログラムなどの各種のプログラムが一時的に記憶される。プロセッサ111はメモリ112に記憶されているプログラムを実行し、実行結果をメモリ112に格納する。表示部116はホストコンピュータ10およびクラスタコンピュータ20のGUI(Graphical User Interface)を構成する画面を表示するためのディスプレイ116aとその制御回路とを備える。GUIを構成する画面データはメモリ112のビデオメモリ領域に格納される。操作部115はホストコンピュータ10およびクラスタコンピュータ20を操作するための図1に示すキーボード115a、マウス115b等で構成される。通信部114はクラスタコンピュータ20との通信を制御する。メモリ112、ストレージ113、表示部116、操作部115および通信部114はバスなどの信号線によって接続されている。
2.2クラスタコンピュータ
図3はクラスタコンピュータ20のハードウェア構成を示すブロック図である。ストレージ27はハードディスクなどの不揮発性記憶媒体を備える。ストレージ27には第一プロセッサ21および第二プロセッサ23で実行される各種のプログラムが格納される。主記憶装置である第一メモリ22および第二メモリ24にはOS(Operating System)、並列演算用シミュレーションプログラムなどの各種のプログラムが一時的に記憶される。第一プロセッサ21および第二プロセッサ23が実行する並列演算用シミュレーションプログラムは共通であるが、第一プロセッサ21および第二プロセッサ23はそれぞれに割り当てられた命令を実行し、異なる実行結果を第一メモリ22および第二メモリ24に格納する。通信部28はホストコンピュータ10との通信を制御する。第一メモリ22、第二メモリ24、ストレージ27および通信部28はバスなどの信号線によって接続されている。クラスタコンピュータ20を通信ネットワークによってホストコンピュータ10と接続することにより、ホストコンピュータ10によるクラスタコンピュータ20の操作が可能になる。
3.逐次演算用シミュレーションプログラムの構成
図4はホストコンピュータ10で実行される逐次演算用シミュレーションプログラムの構成を示すブロック図である。逐次演算用シミュレーションプログラムは、アメリカ合衆国のMathWorks社が開発するMATLABプロダクトファミリーと、これに連動する拡張ツールとしてのシミュレーション支援プログラムとによって構成される。
MATLAB100は数値演算機能を実現するコアモジュールである。Simulink102はGUI環境においてブロック線図モデルの作成機能とテスト機能を実現するモジュールである。Real−TimeWorkshop(以下、RTWと略記する。)101はSimulink102によって作成されたモデルから独立して実行可能なC言語のソースファイルを作成するモジュールである。シミュレーション支援プログラムはモデリング支援部103とプログラム編集部104とで構成されている。
モデリング支援部103は、対象モデルをクラスタコンピュータ20において並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースを生成するとともに、操作インタフェースを介して対象モデルを並列演算用モデルに変換する指示が受け付けられると、並列走行するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入するモジュールである。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。またモデリング支援部103は、MATLAB100に対象モデルの応答を演算させることにより、サブシステムモデルの入力の初期値を取得する。そしてモデリング支援部103はサブシステムモデルの入力の初期値をダミーブロックの初期値として設定する。またモデリング支援部103は、対象モデルが並列演算用モデルに変換されると、サブシステムモデルの区切りとなる信号線に、検索キーとなるコードに変換される属性を設定してもよい。
プログラム編集部104はクラスタコンピュータ20において並列走行する複数のプロセスを生成するための並列演算用シミュレーションプログラム105を、RTW101と協働することにより、並列演算用モデルに基づいて編集するモジュールである。またモデリング支援部103が設定したダミーブロックの初期値はRTW101によって並列演算用シミュレーションプログラム105に設定される。またプログラム編集部104は1ステップ毎に、並列走行する複数のプロセスのそれぞれの演算が全て終了してからそれぞれの内部データを更新するまでの期間に、並列走行する複数のプロセスの間でデータを受け渡しするためのコード群を並列演算用シミュレーションプログラム105に編入する。このときプログラム編集部104は、分割の区切りとなる信号線に関連づけてRTW101によって記述されるコードをキーとしてその信号線に対応するコード群(後述する演算セクション1051、更新セクション1052)の位置を特定し、そのコード群から当該信号線に対応するデータの受け渡しを実行するプロセスの識別子を抽出し、並列走行する複数のプロセスの間でデータを受け渡しするためのコード群(後述する通信セクション1053)に抽出した識別子であるプロセッサ指定コードを設定する。
4.並列演算用シミュレーションプログラムの構成
図5は並列演算用シミュレーションプログラム105のソースコードを示すブロック図である。並列演算用シミュレーションプログラム105はC言語が記述された1つのテキストファイルとして取り扱われる。並列演算用シミュレーションプログラム105は、入力に応じた出力を返すための演算をプロセッサに実行させるための演算セクション1051と、演算セクション1051に対応したプロセスの内部データを更新するための更新セクション1052と、並列走行するプロセス間の通信を制御するための通信セクション1053とを含む。演算セクション1051は演算関数を用いて記述され、更新セクション1052は更新関数を用いて記述され、通信セクション1053はMPI関数を用いて記述される。このような並列演算用シミュレーションプログラム105は通信セクション1053などの並列演算を実行可能にする部分を除いた部分がRTW101によって生成され、プログラム編集部104によって通信セクション1053やプロセッサ指定コードが追加されることによって完成し、コンパイルされるとクラスタコンピュータ20において実行可能な1つの実行形式ファイルになる。プログラム編集部104によって追加される部分は図5において下線で示されている。プログラム編集部104によって追記される部分は、いずれのプロセッサによって走行するプロセスに対応するコードであるのかを示すプロセッサ指定コード"if(Rank==x)"の部分と、MPI(Message Passing Interface)を用いた通信セクション1053である。その他の部分はRTW101によって記述される。
5.シミュレーション方法
図6は本発明のシミュレーション方法の一実施形態の全体の流れを示すシーケンスチャートである。はじめに、ホストコンピュータ10において、シミュレーションの対象システムを表すブロック線図型モデルである対象モデルを作成する(ステップS10)。このときユーザは対象モデルの応答をテストしながら対象モデルを作成することができる。対象モデルの作成環境はMATLAB100およびSimulink102によって提供される。本実施形態を説明するために対象モデルの一例を図7に、対象モデルの一部であるブロック30を構成しているサブシステムモデル30を図8に示す。図7、図8に示す対象モデル3はSimulink102によって提供されるGUI環境においてディスプレイ116aの特定領域に表示されるブロック線図型モデルである。対象モデル3およびサブシステムモデル30はブロックを特定領域にドラッグアンドドロップし、各ブロックを信号線で接続し、それぞれのブロックと信号線に属性を設定することによって作成される。本実施形態ではサブシステムモデル30を含む並列演算用モデルに対象モデル3を変換する例について説明する。
次にホストコンピュータ10において、対象モデル3を、クラスタコンピュータ20において並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換する指示を受け付ける(ステップS20)。この変換のための操作インタフェースはモデリング支援部103によって生成される。具体的には例えば、モデリング支援部103によってSimulink102のGUI環境に追加された変換指示を受け付けるためのメニューやアイコンを介して、サブシステムモデル30に対応するプロセッサをサブシステムモデル30に設定する操作が受け付けられる。ユーザはサブシステムモデル30となるブロックを選択し、プロセッサを指定する識別子を設定する操作を行う。キーボード115aまたはマウス115bの操作に応じて変換指示が受け付けられると、選択されたブロックに対応するプロセス(プロセッサ)の識別子(例えば0、1、2など)がサブシステムモデル30に設定されるとともに、選択されたブロックが1つのプロセッサで不可分連続的に実行されるアトミックなサブシステムモデル30となる。プロセスの識別子(例えば0、1、2など)によって各サブシステムモデル30の応答を演算するプロセッサが特定される。尚、この識別子はユーザに指定させても良いし、自動的にサブシステムモデルに割り振っても良い。
対象モデル3から並列演算用モデルへの変換が指示されると、ホストコンピュータ10において、複数のサブシステムモデルに対応するプロセスの間で受け渡されるデータを複数のプロセスにおいて同期させるダミーブロックを対象モデルに挿入する(ステップS30)。また、ダミーブロックは並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用される。図9は、モデリング支援部103によって行われるこの対象モデルを編集することにより、対象モデルを並列演算用モデルに変換する処理の流れを示すフローチャートである。
まず、対象モデル3に基づいて1ステップ分の演算をMATLAB100に実行させることにより、モデリング支援部103が各サブシステムモデルの初期値を取得する(ステップS31)。例えば、分割の区切りとなる信号線31、32、33(図8参照)に出力ブロックを接続し、その状態で1ステップ分の演算を実行することにより初期値を取得できる。各サブシステムモデルの初期値を取得するこの処理は、この処理のために必要なユーザの操作に代わる制御信号をモデリング支援部103からSimulink102へのメッセージとして伝達することによって、ユーザの介入なしに実行可能である。
続いてモデリング支援部103は、分割の区切りとなる信号線31、32、33を分割し、ダミーブロックとしてのメモリブロックを対象モデルに挿入する(ステップS32)。図10はメモリブロック挿入後の対象モデル、つまり並列演算用モデル3Aの状態を示し、図11はメモリブロック挿入されたサブシステムモデル30Aの状態を示している。メモリブロック34、35、36は信号線31、32、33を通過する値を、明示的に更新されるまで各メモリブロックに対応する変数として記憶する処理を表すブロックである。つまり、メモリブロックは入力された値と同一の値を出力するブロックであり、前回のステップにおいてすべてのプロセッサの演算が終了後、前々回のステップで記憶した値が更新され、今回のステップのプロセッサの演算時、その更新値を出力するブロックである。メモリブロック34、35、36の更新は図5に示した更新セクション1052に対応する命令がクラスタコンピュータ20の各プロセッサで実行されるタイミングに起こる。後述するように、メモリブロック34、35、36の挿入によって、RTW101によるソースコードの生成時には、メモリブロック34、35、36のそれぞれを更新する関数が更新セクション1052において1回ずつ記述される。そしてメモリブロック34、35、36はそれらが属するサブシステムモデルの入力が、すなわちそれらが属するサブシステムモデルの直前に位置するサブシステムモデルの出力が、メモリブロックの入力と等しくなる位置に置かれる。入力とする位置に挿入される。したがってメモリブロック36が属するサブシステムモデルに対応するプロセスのステップと無関係に、メモリブロック36が属するサブシステムモデルの直前に位置するサブシステムモデル30Aに対応するプロセスから値が出力されるとしても、メモリブロック36が属するサブシステムモデルに対応するプロセスにおいて明示的にメモリブロック36の更新が行われるまでメモリブロック36が保持する値は変わらない。すなわちメモリブロック34、35、36はクラスタコンピュータ20において並列して走行する異なるプロセスに属するブロック間の通信を実質的に遅延させる。
そしてモデリング支援部103は、挿入したメモリブロック34,35,36のそれぞれの属性として初期値を設定する(S33)。この初期値には、前述したステップS31において各サブシステムモデルの初期値として取得した値が設定される。なおこのとき、メモリブロック34、35、36の入力に接続される信号線であってサブシステムモデルの区切りとなっている信号線31a、32a、33aに、ソースコード内の検索キーとして用いることが可能なコードに変換される属性として特別な共通名称や"テストポイント"を設定するとよい。
図6に示すように、上述した対象モデルの編集によって対象モデルが並列演算用モデルに変換されると、並列演算用シミュレーションプログラム105の出力処理が実行される。すなわち、クラスタコンピュータ20において並列走行する複数のプロセスを生成するための並列演算用シミュレーションプログラム105が、並列演算用モデルに基づいてホストコンピュータ10において編集される(ステップS40)。図12はソースファイルとして出力される並列演算用シミュレーションプログラム105の出力処理の流れを示すフローチャートである。図12に示す処理は対象モデル3の応答の演算をクラスタコンピュータ20において実行するためのソースファイルの出力がユーザによって指示されると起動する。
図12に示すように、まずRTW101によって並列演算用シミュレーションプログラムが生成される。上述した並列演算用モデルを構成する全てのブロックと全ての信号線はRTW101に適合しているため、並列演算用モデルと完全に対応する並列演算用シミュレーションプログラムが生成される。
続いてプログラム編集部104によって、並列演算用シミュレーションプログラム105を、並列演算用モデルに基づいて編集する。具体的には、各サブシステムモデルに対応する各プロセス(プロセッサ)を漏れなく設定するとともに、1ステップ毎に、並列走行する複数のプロセスのそれぞれの演算が全て終了してからそれぞれの内部データを更新するまでの期間に、並列走行する複数のプロセスの間でデータが受け渡しされるように、コード群としての通信セクション1053を並列演算用シミュレーションプログラム105に編入する。上述したように、モデリング支援部103が提供するGUIを用いてサブシステムモデル30Aとして明示的に指定されたブロック30Aには対応するプロセスの識別子が設定されるが、Simulink102自体のGUIを用いて作成される対象モデル3の他のブロックにはブロックに対応するプロセスが設定されない。そこで各サブシステムに対応するプロセス(プロセッサ)をプログラム編集部104によって漏れなく設定するのである。また分散メモリ型のクラスタコンピュータ20では、第一メモリ22に記憶された変数は、第一メモリ22に記憶された変数と同一である第二メモリ24に記憶された変数とMPI関数を用いた通信によって設計通りのタイミングで同期する。第一メモリ22と、第一メモリ22は、異なるプロセッサの主記憶装置である。そこで各プロセッサにおいて演算セクション1051に対応する命令が実行されることにより演算が終了してから、更新セクション1052に対応する命令が実行されることによりメモリブロック34、35、36が更新されるまでの期間に、メモリブロック34、35、36の入力となる値がプロセス間で受け渡しされるように通信セクション1053が並列演算用シミュレーションプログラム105に編入される。
通信セクション1053では、どのプロセス(プロセッサ)がメッセージを送信し、どのプロセス(プロセッサ)がメッセージを受信するかが、サブシステムモデルの区切りとなる信号線毎に記述される。そこで前述したように、サブシステムモデルの区切りとなっている信号線31a、32a、33aの属性として特別な共通名称や"テストポイント"が設定されている場合には、これらを検索キーとしてサブシステムモデルの区切りとなる信号線に対応するコード群の位置を特定し、特定したコード群から当該信号線に対応するデータの受け渡しを実行するプロセスの識別子を抽出し、並列走行する複数のプロセスの間でデータを受け渡しするためのコード群としての通信セクション1053に抽出した識別子を設定できる。このようにしてデータの受け渡しを実行するプロセスの識別子を抽出することにより、並列演算用シミュレーションプログラム105の編集を高速化することができる。
このようにして並列演算用シミュレーションプログラム105のソースコードが編集された後、並列演算用シミュレーションプログラム105のソースコードは実行形式にコンパイルされる。コンパイルされた並列演算用シミュレーションプログラム105はホストコンピュータ10とクラスタコンピュータ20とを接続する通信ネットワークやFD(Flexible Disk)やCD(Compact Disk)といったリムーバブルメモリを介してクラスタコンピュータ20に入力される(図6のステップS50)。
次に、クラスタコンピュータ20は並列演算用シミュレーションプログラム105を実行することにより、並列演算用モデルの応答を並列演算する(図6のステップS60)。
図13、図14はクラスタコンピュータ20において並列演算用シミュレーションプログラム105を実行することによってなされる並列演算処理の流れを示すシーケンスチャートである。以下、このシーケンスチャートを具体的に説明するため、ブロック30Aの処理に対応するプロセスは第二プロセッサ23によって走行し、ブロック30A以外の処理に対応するプロセスは第一プロセッサ21によって走行するものとする。すなわち、値a,a,a・・・が代入される変数aは対象モデル3の入力に対応し、値b,b,b・・・が代入される変数bはブロック30Aの2つの入力に対応し、値c,c,c・・・が代入される変数cはブロック30Aの出力を表し、値d,d,d・・・が代入される変数dは並列演算用モデル3Aの応答を表すものとする。
各ステップにおいては、第一プロセッサ21が第一プロセッサ21に割り当てられている命令を一通り全て実行し、第二プロセッサ23が第二プロセッサ23に割り当てられている命令を一通り全て実行する。
そして各ステップにおいて、第一プロセッサ21によって走行するプロセスは、並列演算用モデル3Aの入力である変数aの値を用いた演算により変数bの値を出力し、第二プロセッサ23によって走行するプロセスの出力である変数cの値を用いた演算により並列演算用モデルの出力である変数dの値を出力する。ここで並列演算用モデルの応答を逐次演算によって演算するとき、第nステップにおいて得られる各変数の値を図15に示すようにa,b,c,dとする。このように定義すると、逐次演算によって得られる並列演算用モデルの応答と等しい結果を、クラスタコンピュータ20を用いた並列演算によって得るためには、第一プロセッサ21によって走行する第nステップ(n=3以上の整数)のプロセスにおいては、an−1を用いた演算によってbn−1が出力され、cn−3を用いた演算によってdn−1が出力されなければならない。一方、第二プロセッサ23によって走行する第nステップのプロセスにおいては、bn−2を用いた演算によってcn−2が出力されなければならない。すなわち、並列走行するプロセスの間で受け渡される変数b、cがこのように遅延して遷移するときに、各プロセスにおけるデータの同期性が保証され、その結果、単一プロセッサによるシミュレーションの実行結果と、並列演算処理によるシミュレーションの実行結果とが完全に一致する。
本実施形態によると、更新セクション1052に対応する命令が実行されるまで値を保持するメモリブロック34,35,36を対象モデルに挿入するため、並列走行するプロセスの間で受け渡される変数b、cは上述したように遅延して遷移する。また第一プロセッサ21によって走行するプロセスと第二プロセッサ23によって走行するプロセスとの間の通信は、各ステップにおいて演算セクション1051に対応する命令が全て実行されてからメモリブロック34,35,36の更新が実行されるまでの期間に実行される。具体的には更新セクション1052に対応する命令によって実行されるメモリボックスの更新は通信セクション1053に対応する命令が実行された後に実行される。すなわち、更新セクション1052が並列演算用シミュレーションプログラム105に編入されているため、各1ステップにおいて、演算セクション1051に対応する命令が第一プロセッサ21と、第二プロセッサ23によって一通り全て実行された後に通信セクション1053に対応する命令が第一プロセッサ21と、第二プロセッサ23によって一通り全て実行され、さらにその後に更新セクション1052に対応する命令が第一プロセッサ21と、第二プロセッサ23によって一通り全て実行される。したがって、本実施形態によるとホストコンピュータ10における逐次演算によるシミュレーションの実行結果と、クラスタコンピュータ20における並列演算処理によるシミュレーションの実行結果とが完全に一致する。
6.他の実施形態
発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、クラスタコンピュータ20のプロセッサの個数は3個以上であってもよいし、クラスタコンピュータ20がシステム外部の通信回線で接続され互いに完全に独立した複数のコンピュータから構成されていても良い。またクラスタコンピュータ20が共有メモリ型の構成を備えていても良い。クラスタコンピュータ20が共有メモリ型の構成を備えている場合、通信セクション1053において全プロセッサ間の同期処理だけを実現すればよい。またクラスタコンピュータ20の操作のためにクラスタコンピュータ20にディスプレイ、マウス、キーボードなどを接続しても良い。また本発明はSimulink以外のモデリングツールに適用することもできる。さらにメモリブロック以外であっても、並列走行するプロセスの間で受け渡されるデータを同期させるために使用できるブロックであればどのようなブロックをダミーブロックとしてもよい。メモリブロック以外の、並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用されるブロックを使用してもよい。また、メモリブロック以外の入出力を一致させるブロックを使用してもよい。また、メモリブロック以外の、並列演算用モデルと対象モデルの入力が一致する場合に並列演算により求められる並列演算用モデルの出力と逐次演算で求められる対象モデルの出力を一致させるために使用できるブロックを使用してもよい。
並列演算用モデルと対象モデルの入力が一致する場合に並列演算により求められる並列演算用モデルの出力と逐次演算で求められる対象モデルの出力を一致させるために使用できるメモリーブロックを使用すれば、例えば、上記実施形態おいて、メモリブロックが挿入される前の対象モデル、すなわち図7、図8に示す元の対象モデルで逐次演算した演算結果を、クラスタコンピュータ20を用いた並列演算によって得ることができる。このように、演算処理時間を短縮化できる。
1:シミュレーションシステム、3:対象モデル、3A:並列演算用モデル、10:ホストコンピュータ、20:クラスタコンピュータ、21:第一プロセッサ、22:第一メモリ、 23:第二プロセッサ、24:第二メモリ、27:ストレージ、28:通信部、30:サブシステムモデル、30A:サブシステムモデル、31:信号線、31a:信号線、31b:信号線、32:信号線、32a:信号線、32b:信号線、33:信号線、33a:信号線、33b:信号線、34:メモリブロック、35:メモリブロック、36:メモリブロック、 103:モデリング支援部、104:プログラム編集部、105:並列演算用シミュレーションプログラム、111:プロセッサ、112:メモリ、113:ストレージ、114:通信部、115:操作部、115a:キーボード、115b:マウス、116:表示部、116a:ディスプレイ、1051:演算セクション、1052:更新セクション、1053:通信セクション

Claims (26)

  1. ホストコンピューターにおいて、シミュレーションの対象システムを表現したブロック線図型モデルである対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースを生成し、
    前記ホストコンピューターにおいて、前記操作インタフェースを介して前記対象モデルから前記並列演算用モデルへの変換が指示されると、並列走行する前記プロセスの間で受け渡されるデータを複数の前記プロセスにおいて同期させるダミーブロックを前記対象モデルに挿入し、
    前記クラスタコンピュータにおいて並列走行する複数の前記プロセスを生成するための並列演算用シミュレーションプログラムを、少なくとも前記ダミーブロックが挿入された前記対象モデルである前記並列演算用モデルに基づいて編集する、
    ことを含むシミュレーション支援方法。
  2. 前記ダミーブロックは、前記並列演算モデルで並列演算した場合の出力を、前記並列演算モデルで逐次演算した場合の出力と同一とするために使用されるブロックである、
    請求項1に記載のシミュレーション支援方法。
  3. 前記ダミーブロックは、前記並列演算モデルの入力が前記対象モデルへの入力と同一であった場合、並列演算によって得られた前記並列演算用モデルの出力を逐次演算によって得られた前記対象モデルの出力と同一にするために使用される、
    請求項1に記載のシミュレーション支援方法。
  4. 前記ダミーブロックは、入力された値と同一の値を出力する、
    請求項1に記載のシミュレーション支援方法。
  5. 前記ダミーブロックは、入力された値を記憶するメモリブロックであって、
    前記メモリブロックに記憶された値は、該メモリブロックが属する前記サブシステムモデルに対応するプロセスでメモリブロックが更新されるまで維持される、
    請求項1に記載のシミュレーション支援方法。
  6. 前記操作インタフェースにおいてそれぞれの前記サブシステムモデルに対応するプロセッサをそれぞれの前記サブシステムモデルにおいて設定する操作を受け付ける、
    請求項1に記載のシミュレーション支援方法。
  7. 前記対象モデルの応答を演算することにより、前記サブシステムモデルの入力の初期値を取得し、前記サブシステムモデルの入力の前記初期値を前記プロセスの入力の初期値となる前記ダミーブロックの初期値に設定する、
    請求項1に記載のシミュレーション支援方法。
  8. 1ステップ毎に、並列走行する複数の前記プロセスのそれぞれの演算が全て終了してからそれぞれの前記プロセスの内部データを更新するまでの期間に、並列走行する複数の前記プロセスの間でデータを受け渡しするための第1コード群を前記並列演算用シミュレーションプログラムに編入する、
    請求項1に記載のシミュレーション支援方法。
  9. 前記操作インタフェースを介して前記対象モデルから前記並列演算用モデルへの変換が指示されると、前記サブシステムモデルの区切りとなる信号線に、検索キーとなるコードに変換される属性を設定し、前記コードをキーとして前記サブシステムモデルの区切りとなる信号線に対応する第2コード群の位置を特定し、前記第2コード群から当該信号線に対応するデータの受け渡しを実行する前記プロセスの識別子を抽出し、並列走行する複数の前記プロセスの間でデータを受け渡しするための第1コード群に抽出した前記識別子を設定する、
    請求項8に記載のシミュレーション支援方法。
  10. シミュレーションの対象システムを表すブロック線図型モデルである対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースと、
    前記操作インタフェースを介して前記対象モデルから前記並列演算用モデルへの変換がモデリング支援部に指示されると、並列走行する前記プロセスの間で受け渡されるデータを複数の前記プロセスにおいて同期させるダミーブロックを前記対象モデルに挿入するモデリング支援部と、
    前記クラスタコンピュータにおいて並列走行する複数の前記プロセスを生成するための並列演算用シミュレーションプログラムを、少なくとも前記ダミーブロックが挿入された前記対象モデルである前記並列演算用モデルに基づいて編集するプログラム編集部として、
    コンピュータを機能させるシミュレーション支援プログラムを記憶した記憶媒体。
  11. 前記ダミーブロックは、並列演算モデルで並列演算した場合の出力を、並列演算モデルで逐次演算した場合の出力と同一とするために使用されるブロックである、
    請求項10に記載の記憶媒体。
  12. 前記ダミーブロックは、前記並列演算モデルの入力が対象モデルへの入力と同一であった場合、並列演算によって得られた前記並列演算用モデルの出力を逐次演算によって得られた前記対象モデルの出力と同一にするために使用される、
    請求項10に記載の記憶媒体。
  13. 前記ダミーブロックは、入力された値と同一の値を出力する、
    請求項10に記載の記憶媒体。
  14. 前記ダミーブロックは、入力された値を記憶するメモリブロックであって、
    前記メモリブロックに記憶された値は、該メモリブロックが属する前記サブシステムモデルに対応するプロセスでメモリブロックが更新されるまで維持される、
    請求項10に記載の記憶媒体。
  15. シミュレーションの対象システムを表すブロック線図型モデルである対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースと、
    前記操作インタフェースを介して前記対象モデルから前記並列演算用モデルへの変換が指示されると、並列走行する前記プロセスの間で受け渡されるデータを複数の前記プロセスにおいて同期させるダミーブロックを前記対象モデルに挿入するモデリング支援部と、
    前記クラスタコンピュータにおいて並列走行する複数の前記プロセスを生成するための並列演算用シミュレーションプログラムを、少なくとも前記ダミーブロックが挿入された前記対象モデルである前記並列演算用モデルに基づいて編集するプログラム編集部、
    とを備えるシミュレーション支援装置。
  16. 前記ダミーブロックは、前記並列演算モデルで並列演算した場合の出力を、前記並列演算モデルで逐次演算した場合の出力と同一とするために使用されるブロックである、
    請求項15に記載のシミュレーション支援装置。
  17. 前記ダミーブロックは、前記並列演算モデルの入力が対象モデルへの入力と同一であった場合、並列演算によって得られた前記並列演算用モデルの出力を逐次演算によって得られた前記対象モデルの出力と同一にするために使用される、
    請求項15に記載のシミュレーション支援装置。
  18. 前記ダミーブロックは、入力された値と同一の値を出力する、
    請求項15に記載のシミュレーション支援装置。
  19. 前記ダミーブロックは、入力された値を記憶するメモリブロックであって、
    前記メモリブロックに記憶された値は、該メモリブロックが属するサブシステムモデルに対応するプロセスでメモリブロックが更新されるまで維持される、
    請求項15に記載のシミュレーション支援装置。
  20. 前記対象モデルの応答を演算するシミュレーション部と、
    請求項15に記載のシミュレーション支援装置と、
    を備えるシミュレーション装置。
  21. ホストコンピュータにおいて、シミュレーションの対象システムを表すブロック線図型モデルである対象モデルの応答を演算し、
    前記ホストコンピュータにおいて、前記対象モデルを、クラスタコンピュータにおいて並列して繰り返し走行する各1ステップ分の複数のプロセスに対応する複数のサブシステムモデルが接続された並列演算用モデルに変換するための操作インタフェースを生成し、
    前記ホストコンピュータにおいて、前記操作インタフェースを介して前記対象モデルから前記並列演算用モデルへの変換が指示されると、並列走行する前記プロセスの間で受け渡されるデータを複数の前記プロセスにおいて同期させるダミーブロックを前記対象モデルに挿入し、前記クラスタコンピュータにおいて並列走行する複数の前記プロセスを生成するための並列演算用シミュレーションプログラムを、少なくとも前記ダミーブロックが挿入された前記対象モデルである前記並列演算用モデルに基づいて編集し、
    前記クラスタコンピュータにおいて、前記並列演算用シミュレーションプログラムを実行することにより前記並列演算用モデルの応答を演算する、
    ことを含むシミュレーション方法。
  22. 前記ダミーブロックは、並列演算モデルで並列演算した場合の出力を、前記並列演算モデルで逐次演算した場合の出力と同一とするために使用されるブロックである、
    請求項21に記載のシミュレーション方法。
  23. 前記ダミーブロックは、前記並列演算モデルの入力が対象モデルへの入力と同一であった場合、並列演算によって得られた前記並列演算用モデルの出力を逐次演算によって得られた前記対象モデルの出力と同一にするために使用される、
    請求項21に記載のシミュレーション方法。
  24. 前記ダミーブロックは、入力された値と同一の値を出力する、
    請求項21に記載のシミュレーション方法。
  25. 前記ダミーブロックは、入力された値を記憶するメモリブロックであって、
    前記メモリブロックに記憶された値は、該メモリブロックが属するサブシステムモデルに対応するプロセスでメモリブロックが更新されるまで維持される、
    請求項21に記載のシミュレーション方法。
  26. ホストコンピューターにおいて、シミュレーションの対象システムを表現したブロック線図型モデルである対象モデルを、並列走行する複数のプロセッサにそれぞれ対応した複数のサブシステムモデルが接続された並列演算用モデルに変換するためのユーザインタフェースを生成し、
    前記ホストコンピューターにおいて、前記ユーザインタフェースにおける前記並列演算用モデルへの変換に係る所定動作に応答して、前記複数のサブシステムモデルにそれぞれ対応するプロセッサを特定する情報と前記並列して走行する複数のプロセッサ間でのデータの受け渡しをするための通信セクションとが編入された並列演算用シミュレーションプログラムを生成する、
    ことを含むシミュレーション支援方法。
JP2009155278A 2008-06-30 2009-06-30 シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置 Expired - Fee Related JP5162531B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009155278A JP5162531B2 (ja) 2008-06-30 2009-06-30 シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008170027 2008-06-30
JP2008170027 2008-06-30
JP2009155278A JP5162531B2 (ja) 2008-06-30 2009-06-30 シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置

Publications (3)

Publication Number Publication Date
JP2010033567A JP2010033567A (ja) 2010-02-12
JP2010033567A5 JP2010033567A5 (ja) 2011-08-18
JP5162531B2 true JP5162531B2 (ja) 2013-03-13

Family

ID=41448493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009155278A Expired - Fee Related JP5162531B2 (ja) 2008-06-30 2009-06-30 シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置

Country Status (2)

Country Link
US (1) US8694293B2 (ja)
JP (1) JP5162531B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6378128B2 (ja) * 2015-04-28 2018-08-22 ルネサスエレクトロニクス株式会社 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム
JP6600280B2 (ja) * 2016-06-28 2019-10-30 トヨタテクニカルディベロップメント株式会社 シミュレーション装置、シミュレーション方法、シミュレーションプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324495B1 (en) * 1992-01-21 2001-11-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronous parallel system for emulation and discrete event simulation
TW421761B (en) * 1994-04-12 2001-02-11 Yokogawa Electric Corp Verification support system
US6862563B1 (en) * 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
CN100520720C (zh) * 2000-06-19 2009-07-29 P·C·克劳斯及合伙人公司 分布式仿真
JP2003228496A (ja) 2002-02-05 2003-08-15 Fujitsu Ltd 制御プログラム開発支援装置
JP2005222420A (ja) 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム
EP1815330A4 (en) * 2004-10-20 2011-11-09 Cadence Design Systems Inc METHOD FOR MODEL COMPILATION
JP4717492B2 (ja) * 2005-04-12 2011-07-06 富士通株式会社 マルチコアモデルシミュレータ
JP2006350549A (ja) * 2005-06-14 2006-12-28 Hitachi Ltd 統合シミュレーションシステム
JP4667206B2 (ja) 2005-10-31 2011-04-06 富士通セミコンダクター株式会社 マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
JP4681513B2 (ja) 2006-06-30 2011-05-11 トヨタテクニカルディベロップメント株式会社 リアルタイム並列分散シミュレーションシステム
US8799871B2 (en) * 2007-01-08 2014-08-05 The Mathworks, Inc. Computation of elementwise expression in parallel

Also Published As

Publication number Publication date
US20090326908A1 (en) 2009-12-31
US8694293B2 (en) 2014-04-08
JP2010033567A (ja) 2010-02-12

Similar Documents

Publication Publication Date Title
US10261760B1 (en) Systems and methods for tracing performance information from hardware realizations to models
JP4994393B2 (ja) 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法
US20050261884A1 (en) Unified modeling language (UML) design method
EP1855194B1 (en) Synchronization of a graphical program and a robot program
US10586003B1 (en) Circuit design using high level synthesis and linked hardware description language libraries
KR20220148913A (ko) 초기 단계 회로 설계에서 기계 학습 기반 메트릭 예측
CN109032577B (zh) 一种数据仿真方法
JPH10187789A (ja) ハードウェア/ソフトウェア協調シミュレーション装置、ハードウェア/ソフトウェア協調シミュレーション方法及びハードウェア/ソフトウェア協調シミュレーションプログラムを記録した機械読み取り可能な記録媒体
JP5298967B2 (ja) 検証支援プログラム、情報処理装置および検証支援方法
CN113268227A (zh) 一种零代码可视化的软件开发平台及开发方法
Tokunaga et al. IDF-Autoware: Integrated development framework for ROS-based self-driving systems using MATLAB/Simulink
JP5162531B2 (ja) シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置
Ebeid et al. HDL code generation from UML/MARTE sequence diagrams for verification and synthesis
JP2010033192A (ja) 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
US20070250803A1 (en) High-level synthesis method and high-level synthesis system
CN115292774A (zh) 一种多模数据融合的联合仿真控制方法
KR20200041489A (ko) 이산 사건 명세와 모의 개체 아웃소싱 기반의 반도체 공정 모델링 및 시뮬레이션 시스템 및 방법
JP5147801B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、及び制御プログラム
JP2014215768A (ja) 性能評価用トランザクション生成プログラム及び性能評価用トランザクション生成装置
JP6157166B2 (ja) 部品生成システムおよび方法ならびにプログラム
US20190012418A1 (en) Simulation program, method, and device
CN114911731B (zh) 复杂体系的模型化接口设计方法、电子设备及存储介质
CN114418523A (zh) 结合rpa和ai的流程处理方法及装置
JP5693668B2 (ja) 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
JP2982418B2 (ja) 機能シミュレーション装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

R150 Certificate of patent or registration of utility model

Ref document number: 5162531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees