(57)【要約】【課題】シミュレーションの再実行を効率的に行うことができる技術を提供する。【解決手段】一連の連続する処理を構成する各処理を実行する複数の処理実行手段の属性情報を取得する取得手段と、前記取得手段により取得された属性情報に基づいて、前記複数の処理実行手段が出力する複数の出力データのうち記憶領域に記憶する出力データを指定する指定手段と、前記複数の処理実行手段に処理を実行させる実行手段と、前記実行手段が第１の実行に係る処理を実行させる場合、前記複数の処理実行手段が出力した出力データのうち前記指定手段により指定された出力データを記憶領域に記憶する記憶手段と、を有し、前記実行手段は、前記第１の実行後の再実行として第２の実行に係る処理を実行させる場合、前記記憶手段により記憶された出力データを用いて処理を実行させることによって課題を解決する。【選択図】図３
2015075787.tif 000002
【特許請求の範囲】
【請求項１】
一連の連続する処理を構成する各処理を実行する複数の処理実行手段の属性情報を取得する取得手段と、
前記取得手段により取得された属性情報に基づいて、前記複数の処理実行手段が出力する複数の出力データのうち記憶領域に記憶する出力データを指定する指定手段と、
前記複数の処理実行手段に処理を実行させる実行手段と、
前記実行手段が第１の実行に係る処理を実行させる場合、前記複数の処理実行手段が出力した出力データのうち前記指定手段により指定された出力データを記憶領域に記憶する記憶手段と、
を有し、
前記実行手段は、前記第１の実行後の再実行として第２の実行に係る処理を実行させる場合、前記記憶手段により記憶された出力データを用いて処理を実行させる情報処理装置。
【請求項２】
前記一連の連続する処理の構成と、記憶領域に記憶されている出力データとに基づいて、処理実行手段による処理の省略に係るスキップ条件を満たす処理実行手段があるか否かを判定する判定手段を更に有し、
前記実行手段は、前記判定手段によりスキップ条件を満たしている処理実行手段がないと判定された場合、第１の実行として全ての処理実行手段に処理を実行させ、前記判定手段によりスキップ条件を満たしている処理実行手段があると判定された場合、第２の実行としてスキップ条件を満たしていない処理実行手段に処理を実行させる請求項１記載の情報処理装置。
【請求項３】
前記判定手段は、
判定対象の処理実行手段が変更されていないこと、
判定対象の処理実行手段が出力する出力データが記憶領域に記憶されていること、
判定対象の処理実行手段へ出力される出力データに変化がないこと、
を満たすか否かに基づいて判定対象の処理実行手段がスキップ条件を満たすか否かを判定する請求項２記載の情報処理装置。
【請求項４】
前記判定手段は、判定対象の処理実行手段が出力する出力データが記憶されていない場合、判定対象の処理実行手段と、判定対象の処理実行手段よりも後に処理を実行し、出力した出力データが記憶領域に記憶されている処理実行手段との間における処理の構成に変更がないことを満たすか否かに基づいて判定対象の処理実行手段がスキップ条件を満たすか否かを判定する請求項３記載の情報処理装置。
【請求項５】
前記指定手段は、前記取得された属性情報に基づいて前記複数の出力データに対して優先順位付けをし、優先順位が最も高い出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１乃至４何れか１項記載の情報処理装置。
【請求項６】
前記取得手段は、前記複数の処理実行手段の入れ替え回数に係る第１の入替履歴情報を前記属性情報として取得し、
前記指定手段は、前記第１の入替履歴情報が示す入れ替え回数が最も多い処理実行手段へ出力される出力データから順に優先順位を高く順位付けし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記取得手段は、処理実行手段が実行する処理内容に基づく分類において、同一の分類に属する処理実行手段の入れ替え回数の平均に係る第２の入替履歴情報を前記属性情報として取得し、
前記指定手段は、前記第２の入替履歴情報が示す入れ替え回数が最も多い処理実行手段へ出力される出力データから順に優先順位を高く順位付けし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１乃至５何れか１項記載の情報処理装置。
【請求項８】
前記取得手段は、前記複数の処理実行手段が処理を実行する際のコスト情報を前記属性情報として取得し、
前記指定手段は、前記コスト情報が示すコストが最も高い処理実行手段へ出力される出力データから順に優先順位を高く順位付けし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１乃至５何れか１項記載の情報処理装置。
【請求項９】
前記取得手段は、更に、前記一連の連続する処理の処理内容に基づく分類情報を取得し、
前記指定手段は、同一の分類に属する処理実行手段の属性情報に基づいて前記複数の出力データに対して優先順位付けをし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１乃至８何れか１項記載の情報処理装置。
【請求項１０】
前記取得手段は、前記複数の処理実行手段の入れ替え回数に係る第１の入替履歴情報と共に、前記実行手段が前記複数の処理実行手段に処理を実行させる順番を示す順番情報を取得し、
前記指定手段は、前記第１の入替履歴情報と、前記順番情報とに基づいて前記複数の出力データに対して優先順位付けをし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１乃至４何れか１項記載の情報処理装置。
【請求項１１】
前記指定手段は、前記第１の入替履歴情報と、前記順番情報とに基づいて、処理実行手段の入れ替え回数が多くなるほど、前記処理実行手段の後に処理を実行する処理実行手段へ出力されるデータに対して優先順位を下げるように重み付けして優先順位付けをし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１０記載の情報処理装置。
【請求項１２】
前記指定手段は、処理実行手段の入れ替え回数が予め定められた回数より多いか否かに基づいて前記重み付けを調整して優先順位付けをし、最も高い優先順位の出力データから順に予め定められたデータ容量を超えない範囲で記憶領域に記憶する出力データを指定する請求項１１記載の情報処理装置。
【請求項１３】
情報処理装置が実行する情報処理方法であって、
一連の連続する処理を構成する各処理を実行する複数の処理実行手段の属性情報を取得する取得ステップと、
前記取得ステップにより取得された属性情報に基づいて、前記複数の処理実行手段が出力する複数の出力データのうち記憶領域に記憶する出力データを指定する指定ステップと、
前記複数の処理実行手段に処理を実行させる実行ステップと、
前記実行ステップにより第１の実行に係る処理を実行させる場合、前記複数の処理実行手段が出力した出力データのうち前記指定ステップにより指定された出力データを記憶領域に記憶する記憶ステップと、
を含み、
前記実行ステップでは、前記第１の実行後の再実行として第２の実行に係る処理を実行させる場合、前記記憶ステップで記憶された出力データを用いて処理を実行させる情報処理方法。
【請求項１４】
コンピュータに、
一連の連続する処理を構成する各処理を実行する複数の処理実行手段の属性情報を取得する取得ステップと、
前記取得ステップにより取得された属性情報に基づいて、前記複数の処理実行手段が出力する複数の出力データのうち記憶領域に記憶する出力データを指定する指定ステップと、
前記複数の処理実行手段に処理を実行させる実行ステップと、
前記実行ステップにより第１の実行に係る処理を実行させる場合、前記複数の処理実行手段が出力した出力データのうち前記指定ステップにより指定された出力データを記憶領域に記憶する記憶ステップと、
を実行させ、
前記実行ステップでは、前記第１の実行後の再実行として第２の実行に係る処理を実行させる場合、前記記憶ステップで記憶された出力データを用いて処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
一般的に、新規にプログラムを開発する場合、開発者は、随時プログラムの修正、変更を行い、その都度、プログラムが意図した通りに動作するかをシミュレーションし、確認する。通常、シミュレーションはプログラムの開始点から実行される。しかし、修正、変更がプログラムの途中から行われていた場合、そこに至るまでのシミュレーションは本来不要なものである。また、不要なシミュレーションの再実行は、シミュレーション時間を費やすことになり、非効率的である。
このような課題に対し、モジュールによって構成されるプログラムにおいて、各モジュールにおけるシミュレーションのデータを保存しておき、次のシミュレーションの際に、省略可能なモジュールを実行せずに、保存したデータを使用する方法がある。これにより、シミュレーション時間を短縮することができる。しかし、この際、全てのモジュールのデータを保存すると、保存しておくためのメモリの容量を圧迫したり、メモリへの転送に時間がかかったりするという問題があった。そこで、全てのモジュールのデータを保存するのではなく、保存するデータを選択する手法が提案されている。
特許文献１では、メモリの残量と、情報の保存に必要な容量とに基づいて、プログラム全域においてシミュレーションの実行を再開することができるように保存する情報を決定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１７２１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されている技術では、情報を保存する際、次のシミュレーションを実行する際に前記保存した情報を効果的に利用することができるどうかまでは考慮されていない。そのため、この技術では、保存しても利用価値の少ない情報が保存されてしまう可能性がある。その場合、保存した情報の多くが使用されずにほとんどの処理が再実行されてしまう等、シミュレーションの再実行における効率が必ずしも向上しないという課題があった。
本発明は、シミュレーションの再実行を効率的に行うことができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、本発明は、一連の連続する処理を構成する各処理を実行する複数の処理実行手段の属性情報を取得する取得手段と、前記取得手段により取得された属性情報に基づいて、前記複数の処理実行手段が出力する複数の出力データのうち記憶領域に記憶する出力データを指定する指定手段と、前記複数の処理実行手段に処理を実行させる実行手段と、前記実行手段が第１の実行に係る処理を実行させる場合、前記複数の処理実行手段が出力した出力データのうち前記指定手段により指定された出力データを記憶領域に記憶する記憶手段と、を有し、前記実行手段は、前記第１の実行後の再実行として第２の実行に係る処理を実行させる場合、前記記憶手段により記憶された出力データを用いて処理を実行させる。
【発明の効果】
【０００６】
本発明によれば、シミュレーションの再実行を効率的に行うことができる技術を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】データフローの構成の一例を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】情報処理装置の処理の一例を示すフローチャートである。
【図４】入替履歴、データ保存対象、スキップ対象等の一例を示す図である。
【図５】モジュールの入替履歴、カテゴリの入替履歴等の一例を示す図である。
【図６】モジュールの実行時間、データの保持優先順位等の一例を示す図である。
【図７】モジュールの入替履歴の一例を示す図である。
【図８】モジュールの実行順序、調整係数、データ保存対象等の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
＜実施形態１＞
本実施形態では、入出力端子を有する処理モジュールを複数接続してデータフロー図を作成しプログラミングを行う図形プログラミングにおけるプログラミング実行装置（以下、情報処理装置という）の処理について説明する。より具体的には、情報処理装置が、シミュレーションを再実行する際にも有効に利用することができる実行結果を優先的に保存し、保存した実行結果を利用して処理を実行する実施形態について説明する。
まず、本実施形態で扱うデータフローの前提条件について説明する。
図１は、データフローの構成の一例を示す図である。
本実施形態におけるデータフロー（一連の連続する処理）は、処理を表すモジュール（処理実行手段）と、処理の入出力を表す入出力端子と、これらの端子を接続するリンクとを有する。モジュールは四角形で表示され、左側に入力端子、右側に出力端子が付属しているものとする。また、各モジュールは、それぞれ後述する属性情報を有している。
図１の（ａ）に示されるデータフローでは、モジュール３０１Ａに入力端子３０２Ａと、出力端子３０３Ａとが付属している。また、モジュール３０１Ｂに入力端子３０２Ｂと、出力端子３０３Ｂとが付属している。更に、出力端子３０３Ａと、入力端子３０２Ｂとがリンク３０４によって接続されている。
【０００９】
次に、本実施形態における前提条件について説明する。
本実施形態では、情報処理装置が、あるデータフローに対して初めてシミュレーションを実行し、その後、データフローを構成するモジュールの一部を交換又は修正する。そして、情報処理装置が再度シミュレーションを実行するという状況を想定している。以後、情報処理装置が初めて実行するシミュレーションを第１のシミュレーションといい、再度実行するシミュレーションを第２のシミュレーションという。
図１の（ｂ）に示されるデータフローは、第１のシミュレーションにおけるデータフローを示している。一方、図１の（ｃ）に示されるデータフローは、第２のシミュレーションにおけるデータフローを示している。
モジュールＩｎ３１１は、データを出力する専用のモジュールである。モジュールＯｕｔ３１９は、データが入力される専用のモジュールである。また、本実施形態では、情報処置装置が、第１のシミュレーションの実行後にモジュールＸ３２０をモジュールＹ３２１に入れ替えて、第２のシミュレーションを実行するものとする。
【００１０】
本実施形態では、モジュールの属性情報としてモジュールが過去に他のモジュールと入れ替わった回数、即ち、使用に関する回数を採用する。以下、入れ替わりに関する回数を入替履歴といい、使用に関する回数を使用実績という。また、本実施形態では、各モジュールが出力するデータのサイズは既知であるものとする。また、本実施形態では、情報処置装置がシミュレーションの実行結果として得ることができる各モジュールの出力データを保存するデータ容量の上限のサイズ（以下、保存上限サイズという）を１５０ＭＢとする。
本実施形態では、モジュールの出力データの出力先が複数ある場合、情報処理装置は、出力先モジュールの入替履歴が最も多いものを１つ選択し、選択した入替履歴を保存する出力データの保持優先順位を決定する際の情報として使用する。
更に、本実施形態では、情報処置装置がシミュレーションにおいてモジュールを実行しない条件（以下、スキップ条件という）として、以下の（１）から（３）までの条件の論理積を採用する。より具体的にいうと、前回のシミュレーションの際と比較して、（１）そのモジュールが変化していないこと。（２）そのモジュールの出力データが保存されていること、又はそのモジュールの出力データは保存されていないが、そのモジュール以降に実行され、かつ、出力データが保存されている別のモジュールまでの間のデータフローが変化していないこと。（３）そのモジュールの入力端子に接続されている別のモジュールの出力データが変化していないこと、又はそのモジュール以前に実行され、かつ、出力データが保存されている別のモジュールまでの間のデータフローが変化していないこと。スキップ条件は、以上の３つの条件に関する論理積による条件である。情報処理装置は、上記のスキップ条件を用いることで、シミュレーションの再実行において実行する必要のないモジュールを判定することができる。これにより、情報処理装置は、シミュレーションを効率的に実行することができる。
【００１１】
次に、本実施形態における情報処理装置の構成及び情報処理装置による処理の流れについて説明する。
図２は、情報処理装置１００のハードウェア構成の一例を示す図である。
入力装置１０１は、ユーザーからの指示を受け付ける。
表示装置１０２は、データフローを作成するのに必要な情報等を表示する。例えば、表示装置１０２は、ユーザーが操作しているデータフロー図等を表示する。
プロセッサ１０３は、情報処理装置１００が有する各装置を制御することで、情報処理装置１００全体を制御する。例えば、プロセッサ１０３は、入力装置１０１を介して受け付けたユーザーの指示に従いデータフローにモジュールを追加したり、データフローのシミュレーションを実行したりする。
メモリ１０４は、データフローの作成に必要な一時データを格納する。例えば、メモリ１０４は、入力装置１０１を介してユーザーが操作しているデータフローに関するデータを格納する。
【００１２】
外部記憶装置１０５は、データベース１１０を有しており、各モジュールの情報や予め設定された設定値に関する情報等を格納する。なお、本実施形態を含む以下の実施形態では、複数のデータを記憶するＨＤＤ等の記憶装置のことを含めてデータベースという。
情報抽出部１０６は、指定されたモジュールの属性情報を抽出して取得する。
データ保持指定部１０７は、モジュールの属性情報に基づいて、シミュレーションの実行の際にモジュールから出力される出力データを保持しておくかどうかを判定し、保持する出力データを指定する。
出力データ記憶部１０８は、メモリ１０４上にあって、シミュレーションの実行の際にモジュールから出力される出力データの中で、データ保持指定部１０７で保持しておくと判定されたデータを保持する。
データフロー格納領域１０９は、メモリ１０４上にあって、ユーザーが作成しているデータフローを格納する領域である。
データベース１１０は、外部記憶装置１０５にあって、各モジュールの属性情報等を格納する。
【００１３】
なお、本実施形態における情報処理装置１００の構成は、図２に示される構成に限る必要はない。例えば、図２では出力データ記憶部１０８がメモリ１０４上に存在する構成としたが、メモリ１０４とは別のメモリ上に存在するような構成であってもよい。
また、プロセッサ１０３がメモリ１０４等に格納されているプログラムを実行することにより、情報抽出部１０６やデータ保持指定部１０７の機能を実現するようにしてもよい。更に、プロセッサ１０３がメモリ１０４等に格納されているプログラムを実行することにより、情報処理装置の入力機能、表示機能及び記憶機能等を実現するようにしてもよい。この場合、入力機能は、入力装置を介してユーザーの指示を受け付ける。また、表示機能は、表示装置を介してデータフローに関する情報等を表示する。また、記憶機能は、情報処理装置１００が実行するシミュレーションに関するデータ等をメモリ１０４や外部記憶装置１０５等の記憶領域に記憶する。
上述したように、プロセッサ１０３がプログラムを実行することにより情報処理装置１００の各種の機能及び後述するフローチャートの処理が実現されてもよい。
【００１４】
図３は、情報処理装置１００が実行するデータフローのシミュレーションにおけるフローチャートの一例を示す図である。
まず、情報処理装置１００が第１のシミュレーションを実行する場合の処理フローについて説明する。
Ｓ２０１において、情報抽出部１０６は、データベース１１０に保持されているデータフローを構成する各モジュールの入替履歴を抽出する。図４の（ａ）は、第１のシミュレーションにおけるデータフローにおいて抽出されたモジュールの入替履歴の一例を示す図である。
Ｓ２０２において、データ保持指定部１０７は、Ｓ２０１で抽出されたモジュールの入替履歴に基づいて、保存する出力データの保持優先順位を決定する。即ち、データ保持指定部１０７は、保存する出力データの優先順位付けをする。ここでは、データ保持指定部１０７は、モジュール入替回数が最も多いモジュールの優先度（以下、モジュール優先度という）を最も高くし、そのモジュールの入力端子に接続されているモジュールの出力データの保持優先順位を最も高くしている。以下、図４の（ａ）等を用いて、Ｓ２０２の処理の詳細について説明する。
【００１５】
図４の（ａ）に示すように、データ保持指定部１０７は、モジュール入替回数を最も多い方から降順に並べ、最も上位から順に番号を振る。そして、その番号がモジュール優先度となる。例えば、モジュール入替回数が最も多いモジュールＸ３２０のモジュール優先度は１となる。モジュールＢ３１３のモジュール優先度は２となる。そして、データ保持指定部１０７は、モジュールの出力データの保持優先順位として、そのモジュールの出力を使用する別モジュールのモジュール優先度を使用する。
例えば、図４の（ｂ）に示すように、モジュールＡ３１２の出力を使用するモジュールＢ３１３のモジュール優先度は図４の（ａ）に示すように２であるから、モジュールＡ３１２の出力データの保持優先順位は２となる。そして、データ保持指定部１０７は、予め定められた保存上限サイズを超えない範囲で、保持優先順位の最も高いデータから順番に出力データ記憶部１０８に保存するデータを指定する。ここでは、データ保持指定部１０７は、モジュールＡ３１２、モジュールＢ３１３及びモジュールＥ３１６の出力データを保存するデータとして指定する。なお、図４の（ｂ）は、第１のシミュレーションにおけるデータフローにおいて、出力データの保持優先順位と、出力データ記憶部１０８に保存されるデータとの一覧の一例を示す図である。
【００１６】
図３の説明に戻る。
Ｓ２０３において、プロセッサ１０３は、予め指定された入力データを用いて、データフローのシミュレーションを開始する。
Ｓ２０４において、プロセッサ１０３は、シミュレーションの終了条件を満たしたか否か、即ち、未実行のモジュールがあるか否かを判定する。なお、ここでいう終了条件とは、例えばデータフローが最後まで実行されたか否かに関する条件である。プロセッサ１０３は、未実行のモジュールがないと判定した場合、処理をＳ２０９へ進め、未実行のモジュールがあると判定した場合、処理をＳ２０５へ進める。
Ｓ２０５において、プロセッサ１０３は、判定対象のモジュールが実行を省略するスキップ条件を満たしているか否かを判定し、スキップ条件を満たしていると判定した場合、処理をＳ２０６に進める。一方、プロセッサ１０３は、スキップ条件を満たしていないと判定した場合、処理をＳ２０７に進める。なお、第１のシミュレーションでは、初回実行のため、何れのモジュールもスキップ条件を満たしていない。
【００１７】
Ｓ２０７において、プロセッサ１０３は、Ｓ２０５でスキップ条件を満たしていないと判定したモジュールの実行を行う。プロセッサ１０３は、モジュールを実行することにより、そのモジュールの出力を得る。第１のシミュレーションでは、プロセッサ１０３は、全てのモジュールを実行することになる。
Ｓ２０８において、プロセッサ１０３は、モジュールの実行後に得られる出力データのうち、Ｓ２０２で保持指定されたデータを出力データ記憶部１０８に保存する。即ち、プロセッサ１０３は、モジュールＡ３１２、モジュールＢ３１３及びモジュールＥ３１６の出力データを出力データ記憶部１０８に保存する。
Ｓ２０９において、プロセッサ１０３は、データフローのシミュレーションが終了した旨を表示装置１０２に表示してユーザーに知らせる。
以上が、情報処理装置１００が第１のシミュレーションを実行する場合の処理フローである。
上述したように第１のシミュレーションにおいて、情報処理装置１００は、各モジュールの入替履歴（入替履歴情報）に基づいて、以降で説明する第２のシミュレーションで有効に使用することができる出力データを指定して記憶することができる。
【００１８】
次に、情報処理装置１００が第２のシミュレーションを実行する場合の処理フローについて説明する。
上述したように、本実施形態では、情報処理装置１００が第２のシミュレーションを実行する前に、モジュールＸ３２０をモジュールＹ３２１と入れ替えるものとする。この場合、モジュールＸ３２０と、モジュールＹ３２１との入替履歴がそれぞれ１回ずつ増加する。
Ｓ２０１、Ｓ２０２、Ｓ２０３及びＳ２０４の処理は、第１のシミュレーションの場合における処理と同様であるため、説明を省略する。
Ｓ２０５において、プロセッサ１０３が判定した第２のシミュレーションにおけるスキップ条件の判定結果の一覧を図４の（ｃ）に示す。なお、図４の（ｃ）は、スキップ条件の判定結果の一例を示す図である。例えば、モジュールＢ３１３の場合、スキップ条件に関する上述の（１）から（３）までの条件については、以下の通りとなる。（１）モジュールは変更されていない。（２）出力データは保存されていないが、その後に実行されるモジュールＤ３１５がスキップ条件を満たしている。（３）入力端子に接続されているモジュールＡ３１２の出力データが変化していない。したがって、モジュールＢ３１３は、スキップ条件に関する（１）から（３）までの条件を全て満たしている。
【００１９】
図３の説明に戻る。
Ｓ２０６において、プロセッサ１０３は、Ｓ２０５でスキップ条件を満たしていると判定したモジュールの実行を省略する。そして、プロセッサ１０３は、出力データ記憶部１０８に出力データが保存されている場合、保存されている出力データを用いて処理を実行する。より具体的にいうと、プロセッサ１０３は、第２のシミュレーションを実行する際、図４の（ｃ）が示すように、モジュールＡ３１２、モジュールＢ３１３、モジュールＣ３１４、モジュールＤ３１５及びモジュールＥ３１６の実行をスキップする。そして、プロセッサ１０３は、モジュールＡ３１２、モジュールＤ３１５及びモジュールＥ３１６について、出力データ記憶部１０８に保存されている出力データを出力する。
Ｓ２０７において、プロセッサ１０３は、第２のシミュレーションを実行する際に、モジュールＹ３２１から開始し、その後、モジュールＦ３１７及びモジュールＧ３１８を実行することになる。
Ｓ２０８及びＳ２０９の処理は、第１のシミュレーションの場合における処理と同様であるため、説明を省略する。
以上が、情報処理装置１００が第２のシミュレーションを実行する場合の処理フローである。
上述したように、情報処理装置１００は、第１のシミュレーションの実行の際に保存しておいたモジュールの出力データを用いて、再実行に係る第２のシミュレーションを効率的に実行することができる。
【００２０】
以上、本実施形態によれば、情報処理装置１００は、データ保持指定の際に用いるモジュールの属性情報としてモジュールの入替履歴を利用する。これにより、情報処理装置１００は、シミュレーションを次回実行する際に有効に利用することができる実行結果を優先的に保存することができる。そのため、情報処理装置１００は、シミュレーションの再実行を効率的に実行することができる。
なお、本実施形態において、データ保持指定部１０７は、Ｓ２０２の処理をシミュレーション開始前に行っているが、シミュレーション終了後に行ってもよい。これにより、例えば各モジュールが出力するデータのサイズがシミュレーションを実行する際に初めて判明する場合、データ保持指定部１０７は、各モジュールが保持している出力データの実際のサイズを基にして、保持するデータを指定することができる。
また、本実施形態で定義したスキップ条件は、上述した条件に限る必要はない。例えば、スキップ条件（１）において、モジュールが変化したとしても、入替前後のモジュールで出力する値が同一であると保証されている場合は条件を満たすとしてもよい。
また、本実施形態において、プロセッサ１０３は、プログラムの開始点からシミュレーションを実行していた。しかし、プロセッサ１０３は、前回のシミュレーションにおけるデータフローとの差分を取り、差分があった箇所以前にあって、かつ、出力データが保存されているモジュールをシミュレーションの開始ポイントとしてもよい。例えば、本実施形態では、第１のシミュレーションの際にモジュールＸ３２０だった箇所が第２のシミュレーションの際にモジュールＹ３２１に入れ替わっている。したがって、第２のシミュレーションの際のシミュレーション開始ポイントは、それ以前にあって、かつ、出力データが保存されているモジュールであるモジュールＤ３１５となる。これにより、情報処理装置１００は、より効率的にシミュレーションを再実行することができる。
【００２１】
＜実施形態２＞
本実施形態では、データ保持指定の際に用いるモジュールの属性情報として、モジュールの処理（処理内容）の概念を示したカテゴリの入替履歴を採用した場合について説明する。なお、カテゴリに関する情報は、分類情報の一例である。以降の説明では、実施形態１で説明した処理と同様の処理については説明を省略し、実施形態１で説明した処理と異なる処理についてのみ説明する。
まず、本実施形態における前提条件について説明する。
本実施形態で使用するモジュールの処理の概念を示したカテゴリとは、画像処理の分野であれば「ソーベルフィルタ」や「二値化処理」等が例として挙げられる。本実施形態では、モジュールの属性情報として、そのモジュールが属するカテゴリに属するモジュールが過去にそれ以外のモジュールと入れ替えられた回数の平均（以下、カテゴリの入替履歴という）を採用する。例えば、カテゴリＡＡＡに属する３つのモジュールＡ１、Ａ２、Ａ３の入替履歴がそれぞれ１０回、２０回、３０回であった場合、カテゴリの入替履歴は２０回となる。
【００２２】
次に、実施形態１との相違点であるＳ２０１の処理と、Ｓ２０２の処理とについて説明する。
Ｓ２０１において、情報抽出部１０６は、データベース１１０からデータフローを構成するモジュールが属するカテゴリの入替履歴を抽出する。
図５は、第１のシミュレーションにおけるデータフローにおいて抽出されたモジュールの入替履歴と、カテゴリの入替履歴との一例を示す図である。
モジュールＸ３２０の入替履歴は５回であり、他のモジュールの入替履歴と比べた場合、モジュールＧ３１８の次に少ない。一方、カテゴリＹＹＹの入替履歴は２０００回であり、他のカテゴリの入替履歴と比べた場合、最も多い。そのため、Ｓ２０２で設定されるモジュールＸ３２０の優先度は、モジュールＸ３２０自体の入替履歴を使用して求める場合よりも高く設定されることになる。
Ｓ２０２において、データ保持指定部１０７は、Ｓ２０１で抽出されたカテゴリの入替履歴に基づいて、保存する出力データの保持優先順位を決定する。以降の処理は、実施形態１と同様である。
【００２３】
以上、本実施形態によれば、情報処理装置１００は、データ保持指定の際に用いるモジュールの属性情報としてカテゴリの入替履歴を利用し、シミュレーションを次回実行する際に有効に使用することができる実行結果を優先的に保存することができる。これにより、情報処理装置１００は、シミュレーションの再実行を効率的に実行することができる。
なお、本実施形態では、モジュールの属性情報として、そのモジュールが属するカテゴリに属するモジュールが過去にそれ以外のモジュールと入れ替えられた回数の平均を定義したが、平均に限る必要はなく、定義のための計算を任意に変更してよい。
【００２４】
＜実施形態３＞
本実施形態では、データ保持指定の際に用いるモジュールの属性情報として、モジュールの実行に関わる計算コストを採用した場合について説明する。なお、以降の説明では、実施形態１で説明した処理と同様の処理については説明を省略し、実施形態１で説明した処理と異なる処理についてのみ説明する。
まず、本実施形態における前提条件について説明する。
本実施形態で使用するモジュールの実行に関わる計算コストを、シミュレーションにおいてモジュールが１回実行された場合に要する実行時間と定義する。
次に、実施形態１との相違点であるＳ２０１の処理と、Ｓ２０２の処理とについて説明する。
Ｓ２０１において、情報抽出部１０６は、データベース１１０からデータフローを構成するモジュールの実行時間を抽出する。
【００２５】
Ｓ２０２において、データ保持指定部１０７は、Ｓ２０１で抽出されたモジュールの実行時間に基づいて、保存する出力データの保持優先順位を決定する。ここでは、データ保持指定部１０７は、モジュールの実行時間が最も長いモジュールから順にモジュール優先度を高くすると共に、そのモジュールの入力端子に接続しているモジュールの出力データの保持優先順位を高くする。Ｓ２０２の処理について、図６を用いてより具体的に説明する。
図６は、第１のシミュレーションにおけるデータフローにおいて、Ｓ２０１で抽出された各モジュールの実行時間、Ｓ２０２で設定された出力データの保持優先順位及び出力データ記憶部１０８に保存されるデータの一覧の一例を示す図である。
データ保持指定部１０７は、図６に示すように、モジュールの実行時間を最も長い方から降順に並べて最も上位から順に番号を振る。そして、その番号がモジュール優先度となる。データ保持指定部１０７は、モジュールの出力データの保持優先順位として、そのモジュールの出力を使用する別モジュールのモジュール優先度を使用する。そして、データ保持指定部１０７は、予め定められた保存上限サイズを超えない範囲で、保持優先順位の最も高いデータから順番に出力データ記憶部１０８に保存するデータを指定する。ここでは、データ保持指定部１０７は、実行時間の長さが上位３位までのモジュールＡ３１２、モジュールＢ３１３、モジュールＥ３１６の出力データを保存対象として指定する。以降の処理は、実施形態１と同様である。
【００２６】
第２のシミュレーションの際に図１の（ｂ）のモジュールＸ３２０が図１の（ｃ）のモジュールＹ３２１に入れ替えられた場合、実施形態１ではプロセッサ１０３が、図４の（ｂ）が示すようにモジュールＤ３１５の実行終了時点からシミュレーションを開始する。しかし、本実施形態では、プロセッサ１０３が、図６の出力データ保存対象が示すようにモジュールＢ３１３の実行終了時点からシミュレーションを開始する。そのため、本実施形態ではモジュールＣ３１４と、モジュールＤ３１５との実行時間１７５ｍｓが余分にかかってしまう。一方、第２のシミュレーションの際に図１の（ｂ）のモジュールＣ３１４が別のモジュールに入れ替えられた場合、実施形態１ではプロセッサ１０３が、図４の（ｂ）の出力データ保存対象が示すようにモジュールＡ３１２の実行終了時点から開始する。しかし、本実施形態ではプロセッサ１０３が、図６の出力データ保存対象が示すようにモジュールＢ３１３の実行終了時点からシミュレーションを開始する。そのため、実施形態１ではモジュールＢ３１３の実行時間１５００ｍｓが余分にかかってしまう。このように、情報処理装置１００は、計算コストを考慮することで、データフローに過去の操作履歴と異なる編集が施されたとしても、より少ない実行時間でシミュレーションを再実行することができる。これにより、シミュレーション時間の期待値が短縮されることが期待される。
【００２７】
以上、本実施形態によれば、情報処理装置１００は、データ保持指定の際に用いるモジュールの属性情報としてモジュールの実行に関わる計算コスト（コスト情報）を利用する。これにより、情報処理装置１００は、シミュレーションを次回実行する際に利用することができる実行結果として、出力に必要な計算コストが最も高くなるモジュールから順に優先して実行結果を保存することができる。そのため、情報処理装置１００は、シミュレーションの再実行を効率的に実行することができる。
なお。本実施形態では、モジュールの実行に関わる計算コストを、シミュレーションの際にモジュールを実行した場合に要する実行時間と定義したが、その他の情報で定義してもよい。例えば、計算コストとして、単位データ当たりの処理量を定義してもよい。
また、情報処理装置１００は、シミュレーションの実行回数を記録し、記録した実行回数を用いて処理を実行するようにしてもよい。これにより、情報処理装置１００は、実行時間は他のモジュールに比べて短いが実行回数が多く、結果的にシミュレーションの実行に時間のかかるモジュールを考慮してシミュレーションを実行することができる。
【００２８】
＜実施形態４＞
本実施形態では、データ保持指定の際に用いる情報として、モジュールの属性情報に加え、作成しているデータフローの属性情報も採用した場合について説明する。なお、以降の説明では、実施形態１で説明した処理と同様の処理については説明を省略し、実施形態１で説明した処理と異なる処理についてのみ説明する。
まず、本実施形態における前提条件について説明する。
本実施形態で使用するデータフローの属性情報とは、データフローで表されたプログラムのカテゴリ（利用分野、用途等の分類）を表す。例えば、産業用画像処理分野、医療用画像処理分野等である。なお、本実施形態で使用するプログラムのカテゴリを「ＢＢ」とする。また、本実施形態では、実施形態１と同様にモジュールの属性情報として、モジュールの入替履歴を採用する。そして、モジュールの入替履歴はプログラムのカテゴリ毎に記録されているものとする。
【００２９】
次に、実施形態１との相違点であるＳ２０２の処理について説明する。
Ｓ２０２において、データ保持指定部１０７は、Ｓ２０１で抽出されたカテゴリの入替履歴と、プログラムのカテゴリとに基づいて、保存する出力データの保持優先順位を決定する。Ｓ２０２の処理について、図７を用いてより具体的に説明する。
図７は、第１のシミュレーションにおけるデータフローにおいて抽出されたモジュールの入替履歴の一例を示す図である。
各モジュールの入替履歴は、プログラムのカテゴリによって異なっている。本実施形態で使用するプログラムのカテゴリは「ＢＢ」であるから、データ保持指定部１０７は、これに対応する入替履歴の値を用いて処理を実行する。以降の処理は、実施形態１と同様である。
本実施形態で仮にプログラムのカテゴリを考慮しなかった場合、モジュールの入替履歴がプログラムのカテゴリによらず蓄積されることになる。即ち、モジュールの入替履歴は、図７の入替履歴の合計に相当することになる。この場合、モジュールＸ３２０の優先度は、４番目となる。このように、プログラムのカテゴリを考慮することで、情報処理装置１００は、シミュレーションを次回実行する際にも有効に利用することができる実行結果をより効率的に保存することができる。
【００３０】
以上、本実施形態によれば、情報処理装置１００は、データ保持指定の際に用いる情報として、モジュールの属性情報に加え、作成しているデータフローの属性情報も採用する。これにより、情報処理装置１００は、シミュレーションを次回実行する際に有効に使用することができる実行結果を優先的に保存することができる。そのため、情報処理装置１００は、データフローの属性によってモジュールの入替履歴が変わる場合でも、シミュレーションの再実行を効率的に実行することができる。
なお、本実施形態では、データフローの属性情報は、データフローで表されたプログラムのカテゴリを表すとしたが、他の情報を表すものであってもよい。例えば、データフローの属性情報は、データフローを作成している開発者の所属情報（アルゴリズム開発者、ソフトウェア実装者等）を表すものであってもよい。
【００３１】
＜実施形態５＞
本実施形態では、データ保持指定の際に用いる情報として、モジュールの属性情報に加え、モジュールの処理順序も採用した場合について説明する。なお、以降の説明では、実施形態１で説明した処理と同様の処理については説明を省略し、実施形態１で説明した処理と異なる処理についてのみ説明する。
まず、本実施形態における前提条件について説明する。
本実施形態では、データ保持指定の際に用いる情報として、モジュールの属性情報に加え、モジュールの処理順序に関する情報も用いる。例えば、データフロー中のある場所のモジュールが入れ替えられる回数が多いほど、そのモジュールよりも後で実行されるモジュールから見ると、入力データが変化している可能性がより高くなる。即ち、保存されている出力データが使われない可能性がより高くなる。そのため、データ保持指定部１０７は、あるモジュールの入れ替えの回数が多くなるほど、そのモジュールよりも後で実行されるモジュールに対する入力データの保存の優先順位を低くするように設定する。より具体的にいうと、あるモジュールのデータフロー中での入替履歴の順位をｎとし、それ以降に実行されるモジュールの入替履歴に適用する調整係数ｋを、ｋ＝１−１／２ｎと定義する。そして、データ保持指定部１０７は、この調整係数ｋをそれ以降に実行されるモジュールの入替履歴に適用し、全てのモジュールについてこれを繰り返す。
【００３２】
次に、実施形態１との相違点であるＳ２０２の処理について説明する。
Ｓ２０２において、データ保持指定部１０７は、Ｓ２０１で抽出されたモジュールの入替履歴と、モジュールの実行順序とに基づいて、保存する出力データの保持優先順位を決定する。ここで、抽出されたモジュールの入替履歴は、図４の（ａ）と同等とする。また、図８の（ａ）は、モジュールの実行順序の一覧の一例を示す図である。図８の（ｂ）は、各モジュールの入替履歴に基づく調整係数ｋの一覧の一例を示す図である。図８の（ｃ）は、各モジュールに適用される調整係数の一覧、調整係数に基づき調整された入替履歴及び保存されるデータの一覧の一例を示す図である。例えば、モジュールＦ３１７に適用される調整係数は、モジュールＦ３１７の実行前に実行されるモジュールＡ３１２、モジュールＢ３１３、モジュールＣ３１４、モジュールＤ３１５、モジュールＥ３１６、モジュールＸ３２０の優先度から求まる値の積となる。より具体的にいうと、ｋ（Ｆ）＝０．９２×０．７５×０．８８×０．９３×０．９０×０．５０＝０．２５となる。データ保持指定部１０７は、この調整係数ｋを入替履歴に適用し、モジュールＦ３１７の調整入替履歴を３０回と求める。モジュールＦ３１７は、例えばモジュールＢ３１３のような入替履歴が最も多いモジュールの後ろに位置しているため、調整係数によって調整された入替履歴が調整前に比べて少なくなっていることがわかる。
【００３３】
以上、本実施形態によれば、情報処理装置１００は、データ保持指定の際に用いる情報として、モジュールの属性情報に加え、モジュールの処理順序（順番情報）も採用する。これにより、情報処理装置１００は、シミュレーションを次回実行する際に有効に使用することができる実行結果を優先的に保存することができる。そのため、情報処理装置１００は、シミュレーションの再実行を効率的に実行することができる。
本実施形態では、あるモジュール入れ替えの頻度が高くなるほど、そのモジュールよりも後で実行されるモジュールに対する入力データの保存の優先度が低くなるように、入替履歴の順位を用いて調整係数を定義した。しかし、例えば、モジュールの入替履歴が予め定められた一定数以下のモジュールの後に実行されるモジュールについては調整係数を１とするように定義してもよい。即ち、本実施形態における調整係数の計算式は一例であり、任意に変更してよい。
【００３４】
＜その他の実施形態＞
データ保持指定部１０７は、データ保持指定の際に使用する情報として、実施形態１から実施形態５までにおいて使用した各情報を組み合わせて使用するようにしてもよい。例えば、データ保持指定部１０７は、モジュールの入替履歴と、計算コストとを組み合わせた情報に基づいてデータ保持指定の処理を実行するようにしてもよい。
また、上述の実施形態では、第１のシミュレーションと、第２のシミュレーションとの間に行われるデータフローの編集として、モジュールの入れ替えを前提としていた。しかし、情報処理装置１００は、モジュールの削除や追加が行われた場合であっても同様のフローで処理を実行することができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３５】
以上、上述した各実施形態によれば、シミュレーションの再実行を効率的に行うことができる技術を提供することができる。
【００３６】
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2015075787.tif 000003
【図２】
2015075787.tif 000004
【図３】
2015075787.tif 000005
【図４】
2015075787.tif 000006
【図５】
2015075787.tif 000007
【図６】
2015075787.tif 000008
【図７】
2015075787.tif 000009
【図８】
2015075787.tif 000010