(57)【要約】【課題】プログラムの性能評価を効率的に実施する。【解決手段】情報処理装置は、算出部１１３と生成部１１４とを備える。算出部１１３は、実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間とを比較して、短縮率を算出する。生成部１１４は、算出部１１３によって算出された短縮率と評価対象プログラムとに基づいて、シミュレーション環境において使用するシミュレーションプログラムを生成する。【選択図】図８
2019159482.tif 000002
【特許請求の範囲】
【請求項１】
実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出する算出部と、
前記算出部によって算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する生成部と、
を備える、情報処理装置。
【請求項２】
前記生成部は、前記複数の関数毎に算出された複数の短縮率のうち、最小の短縮率を使用して、前記シミュレーションプログラムを生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記生成部は、前記複数の関数毎の処理時間に前記短縮率を乗じた値を記録するダミートレースに基づいて、前記シミュレーションプログラムを生成する、
請求項１又は２に記載の情報処理装置。
【請求項４】
所定の関数リストの中から、前記評価対象プログラムに含まれる前記複数の関数のそれぞれに類似する複数の類似関数を検索する検索部と、
前記検索部によって検索された類似関数を前記シミュレーション環境において実行した場合における実行時間を測定する測定部と、
を更に備え、
前記算出部は、前記実行環境における前記複数の関数毎の実行時間と、前記測定部によって測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記評価対象プログラムに含まれる前記複数の関数を、非排他処理と排他資源取得処理と排他資源解放処理とに分類する分類処理部と、
前記分類処理部によって前記非排他処理に分類された関数のうち連続する関数を、単一の簡易関数として記録する簡易トレースを生成する簡易化処理部と、
を更に備え、
前記算出部は、前記簡易化処理部によって生成された簡易トレースに含まれる前記簡易関数毎の実行時間と、前記測定部によって測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
請求項４に記載の情報処理装置。
【請求項６】
コンピュータに、
実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出し、
前記算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する、
処理を実行させる、プログラム。
【請求項７】
実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出し、
前記算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
並列計算プログラムの性能は、並列性能によって評価される場合がある。ここで、並列性能とは、プログラムが処理の並列化にどの程度適応できるかを示す目安である。
【０００３】
データの依存性等からソースコード解析等で概算した並列性能は不正確なおそれがあるため、実行性能を評価することによって並列性能が算出される場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−９９１０８号公報
【特許文献２】特開平１１−９６１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、開発中のプログラムでは、並列計算を実施できず逐次計算に限って実施できるため、正確な性能評価ができないおそれがある。また、開発中のプログラムでは複数回の性能測定を実施して並列性能を取得することにより、測定時間が長くなるおそれがある。
【０００６】
１つの側面では、プログラムの性能評価を効率的に実施することを目的とする。
【課題を解決するための手段】
【０００７】
情報処理装置は、実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出する算出部と、前記算出部によって算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する生成部と、を備える。
【発明の効果】
【０００８】
１つの側面では、プログラムの性能評価を効率的に実施することができる。
【図面の簡単な説明】
【０００９】
【図１】プログラムの並列化に対する性能向上の関係を示すグラフである。
【図２】実施形態の一例としての情報処理装置のハードウェア構成を模式的に示すブロック図である。
【図３】図２に示した情報処理装置の機能構成を模式的に示すブロック図である。
【図４】図２に示した情報処理装置における処理の概要を説明するブロック図である。
【図５】関連例におけるダミープログラムの生成処理と、図２に示した情報処理装置におけるダミープログラムの生成処理とを説明するブロック図である。
【図６】図２に示した情報処理装置におけるダミートレースの生成処理を説明するブロック図である。
【図７】図２に示した情報処理装置におけるダミートレースの生成処理を説明するブロック図である。
【図８】図２に示した情報処理装置におけるダミートレースの生成処理を説明するブロック図である。
【図９】図２に示した情報処理装置における類似トレースの生成処理を説明するブロック図である。
【図１０】図２に示した情報処理装置における類似トレースの生成処理を説明するブロック図である。
【図１１】図２に示した情報処理装置における類似トレースの生成処理を説明するブロック図である。
【図１２】図２に示した情報処理装置における関数毎の短縮率を示すテーブルと、ダミートレース生成プログラムの一例とを示す図である。
【図１３】図２に示した情報処理装置における関数毎の調整時間を示すテーブルと、ダミートレース生成プログラムの一例とを示す図である。
【図１４】図２に示した情報処理装置におけるダミートレースを例示する図である。
【図１５】図２に示した情報処理装置におけるダミープログラム生成プログラム及びダミープログラムを例示する図である。
【図１６】図２に示した情報処理装置における処理を説明するフローチャートである。
【図１７】変形例における情報処理装置の機能構成を模式的に示すブロック図である。
【図１８】図１７に示した情報処理装置におけるダミートレースの生成処理を説明するブロック図である。
【図１９】図１７に示した情報処理装置におけるダミートレースの生成処理を説明するブロック図である。
【図２０】図１７に示した情報処理装置におけるダミートレースの生成処理を説明するブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００１１】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【００１３】
〔Ａ〕実施形態の一例
〔Ａ−１〕システム構成例
図１の（１）は、プログラムの並列化に対する性能向上の関係を示すグラフである。図１の（１）において、横軸はCentral Processing Unit（ＣＰＵ）コア数等の並列度を表わし、縦軸は性能向上率を表わす。
【００１４】
図１の（１）において、符号Ａ１は処理全体に対する並列部分の割合が９５％の場合における並列性能を示し、符号Ａ２は処理全体に対する並列部分の割合が９０％の場合における並列性能を示す。また、符号Ａ３は処理全体に対する並列部分の割合が７５％の場合における並列性能を示し、符号Ａ４は処理全体に対する並列部分の割合が５０％の場合における並列性能を示す。
【００１５】
並列度に対するプログラムの性能向上率Speedupは、以下の（式１）によって表わされる。
【００１６】
【数１】
2019159482.tif 000003
【００１７】
ここで、T(N)はプログラムの処理全体にかかった時間を示し、Nは使用したＣＰＵコア数等の並列度を示す。
【００１８】
図１の（１）に示すグラフにおいては、カーブが右肩上がりの直線に近づく程、並列性能が高くなる。すなわち、図１の（１）に示す例では、符号Ａ１，Ａ２，Ａ３，Ａ４で示すグラフの順に、並列性能が高い。
【００１９】
なお、処理時間ではなく、処理量によって性能向上率Speedupを算出する場合には、以下の（式２）が使用される。
【００２０】
【数２】
2019159482.tif 000004
【００２１】
ここで、P(N)は、例えば、N並列時の単位時間当たりの処理量である。
【００２２】
図１の（２）は、図１の（１）に示したグラフの導出例を示す図である。
【００２３】
図１の（２）に示す例では、符号Ａ１で示すグラフに、１７個の点がプロットされている。正確な並列性能を算出するために、図示するように多数のプロセス数毎に、性能向上率が測定されてよい。
【００２４】
図２は、実施形態の一例としての情報処理装置１のハードウェア構成を模式的に示すブロック図である。
【００２５】
情報処理装置１は、ＣＰＵ１１，メモリ１２，表示制御部１３，記憶装置１４，入力Interface（Ｉ／Ｆ）１５，読み書き処理部１６及び通信Ｉ／Ｆ１７を備える。
【００２６】
メモリ１２は、例示的に、Read Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む記憶装置である。メモリ１２のＲＯＭには、Basic Input/Output System（ＢＩＯＳ）等のプログラムが書き込まれてよい。メモリ１２のソフトウェアプログラムは、ＣＰＵ１１に適宜に読み込まれて実行されてよい。また、メモリ１２のＲＡＭは、一次記録メモリあるいはワーキングメモリとして利用されてよい。
【００２７】
表示制御部１３は、表示装置１３０と接続され、表示装置１３０を制御する。表示装置１３０は、液晶ディスプレイやOrganic Light-Emitting Diode（ＯＬＥＤ）ディスプレイ，Cathode Ray Tube（ＣＲＴ），電子ペーパーディスプレイ等であり、オペレータ等に対する各種情報を表示する。表示装置１３０は、入力装置と組み合わされたものでもよく、例えば、タッチパネルでもよい。
【００２８】
記憶装置１４は、例示的に、データを読み書き可能に記憶する装置であり、例えば、Hard Disk Drive（ＨＤＤ）やSolid State Drive（ＳＳＤ），Storage Class Memory（ＳＣＭ）が用いられてよい。
【００２９】
入力Ｉ／Ｆ１５は、マウス１５１やキーボード１５２等の入力装置と接続され、マウス１５１やキーボード１５２等の入力装置を制御する。マウス１５１やキーボード１５２は、入力装置の一例であり、これらの入力装置を介して、オペレータが各種の入力操作を行なう。
【００３０】
読み書き処理部１６は、記録媒体１６０が装着可能に構成される。読み書き処理部１６は、記録媒体１６０が装着された状態において、記録媒体１６０に記録されている情報を読み取り可能に構成される。本例では、記録媒体１６０は、可搬性を有する。例えば、記録媒体１６０は、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、又は、半導体メモリ等である。
【００３１】
通信Ｉ／Ｆ１７は、外部装置との通信を可能にするためのインタフェースである。
【００３２】
図３は、図１に示した情報処理装置１の機能構成を模式的に示すブロック図である。
【００３３】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、メモリ１２に格納されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。すなわち、情報処理装置１のＣＰＵ１１は、図３に示すように、類似関数検索部１１１，類似関数性能測定部１１２，短縮率計算部１１３及び短縮率適用部１１４として機能する。
【００３４】
なお、これらの類似関数検索部１１１，類似関数性能測定部１１２，短縮率計算部１１３及び短縮率適用部１１４としての機能を実現するためのプログラムは、例えば前述した記録媒体１６０に記録された形態で提供される。そして、コンピュータは読み書き処理部１６を介してその記録媒体１６０からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００３５】
類似関数検索部１１１，類似関数性能測定部１１２，短縮率計算部１１３及び短縮率適用部１１４としての機能を実現する際には、内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサによって実行される。このとき、記録媒体１６０に記録されたプログラムをコンピュータが読み取って実行してもよい。なお、本実施形態において、内部記憶装置はメモリ１２であり、マイクロプロセッサはＣＰＵ１１である。
【００３６】
ＣＰＵ１１は、例示的に、情報処理装置１全体の動作を制御する。情報処理装置１全体の動作を制御するための装置は、ＣＰＵ１１に限定されず、例えば、ＭＰＵやＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか１つであってもよい。また、情報処理装置１全体の動作を制御するための装置は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ及びＦＰＧＡのうちの２種類以上の組み合わせであってもよい。なお、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific Integrated Circuitの略称である。また、ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００３７】
類似関数検索部１１１は、検索部の一例である。類似関数検索部１１１は、所定の関数リスト２０６（図９〜図１１等を用いて後述）の中から、開発中プログラム１０１（図４等を用いて後述）に含まれる複数の関数のそれぞれに類似する複数の類似関数を検索する。なお、類似関数検索部１１１における機能の詳細については、図６等を用いて後述する。
【００３８】
類似関数性能測定部１１２は、測定部の一例である。類似関数性能測定部１１２は、類似関数検索部１１１によって検索された類似関数をシミュレーション環境２０（図４等を用いて後述）において実行した場合における実行時間を測定する。なお、類似関数性能測定部１１２における機能の詳細については、図６等を用いて後述する。
【００３９】
短縮率計算部１１３は、算出部の一例である。短縮率計算部１１３は、開発プログラム実行環境１０（図４等を用いて後述）における複数の関数毎の実行時間と、シミュレーション環境２０（図４等を用いて後述）における複数の関数毎の実行時間とを比較して、短縮率を算出する。ここで、開発プログラム実行環境１０における複数の関数毎の実行時間は、開発プログラム実行環境１０において開発中プログラム１０１（図４等を用いて後述）を実行した場合における複数の関数毎の実行時間である。また、シミュレーション環境２０における複数の関数毎の実行時間は、シミュレーション環境２０において開発中プログラム１０１を実行した場合における複数の関数毎の実行時間である。
【００４０】
短縮率計算部１１３は、開発プログラム実行環境１０（図４等を用いて後述）における複数の関数毎の実行時間と、類似関数性能測定部１１２によって測定された複数の類似関数毎の実行時間とに基づき、短縮率を算出する。
【００４１】
なお、短縮率計算部１１３における機能の詳細については、図７等を用いて後述する。
【００４２】
短縮率適用部１１４は、生成部の一例である。短縮率適用部１１４は、短縮率計算部１１３によって算出された短縮率と開発中プログラム１０１とに基づいて、シミュレーション環境２０において使用するダミープログラム３０４（図１５等を用いて後述）を生成する。
【００４３】
短縮率適用部１１４は、複数の関数毎に算出された複数の短縮率のうち、最小の短縮率を使用して、ダミープログラム３０４を生成する。
【００４４】
短縮率適用部１１４は、複数の関数毎の処理時間に短縮率を乗じた値を記録するダミートレース２０２（図８等を用いて後述）に基づいて、ダミープログラム３０４を生成する。
【００４５】
なお、短縮率適用部１１４における機能の詳細については、図７等を用いて後述する。
【００４６】
図４は、図２に示した情報処理装置１における処理の概要を説明するブロック図である。
【００４７】
情報処理装置１は、開発プログラム実行環境（単に「実行環境」と称してもよい。）１０と、シミュレーション環境２０とに分けられる。
【００４８】
開発プログラム実行環境１０において、開発中プログラム（「評価対象プログラム」と称してもよい。）１０１が実行され、実行トレース１０２が記録される（符号Ｂ１参照）。
【００４９】
シミュレーション環境２０において、ダミートレース生成システム２０１は、実行トレース１０２を入力として（符号Ｂ２参照）、ダミートレース２０２を生成する（符号Ｂ３参照）。
【００５０】
別言すれば、ダミートレース生成システム２０１は、トレース短縮部２０１１として機能する。トレース短縮部２０１１は、実行トレース１０２が入力され（符号Ｂ２１参照）、ダミートレース２０２を生成する（符号Ｂ３１参照）。
【００５１】
そして、シミュレーション環境２０において、シミュレータ２０３は、生成されたダミートレース２０２が入力され（符号Ｂ４参照）、並列度を変えながらプログラムを実行する。そして、シミュレータ２０３は、シミュレーション結果を出力する（符号Ｂ５参照）。
【００５２】
図５の（１）は、関連例におけるダミープログラム６０３の生成処理を説明するブロック図である。また、図５の（２）は、図２に示した情報処理装置１におけるダミープログラム３０４の生成処理を説明するブロック図である。
【００５３】
図５の（１）に示すように、関連例に係る情報処理装置６において展開される開発プログラム実行環境６０では、ダミープログラム生成システム６０２は、開発中プログラム６０１から直接にダミープログラム６０３を生成する。
【００５４】
このように、関連例におけるダミープログラム６０３の生成は開発プログラム実行環境６０が整った状態で実施しなければならない。また、ダミープログラム６０３の処理時間は、開発中プログラム６０１の処理時間と同じになってしまう。
【００５５】
一方、図５の（２）に示すように、実施形態の一例に係る情報処理装置１において展開される開発プログラム実行環境１０では、開発中プログラム１０１に基づいて実行トレース１０２が生成される。シミュレーション環境２０において、ダミートレース生成システム２０１は、実行トレース１０２の入力を受けて、ダミープログラム３０４を生成する。そして、シミュレーション環境２０において、シミュレータ２０３は、ダミープログラム３０４を実行する。
【００５６】
このように、実施形態の一例におけるダミープログラム３０４の生成は、開発プログラム実行環境１０が整っていなくてもシミュレーション環境２０において実行できる。また、ダミープログラム３０４の処理時間は、開発中プログラム１０１の処理時間よりも短縮できる。
【００５７】
図６〜図８は、図２に示した情報処理装置１におけるダミートレース２０２の生成処理を説明するブロック図である。
【００５８】
図６に示すように、開発プログラム実行環境１０において、開発中プログラム１０１が実行される（図６の符号Ｃ１参照）これにより、実行トレース１０２が生成される。
【００５９】
シミュレーション環境２０において、類似関数検索部１１１は、実行トレース１０２の関数を入力として受け付け（図６の符号Ｃ２参照）、実行トレース１０２の各関数に類似する類似関数を検索して類似トレース２０５に出力する（図６の符号Ｃ３参照）。
【００６０】
シミュレーション環境２０において、類似関数性能測定部１１２は、類似トレース２０５の関数名を入力として受け付け（図６の符号Ｃ４参照）、類似トレース２０５の各類似関数についての処理時間を測定して類似トレース２０５に出力する（図６の符号Ｃ５参照）。
【００６１】
図７に示すように、任意環境３０において、短縮率計算部１１３は、実行トレース１０２の処理時間を入力として受け付ける（図７の符号Ｃ６参照）とともに、類似トレース２０５の処理時間を入力として受け付ける（図７の符号Ｃ７参照）。そして、短縮率計算部１１３は、実行トレース１０２の処理時間と、類似トレース２０５の処理時間とを比較することにより、短縮率ｒを算出する。
【００６２】
関数＿Ｎについての短縮率r_Nは、以下の（式３）によって算出されてよい。
【００６３】
【数３】
2019159482.tif 000005
【００６４】
なお、T_Nは実行トレース１０２における処理時間を表わし、Tsim_Nは類似トレース２０５における処理時間を表わし、Nは自然数である。
【００６５】
短縮率計算部１１３は、各関数＿Ｎについての短縮率r_Nのうち、最小の値を短縮率ｒとして、短縮率適用部１１４へ入力する。
【００６６】
任意環境３０において、短縮率適用部１１４は、短縮率計算部１１３から短縮率ｒを取得する（図７の符号Ｃ８参照）。
【００６７】
図８に示すように、短縮率適用部１１４は、実行トレース１０２に対して短縮率ｒを適用して、ダミートレース２０２を生成する（図８の符号Ｃ９参照）。すなわち、短縮率適用部１１４は、実行トレース１０２における各関数の処理時間に対して短縮率ｒを乗じることにより、ダミートレース２０２において短縮関数の処理時間T_N * rを取得する。
【００６８】
図９〜図１１は、図２に示した情報処理装置１における類似トレース２０５の生成処理を説明するブロック図である。
【００６９】
図９に示すように、シミュレーション環境２０において、類似関数検索部１１１は、実行トレース１０２において、関数（図示する例では、「関数＿１」）を１つ選択する（図９の符号Ｄ１及び類似トレース生成プログラム３０１の１０行目参照）。類似関数検索部１１１は、複数の類似関数を含む関数リスト２０６の中から、選択した関数に類似する類似関数（図示する例では、「関数＿１」）を検索する。そして、類似関数検索部１１１は、検索した類似関数を類似トレース２０５に登録する（図９の符号Ｄ２及び類似トレース生成プログラム３０１の１１〜１２，１５行目参照）。
【００７０】
類似関数検索部１１１による処理を記述するプログラムは、例えば、類似トレース生成プログラム３０１の１〜１５行目によって表わされる。
【００７１】
図９に例示する類似トレース生成プログラム３０１において、１〜２行目には関数リスト２０６の取得処理が含まれ、３〜４行目には実行トレース１０２の取得処理が含まれる。また、図９に例示する類似トレース生成プログラム３０１において、６〜２１行目には実行トレース１０２の各行について類似関数を検索して、検索した類似関数の実行時間を取得する処理が含まれる。更に、６〜２１行目のうち９〜１５行目には、類似関数の検索処理が含まれる。
【００７２】
図１０に示すように、シミュレーション環境２０において、類似関数性能測定部１１２は、類似トレース２０５における類似関数（図示する例では、「関数＿１」）の処理時間（図示する例では、「Tsim_1」）を測定する（図１０の符号Ｄ３及び類似トレース生成プログラム３０１の１８〜２１行目参照）。
【００７３】
類似関数性能測定部１１２により処理を記述するプログラムは、例えば、類似トレース生成プログラム３０１の６〜８行目及び１７〜２１行目によって表わされる。
【００７４】
図１０に例示する類似トレース生成プログラム３０１において、６〜２１行目には実行トレース１０２の各行について類似関数を検索して、検索した類似関数の実行時間を取得する処理が含まれる。更に、６〜２１行目のうち１７〜２１行目には、類似関数の実行時間の取得処理が含まれる。
【００７５】
図１１に示す例では、シミュレーション環境２０において、類似関数検索部１１１は、関数リスト２０６の中から、実行トレース１０２における関数＿４に類似する類似関数を検索する。図示する例では、関数リスト２０６には、実行トレース１０２の関数＿４に類似する類似関数として、関数＿４′及び関数＿４″を含む。
【００７６】
ここで、関数＿４′と関数＿４″とは、実行トレース１０２における関数の用途やコードの規模毎に使い分けられてよい。図示する例では、実行トレース１０２における関数＿４の用途が「ＸＸ」である場合に関数＿４′が使用される一方、実行トレース１０２における関数＿４の用途が「ＹＹ」である場合に関数＿４″が使用される。
【００７７】
図１１に示す例では、実行トレース１０２における関数＿４の用途が「ＹＹ」であるため、類似関数検索部１１１は、類似関数として関数＿４″を関数リスト２０６の中から選択する。そして、類似関数検索部１１１は、選択した関数＿４″を類似トレース２０５に登録する（図１１の符号Ｄ４及び類似トレース生成プログラム３０１の１３〜１５行目参照）。
【００７８】
図１２の（１）は、図２に示した情報処理装置１における関数毎の短縮率を示すテーブルである。また、図１２の（２）は、図２に示した情報処理装置１におけるダミートレース生成プログラム３０２を例示する図である。
【００７９】
図１２の（１）に示すテーブルにおいては、実行トレース実行時間と、類似トレース実行時間と、短縮率とが対応付けられて登録されている。
【００８０】
実行トレース実行時間は、実行トレース１０２における関数の実行時間（別言すれば、処理時間）を示す。類似トレース実行時間は、類似トレース２０５における類似関数の実行時間（別言すれば、処理時間）を示す。短縮率は、実行トレース実行時間に対する類似トレース実行時間の短縮の割合を示す。
【００８１】
図１２の（１）に示す例では、例えば、実行トレース実行時間T_1と、類似トレース実行時間Tsim_1とに対して、以下の（式４）に示す短縮率r_1が対応付けられている。
【００８２】
【数４】
2019159482.tif 000006
【００８３】
すなわち、関数＿Ｎについての短縮率r_Nは、上述した（式３）によって算出されてよい。
【００８４】
図１２の（２）に示す例では、ダミートレース生成プログラム３０２は、１〜２行目において実行トレース１０２の取得処理を含み、３〜４行目において類似トレース２０５の取得処理を含む。また、ダミートレース生成プログラム３０２は、６〜１６行目において２つのトレース１０２及び２０５の各行について処理時間を取得して短縮率を計算する処理を含み、１０〜１３行目においてトレース１０２及び２０５内の処理時間と関数名とを取得する処理を含む。更に、ダミートレース生成プログラム３０２は、１５〜１６行目においてトレース１０２及び２０５の各行における短縮率を算出する処理を含み、１８〜１９行目において短縮率の最小値を取得する処理を含む。
【００８５】
図１３の（１）は、図２に示した情報処理装置１における関数毎の調整時間を示すテーブルである。また、図１３の（２）は、図１２の（２）に示したダミートレース生成プログラム３０２の続きを例示する図である。
【００８６】
図１３の（１）に示すテーブルにおいては、短縮率と調整時間とが対応付けられて登録されている。
【００８７】
短縮率は、実行トレース実行時間に対する類似トレース実行時間の短縮の割合を示す。調整時間は、各類似関数の実行時間が、同じ短縮率（図１３の（１）に示す例では、短縮率の最小値r_2）で短縮されたように見せるために、各類似関数の実行時間に加算する値（別言すれば、追加の処理時間）である。
【００８８】
図１３の（１）に示す例では、例えば、短縮率r_1に対して、調整時間Δt_1が対応付けられている。
【００８９】
短縮率r_1は、図１２の（１）に示した短縮率r_1と同様に、上述した（式４）によって示されてよい。
【００９０】
調整時間Δt_1は、以下の（式５）によって示されてよい。
【００９１】
【数５】
2019159482.tif 000007
【００９２】
なお、r_2は、複数の類似関数についての短縮率のちの最小の短縮率を示す。すなわち、図１３の（１）に示す例では、短縮率r_1〜r_8のうち、関数＿２の実行時間T_2に対する類似関数＿２の実行時間Tsim_2の短縮率r_2が最小である。
【００９３】
ここで、類似関数＿Ｎ（Ｎは自然数）についての調整時間Δt_Nは、以下の（式６）によって示されてよい。
【００９４】
【数６】
2019159482.tif 000008
【００９５】
なお、r_minは、複数の類似関数についての短縮率のうちの最小の短縮率を示す。
【００９６】
図１３の（２）に示す例では、ダミートレース生成プログラム３０２は、２１〜２８行目においてダミートレース２０２の各行の出力処理を含み、２３〜２４行目においてダミートレース２０２の各行の調整時間を計算する処理を含む。また、ダミートレース生成プログラム３０２は、２６〜２８行目において、ダミー関数の関数名，ダミー関数の処理時間（別言すれば、調整時間），類似関数の関数名及び類似関数の処理時間をダミートレース２０２として出力する処理を含む。
【００９７】
すなわち、ダミートレース生成プログラム３０２は、生成するダミートレース２０２において、ダミー関数を実行する１行と類似関数を実行する１行とを一組として扱うことで、当該類似関数が最小の短縮率による実行時間で実行されたように見せる。これにより、ダミートレース２０２内の各類似関数の処理時間が同じ短縮率で短縮されたように見せることができる。
【００９８】
ここで、実行トレース１０２中の各関数の実行時間を比率（別言すれば、実行トレース１０２全体の処理時間のうち、各関数の実行時間が占める割合）で示した場合、当該比率が維持されれば、実際の実行時間を短縮しても並列性能は正確に評価される。
【００９９】
並列性能は、並列プログラム内の各スレッドの実行タイミングに依存する。一般的に、プログラムは、並列実行できる処理と、並列実行できない処理（別言すれば、同じ動作を複数のスレッドで同時に実行することができない処理）と、を含む。このようなプログラムを複数のスレッドで並列実行すると、各スレッドがどの処理をどのタイミングで実行したかによって、並列プログラムの処理性能が変化する。
【０１００】
従って、実行トレース１０２中の各関数の実行時間を同じ短縮率で短縮しなければ、各スレッドの挙動（別言すれば、各関数の実行タイミング）が測定したいスレッドの挙動と異なるおそれがある。
【０１０１】
そこで、本実施形態の一例においては、実行時間を短縮しても正確な並列性能を取得できるように、実行トレース１０２中の各関数の処理時間を同じ短縮率で短縮する。
【０１０２】
図１４は、図２に示した情報処理装置１におけるダミートレース２０２を例示する図である。
【０１０３】
図１４に例示するダミートレース２０２は、図１２の（１）及び図１３の（１）に例示したテーブルに基づいて生成される。
【０１０４】
図１４に示す例において、処理時間がTsim_1である類似関数＿１と、処理時間がTsim_3である類似関数＿３と、処理時間がTsim_4である類似関数＿４との処理の直前には、dummy_runで示されるダミー関数がそれぞれ挿入されている。具体的には、類似関数＿１の直前には、処理時間がdelta_1のdummy_runが挿入されている（符号Ｅ１参照）。また、類似関数＿３の直前には、処理時間がdelta_3のdummy_runが挿入されている（符号Ｅ３参照）。更に、類似関数＿４の直前には、処理時間がdelta_4のdummy_runが挿入されている（符号Ｅ４参照）。
【０１０５】
一方、図１４に示す例において、図１３の（１）を用いて説明したように複数の類似関数についての短縮率のうち最小の短縮率に係る類似関数＿２については、直前にダミー関数が挿入されていない（符号Ｅ２参照）。
【０１０６】
図１５（１）は、図２に示した情報処理装置１におけるダミープログラム生成プログラム３０３を例示する図である。また、図１５の（２）は、図２に示した情報処理装置１におけるダミープログラム３０４を例示する図である。
【０１０７】
図１５の（１）に例示するダミープログラム生成プログラム３０３において、１〜６行目にはダミートレース２０２中の関数を取得する処理が含まれ、８〜１２行目にはダミープログラム３０４のメイン処理を出力する処理が含まれる。
【０１０８】
図１５の（２）に例示するダミープログラム３０４において、１〜９行目には各スレッドの実行内容が含まれ、１０〜１９行目にはシミュレーションのメイン処理が含まれる。また、１２〜１４行目には指定した並列度分のスレッドを生成する処理が含まれ、１６〜１９行目には全スレッドの単位時間当たりの処理量を取得する処理が含まれる。
【０１０９】
ここで、ダミープログラム３０４において符号Ｆ１で示される領域には、ダミープログラム生成プログラム３０３におけるダミープログラム３０４にメイン処理を出力する処理（図１５の（１）に示す例では、８〜１２行目）の実行結果が出力される。
【０１１０】
このように、ダミープログラム３０４を実行することにより、ダミートレース２０２を実行するスレッドを並列度で指定した数だけ生成する。そして、単位時間当たりの全スレッドの処理量（例えば、トレースの最大実行回数）を取得し、並列度が１の場合の性能向上率を算出して、算出結果を図１の（２）に示したようにグラフにプロットする。
【０１１１】
〔Ａ−２〕動作例
図２に示した情報処理装置１における処理を、図１６に示すフローチャート（ステップＳ１〜Ｓ６）に従って説明する。
【０１１２】
類似関数検索部１１１は、実行トレース１０２に含まれる各関数について、関数リスト２０６の中から、類似関数を検索する（ステップＳ１）。そして、類似関数検索部１１１は、検索した類似関数を類似トレース２０５に登録する。
【０１１３】
類似関数性能測定部１１２は、検索された類似関数の性能（別言すれば、実行時間）を測定する（ステップＳ２）。そして、類似関数性能測定部１１２は、測定した類似関数の性能を類似トレース２０５に登録する。
【０１１４】
短縮率計算部１１３は、実行トレース１０２における各関数の実行時間と、類似トレース２０５における各類似関数の実行時間とを比較して、各類似関数についての短縮率を計算する（ステップＳ３）。
【０１１５】
短縮率適用部１１４は、計算された各類似関数についての短縮率のうち、最小の短縮率をダミートレース２０２に登録することによって各類似関数に適用する（ステップＳ４）。
【０１１６】
短縮率適用部１１４は、最小の短縮率を適用したダミートレース２０２に基づいて、ダミープログラム３０４を生成する（ステップＳ５）。
【０１１７】
情報処理装置１のＣＰＵ１１（別言すれば、図４等に示した「シミュレータ２０３」）は、生成されたダミープログラム３０４を実行することにより、シミュレーションを実施する（ステップＳ６）。そして、シミュレーション結果（別言すれば、開発中プログラム１０１の並列性能）３０５が取得され、処理は終了する。
【０１１８】
〔Ａ−３〕効果
上述した実施形態の一例における情報処理装置１によれば、例えば、以下のような効果を奏することができる。
【０１１９】
短縮率計算部１１３は、開発プログラム実行環境１０において開発中プログラム１０１を実行した場合における複数の関数毎の実行時間と、シミュレーション環境２０において開発中プログラム１０１を実行した場合における複数の関数毎の実行時間とを比較し、短縮率を算出する。短縮率適用部１１４は、短縮率計算部１１３によって算出された短縮率と開発中プログラム１０１とに基づいて、シミュレーション環境２０において使用するダミープログラム３０４を生成する。
【０１２０】
これにより、開発中プログラム１０１の性能評価を効率的に実施することができる。具体的には、開発中プログラム１０１の並列性能に関する構成を維持しつつ、開発中プログラム１０１の並列性能の評価を短時間で実施することができる。
【０１２１】
短縮率適用部１１４は、複数の関数毎に算出された複数の短縮率のうち、最小の短縮率を使用して、ダミープログラム３０４を生成する。
【０１２２】
これにより、各類似関数の短縮率を等しくできる。
【０１２３】
短縮率適用部１１４は、複数の関数毎の処理時間に短縮率を乗じた値を記録するダミートレース２０２に基づいて、ダミープログラム３０４を生成する。
【０１２４】
これにより、ダミープログラム３０４の生成を適切に実施できる。
【０１２５】
類似関数検索部１１１は、所定の関数リスト２０６の中から、開発中プログラム１０１に含まれる複数の関数のそれぞれに類似する複数の類似関数を検索する。類似関数性能測定部１１２は、類似関数検索部１１１によって検索された類似関数をシミュレーション環境２０において実行した場合における実行時間を測定する。そして、短縮率計算部１１３は、開発プログラム実行環境１０における複数の関数毎の実行時間と、類似関数性能測定部１１２によって測定された複数の類似関数毎の実行時間とに基づき、短縮率を算出する。
【０１２６】
これにより、短縮率の算出を適切に実施できる。
【０１２７】
〔Ｂ〕変形例
図１７は、変形例における情報処理装置１ａの機能構成を模式的に示すブロック図である。
【０１２８】
変形例における情報処理装置１ａは、図３に示した実施形態の一例としての情報処理装置１が備えるＣＰＵ１１の代わりに、図１７に示すＣＰＵ１１ａを備える。
【０１２９】
ＣＰＵ１１ａは、図３に示した類似関数検索部１１１，類似関数性能測定部１１２，短縮率計算部１１３及び短縮率適用部１１４としての機能に加えて、関数分類部１１５及び関数簡易化部１１６としての機能を備える。
【０１３０】
関数分類部１１５は、分類処理部の一例である。関数分類部１１５は、開発中プログラム１０１に含まれる複数の関数を、非排他処理と排他資源取得処理と排他資源解放処理とに分類する。なお、関数分類部１１５における機能の詳細については、図１８等を用いて後述する。
【０１３１】
関数簡易化部１１６は、簡易化処理部の一例である。関数簡易化部１１６は、関数分類部１１５によって非排他処理に分類された関数のうち連続する関数を、単一の簡易関数として記録する簡易トレース４０２を生成する。なお、関数簡易化部１１６における機能の詳細については、図１８等を用いて後述する。
【０１３２】
図１８〜図２０は、図１７に示した情報処理装置１ａにおけるダミートレース２０２の生成処理を説明するブロック図である。
【０１３３】
図１８に示すように、開発プログラム実行環境１０において、開発中プログラム１０１が実行される（図１８の符号Ｇ１参照）。これにより、実行トレース１０２が生成される。
【０１３４】
任意環境３０ｂにおいて、関数分類部１１５は、実行トレース１０２の関数名を入力として受け付け（図１８の符号Ｇ２参照）、各関数をグループに分類してグループ情報４０１を生成する。
【０１３５】
図１８に示す例では、実行トレース１０２における各関数は、非排他処理を示す関数グループ（Ｇｒ）＿Ａと、排他資源取得処理を示す関数Ｇｒ＿Ｂと、排他資源解放処理を示す関数Ｇｒ＿Ｃとのうちのいずれかに分類される。具体的には、図示する例においては、グループ情報４０１に示すように、関数＿１，関数＿２，関数＿４，及び関数＿６〜関数＿８は関数Ｇｒ＿Ａに分類され、関数＿３は関数Ｇｒ＿Ｂに分類され、関数＿５は関数Ｇｒ＿Ｃに分類される。なお、非排他処理はlock及びunlock以外の処理を示し、排他資源獲得処理はlock等の処理を示し、排他資源解放処理はunlock等の処理を示す。
【０１３６】
関数簡易化部１１６は、関数分類部１１５によって生成されたグループ情報４０１を取得する（図１８の符号Ｇ３参照）。
【０１３７】
関数簡易化部１１６は、グループ情報４０１に基づき、実行トレース１０２を簡易化して、簡易トレース４０２を生成する（図１８の符号Ｇ４参照）。関数簡易化部１１６は、関数Ｇｒ＿Ａに属する非排他処理である関数のうち、連続する複数の関数を１つの簡易関数にまとめて簡易トレース４０２に登録する。
【０１３８】
図示する例では、実行トレース１０２における関数＿１及び関数＿２が簡易トレース４０２において簡易関数＿１にまとめられ、実行トレース１０２における関数＿６〜関数＿８が簡易トレース４０２において簡易関数＿５にまとめられている。また、実行トレース１０２における関数＿３〜関数＿５は、簡易トレース４０２における簡易関数＿２〜簡易関数＿４にそれぞれ対応する。
【０１３９】
簡易トレース４０２における各簡易関数の処理時間は、実行トレース１０２において対応する関数の処理時間の和と等しい。すなわち、簡易トレース４０２における簡易関数＿１の処理時間は、実行トレース１０２において対応する関数＿１及び関数＿２の処理時間の和であるT_1+T_2である。簡易トレース４０２における簡易関数＿２の処理時間は、実行トレース１０２において対応する関数＿３の処理時間であるT_3である。簡易トレース４０２における簡易関数＿３の処理時間は、実行トレース１０２において対応する関数＿４の処理時間であるT_4である。簡易トレース４０２における簡易関数＿４の処理時間は、実行トレース１０２において対応する関数＿５の処理時間であるT_5である。そして、簡易トレース４０２における簡易関数＿５の処理時間は、実行トレース１０２において対応する関数＿６〜関数＿８の処理時間の和であるT_6+T_7+T_8である。
【０１４０】
図１９に示すように、シミュレーション環境２０において、類似関数検索部１１１は、簡易トレース４０２における各簡易関数を入力として受け付ける（図１９の符号Ｇ５参照）。
【０１４１】
類似関数検索部１１１は、入力された簡易関数に類似する類似関数を検索して、検索した類似関数を類似トレース２０５に出力する（図１９の符号Ｇ６参照）。図示する例では、類似関数検索部１１１は、簡易トレース４０２における簡易関数＿１，簡易関数＿３及び簡易関数＿５に類似する関数として類似関数＿Ａを類似トレース２０５に出力する。また、類似関数検索部１１１は、簡易トレース４０２における簡易関数＿２に類似する関数として簡易関数＿Ｂを簡易トレース４０２に出力するとともに、簡易トレース４０２における簡易関数＿４に類似する関数として簡易関数＿Ｃを簡易トレース４０２に出力する。
【０１４２】
類似関数性能測定部１１２は、類似トレース２０５における各類似関数を入力として受け付ける（図１９の符号Ｇ５参照）。
【０１４３】
類似関数性能測定部１１２は、入力された各類似関数の処理時間を測定して、測定した処理時間を類似トレース２０５に出力する（図１９の符号Ｇ６参照）。図示する例では、類似関数性能測定部１１２は、類似関数＿Ａ，類似関数＿Ｂ及び類似関数＿Ｃの処理時間として、Ｔｓｉｍ＿Ａ，Ｔｓｉｍ＿Ｂ及びＴｓｉｍ＿Ｃをそれぞれ類似トレース２０５に出力する。
【０１４４】
図２０に示すように、任意環境３０ａにおいて、短縮率計算部１１３は、簡易トレース４０２における各簡易関数の処理時間を入力として受け付ける（図２０の符号Ｇ７参照）。また、短縮率計算部１１３は、類似トレース２０５における各類似関数の処理時間を入力として受け付ける（図２０の符号Ｇ８参照）。
【０１４５】
短縮率計算部１１３は、各簡易関数の処理時間と各類似関数の処理時間とを比較して、各簡易関数に対する対応する類似関数の短縮率を計算する。そして、短縮率計算部１１３は、計算した各類似関数の短縮率ｒを短縮率適用部１１４に入力する（図２０の符号Ｇ９参照）。
【０１４６】
短縮率適用部１１４は、入力された各類似関数の短縮率ｒのうち、最小の短縮率ｒをダミートレース２０２に適用する（図２０の符号Ｇ１０参照）。
【０１４７】
図２０に示す例では、ダミートレース２０２において、短縮関数＿１の処理時間には(T_1+T_2)*rが設定され、短縮関数＿２の処理時間にはT_3*rが設定され、短縮関数＿３の処理時間にはT_4*rが設定される。また、ダミートレース２０２において、短縮関数＿４の処理時間にはT_5*rが設定され、短縮関数＿５の処理時間には(T_6+T_7+T_8)*rが設定される。
【０１４８】
なお、短縮率が最小の関数については、ダミートレース２０２における処理時間が類似トレース２０５に対する処理時間に対して短縮されない。そこで、ダミートレース２０２の関数名における「短縮関数」の「短縮」には括弧が付されている。
【０１４９】
上述した実施形態の変形例における情報処理装置１ａによれば、例えば、以下のような効果を奏することができる。
【０１５０】
関数分類部１１５は、開発中プログラム１０１に含まれる複数の関数を、非排他処理と排他資源取得処理と排他資源解放処理とに分類する。関数簡易化部１１６は、関数分類部１１５によって非排他処理に分類された関数のうち連続する関数を、単一の簡易関数として記録する簡易トレース４０２を生成する。短縮率計算部１１３は、関数簡易化部１１６によって生成された簡易トレース４０２に含まれる簡易関数毎の実行時間と、類似関数性能測定部１１２によって測定された複数の類似関数毎の実行時間とに基づき、短縮率を算出する。
【０１５１】
これにより、ダミートレース２０２に適用する短縮率を大きくすることができ、ダミートレース２０２の行数を削減できる。すなわち、開発中プログラム１０１のシミュレーションを短時間で完了させることができる。
【０１５２】
〔Ｃ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１５３】
〔Ｄ〕付記
以上の実施形態及び変形例に関し、さらに以下の付記を開示する。
【０１５４】
（付記１）
実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出する算出部と、
前記算出部によって算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する生成部と、
を備える、情報処理装置。
【０１５５】
（付記２）
前記生成部は、前記複数の関数毎に算出された複数の短縮率のうち、最小の短縮率を使用して、前記シミュレーションプログラムを生成する、
付記１に記載の情報処理装置。
【０１５６】
（付記３）
前記生成部は、前記複数の関数毎の処理時間に前記短縮率を乗じた値を記録するダミートレースに基づいて、前記シミュレーションプログラムを生成する、
付記１又は２に記載の情報処理装置。
【０１５７】
（付記４）
所定の関数リストの中から、前記評価対象プログラムに含まれる前記複数の関数のそれぞれに類似する複数の類似関数を検索する検索部と、
前記検索部によって検索された類似関数を前記シミュレーション環境において実行した場合における実行時間を測定する測定部と、
を更に備え、
前記算出部は、前記実行環境における前記複数の関数毎の実行時間と、前記測定部によって測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
付記１〜３のいずれか１項に記載の情報処理装置。
【０１５８】
（付記５）
前記評価対象プログラムに含まれる前記複数の関数を、非排他処理と排他資源取得処理と排他資源解放処理とに分類する分類処理部と、
前記分類処理部によって前記非排他処理に分類された関数のうち連続する関数を、単一の簡易関数として記録する簡易トレースを生成する簡易化処理部と、
を更に備え、
前記算出部は、前記簡易化処理部によって生成された簡易トレースに含まれる前記簡易関数毎の実行時間と、前記測定部によって測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
付記４に記載の情報処理装置。
【０１５９】
（付記６）
コンピュータに、
実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出し、
前記算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する、
処理を実行させる、プログラム。
【０１６０】
（付記７）
前記複数の関数毎に算出された複数の短縮率のうち、最小の短縮率を使用して、前記シミュレーションプログラムを生成する、
処理を前記コンピュータに実行させる、付記６に記載のプログラム。
【０１６１】
（付記８）
前記複数の関数毎の処理時間に前記短縮率を乗じた値を記録するダミートレースに基づいて、前記シミュレーションプログラムを生成する、
処理を前記コンピュータに実行させる、付記６又は７に記載のプログラム。
【０１６２】
（付記９）
所定の関数リストの中から、前記評価対象プログラムに含まれる前記複数の関数のそれぞれに類似する複数の類似関数を検索し、
前記検索された類似関数を前記シミュレーション環境において実行した場合における実行時間を測定し、
前記実行環境における前記複数の関数毎の実行時間と、前記測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
処理を前記コンピュータに実行させる、付記６〜８のいずれか１項に記載のプログラム。
【０１６３】
（付記１０）
前記評価対象プログラムに含まれる前記複数の関数を、非排他処理と排他資源取得処理と排他資源解放処理とに分類し、
前記非排他処理に分類された関数のうち連続する関数を、単一の簡易関数として記録する簡易トレースを生成し、
前記生成された簡易トレースに含まれる前記簡易関数毎の実行時間と、前記測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
処理を前記コンピュータに実行させる、付記９に記載のプログラム。
【０１６４】
（付記１１）
実行環境において評価対象プログラムを実行した場合における複数の関数毎の実行時間と、シミュレーション環境において前記評価対象プログラムを実行した場合における前記複数の関数毎の実行時間とを比較して、短縮率を算出し、
前記算出された短縮率と前記評価対象プログラムとに基づいて、前記シミュレーション環境において使用するシミュレーションプログラムを生成する、
情報処理方法。
【０１６５】
（付記１２）
前記複数の関数毎に算出された複数の短縮率のうち、最小の短縮率を使用して、前記シミュレーションプログラムを生成する、
付記１１に記載の情報処理方法。
【０１６６】
（付記１３）
前記複数の関数毎の処理時間に前記短縮率を乗じた値を記録するダミートレースに基づいて、前記シミュレーションプログラムを生成する、
付記１１又は１２に記載の情報処理方法。
【０１６７】
（付記１４）
所定の関数リストの中から、前記評価対象プログラムに含まれる前記複数の関数のそれぞれに類似する複数の類似関数を検索し、
前記検索された類似関数を前記シミュレーション環境において実行した場合における実行時間を測定し、
前記実行環境における前記複数の関数毎の実行時間と、前記測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
付記１１〜１３のいずれか１項に記載の情報処理方法。
【０１６８】
（付記１５）
前記評価対象プログラムに含まれる前記複数の関数を、非排他処理と排他資源取得処理と排他資源解放処理とに分類し、
前記非排他処理に分類された関数のうち連続する関数を、単一の簡易関数として記録する簡易トレースを生成し、
前記生成された簡易トレースに含まれる前記簡易関数毎の実行時間と、前記測定された前記複数の類似関数毎の実行時間とに基づき、前記短縮率を算出する、
付記１４に記載の情報処理方法。
【符号の説明】
【０１６９】
１，１ａ，６  ：情報処理装置
１１，１１ａ  ：ＣＰＵ
１１１        ：類似関数検索部
１１２        ：類似関数性能測定部
１１３        ：短縮率計算部
１１４        ：短縮率適用部
１１５        ：関数分類部
１１６        ：関数簡易化部
１２          ：メモリ
１３          ：表示制御部
１３０        ：表示装置
１４          ：記憶装置
１５          ：入力Ｉ／Ｆ
１５１        ：マウス
１５２        ：キーボード
１６          ：読み書き処理部
１６０        ：記録媒体
１７          ：通信Ｉ／Ｆ
１０，６０    ：開発プログラム実行環境
１０１，６０１：開発中プログラム
１０２        ：実行トレース
２０          ：シミュレーション環境
２０１，６０２：ダミートレース生成システム
２０１１      ：トレース短縮部
２０２        ：ダミートレース
２０３        ：シミュレータ
２０５        ：類似トレース
２０６        ：関数リスト
３０，３０ａ，３０ｂ：任意環境
３０１        ：類似トレース生成プログラム
３０２        ：ダミートレース生成プログラム
３０３        ：ダミープログラム生成プログラム
３０４，６０３：ダミープログラム
３０５        ：シミュレーション結果
４０１        ：グループ情報
４０２        ：簡易トレース
【図１】
2019159482.tif 000009
【図２】
2019159482.tif 000010
【図３】
2019159482.tif 000011
【図４】
2019159482.tif 000012
【図５】
2019159482.tif 000013
【図６】
2019159482.tif 000014
【図７】
2019159482.tif 000015
【図８】
2019159482.tif 000016
【図９】
2019159482.tif 000017
【図１０】
2019159482.tif 000018
【図１１】
2019159482.tif 000019
【図１２】
2019159482.tif 000020
【図１３】
2019159482.tif 000021
【図１４】
2019159482.tif 000022
【図１５】
2019159482.tif 000023
【図１６】
2019159482.tif 000024
【図１７】
2019159482.tif 000025
【図１８】
2019159482.tif 000026
【図１９】
2019159482.tif 000027
【図２０】
2019159482.tif 000028