(57)【特許請求の範囲】
【請求項１】
各々プロセッサとメモリとを備えた複数の計算資源を含んで構成されたシミュレーション装置において、複数のシミュレータによりシミュレーションタスクを実行するシミュレーションを支援する、動的計算資源配分システムを備えたシミュレーション支援システムであって、
該動的計算資源配分システムは、
生成要求された前記シミュレーションタスクの実行に適したシミュレータの組を生成するタスク生成装置と、
前記シミュレータの組と該シミュレータの組が動作するオペレーティングシステムとを前記計算資源に導入して、前記シミュレーションタスクの実行を可能にするシミュレーションタスク発行装置とを含み、
前記動的計算資源配分システムは、
既存の不具合情報を利用しつつ、前記オペレーティングシステムの集合に新規のソフトウェアを自動的に追加する第一の機能と、
シミュレーション要求に応じて適切な前記オペレーティングシステムの組を選択し、前記シミュレーションタスクを実行させる環境を生成する第二の機能と、
前記シミュレーションタスクを実行して得られた動作履歴に基づいた、未検証のソフトウェアの組を試行し、保有する前記オペレーティングシステム上で正常動作するソフトウェアの組の情報を生成する第三の機能と
を有する
ことを特徴とするシミュレーション支援システム。
【請求項２】
請求項１において、
前記動的計算資源配分システムは、
利用者の要求するシミュレーションの構成を入力として受け取り、複数の前記シミュレータが前記シミュレーション装置上で動作する際に起こる干渉を回避して、前記シミュレータと前記オペレーティングシステムの最適な組合せを出力する
ことを特徴とするシミュレーション支援システム。
【請求項３】
請求項１において、
前記動的計算資源配分システムは、
前記各シミュレータと前記オペレーティングシステム、及び前記複数のシミュレータ間の干渉に関する情報を、前記シミュレーションの動作履歴から生成する
ことを特徴とするシミュレーション支援システム。
【請求項４】
請求項１において、
前記シミュレーションタスクの動作時の、前記複数のシミュレータ同士の結合関係、前記複数のシミュレータ間の通信量、各シミュレーションモデルのＣＰＵ使用量、シミュレーションの実行時間、及び使用したオペレーティングシステムの組を、シミュレーション構成の動作履歴として、シミュレーション構成履歴デーベースに記録する
ことを特徴とするシミュレーション支援システム。
【請求項５】
請求項４において、
前記動的計算資源配分システムは、
生成されたタスクと実行されたタスクとの差分の有無の情報に基づき前記シミュレーション構成に関する前記シミュレーション構成履歴デーベースを更新する
ことを特徴とするシミュレーション支援システム。
【請求項６】
請求項５において、
前記動的計算資源配分システムは、
前記タスク間の差分が検出されたシミュレーション構成については、前記オペレーティングシステムへのシミュレータ導入状況に問題があったと判定する
ことを特徴とするシミュレーション支援システム。
【請求項７】
請求項１において、
前記動的計算資源配分システムは、
前記シミュレーションタスクを実行可能な複数のシミュレータに対して該複数のシミュレータ同士の相互関係による干渉を回避するよう前記オペレーティングシステムを選択し、前記複数のシミュレータを導入するソフトウェア自動導入装置と、
導入済の複数のシミュレータの依存関係の情報を格納するソフトウェア依存関係データベースと、
前記ソフトウェア自動導入装置で選択した前記オペレーティングシステムを格納し、該オペレーティングシステムに導入済のシミュレータの情報を格納するＯＳイメージ管理装置と、
前記シミュレーションタスクの生成要求を受け付けて、該シミュレーションタスクの実行に適したシミュレータの配置情報と、該シミュレータの配置を実現するオペレーティングシステムの組を出力するＯＳイメージ検索装置と、
前記シミュレーションタスクの動作履歴に基づき、前記ソフトウェア依存関係データベース及び前記ＯＳイメージ管理装置の情報を更新して、前記オペレーティングシステムへの前記シミュレータの導入状況を最適化するソフトウェア相互関係解析装置と
を有する
ことを特徴とするシミュレーション支援システム。
【請求項８】
請求項１において、
前記シミュレーションタスク発行装置は、
前記シミュレーション装置で提供するシミュレーションを実行する事が可能なシミュレータに対して、該シミュレータ同士の相互関係による干渉を回避するようオペレーティングシステムを選択し、前記シミュレータを導入するソフトウェア自動導入部と、
前記ソフトウェア自動導入部で作成した前記オペレーティングシステムを格納する機能と、前記オペレーティングシステムに導入済みの前記シミュレータの情報を格納する機能とを備えたストレージ部と、
前記シミュレーションタスクの生成要求を受け付けて、前記シミュレーションタスクの実行に適したシミュレータの配置情報と、前記シミュレータの配置を実現する前記オペレーティングシステムの組を出力するＯＳイメージ検索装置と、
実行された前記シミュレーションタスクの動作履歴に基づき、オペレーティングシステムへのシミュレータ導入状況を最適化するソフトウェア相互関係解析部と
を更に備えて成る
ことを特徴とするシミュレーション支援システム。
【請求項９】
請求項８において、
前記シミュレーションタスク発行装置は、
利用者の要求するシミュレーション構成を入力として受け取り、多種のシミュレータが同一のシミュレーション装置上で動作する際に起こる干渉を回避して、シミュレータとオペレーティングシステムの最適な組合せを出力し、オペレーティングシステムとシミュレータ及び、シミュレータ間の干渉に関する情報を、前記シミュレーションの動作履歴から生成する
ことを特徴とするシミュレーション支援システム。
【請求項１０】
請求項８において、
前記ＯＳイメージ検索装置は、
前記シミュレーション装置に導入されているシミュレーションモデルの情報を格納したツールモデルデータベースと、
前記シミュレーションタスク要求に含まれる各シミュレーションモデルの要求する計算資源量をツールモデルデータベースより検索し、前記各シミュレーションモデルの要求する計算資源量と、シミュレーションモデルの結合関係に基づいて前記シミュレーションタスク要求を満たすシミュレータの配置を算出するアルゴリズム部と、
前記アルゴリズム部の出力に基づき、前記ストレージ部を検索し、前記シミュレーションタスクの実行が可能なオペレーティングシステムの組を出力する組合せ出力部と
を備えて成る
ことを特徴とするシミュレーション支援システム。
【請求項１１】
請求項１０において、
前記アルゴリズム部は、
実行するシミュレーションのモデルと、前記モデルを実行するのに最適なシミュレータと、前記モデル間の結合関係を受け取り、ツールモデルデータベースから各モデルの消費する計算の負荷及び通信の負荷を検索し、前記計算の負荷と通信の負荷が前記シミュレーションを実行する計算機および、計算機間の通信容量を超過しないように、前記シミュレータと前記モデルと計算機との割当関係を算出する
ことを特徴とするシミュレーション支援システム。
【請求項１２】
請求項１０において、
前記組合せ出力部は、
前記アルゴリズム部の出力する条件を満たすオペレーティングシステムが前記ストレージ部に存在しなかった場合に、前記アルゴリズム部の出力する条件を変更して、シミュレーションが実行可能なオペレーティングシステムの組を出力する第１の出力機能と、
前記アルゴリズム部の出力する条件を満たすオペレーティングシステムを新規作成し、シミュレーションが実行可能なオペレーティングシステムの組を出力する第２の出力機能と、
前記の２つの出力機能に基づくシミュレーションを同時に行い、先に正常終了した方のシミュレーションを採用する第３の出力機能と
を備え、
前記の３つの出力機能を必要に応じて選択可能である
ことを特徴とするシミュレーション支援システム。
【請求項１３】
請求項８において、
前記ソフトウェア自動導入部は、
前記シミュレーション装置に導入されるシミュレータ間の相互関係を格納する機能を備えた、ソフトウェア相互関係データベースを備え、
シミュレータ導入要求に含まれる既存のシミュレータに関する干渉情報と、前記ソフトウェア相互関係データベース内に格納された旧バージョンのシミュレータの相互関係情報に基づいて、前記シミュレータを導入するオペレーティングシステムを決定し、該当シミュレータ導入済みオペレーティングシステムを作成する
ことを特徴とするシミュレーション支援システム。
【請求項１４】
請求項１３において、
前記ソフトウェア自動導入部は、
前記ソフトウェア相互関係データベースに、該データベースに導入されている全シミュレータに関し、各シミュレータ同士の依存関係として、同居、干渉発生、非干渉のいずれかの関係を記述し、
前記同居とは、同一オペレーティングシステム上に導入した場合にシミュレーション性能が向上可能である事を示し、
前記干渉発生とは、同一オペレーティングシステム上に導入した場合にシミュレーションの正常終了が不可能になった事を示し、  
前記非干渉とは、同一オペレーティングシステム上に導入した場合に、前記の干渉にはならず、かつ導入してもシミュレーション性能の向上が期待されない事を示す
ことを特徴とするシミュレーション支援システム。
【請求項１５】
請求項８において、
前記ソフトウェア相互関係解析部は、
前記シミュレーションタスク実行時の計算資源使用量を格納する計算資源量管理データベースと、
前記シミュレーションタスクが実行された構成を格納するシミュレーション構成履歴データベースと
を備え、
前記シミュレーションタスクの実行結果に基づいて、シミュレータの未検証の組を試行し、シミュレータの相互関係の検証およびシミュレーション性能の最適化を行う
ことを特徴とするシミュレーション支援システム。
【請求項１６】
各々プロセッサとメモリとを備えた複数の計算資源を含んで構成されたシミュレーション装置において、複数のシミュレータによりシミュレーションタスクを実行するシミュレーションを支援する、シミュレーション支援システムであって、
前記シミュレーション装置で提供するシミュレーションを実行する事が可能なシミュレータを自動で導入するソフトウェア自動導入部と、
前記ソフトウェア自動導入部で作成したオペレーティングシステムを格納する機能と、オペレーティングシステムに導入済みのシミュレータの情報を格納する機能を備えたストレージ部と、
前記シミュレーションタスクの生成要求を受け付けて、前記シミュレーションタスクの実行に適したシミュレータの配置情報と、前記シミュレータの配置を実現するオペレーティングシステムの組を出力するＯＳイメージ検索装置と
を備え、
入力されたシミュレーション構成を満たすシミュレータが導入されたオペレーティングシステムの組合せを出力する
ことを特徴とするシミュレーション支援システム。
【請求項１７】
請求項１６において、
前記ソフトウェア自動導入部は、
導入を要求されたシミュレータ毎に他のシミュレータが導入されていない新規のオペレーティングシステムを設定し、前記オペレーティングシステムにシミュレータを導入することで、シミュレータ間の干渉を防ぐ
ことを特徴とするシミュレーション支援システム。
【請求項１８】
シミュレーション支援システムによりシミュレーションを支援する方法であるシミュレーション支援方法であって、
前記シミュレーション支援システムは、
各々プロセッサとメモリとを備えた複数の計算資源を含んで構成されたシミュレーション装置において、複数のシミュレータによりシミュレーションタスクを実行するシミュレーションを支援する動的計算資源配分システムを備えており、
前記動的計算資源配分システムは、
生成要求された前記シミュレーションタスクの実行に適したシミュレータの組を生成するタスク生成装置と、
前記シミュレータの組と該シミュレータの組が動作するオペレーティングシステムとを前記計算資源に導入して、前記シミュレーションタスクの実行を可能にするシミュレーションタスク発行装置とを含んだシステムであり、
前記シミュレーション支援方法は、
既存の不具合情報を利用しつつ、前記オペレーティングシステムの集合に新規のソフトウェアを自動的に追加する第一のステップと、
シミュレーション要求に応じて適切な前記オペレーティングシステムの組を選択し、前記シミュレーションタスクを実行させる環境を生成する第二のステップと、
前記シミュレーションタスクを実行して得られた動作履歴に基づいた、未検証のソフトウェアの組を試行し、保有する前記オペレーティングシステム上で正常動作するソフトウェアの組の情報を生成する第三のステップと
を有する
ことを特徴とするシミュレーション支援方法。
【請求項１９】
請求項１８において、
前記シミュレーションタスクを実行可能な複数のシミュレータに対して該複数のシミュレータ同士の相互関係による干渉を回避するよう前記オペレーティングシステムを選択し、前記複数のシミュレータを導入し、
導入済の複数のシミュレータの依存関係の情報をソフトウェア依存関係データベースに格納し、
前記第一のステップで選択した前記オペレーティングシステムと、該オペレーティングシステムに導入済のシミュレータの情報をＯＳイメージ管理装置に格納し、
ＯＳイメージ検索装置により、前記シミュレーションタスクの生成要求を受け付けて、該シミュレーションタスクの実行に適したシミュレータの配置情報と、該シミュレータの配置を実現するオペレーティングシステムの組を出力し、
前記シミュレーションタスクの動作履歴に基づき、前記ソフトウェア依存関係データベース及び前記ＯＳイメージ管理装置の情報を更新して、前記オペレーティングシステムへの前記シミュレータの導入状況を最適化する
ことを特徴とするシミュレーション支援方法。
【請求項２０】
請求項１８において、
利用者の要求するシミュレーションの構成を入力として受け取り、
複数の前記シミュレータが前記シミュレーション装置上で動作する際に起こる干渉を回避して、前記シミュレータと前記オペレーティングシステムの最適な組合せを出力する
ことを特徴とするシミュレーション支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション支援システム及びシミュレーション支援方法に係り、特に、組込みシステムの開発に於いて複数のシミュレータが連携する複雑なシミュレーションを実行する開発環境で使用されるのに適したシミュレーション支援の技術に関わる。
【背景技術】
【０００２】
従来、多数の計算機で構成された計算機システムに対して、どの計算機にソフトウェアを導入するかを決定する技術として、利用者が導入を要求したソフトウェアの組を計算機システムに入力した場合、事前に与えられた静的なルールに従って前記ソフトウェアが依存する他のソフトウェアも自動的にインストールする技術があった（例えば、特許文献１参照）。
【０００３】
また、従来、情報収集支援システムとして、コンピュータがインストールするソフトウェアの前提条件を満たしているか否かを調査する機能を備えたものがあった（例えば、特許文献２参照）。
【０００４】
さらに、従来、ジョブネット実行システムとして、ジョブ実行時に必要に応じて適切なプログラムをインストールするものがあった（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０９９３０７号公報
【特許文献２】特開２００６−３５０８９６号公報
【特許文献３】特開２００８−２１７２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
組込みシステムとは制御対象を構成するメカニズムと、メカニズムから受け取った物理量を元に制御演算を行い、メカニズムに制御値の出力を行なうハードウェアと、ハードウェア上で動作するソフトウェアから構成されるシステムである。例えば自動車エンジン制御向けの組込みシステムでは、制御対象であるエンジンとエンジンを制御するマイコン等の電子機器とその上で動作するソフトウェアを指す。組込みシステムに含まれるソフトウェアの挙動は制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。
【０００７】
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。
【０００８】
この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている。メカニズム・ハードウェア・ソフトウェア協調のシミュレーションでは、シミュレーション対象となるメカニズムやハードウェアの構成によって利用できるシミュレータが異なる事と、すでに特定のシミュレータ用に作成されたシミュレーションモデルの蓄積がある事から、異種シミュレータの相互接続による製品全体レベルの協調シミュレーションが行なわれる。
【０００９】
従来、複数シミュレータを相互結合させた協調シミュレーションを行なうには、各個人の計算機上に実行環境を構築する必要があったため、計算能力の不足、設計情報の共有と管理、シミュレーション環境の保守と維持コストの増大が問題となっていた。このような課題に対する対処法の一つとして、多数のシミュレーション用計算機を、ネットワークを介して集約した、開発環境の一元化サービスが考えられる。
【００１０】
また、開発環境の一元化によって得られるシミュレータと計算資源の使用履歴を元に、利用者の入力するシミュレーションの実行に最適な計算機及びシミュレータの構成を自動で構築する仕組みを加える事で、高効率な計算資源の利用を実現し、大量のシミュレーション要求を処理する事が可能である。このようなシステムにおいて、利用者が要求したシミュレーションは、複数の計算機上で動作する複数のシミュレータによって実行されるが、利用者が実際にどの計算機上でどのようなオペレーティングシステム（ＯＳ）を使用してシミュレーション実行されるかを指定する必要が無い。この場合、利用者から見て全てのシミュレーションがあたかも一つのＯＳ上でシミュレータが動作しているように見える。
【００１１】
シミュレータを計算機上で動作させるためには、シミュレータがサポートするＯＳを選択し、その上にシミュレータを導入する必要がある。ＯＳはシミュレータ動作のための入出力の処理、計算資源の管理を行う。
【００１２】
しかし、各計算機に全てのシミュレータを導入する事は以下の理由により困難である。
第一の理由として、本計算機システムはシミュレータを調達して導入する事を原則としており、それらのシミュレータが動作するＯＳはそれぞれ異なるため、当該計算機システムを構成するＯＳの種類を一つに限定する事が不可能な事である。
【００１３】
第二の理由として、同一のシミュレータであっても一つの計算機に複数のバージョンを導入できない場合が存在する事である。シミュレータを使用する場合の大きな制限としてシミュレータのバージョン間で互換性がなく、特定のバージョンでのみ動作するプログラムが存在する事が少なくない。
【００１４】
多数の利用者の全ての要求に応えるためには、互換性のないバージョンのシミュレータも複数導入する必要がある。
【００１５】
第三の理由として、同一ＯＳ上に導入されたシミュレータ間で環境変数またはシミュレータが依存するソフトウェアの干渉によってシミュレータが動作しなくなる問題が存在する事があげられる。シミュレータが依存するソフトウェアの一例として、通信や計算のための汎用ライブラリ等が考えられる。ソフトウェアの干渉の一例として、二つ以上のシミュレータが共通に用いる汎用ライブラリに於いて、ライブラリのインストール場所の指定が異なっている事や、必要とするライブラリのバージョンが異なっている事が上げられる。また本発明で対象とするようなシミュレータは前記ライブラリなどの指定が固定化されており、利用者の側で柔軟な対処が不可能である場合が少なくない。
【００１６】
また、想定しているシミュレーションサービスでは、作成者の異なるシミュレータを組み合わせる事を前提としているため、 上記であげた第二、第三の理由のように任意のシミュレータの組によって発生しうる問題に対して事前に障害の発生を避けてシミュレータの導入を行う事が難しい。
【００１７】
よって、前記のシミュレーションサービスは多数の異なるＯＳによって構成されたため、どのＯＳにどのシミュレータを導入するか決定する仕組みが必要となる。
【００１８】
多数の計算機で構成された計算機システムに対して、どの計算機にソフトウェアを導入するかを決定する既存の発明として以下の特許文献１に開示されたものが存在する。すなわち、特許文献１には、利用者が導入を要求したソフトウェアの組を計算機システムに入力した場合、事前に与えられた静的なルールに従って前記ソフトウェアが依存する他のソフトウェアも自動的にインストールする技術が開示されている。
【００１９】
また、特許文献２には、コンピュータがインストールするソフトウェアの前提条件を満たしているか否かを調査する機能を備えた情報収集支援システムが開示されている。
【００２０】
さらに、特許文献３には、ジョブ実行時に必要に応じて適切なプログラムをインストールするジョブネット実行システムが開示されている。
【００２１】
前記特許文献１記載の技術は、事前に与えられた静的なルールに従って、利用者が導入を要求したソフトウェアの組を、前記要求を満たすように計算機に対して自動的に導入するための技術である。前記特許文献２、３に記載の技術も、事前に与えられた情報を利用するものである。このような技術では、事前にシミュレータで実行した情報が与えられていないソフトウェアの関係に関して、シミュレータに導入後のソフトウェアの正常動作を確かめる術がない。そのため、シミュレータで未検証な前記のソフトウェア間での相性による不具合を解決する事が不可能である。
【００２２】
また、当該技術だけでは、利用者の要求毎に異なる計算機またはシミュレータの構成を任意に変化させ提供する必要のある前記シミュレーションサービスの計算機の管理に用いる事が不可能である。
【００２３】
本発明の目的は、上記の課題に鑑みて、多数の計算機によって構成されシミュレーションサービスを提供するシミュレーションシステムにおいて、特に、組込みシステムにおいて、そのシステムに導入されるシミュレータ同士を、不具合を発生させる事なく連動させる事を容易化すると共に、シミュレーションサービスの品質を向上させるシミュレーション支援システム及びシミュレーション支援方法を提供することにある。
【課題を解決するための手段】
【００２４】
本発明の代表的なもの一例を示すと、次のようになる。すなわち、本発明のシミュレーション支援システムは、各々プロセッサとメモリとを備えた複数の計算資源を含んで構成されたシミュレーション装置において、複数のシミュレータによりシミュレーションタスクを実行するシミュレーションを支援する、動的計算資源配分システムを備えたシミュレーション支援システムであって、該動的計算資源配分システムは、生成要求された前記シミュレーションタスクの実行に適したシミュレータの組を生成するタスク生成装置と、前記シミュレータの組と該シミュレータの組が動作するオペレーティングシステムとを前記計算資源に導入して、前記シミュレーションタスクの実行を可能にするシミュレーションタスク発行装置とを含み、前記動的計算資源配分システムは、既存の不具合情報を利用しつつ、前記オペレーティングシステムの集合に新規のソフトウェアを自動的に追加する第一の機能と、シミュレーション要求に応じて適切な前記オペレーティングシステムの組を選択し、前記シミュレーションタスクを実行させる環境を生成する第二の機能と、前記シミュレーションタスクを実行して得られた動作履歴に基づいた、未検証のソフトウェアの組を試行し、保有する前記オペレーティングシステム上で正常動作するソフトウェアの組の情報を生成する第三の機能とを有することを特徴とする。
【発明の効果】
【００２５】
本発明により、シミュレーションシステムへのソフトウェアの導入やそのシステムの運用を容易にし、シミュレーションサービスの品質を向上させることが可能となる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態になるシミュレーション支援システムの機能要素を示すブロック図である。
【図２Ａ】図１のシミュレーション装置のネットワーク構成例を示す図である。
【図２Ｂ】図１のシミュレーション装置のネットワーク構成例を示す図である。
【図３】第１の実施形態の、ＯＳイメージ管理装置の構成例を示す図である。
【図４】第１の実施形態の、全体的な処理概要の一例を示すフローチャートである。
【図５】第１の実施形態の、資源利用量管理データベースの構成例を示した図である。
【図６】第１の実施形態の、ツールモデルデータベースの構成例を示した図である。
【図７】第１の実施形態の、シミュレーション構成履歴データベースの構成例を示した図である。
【図８Ａ】第１の実施形態の、ソフトウェア相互関係データベースのデータベース構成例を示した図である。
【図８Ｂ】図８Ａのソフトウェア相互関係データベースの、データベースの更新例を示した図である。
【図９Ａ】第１の実施形態の、ＯＳイメージ管理装置のソフトウェア導入状況データベースの構成例を示した図である。
【図９Ｂ】図９Ａのソフトウェア導入状況データベースの更新例を示す図である。
【図１０】第１の実施形態の、ソフトウェア自動導入機能の処理の一例を示す図である。
【図１１】第１の実施形態の、ＯＳ割当機能の処理の一例を示す図である。
【図１２】第１の実施形態の、ソフトウェア導入状況最適化機能の処理の一例を示す図である。
【図１３】本発明の第２の実施形態として、上記第１の実施形態の適用の一例であるシミュレーションサービスの情報の流れを示すブロック図である。
【図１４Ａ】本発明の第２の実施形態として、上記第１の実施形態の適用の一例である、シミュレーションサービスを提供する計算機システムの機能要素を示すブロック図である。
【図１４Ｂ】本発明の第２の実施形態として、上記第１の実施形態の適用の一例である、シミュレーションサービスを提供する計算機システムの機能要素を示すブロック図である。
【図１５】本発明の第３の実施形態における処理の一例を示した図である。
【図１６】本発明の第４の実施形態における機能要素を示すブロック図である。
【図１７】第４の実施形態における処理の一例を示した図である。
【発明を実施するための形態】
【００２７】
代表的な実施形態によれば、本発明のシミュレーション支援システムは、以下の３つの処理機能又は処理ステップからなる。  
第一の処理機能又はステップでは、既存の不具合情報を利用しつつ、計算機システムを構成するＯＳの集合に新規のソフトウェアを自動的に追加する。  
第二の処理機能又はステップでは、利用者からのシミュレーション要求に応じて適切なＯＳの組を選択し、シミュレーションを実行させる環境を作成する。
【００２８】
第三の処理機能又はステップでは、利用者のシミュレーション実行履歴に基づいた、未検証のソフトウェアの組を試行し、保有するＯＳ上で全てのソフトウェアが正常動作する事を保証しつつ、シミュレーションの性能を向上させる。  
上記の３つの特徴的な処理機能又はステップにより、多種類または複数バージョンのソフトウェアが混在する事による不具合を事前に防ぎつつ、シミュレーションの性能が低下しない計算機構成を実現する事が出来る。  
以下、本発明の各実施形態を添付図面に基づいて説明する。
【実施例１】
【００２９】
まず、本発明の第１の実施形態になるシミュレーション支援システムを、図１〜図１４Ｂを参照しながら説明する。  
図１は、本発明の実施形態の一構成例を示し、シミュレーション支援システムにおいて利用者のシミュレーション実行要求を満たすＯＳ構成を作成する動的計算資源配分システム１００の機能ブロック図である。  
本シミュレーション支援システムの動的計算資源配分システム１００は、シミュレーション用計算資源を備えたシミュレーション装置１０１、シミュレーション結果可視化システム１０２、表示部を備えたシミュレーションタスク入力装置７０４、シミュレーションタスク生成装置７０５、動的計算資源管理データベース７０６、ツールモデルデータベース７０９、資源利用量管理データベース７１１、シミュレーション構成履歴データベース７２１、シミュレーションタスク発行装置７２３、及び、タスク指令履歴データベース７２５を備えている。シミュレーションタスク発行装置７２３は、ソフトウェア自動導入装置００１、ソフトウェア相互関係データベース００２、ＯＳイメージ管理装置００４、ＯＳイメージ検索装置００５、及びソフトウェア相互関係解析装置００６を備えている。動的計算資源配分システム１００を構成する各機器は、内部ネットワークを介して接続されている。上記のシミュレーション支援システムの構成を以下では、本システムと呼ぶ。なお、各システム、計算資源は、プロセッサとメモリおよびネットワークインターフェイスを含む計算機で構成される。
【００３０】
ここで、シミュレーション装置１０１の構成について説明する。  
本システムでは、シミュレーション装置１０１から必要な数の計算機を確保して、利用者の指示したシミュレーションを実行する。シミュレーション装置１０１は、プロセッサ、メモリ、記憶領域、ネットワークインターフェイスを伴った計算機が多数ネットワークにより相互結合されている集合で構成される。本システムでは大規模なシミュレーションに対応するため、一つのシミュレーションを複数の計算機で実行する事が可能になっている。
【００３１】
複数の計算機を連動させるときの計算機間の通信遅延を軽減させるため、計算機の相互結合方法は、図２Ａに示すような全ての計算機１０００を同一階層に置く木構造型のネットワーク１００１と、図２Ｂに示すような隣接する計算機同士を結合する高速ネットワーク１００２とを併用する事が可能である。なお、図２Ａ、図２Ｂ中のPEはProcessing Elementの略であり、シミュレーション装置１０１の計算資源を構築する各計算機を指す。
【００３２】
このような構成の各計算機上で動作するＯＳは一つに固定されておらず、ＯＳイメージ管理装置００４から適宜、実行するシミュレーションに適したＯＳを選択し、コピーして起動する。なお、ＯＳの入れ替えを容易にする手段として、ネットワーク上のストレージ内に置かれたＯＳのイメージを参照してＯＳを起動する方法であるネットワークブートの手段、または仮想ＯＳのような既存の技術を使用する手段がある。ＯＳイメージ領域に保存するＯＳを構成するファイルの内容は、シミュレーション装置１０１でのＯＳ起動方法に依存する。
【００３３】
図３に、ＯＳイメージ管理装置００４の構成例を示す。ＯＳイメージ管理装置００４は、シミュレーション装置１０１で動作させるＯＳを構成するファイルの集合または仮想マシン用ＯＳイメージファイルを格納するＯＳイメージ領域０１０と、各ＯＳに導入されているシミュレータのリストを保持するソフトウェア導入状況データベース０１１とで構成される。なお、ソフトウェア導入状況データベース０１１の構成については後で説明する。
【００３４】
次に、図４を用いて、動的計算資源配分システム１００の処理の概要を説明する。  
まず、新規シミュレータを本システムへの追加する処理（ステップ２０７、２０４）を説明する。ステップ２０７で、本システムへのシミュレータの追加要求を受け取ると、ステップ２０４で、ソフトウェア導入装置００１がソフトウェア相互関係データベース００２に格納されたソフトウェア依存関係情報に基づき、本システムが管理するＯＳにシミュレータを導入する。本システムが提供可能なシミュレータを導入したＯＳはＯＳイメージ管理装置００４に保存される。また、シミュレータの追加を行ったＯＳに対してＯＳイメージ管理装置００４のソフトウェア導入状況を更新する。
【００３５】
次に、利用者の要求を満たすシミュレーションが実行可能なＯＳの組を自動生成する処理（ステップ２０６、２０１、２０２）について説明する。ステップ２０６でシミュレーションのタスク出力がなされた場合、シミュレーションタスク生成装置７０５はステップ２０１において入力されたシミュレーションタスクの実行に適したシミュレータの組をツールモデルデータベース７０９の検索結果を用いて出力する。ＯＳイメージ検索装置００５は出力されたシミュレータの組を実現するＯＳの組を、ＯＳイメージ管理装置００４内のソフトウェア導入状況の検索結果より生成する。ステップ２０２では、ステップ２０１で作成したＯＳの組をシミュレーション装置１０１上で起動し、シミュレーションを開始する。同時に、シミュレーションの成否、性能の情報が記録され履歴データとしてシミュレーション構成履歴データベース７２１に保存される。
【００３６】
最後に、システムに導入されたシミュレータの正常動作の保証とシミュレーション性能向上の処理（ステップ２０３、２０４、２０５）を説明する。ステップ２０３では、シミュレーション装置１０１で取得したシミュレーションの成否、性能に基づき、ソフトウェア相互関係解析装置００６が新規のシミュレータの相互関係を決定する。ステップ２０３において新規のソフトウェア依存関係が発見された場合、ステップ２０４に戻りソフトウェア相互関係データベース００２へのソフトウェア依存関係の追加およびＯＳイメージ管理装置００４に対し、新規のソフトウェア依存関係を満たす新たなＯＳの作成、または依存関係を満たさないＯＳを削除する。ステップ２０３において新規のソフトウェア依存関係が発見されなかった場合、ステップ２０５に移り、最適化フローを終了する。なお各システムの詳細に関しては後述する。
【００３７】
次に、計算資源管理データベース７１１の構成について説明する。  
資源利用量管理データベース７１１は、シミュレーション装置１０１の各計算資源の利用状況および、使用履歴を格納する。図５に、計算資源管理データベースの構成例を示す。資源利用量管理データベース７１１は、各シミュレーションを識別するためのシミュレーションID、シミュレーションで使用したシミュレータ名、シミュレータの実行時間、CPU、メモリ、ネットワークの負荷に関する情報を格納している。
【００３８】
次に、ツールモデルデータベース７０９の構成について説明する。  
図６に、ツールモデルデータベース７０９の構成例を示す。ツールモデルデータベース７０９は本システムで提供されるシミュレーションで使用可能なシミュレーションモデルの情報を格納する。ツールモデルデータベース７０９は、各シミュレーションモデルの名前、実行するシミュレータ、モデルのバージョン、モデルの時間粒度、入出力ポート数、平均CPU使用率、平均RAM使用量、平均要求通信帯域を格納する。
【００３９】
次に、シミュレーション構成履歴データベース７２１の構成について説明する。  
シミュレーション構成履歴データベース７２１は、利用者が入力したシミュレーション指示と、シミュレーションタスク生成装置７０５が出力したシミュレーション構成と、シミュレーション装置１０１上で行ったシミュレーションの構成と、その実行時間を記録し、シミュレーション構成の自動最適化に用いる事を目的とする。
【００４０】
図７に、シミュレーション構成履歴データベース７２１の構成例を示す。  
シミュレーション構成履歴データベース７２１は、シミュレーションIDの識別子（ID）、シミュレーションを実行したユーザ名、シミュレーションの開始時間、予想される終了時間、実際の終了時間、シミュレーションタスク入力装置７０４、シミュレーションタスク生成装置７０５、シミュレーションタスク発行装置７２３が出力したシミュレーション構成を記述したファイルへのパス、前記のファイルパスをシミュレーションタスク入力装置７０４、シミュレーションタスク生成装置７０５、シミュレーションタスク発行装置７２３のどれが出力したかを識別するための処理段階IDを含む。
【００４１】
図８Ａで、ソフトウェア相互関係データベース００２の構成例を説明する。  
ソフトウェア相互関係データベース００２は、本システムに導入されている全シミュレータ間の相互関係を格納する。図８Ａは、ソフトウェア相互関係データベース００２のデータベース定義例を示す。データベースの縦軸と横軸に導入されている全シミュレータを配置し、各要素にそのシミュレータ同士の依存関係を記述する。記述される依存関係フラグは、同居、干渉発生、非干渉、未検証が考えられる。  
同居とは、この２つのシミュレータがシミュレーションにおいて同時に使われなおかつ、シミュレータ間での通信量が多くなるものであり、同一ＯＳ上に導入した場合シミュレーション性能が向上可能である事を示す。  
干渉発生とは、該当する２つのシミュレータを同一ＯＳ上に導入した場合にシミュレーションの正常終了が不可能になった事を示す。  
非干渉とは、前記の干渉にはならず、なおかつシミュレーションにおいて同時に使われるシミュレータのデータ通信量が小さいため、同一ＯＳ上に導入してもシミュレーション性能の向上が期待されない事を示す。  
未検証とは、該当する２つのシミュレータが同一ＯＳ上に導入された実績がない事を示す。シミュレータが新規に導入された場合、導入されたシミュレータにはほかの全てのシミュレータに対して未検証フラグが初期設定される。未検証状態である相互関係に関しては後述する本システムのソフトウェア相互関係解析装置００６の最適化機能によって同一ＯＳ上に導入してシミュレーションが試行され、その結果によって同居、干渉発生、非干渉のいずれかに更新される。
【００４２】
シミュレーションの試行によりシミュレーション性能が向上した場合、同居に更新される。この場合以前の状態が干渉発生、非干渉、未検証のいずれであっても良い。シミュレーションの試行によって性能が向上しなかった場合、未検証から非干渉に更新される。シミュレーションの試行の結果、正常動作不能になった場合、干渉発生に状態が更新される。
【００４３】
次に、図９Ａに、ソフトウェア導入状況データベース０１１の構成例を示す。本データベースには、ＯＳの識別子である ＯＳID、ＯＳの種類、ＯＳに導入されているシミュレータの一覧、ソフトウェア間干渉を起こすものか否かを示す干渉フラグ、ＯＳを構成する一連のファイルが格納された、ＯＳイメージのファイルパスを格納する。管理するＯＳが仮想マシン上で動作する仮想ＯＳであっても、物理的な計算機で動作するＯＳであってもＯＳイメージのファイルパスを適切に設定する事により、本発明の機能への影響を避ける事が可能である。
【００４４】
次に、図４のステップ２０４のフロー、すなわち、本システムが管理するＯＳにシミュレータを導入する処理について、図１０で詳細に説明する。  
図１０は、ソフトウェア導入装置００１の処理の一例を示すものである。まず、ステップ７１００から７１０６までの手順で、事前に判明している干渉問題を回避しつつ、旧バージョンの同一ソフトウェアの情報から新規追加のシミュレータの依存関係を推論し検証するべき依存関係数を削減する事が可能にする。
【００４５】
ステップ７１００では、本計算機システムの管理者が新規シミュレータの追加を行うため、本システム管理者はシミュレータ名、バージョン、インストーラファイルの場所、既に判明している当該シミュレータと干渉を起こすシミュレータの組の情報が含まれたインストール情報を入力する。ステップ７１０３でソフトウェア追加フォーマットのシミュレータ名およびバージョンを用いて、ソフトウェア相互関係データベース００２を検索し同一名シミュレータが既に導入されているかを探索する。同一名のシミュレータであって、追加しようとするシミュレータよりも旧バージョンが既に導入されている場合、ステップ７１０４で、ソフトウェア相互関係データベース００２より該当するシミュレータの旧バージョンの相互関係値を、追加されるシミュレータの相互関係値にコピーする。同一名シミュレータであって、追加しようとするシミュレータよりも新しいバージョンが既に導入されている場合、または、同一名シミュレータが導入されていない場合はコピーを行わず、追加されるシミュレータの相互関係値を未検証にセットする。
【００４６】
ステップ７１０５では、前記インストール情報内の既知の当該シミュレータと干渉を起こすシミュレータの組を参照し、ソフトウェア相互関係データベースの該当する位置に干渉発生を設定する。
【００４７】
ステップ７１０６では、ステップ７１０４および７１０５により生成した、本計算機システムに新規導入されるシミュレータと既に導入済みのシミュレータの依存関係の初期値をソフトウェア相互関係データベース００２に追加する。
【００４８】
次に、ステップ７１０１からステップ７１１６は、前記の手順で算出されたシミュレータの相互関係に基づいて実際にシミュレータをＯＳにインストールする手順を示す。  
まず、ステップ７１０１で、ＯＳイメージ管理装置００４管理下の全てのＯＳに対し、そのＯＳに導入済みシミュレータのリストを取得する。ステップ７１１１で、取得されたリストに含まれる各シミュレータと、追加されるシミュレータをキーワードとしてソフトウェア相互関係データベース００２を検索し、リスト内の全てのソフトウェアとの相互関係に干渉発生がない事、かつ同居と判定されたシミュレータが一つ以上存在するかどうかを判断する。上記の条件が真となるＯＳが存在した場合ステップ７１１４で、該当したＯＳに対象とするソフトウェアを導入する。上記条件がＯＳイメージ管理装置００４で管理されている全てのＯＳで偽であった場合、ステップ７１１２で、シミュレータ未導入ＯＳをソフトウェア相互関係データベース００２よりコピーし、ステップ７１１３で対象シミュレータを新規インストールする。
【００４９】
上記ステップまでで、対象シミュレータが新規に追加されたＯＳが少なくとも１つは作成される事になるので、ステップ７１１６で更新されたＯＳとソフトウェアの割り付け情報をＯＳイメージ管理装置００４に追加する。
【００５０】
既存ＯＳにシミュレータを追加した場合はソフトウェア導入状況データベースへのデータの追加を行う。ソフトウェア未導入ＯＳに対して導入した場合は、ＯＳイメージ管理装置００４のソフトウェア導入状況データベース０１１にシミュレータを導入したＯＳのＯＳ種類、ＯＳイメージのファイルパス、ソフトウェア導入状況等の情報を新規作成して追加する。
【００５１】
次に、図１１により、シミュレーション実行時に、利用者の入力したシミュレーション構成を実行可能にするＯＳの組を生成する処理の一例を説明する。図１１のステップ８０１から８０９のフローが、図４のステップ２０１に相当し、図１１のステップ８１０から８１１が、図４のステップ２０２に相当する。
【００５２】
この処理は、入力として利用者が実行を指示するシミュレーションのモデルと、シミュレーションのモデルを実行するのに最適なシミュレータおよび、そのモデル間接続関係を受け取り、各モデルが必要とするCPU使用率とモデル間通信が必要とする通信帯域から、シミュレーションを実行するのに最適なシミュレータとＯＳの組を出力する。
【００５３】
ステップ２０６で手入力または、上位システムによりシミュレーションモデルと、シミュレーションモデルを実行するのに最適なシミュレーションおよび、そのモデル間接続関係が出力される。
【００５４】
ステップ８０１で、前ステップの入力情報に含まれる全シミュレーションモデルが必要とするCPU使用率をツールモデルデータベース７０９より検索する。ステップ８０２で、前ステップの入力情報に含まれるシミュレーションモデルの接続関係でシミュレーション構成履歴データベース７２１を検索し、各接続関係が必要とする通信帯域を算出する。次に全シミュレータを同一ＯＳ上に配置した状態から開始して、同一ＯＳ上にグループ化された全モデルのCPU使用率の合計が１００%を超えない事、ソフトウェア相互関係データベース００２によって干渉発生が設定されていない事を条件にシミュレータの組を分割する。分割する際は、シミュレーションモデル間の通信帯域量が小さいものを優先して分割する。これらの手順により、CPU資源の競合とネットワーク帯域の競合が最小となるシミュレータの組が出力される。ここまでの手順を行うシステムを「アルゴリズム部」と呼称する。
【００５５】
ステップ８０３で、前ステップで算出したシミュレータの組を受け取り、その組を満たすＯＳをＯＳイメージ管理装置から検索する。ステップ８０４で、シミュレータの各組に含まれるシミュレータを全て含むＯＳが存在するかを判断する。該当するＯＳが存在しなかった場合、最も多くのシミュレータを含んでいるＯＳを選択し、そのＯＳに含まれなかったシミュレータを別のグループに分割し再度ステップ８０３の検索を行う事を再帰的に繰り返す。該当するＯＳが存在した場合はステップ８０６で全てのグループのＯＳ割り付けが終わったかを判断する。ＯＳが未割当のシミュレータの組が存在した場合、ステップ８０７に進み、未割当グループに対して上記の処理を繰り返し行う。全てのグループに対してＯＳが割り付けられた場合、ステップ８０８に進み、複数組得られたＯＳの集合の中で最も含まれるＯＳ数が少ないものを選択する。
【００５６】
具体的な事例として、ステップ８０３からステップ８０８の処理に関して、図９Ａの導入ソフトの例を用いて説明する。例えば、ステップ２０６で、シミュレーションタスク生成装置７０５からSim01ver02とSimC2009bとSim0Aver2.3が連動するシミュレーションが出力され、ステップ８０１、ステップ８０２の処理がSim01ver02とSimC2009bで一つのＯＳ、Sim0Aver2.3で一つのＯＳという割当を出力した場合を仮定する。
【００５７】
まず、ステップ８０３で、Sim01ver02とSimC2009bが導入されたＯＳをソフトウェア導入状況データベース内００１から検索する。この例ではＯＳIDがＯＳ００４のＯＳが該当する。
【００５８】
次に、ステップ８０６に移り全てのソフトウェアの組にＯＳが割り当てられているかを判断するが、まだ、Sim0Aver2.3に対してＯＳが割り当てられていないため、ステップ８０３に戻り、Sim0Aver2.3が導入されたＯＳをソフトウェア導入状況データベース内００１から検索する。割当の制約を満たすＯＳの組み合わせが複数個存在しうる場合、本実施例では最初に発見された組み合わせを採用しているため、この例ではＯＳIDがＯＳ００２のＯＳが該当する。次にステップ８０６で全てのソフトウェアの組にＯＳが割り当てられたと判断され、このシミュレーションを実行可能にするＯＳの組として、ＯＳ００４とＯＳ００２が出力される。ここまでの手順を行うシステムを「組合せ出力部」と呼称する。
【００５９】
ステップ８０９で、選択されたＯＳを全て起動させるのに足る計算資源をシミュレーション装置１０１上に確保し、計算資源上のローカルストレージに各ＯＳをコピーする。
【００６０】
ステップ８１０で、全てのＯＳを起動しシミュレーションを開始する。
【００６１】
ステップ８１１で動作させたシミュレーションのシミュレータ同士の結合関係、シミュレータ間の通信量、各シミュレーションモデルのCPU使用量、シミュレーションの実行時間、使用したＯＳの組をシミュレーション構成履歴データベース７２１に記録し、次回以降のシミュレーション構成最適化に用いる。
【００６２】
次に、ＯＳへのソフトウェア導入状況最適化の処理について述べる。  
図１２は、ＯＳへのソフトウェア導入状況最適化のための一連の処理を例示したものである。本処理はシミュレーション要求の処理、シミュレータ導入の処理とは別のトリガで働き、シミュレーション装置１０１を最適化タスク用に十分に確保可能な時間に動作する事が望ましい。よって、本システムは周期的に実行するか、特に時間を指定せず単位時間あたりシステムの処理件数が一定を下回ったときに実行する事が可能である。
【００６３】
ステップ９００で、本システムの管理設定に基づき最適化タスクの実行が判断された場合、ステップ９０３で、シミュレーション構成履歴データベース７２１を検索し、前回のタスク実行以降に行われた全てのシミュレーションが実行されたシミュレーション構成と、図１１のＯＳ割り付けシステムのステップ８０３までに出力されたシミュレーションの組との間で差分を取得し、ステップ９２１で差分の有無を判断する。すなわち、シミュレーション構成履歴データベース７２１において、開始時刻と実終了時刻との差分を求める。
【００６４】
差分が検出できなかったものに関しては対象外であったとして、ステップ９２０でＯＳに対する最適化処理を抜ける。
【００６５】
差分が検出されたシミュレーション構成は、ＯＳへのシミュレータ導入状況に問題があり、最適なシミュレーションの実行が不可能であった事を示す。差分を埋めるためには、シミュレーション実行時に同一ＯＳ内で実行できなかったシミュレータをインストールすれば良い。差分が検出された場合は、ステップ９０１、ステップ９０２、ステップ９０４を実行する。ステップ９０４では、差分となったシミュレータを既存ＯＳのコピーに導入し、新たなＯＳを作成する。ステップ９０５で、新たなＯＳを一時的に追加した、ＯＳイメージ管理装置００４を使い、ステップ９０２で検索したシミュレーション構成履歴データベース７２１上の履歴と同じ構成のシミュレーションを、新規追加したＯＳを用いて再実行する。
【００６６】
ステップ９０７で、実行されたシミュレーションが正常に最後まで動作したか否かを判断し、正常動作した場合はその際のシミュレーション実行時間を取得し、ステップ９０８で、ステップ９０１でシミュレーション構成履歴データベース７２１から取得した古いシミュレーション結果と比較する。すなわち、シミュレーション構成履歴データベースにおける開始時刻と実終了時刻との差分を、資源利用量管理データベース７１１における開始時刻と実終了時刻との差分と比較する。ステップ９０９でシミュレーションが異常終了した場合、新しく作ったＯＳはシミュレータの追加の結果シミュレータ間の干渉を発生させたと判断される。当該ＯＳは使用不可としてステップ９１１で、ＯＳイメージ管理装置００４のＯＳイメージ領域０１０より削除され、新たに追加されたシミュレータと、もとより導入されていたシミュレータの間で未検証のフラグがあった箇所に干渉発生のフラグを設定する。
【００６７】
シミュレーションが正常動作し、なおかつ前回のシミュレーションよりも短い時間で完了したとステップ９１２で判断された場合、新しく作成したＯＳがシミュレータ間の干渉を起こす事なく、シミュレーション性能の向上が可能であると判断され、ステップ９１３で、新規作成されたＯＳは保存され、当該ＯＳに導入されたシミュレータはＯＳイメージ管理装置００４のソフトウェア導入状況データベース０１１に保存され、新たに追加されたソフトともとよりインストールされていたシミュレータ間の相互関係を同居に設定する。
【００６８】
図８Ｂ、図９Ｂは、ツール  SimC 2009b と、Sim0A ver1.0320 間の関係が、ＯＳ００５およびＯＳ００３の連携シミュレーションによって同居、と判定されたときの、相互関係データベース、および、ソフトウェア導入状況データベースの更新状況を示している。
【００６９】
ステップ９１４で、シミュレーションは正常終了したが、シミュレーションの実行時間が前回よりも速く終了しなかった、または同じ時間で終了した場合は、ステップ９１３でソフトウェア相互関係データベース００２内の対応するシミュレータ相互関係を未検証から非干渉に設定する。
【００７０】
上記の最適化ステップを、差分が生じたシミュレーションの全てに対して適用させる。
【００７１】
本実施例によれば、多種類または複数バージョンのソフトウェアが混在する事による不具合を事前に防ぎつつ、シミュレーションの性能が低下しない計算機構成を実現する事ができる。
【実施例２】
【００７２】
上記実施例１の具体的な適用例を、実施例２として説明する。すなわち、図１３、図１４Ａ、図１４Ｂを用いて、本発明の最適な適用先である、シミュレーション支援システムの概要と本発明の位置づけを説明する。
【００７３】
図１３は、一元化された計算環境上にシミュレータとシミュレータの利用を支援するシステムを構築し、利用者が望むシミュレーションの結果を提供する計算機システムの概要を示す図である。この計算機システムは、動的計算資源配分システム１００、シミュレーション用計算資源１０１、シミュレーション結果可視化システム１０２、システム負荷・ユーザ挙動監視システム１０３、作業用計算機システム１０６、セキュア通信を用いた画面伝送システム１０４、利用者端末１０７、ソフトウェア提供者端末１０８が内部ネットワークを介して接続されている。上記の構成を以下では、本システムと呼ぶ。利用者端末１０７及びソフトウェア提供者端末１０８は、セキュア通信を用いた画面伝送システム１０４を介してのみ本システムにアクセスする事が可能である。なお、各システム、計算資源、端末は、プロセッサとメモリ及びインターフェースを含む計算機で構成される。
【００７４】
また、組み込みシステムは、前記従来例で述べたように、制御対象のメカニズムと、メカニズムを駆動するハードウェアと、ハードウェアを制御するソフトウェアを組み合わせたものである。
【００７５】
本システムの概要は、利用者端末１０７から入力または指令を行って、作業用計算機システム１０６で組み込みソフトウェアを作成し、作成した組み込みソフトウェアのシミュレーションを動的計算資源配分システム１００で最適化する。動的計算資源配分システム１００は最適化したシミュレーションタスクを、複数の計算機を含むシミュレーション用計算資源１０１で実行する。シミュレーション用計算資源１０１は、シミュレーションを実行するシミュレーション用ソフトウェア（シミュレータ）と、シミュレータを実行する計算機とを含み、複数種類のシミュレーションを行うために複数のアプリケーションと、アプリケーションを実行する複数の計算機を備える。組み込みソフトウェアのシミュレーションを実行するときには、利用者端末１０７から実行するシミュレーションを動的計算資源配分システム１００に対して指令する。動的計算資源配分システム１００は、利用者端末１０７からの要求に基づいて、シミュレーション用計算資源１０１のソフトウェアリソースとハードウェアリソースを確保して、シミュレーションを実行する。
【００７６】
画面伝送システム１０４は、利用者端末１０７またはソフトウェア提供者端末１０８との間でデータの送受信を行うゲートウェイとして機能し、利用者端末１０７（ソフトウェア提供者端末１０８）の認証を行い、認証した利用者端末１０７（またはソフトウェア提供者端末１０８）との間で暗号化などの秘匿性の高い通信（以下、セキュア通信）によりデータの授受を行う。
【００７７】
また、本システムは、シミュレーション用計算資源１０１が算出したシミュレーション結果を、グラフなどで利用者端末１０７へ提供する計算機を備えたシミュレーション結果可視化システム１０２を含む。
【００７８】
また、本システムは、シミュレーション用計算資源１０１等のハードウェア、ソフトウェアの稼働状況と、利用者端末１０７から開発した組み込みシステムの進捗状況などを収集する計算機を備えたシステム負荷・ユーザ挙動監視システム１０３を備えており、利用者端末１０７毎の課金情報や統計情報を生成する。
【００７９】
実施例１として述べた本システムは、シミュレーション支援システムの動的計算資源配分システム１００の内部に適用する事が可能である。
【００８０】
図１４Ａ、図１４Ｂは、前述の動的計算資源配分システム１００を備えたシミュレーション支援システムの詳細な構成例を図示するものである。動的計算資源配分システム１００は、シミュレーションタスク入力装置７０４、シミュレーションタスク生成装置７０５、シミュレーションタスク発行装置７２３、シミュレーション構成履歴データベース７２１、動的計算資源管理データベース７０６、及び、ライセンスサーバ７６０がネットワークで相互結合されて構成されている。システム負荷・ユーザ挙動監視システム１０３は、ファイル来歴記録装置８００、ユーザ挙動統計化装置８０１、操作履歴デーベース８０２、開発進捗抽出装置８０３、開発進捗情報デーベース８０４、及び、ツール利用状況デーベース８０５を備えている。さらに、資源価格データベース８１０、資源利用量管理データベース７１１、演算資源付加測定装置８１２、システム利用料生成装置８１３、及び、課金データベース８１４を備えている。
【００８１】
動的計算資源配分システム１００は、シミュレーションタスク入力装置７０４を用いて利用者１０７が記述したシミュレーション構成、即ちシミュレーションを構成するモデルの選択とモデル間の相互関係の記述を受け取り、シミュレーションの実行に最適なシミュレータの選択と選択されたシミュレータの配置を自動的に構築し、シミュレーションを実行し、実行時の資源利用量とシミュレーション実行時間から自動構築アルゴリズムの最適化を行う。
【００８２】
本発明は、シミュレーションタスク生成装置７０５およびシミュレーションタスク発行装置７２３の提供する機能の一部、シミュレーションタスク生成装置７０５で利用者の要求を満たすシミュレーションモデルおよびシミュレータの選択が出力された者を受け取り、シミュレーション実行可能なＯＳの集合を出力する段階に利用可能である。
【００８３】
ただし、これは本発明の適用の一例であり、本システムの入力、即ちシミュレーションタスク入力方法に関しては前述の通り、シミュレータと、シミュレータ間の情報通信の関係が定義されている限りでは、利用者が直接入力したものであっても、例示したシミュレーション支援システムが生成したものであっても、本発明の動作には影響はなく入力されたシミュレーションを実行できるＯＳの組を提供可能である。ただし、利用者の直接入力の場合、使用されるシミュレータの結合関係と、利用者の意図するシミュレーションと要するシミュレータの適合度はその組の多さから人手での最適化は困難であるため、実行されるシミュレーション性能の最適化は不可能になる。
【００８４】
以上述べたように、本実施例によれば、シミュレーションシステムへのソフトウェアの導入やそのシステムの運用を容易にすることが可能になる。また、シミュレーションシステムに、より多くのソフトウェアを導入する事や、同一ソフトウェアの複数バージョンを並行したシステムの運用を行うことが可能になり、シミュレーションサービスの品質を向上させることが可能となる。
【実施例３】
【００８５】
次に、本発明の他の実施形態を説明する。発明の構成および、シミュレータの自動導入機能に関しては実施例１のそれぞれ図１、図１０で示した構成を用いることができる。図１５は、実施例２におけるシミュレーション実行時のＯＳ割り当てのフローを記述したものである。
【００８６】
図１５において、実施例１に関して図１１の解説で述べたアルゴリズム部に相当する処理、即ち、ステップ８００からステップ８０３までの、ユーザのシミュレーションタスク入力を受け取り、同一ＯＳ上で動作させるシミュレータの組を出力する部分までの処理は、実施例１の図１１の処理と同様である。
【００８７】
ステップ８０４で、各シミュレータの組に含まれるシミュレータを全て含むＯＳを検索し、該当するＯＳがないと判断された場合、ステップ１４００に移る。ステップ１４００で、前記条件を満たすＯＳを新規作成し、ステップ８０３に戻り、再度ＯＳの割り当てを行う。
【００８８】
ステップ８０６で全てのシミュレータの組にＯＳが割り当てられた、と判断されるまで前記プロセスを繰り返す。ステップ８０６までに割り当てられたＯＳを起動しシミュレーションを実行する手順は実施例１のテップ８０９からステップ８１０と同様である。
【００８９】
ステップ１４０１でシミュレータが正常終了したかどうかを判断する。異常終了したと判断された場合、ステップ１４００で作成したＯＳを削除し、当該ＯＳに含まれたシミュレータの相互関係のうちソフトウェア相互関係データベース００２内で未検証とされているものに関して、干渉発生を設定しステップ８０３に戻りＯＳの組を再構成しシミュレーションをやり直す。ここまでのステップを本実施例では「組合せ出力部」と呼称する。
【００９０】
本実施例では要求を満たすＯＳが存在しなかった場合と新規作成したＯＳが異常終了した場合、シミュレーションの開始が実施例１よりも遅延する事になる。しかし、実施例１と違い全てのシミュレーション要求に対し、最適なＯＳ構成を出力することが可能となるため、たとえばＯＳ構成の違いによりシミュレーション速度が大きく変化し、ＯＳセットアップのための待機時間よりも長い時間を節約できる場合、本実施例は有効となる。
【００９１】
以上述べたように、本実施例によれば、本実施例によれば、シミュレーションシステムへのソフトウェアの導入やそのシステムの運用を容易にすることが可能になる。また、シミュレーションシステムに、より多くのソフトウェアを導入する事や、同一ソフトウェアの複数バージョンを並行したシステムの運用を行うことが可能になり、シミュレーションサービスの品質を向上させることが可能となる。
【実施例４】
【００９２】
次に、本発明の第４の実施形態を説明する。計算資源量に対する制約が強くない場合、実施例１と３を併用する構成を用いることで、本システムが提供するシミュレーションの性質を向上させることが可能となる。
【００９３】
本実施例では、要求を満たすＯＳが存在しなかった場合、新規にＯＳを作るフローと条件を緩和して、実施例１の図１１で説明したソフトウェア割当フローのステップ８０４に示した、ソフトウェアの組を分割してＯＳの組を検索するフローを並列実行して出力された二つのシミュレーション構成を実行し、先に正常に完了したシミュレーション結果を利用者に提供する。
【００９４】
この方法により、利用者がシミュレーションの開始を入力してから、シミュレーション結果が出力されるまでの平均待ち時間を短縮することが可能である。
【実施例５】
【００９５】
本発明のもう一つの実施例として、１つのＯＳに１つのシミュレータだけを導入すると制限した条件での構成が考えられる。図１６を用いてその構成を概説する。
【００９６】
本実施例でも、ソフトウェア自動導入装置００１、ＯＳイメージ管理装置００４、ＯＳイメージ管理装置００５、シミュレーション装置１０１は、実施例１と同一の物を使用する事が可能である。
【００９７】
図１７に、本実施例の処理の一例を示す。  
ステップ１６００で、新規シミュレータの追加がシステム管理者により指示された時に、ステップ１６０４で、シミュレータ未導入のＯＳをＯＳイメージ管理装置００４のＯＳイメージ領域０１０よりコピーして当該シミュレータをインストールし、ソフトウェア導入状況データベース０１１を更新する。ステップ１６０６で、シミュレーション要求を受け取った場合、ステップ１６０１で、シミュレーション要求に含まれる各シミュレータを含むＯＳを選択し、シミュレーションを実行する。
【００９８】
本実施例では、シミュレータ同士のデータ交換を行う際に、必ずＯＳを跨ぐ通信を行うためにシミュレーション性能の低下を招くが、以下の３つの利点が存在する。第一の利点は、シミュレータの導入状況を動的再構成する必要がないため、シミュレーションを解析して最適化する機構を省略できる事である。
【００９９】
第二の利点は、複数のシミュレータが１つのＯＳで動作しないため、資源利用量に基づいたシミュレータ配置の計算が不必要になる事である。第三の利点は、ＯＳイメージ管理装置００４で管理するＯＳの数が提供可能なシミュレータの数と等しくなり、実施例１の場合と比較し管理するＯＳの数を減らす事が可能な事である。
【０１００】
よって、シミュレータ同士の通信遅延がシミュレーション性能に影響を及ぼさない場合、または、シミュレーション支援システムを構成する計算資源を最低限に抑制する必要がある場合に、本実施例は有効である。
【０１０１】
以上のように、本発明は複数のソフトウェアが連動して動作する計算機システム、または開発システムのプログラムに適用することができる。
【０１０２】
なお、実施例では、シミュレーション支援システム及びシミュレーション支援方法についてのみ述べたが、複数のソフトウェアが連動して動作する種々の計算機システムの開発に、本発明を適用できることは言うまでも無い。この場合でも、第一の処理機能又はステップでは、既存の不具合情報を利用しつつ、計算機システムを構成するＯＳの集合に新規のソフトウェアを自動的に追加する。第二の処理機能又はステップでは、利用者からのシステム開発要求に応じて適切なＯＳの組を選択し、要求されたシステム構成を実現させる環境を作成する。さらに、第三の処理機能又はステップでは、利用者のシステム開発の要求に対応する実行履歴に基づいた、未検証のソフトウェアの組を試行し、保有するＯＳ上で全てのソフトウェアが正常動作する事を保証しつつ、開発システムの性能を向上させる。上記の３つの特徴的な処理機能又はステップにより、多種類または複数バージョンのソフトウェアが混在する事による不具合を事前に防ぎつつ、開発されたシステムの性能が低下しない構成を実現する事が出来る。
【符号の説明】
【０１０３】
００１  ソフトウェア自動導入装置、
００２ソフトウェア相互関係データベース、
００４  ＯＳイメージ管理装置、
００５  ＯＳイメージ検索装置、
００６  ソフトウェア相互関係解析装置、
１００  動的計算資源配分システム、
１０１  シミュレーション装置、
１０２  シミュレーション結果可視化システム、
７０４  シミュレーションタスク入力装置、
７０５  シミュレーションタスク生成装置、
７０６  動的計算資源管理データベース、
７０９  ツールモデルデータベース９、
７１１  資源利用量管理データベース、
７２１  シミュレーション構成履歴データベース、
７２３  シミュレーションタスク発行装置、
７２５  タスク指令履歴データベース。
【図１】
0005468921.tif 000002
【図２Ａ】
0005468921.tif 000003
【図２Ｂ】
0005468921.tif 000004
【図３】
0005468921.tif 000005
【図４】
0005468921.tif 000006
【図５】
0005468921.tif 000007
【図６】
0005468921.tif 000008
【図７】
0005468921.tif 000009
【図８Ａ】
0005468921.tif 000010
【図８Ｂ】
0005468921.tif 000011
【図９Ａ】
0005468921.tif 000012
【図９Ｂ】
0005468921.tif 000013
【図１０】
0005468921.tif 000014
【図１１】
0005468921.tif 000015
【図１２】
0005468921.tif 000016
【図１３】
0005468921.tif 000017
【図１４Ａ】
0005468921.tif 000018
【図１４Ｂ】
0005468921.tif 000019
【図１５】
0005468921.tif 000020
【図１６】
0005468921.tif 000021
【図１７】
0005468921.tif 000022