(57)【要約】【課題】本発明は、コンピュータ性能評価方法に関し、クラスタリングによる代表トレースの抽出に適したサンプリングトレース長を容易に決定できるようにすることを目的とする。【解決手段】コンピュータ性能評価方法は、プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する。【選択図】　　　　　図１
2004078338.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する
ことを特徴とするコンピュータ性能評価方法。
【請求項２】
当該コンピュータ性能評価方法は、更に、
前記対象プログラムの実行時の総実行命令数と所定の測定情報とを取得し、
前記総実行命令数および前記測定情報を計測情報記憶手段に記憶する
ことを特徴とする請求項１に記載のコンピュータ性能評価方法。
【請求項３】
前記対象プログラムの実行時の前記総実行命令数と前記測定情報との取得において、ハードウェアに備えられた監視機能を用いて取得する
ことを特徴とする請求項２に記載のコンピュータ性能評価方法。
【請求項４】
当該コンピュータ性能評価方法は、更に、
前記対象プログラムが実行される複数のアーキテクチャごとに、前記対象プログラムの実行時の総実行命令数と所定の測定情報とをそれぞれ取得し、
前記アーキテクチャごとに、前記総実行命令数および前記測定情報に基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記アーキテクチャごとに、前記総実行命令数および前記挙動変化数に基づいて、採取する実行履歴の一部であるサンプリングトレースのトレース長を算出し、
複数の前記トレース長のうち最小のものを代表トレース長とし、
前記対象プログラムから前記代表トレース長に基づいてサンプリングトレースを採取する
ことを特徴とする請求項１に記載のコンピュータ性能評価方法。
【請求項５】
プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価装置であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出する挙動変化数算出手段と、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出するトレース長算出手段と、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取するサンプリングトレース生成手段と、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する代表トレース抽出手段とを備える
ことを特徴とするコンピュータ性能評価装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ性能評価方法及び装置に関し、特に、プログラムの実行履歴（トレース）　を用いたコンピュータ性能評価方法及び装置に関する。
【０００２】
【従来の技術】
コンピュータシステムの高速化に伴い、アプリケーション（プログラム）が巨大化した結果、コンピュータシステムの性能評価が難しくなってきている。そこで、コンピュータシステムの性能評価には、一部の実行履歴（サンプリングトレース）　を用いた評価がしばしば行われる。
【０００３】
サンプリングトレースを用いた評価は、アプリケーションの全実行を評価するのではなく、適当な間隔で短いマシン命令のシーケンス（トレース）を多数採取（サンプリング）　してこれらを評価することで、アプリケーションの全実行の性能を推測するものである。即ち、サンプリングトレースを用いた評価は、サンプリングトレース群が全実行の挙動を反映しているという仮定の上に成り立っている。
【０００４】
サンプリングトレースは、数多く採取した方が全実行履歴に近くなり、正確になる。一方で、トレース数が増大すると性能評価に伴う処理時間が増大する。
【０００５】
これに対応するために、従来、代表サンプリングトレース抽出技術が知られている。これは、各トレースのＣＰＩ（ｃｌｏｃｋ　ｐｅｒ　ｉｎｓｔｒｕｃｔｉｏｎ　）やキャッシュミス率等の解析結果を元に、代表となりうるサンプリングトレースを抽出する方法である。
【０００６】
更に、最近では、代表サンプリングトレースの抽出を発展させた一例として、クラスタリングを用いた代表サンプリングトレース抽出方式が提案されている（Ｔ．Ｌａｆａｇｅ，　Ａ．Ｓｅｚｎｅｃ，　”Ｃｈｏｏｓｉｎｇ　Ｒｅｐｒｅｓｅｎｔａｔｉｖｅ　Ｓｌｉｃｅｓ　ｏｆ　Ｐｒｏｇｒａｍ　Ｅｘｅｃｕｔｉｏｎｆｏｒ　Ｍｉｃｒｏａｒｃｈｉｔｅｃｔｕｒｅ　Ｓｉｍｕｌａｔｉｏｎｓ：　Ａ　Ｐｒｅｌｉｍｉｎａｒｙ　Ａｐｐｌｉｃａｔｉｏｎ　ｔｏ　ｔｈｅ　Ｄａｔａ　Ｓｔｒｅａｍ”，　Ｗｏｒｋｓｈｏｐ　ｏｎ　Ｗｏｒｋｌｏａｄ　Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ（ＷＷＣ　２０００），　Ｓｅｐ．　２０００．　）。これは、クラスタリングにより解析結果の類似性に従ったグループ分けを行い、各グループ毎に代表トレースを抽出する方式である。
【０００７】
【発明が解決しようとする課題】
ところが、クラスタリングを用いた代表サンプリングトレース抽出方式において、サンプリングトレース長を考慮したものがない。本発明者の検討によれば、サンプリングトレース長を考慮しないと、以下に述べる理由で、クラスタリングがうまく機能せず、グループを代表する適切な代表サンプリングトレースを抽出できない場合がある。
【０００８】
クラスタリングは、図９（Ａ）に示すように、グループ間の距離がグループ内の各トレースデータ同士の距離より大きい場合にはうまく機能する。即ち、この場合はクラスタがうまく生成でき、その代表サンプリングトレースも簡単に抽出できる。一方、グループ間の距離とグループ内の各トレースデータ同士の距離との関係が定まらない場合、クラスタがうまく生成できず、代表サンプリングトレースは抽出するものの適切なものではなくなる。これは、以下に説明するように、トレースデータ間のばらつきが小さくなるためである。
【０００９】
図１０は、あるプログラムの実行時のＣＰＵの挙動例を示す。このプログラムは、２つの処理フェーズを繰り返すプログラムであると想定する。図１０に示すように、これら２つの処理フェーズに明確な挙動差があるとし、ＣＰＩ＝４のフェーズＡとＣＰＩ＝１のフェーズＢと仮定する。フェーズＡの命令数をＮＡ　とし、フェーズＢの命令数をＮＢ　とする。サンプリングのトレース長（実行命令数）をｗとし、ｗ＜ＮＡ　，ＮＢ　とする。
【００１０】
この場合、サンプリングトレース長の値が大きくなるにつれてサンプリングトレース間のＣＰＩ値の差がなくなる。即ち、サンプリングトレース長が大きい場合には、フェーズ間をまたぐサンプリングトレースの割合が増大するために、各サンプリングトレースの挙動差のばらつきが小さくなる。図１１（Ａ）に示すように、５つのサンプリングトレースのうち、ＣＰＩ＝４のトレースが２個、ＣＰＩ＝２．５（＝（４＋１）／２）のトレースが２個、ＣＰＩ＝１のトレースが１個となってしまう。
【００１１】
従って、クラスタリングによるグループ分けをうまく機能させるためには、図１１（Ｂ）に示すように、サンプリングトレース長を小さくして、フェーズ間をまたぐサンプリングトレースの割合を小さくする必要がある。図１１（Ｂ）においては、ＣＰＩ＝４のトレースが３個、ＣＰＩ＝１のトレースが２個となり、中間のＣＰＩ＝２．５のトレースはない。従って、２個のクラスタが生成されることが判る。
【００１２】
このように、サンプリングトレース長を小さくしすぎると、異なるアーキテクチャによる挙動変動の影響が見積もれない可能性がある。そこで、クラスタをうまく生成するために異なるフェーズ間をまたぐサンプリングトレースの割合を一定以下にし、かつ、代表サンプリングトレースの数を少なくするためにできるだけ長いトレースを採ることが重要である。
【００１３】
本発明は、クラスタリングによる代表トレースの抽出に適したサンプリングトレース長を容易に決定できるようにして、効率のよいクラスタリングによる代表サンプリングトレースを用いたコンピュータ性能評価方法を提供することを目的とする。
【００１４】
また、本発明は上記コンピュータ性能評価方法を実現する処理装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明のコンピュータ性能評価方法は、プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、採取したサンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する。
【００１６】
また、本発明のコンピュータ性能評価装置は、プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価装置であって、対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出する挙動変化数算出手段と、総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出するトレース長算出手段と、対象プログラムから前記トレース長に基づいてサンプリングトレースを採取するサンプリングトレース生成手段と、採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する代表トレース抽出手段とを備える。
【００１７】
本発明のコンピュータ性能評価方法及び装置によれば、対象プログラムの実行時の総実行命令数と所定の測定情報とを例えばハードウェアモニタにより取得する。そして、前記総実行命令数および前記測定情報に基づいて前記プログラムの実行時の挙動の変化数を算出する。記憶しておいた前記総実行命令数および算出した前記挙動変化数に基づいて、採取する実行履歴の一部であるサンプリングトレースのトレース長を算出する。次に、前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取して、前記サンプリングトレースに対して性能評価シミュレーションを施し、その評価結果に基づいて前記サンプリングトレースをクラスタリングし、クラスタリングしたグループごとに１つの代表サンプリングトレースを決定する。
【００１８】
これにより、クラスタリングによる代表トレースの抽出に適したサンプリングトレースのトレース長を容易に取得でき、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価方法を提供することが可能となる。
【００１９】
また、コンピュータ性能評価装置において、上記のコンピュータ性能評価方法を実現し、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価装置を提供することが可能となる。
【００２０】
【発明の実施の形態】
図１に、第１の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【００２１】
この例のコンピュータ性能評価装置１０は、挙動計測手段１１、測定情報記憶手段１２、挙動変化数算出手段１３、トレース長算出手段１４、トレース生成手段１５、サンプリングトレース記憶手段１６、代表トレース抽出手段１７からなる。
【００２２】
挙動計測手段１１は、アプリケーション２を実行するＣＰＵ１の挙動を測定し測定情報記憶手段１２に記憶する。挙動計測手段１１は、ＣＰＵ１でアプリケーション２の実行時のＣＰＩやキャッシュミス率を測定し、同時に総実行命令数Ｎを算出し、測定情報記憶手段１２に記憶する。挙動計測手段１１として、ＣＰＵ１に備えられた既存のハードウェアモニタを利用する。
【００２３】
挙動変化数算出手段１３は、測定情報記憶手段１２に保存されたＣＰＩ、キャッシュミス率などの測定情報に基づいて挙動変化数ｍを算出する。トレース長算出手段１４は、測定情報記憶手段１２に保存された総実行命令数Ｎおよび挙動変化数ｍからサンプリングトレースのトレース長ｗを算出する。トレース生成手段１５は、アプリケーション２からトレース長ｗによるサンプリングトレースを生成し、サンプリングトレース記憶手段１６に記憶する。
【００２４】
代表トレース抽出手段１７は、サンプリングトレース記憶手段１６に保存されたサンプリングトレースに対してクラスタリングを適用して代表トレース４を抽出する。また、代表トレース抽出手段１７は、サンプリングトレース記憶手段１６に保存されたサンプリングトレースに対して性能評価シミュレーションを行い、トレースごとにＣＰＩやキャッシュミス率などを測定し、その測定情報に基づいてサンプリングトレースをクラスタリングによるグループ分けを行い、グループごとに１つの代表トレース４を抽出する。
【００２５】
コンピュータ性能評価装置１０は、挙動計測手段１１であるハードウェアモニタにより一定間隔でアプリケーション２の実行時のＣＰＩやキャッシュミス率を測定し、総実行命令数Ｎを取得して測定情報記憶手段１２に記憶する。そして、挙動変化数算出手段１３により、図３に示す処理の流れ（アルゴリズム）を用いて測定情報記憶手段１２に記憶された測定情報からアプリケーション２の挙動変化回数ｍを算出する。そして、トレース長算出手段１４により、総実行命令数Ｎと挙動変化数ｍとに基づいて、サンプリングトレースのトレース長ｗを算出する。
【００２６】
その後、トレース生成手段１５により、算出されたトレース長ｗに基づいてアプリケーション２の実行時のサンプリングトレースを生成してサンプリングトレース記憶手段１６に記憶する。そして、代表トレース抽出手段１７により、サンプリングトレース記憶手段１６に保存されたサンプリングトレースに対して性能評価シミュレートを行ってＣＰＩやキャッシュミス率を算出し、その測定情報に基づいてサンプリングトレースをクラスタリングし、各グループの代表トレース４を抽出する。
【００２７】
図２は、本発明の実施の形態におけるコンピュータ性能評価方法の構成図であり、本発明の遠隔操作を実行するコンピュータ性能評価方法の構成の一例の概略を示す。
【００２８】
ステップＳ１において、挙動計測手段１１であるハードウェアモニタが総実行命令数Ｎを計測する。即ち、マシン命令の総実行命令数Ｎを計測する。総実行命令数Ｎは、ＣＰＩやキャッシュミス率と共に測定情報記憶手段１２に記憶される。
【００２９】
総実行命令数Ｎは、サンプリングトレースのトレース長ｗの算出に用いる処理装置によって計測手段が異なってもよい。ＣＰＵに備えられたハードウェアモニタを用いた場合には、ハードウェアモニタの全実行命令数計測機能を用いて総実行命令数Ｎを取得する。また、プログラムから採取したトレースデータに基づいて総実行命令数Ｎを見積もる場合には、全トレースデータに含まれている総命令数を用いる。
【００３０】
ステップＳ２において、挙動変化数算出手段１３が、測定情報記憶手段１２に記憶された各データに基づいて、挙動変化数ｍを算出する。即ち、ＣＰＩ、キャッシュミス率などの挙動変化数ｍを算出する。挙動変化数ｍはトレース長算出手段１４に送られる。
【００３１】
まず、トレースデータ全体（全ＣＰＩの記録）の標準偏差Ｄを求める。隣接したトレース間で距離（ここでは、隣接したＣＰＩの差を距離として用いる）を算出し、全体の標準偏差Ｄとの比がある一定値（挙動変化許容率）ｋより小さい場合には、挙動の変化はないと判断する。一方、全体の標準偏差Ｄとの比が挙動変化許容率ｋより大きい場合には、挙動が変化したと判断して挙動変化数ｍを１増加させる。
【００３２】
図３に、挙動変化数ｍを求める処理の処理フローを示す。図３では、説明の簡単化のため、ＣＰＩのみで挙動変化数ｍを求める処理の手順を示している。
【００３３】
まず、初期化として挙動変化数ｍと、１つ前のトレースのＣＰＩの記録Ｖとを０にし、全ＣＰＩの記録の標準偏差値をＤとし、所定の値を挙動変化許容率ｋとする（ステップＳ１０）。
【００３４】
そして、未処理のトレースのＣＰＩ記録が残っているかどうか調べ（ステップＳ１１）、ＣＰＩの記録が残っている場合には、ＣＰＩの記録から１つ記録を取り出し、そのＣＰＩの記録をＸとする（ステップＳ１２）。そして、Ｘ−Ｖ＞Ｄ×ｋであるかどうかを判断する（ステップＳ１３）。Ｘ−Ｖ＞Ｄ×ｋである、即ち、ＸとＶとの差が標準偏差Ｄ×ｋの範囲を超えていれば、挙動が変化したと判断して挙動変化数ｍに１加算する（ステップＳ１４）。一方、Ｘ−Ｖ＞Ｄ×ｋでない、即ち、ＸとＶとの差が標準偏差Ｄ×ｋの範囲を超えていなければ、挙動は変化していないと判断して挙動変化数ｍはそのままとする。その後、ＣＰＩの記録ＸをＶに代入し（ステップＳ１５）、ステップＳ１１の処理へ戻る。ステップＳ１１で、未処理のＣＰＩの記録が残っていなければ、ｍの値を挙動変化数とする（ステップＳ１６）。
【００３５】
ステップＳ３において、トレース長算出手段１４が、挙動変化数ｍに基づいて、サンプリングトレースのトレース長ｗを算出する。トレース長ｗはトレース生成手段１５に送られる。
【００３６】
サンプリングトレースのトレース長ｗの計算は以下の式を用いて行う。フェーズ間を跨ぐサンプリングトレースの割合の期待値（確率）をαとする。図４に示すように、期待値αを達成するためサンプリングトレースのトレース長をｗ、アプリケーションの挙動による挙動変化がＰ１　、Ｐ２　、…、Ｐｍ　とする。また、各フェーズの命令数をＬ（Ｐｎ　）と表記することにする。フェーズ間に跨がるトレースが採取される期待値（確率）αは、以下の式で表される。
α＝（ｗ×ｍ）／（Σｍ　ｋ　Ｌ（Ｐｋ　））＝ｗ×ｍ／Ｎ
この期待値αがクラスタリングの質を決定する。期待値αを満たすトレース長で最大のものは以下の式で求めることができる。
ｗ＝α×Ｎ／ｍ
従って、サンプリングトレースのトレース長ｗ以下にすれば、フェーズに跨がったサンプリングトレースが採取される確率がα以下となり、効果的なクラスタリングが可能となる。
【００３７】
ステップＳ４において、トレース生成手段１５がサンプリングトレースを生成する。即ち、ステップＳ３の処理で求めたトレース長ｗを用いて、サンプリングトレースを生成する。サンプリングトレースは、サンプリングトレース記憶手段１６に記憶される。
【００３８】
このとき、キャッシュの初期参照ミスにもとづく性能評価誤差（ｃｏｌｄ　ｓｔａｒｔ　ｍｉｓｓ　ｂｉａｓ）を回避するために、直前の命令列を付加する。付加する命令数は数Ｍ〜数１０Ｍステップとする。なお、ここでは、付加する命令数については既知であると仮定する。
【００３９】
ステップＳ５において、代表トレース抽出手段１７は、サンプリングトレース記憶手段１６に記憶されたサンプリングトレースに基づいて、クラスタリングによる代表トレース４を抽出する。代表トレース４は記憶手段に記憶される。即ち、生成されたサンプリングトレースを用いて性能評価シミュレーションを行い、トレースごとにＣＰＩやキャッシュミスなどを測定する。
【００４０】
そして、ステップ６において、測定したデータに基づいてサンプリングトレースをクラスタリングし、各グループ内の代表トレース４を抽出する。例えば、クラスタリングされたサンプリングトレース群（グループ）から平均的なサンプリングトレースを１つ抽出して、これを当該クラスタの代表トレース４とする。
【００４１】
図５に、本発明の第２の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【００４２】
この例のコンピュータ性能評価装置２０は、トレース生成手段２１、サンプリングトレース記憶手段２２、性能評価シミュレート手段２３、測定情報記憶手段２４、挙動変化数算出手段２５、トレース長算出手段２６、トレース生成手段２７、サンプリングトレース記憶手段２８、代表トレース抽出手段２９からなる。
【００４３】
トレース生成手段２１はアプリケーション２の実行時のサンプリングトレースを生成してサンプリングトレース記憶手段２２に記憶する。性能評価シミュレート手段２３は、サンプリングトレース記憶手段２２に保存されたサンプリングトレースを用いて性能評価シミュレートを行いＣＰＩやキャッシュミス率などを測定して測定情報記憶手段２４に記憶する。
【００４４】
なお、挙動変化数算出手段２５、トレース長算出手段２６、トレース生成手段２７、サンプリングトレース記憶手段２８、代表トレース抽出手段２９は、それぞれ、図１に示す挙動変化数算出手段１３、トレース長算出手段１４、トレース生成手段１５、サンプリングトレース記憶手段１６、代表トレース抽出手段１７と同様の処理を行うので説明を省略する。
【００４５】
コンピュータ性能評価装置２０は、トレース生成手段２１により、アプリケーション２を実行するＣＰＵ１の挙動の変化が生じる命令数より大きいと思われる命令数のトレースデータを多数採取する。採取した全トレースデータに含まれている総命令数を総実行命令数Ｎとして見積もる。その後、性能評価シミュレート手段２３により、挙動の変化が生じる命令数より十分小さいと思われる命令間隔でＣＰＩやキャッシュミス率を測定し測定情報記憶手段２４に記憶する。
【００４６】
そして、挙動変化数算出手段２５により、測定情報記憶手段２４に保存された測定情報に基づいて、図３の処理フローに示すアルゴリズムを用いて、プログラム挙動変化数ｍを算出する。さらにトレース長算出手段２６により、総実行命令数Ｎと挙動変化数ｍとに基づいてサンプリングトレースのトレース長ｗを算出する。トレース生成手段２７により、アプリケーション２の実行時のトレース長ｗによるサンプリングトレースを再び採取し、サンプリングトレース記憶手段２８に記憶する。
【００４７】
そして、代表トレース抽出手段２９により、サンプリングトレース記憶手段２８に保存したサンプリングトレースに対して性能評価シミュレートを行いＣＰＩ、キャッシュミス率などを再算出し、算出した測定情報に基づいてサンプリングトレースをクラスタリングして、各グループの代表トレースを抽出する。
【００４８】
代表トレース生成手段２９は、サンプリングトレース記憶手段２２に保存したトレースデータからトレース長ｗによるサンプリングトレースを抜き出して使用するようにしてもよい。この場合には、図６に示すように、トレース生成手段２１が採取しサンプリングトレース記憶手段２２に記憶したトレースデータから、算出したトレース長ｗにキャッシュ初期参照ミスによる性能評価誤差（ｃｏｌｄ　ｓｔａｒｔ　ｍｉｓｓ　ｂｉａｓ）を回避するための命令列用のトレース長Ａを付加したトレース長ｗ＋Ａによりサンプリングトレースを抜き出す。そして、代表トレース抽出手段２９は、図１に示す代表トレース抽出手段１７と同様に処理を行い、各グループの代表トレース４を抽出する。これにより、トレース生成手段２７は、サンプリングトレースを改めて採取する必要がなく処理負担が軽減される。
【００４９】
図７に、本発明の第３の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【００５０】
この例のコンピュータ性能評価装置３０は、挙動計測手段３１、測定情報記憶手段３２、トレース長算出手段３３、トレース生成手段３４、サンプリングトレース記憶手段３５、代表トレース抽出手段３６からなる。コンピュータ性能評価装置３０は、コンピュータ性能評価装置１０とほぼ同様の構成であるが、挙動変化数算出手段１３を備えていない点が異なる（図１参照）。
【００５１】
図７に示すアプリケーション２のソースコードには、ＣＰＩ・キャッシュミス率を測定するディレクティブ・コードを予め挿入しておく。ディレクティブ・コードを含むアプリケーション２のソースコードをコンパイルし実機上で走行させることにより、ＣＰＵ１の挙動計測手段３１により、挙動変化数ｍを計測して測定情報記憶手段３２に記憶する。トレース長算出手段３３は、測定情報記憶手段３２に保存された挙動変化数ｍに基づいてサンプリングトレースのトレース長ｗを算出する。そして、トレース生成手段３４は、アプリケーション２からサンプリングトレースを生成してサンプリングトレース記憶手段３５に記憶する。代表トレース抽出手段３６は、性能評価シミュレーションを行ってサンプリングトレースのＣＰＩやキャッシュミス率を算出し、その測定情報に基づいてサンプリングトレースをクラスタリングし、各グループの代表トレース４を抽出する。
【００５２】
本発明の第４の実施態様として、図７に示すコンピュータ性能評価装置３０において、アプリケーション２のコンパイラに、ＣＰＩやキャッシュミス率を測定するルーチンを付加する機能を備えるようにしてもよい（図示せず）。
【００５３】
このコンパイラにより、アプリケーション２の関数の入り口およびループの入り口にＣＰＩ・キャッシュミス率を測定し、測定情報をディスクなどの記憶装置に記録するルーチンを挿入してコンパイル処理を行う。コンパイルしたアプリケーション２のオブジェクトコードを実機上で走行させることにより挙動変化数ｍを計測する。以下の処理は、第３の実施態様における処理と同様であるので説明を省略する。
【００５４】
図８に、本発明の第５の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【００５５】
同じアプリケーションなどのプログラムが、あるアーキテクチャの下ではキャッシュミスが変化しないかあるいはＣＰＩが変化しないために挙動の変化が認められないが、別のアーキテクチャの下では挙動の変化を生じるような場合がある。第５の実施態様におけるコンピュータ性能評価装置４０では、広範囲なアーキテクチャに適用できる代表トレースを生成することが可能となるような構成をとる。
【００５６】
コンピュータ性能評価装置４０は、トレース生成手段４１、サンプリングトレース記憶手段４２、性能評価シミュレート手段４３ａ／４３ｂ、測定情報記憶手段４４ａ／４４ｂ、挙動変化数算出手段４５ａ／４５ｂ、トレース長算出手段４６ａ／４６ｂ、トレース長決定手段４７、トレース生成手段４８、サンプリングトレース記憶手段４９、代表トレース抽出手段４１０からなる。
【００５７】
コンピュータ性能評価装置４０を構成する各手段は、コンピュータ性能評価装置２０とほぼ同じであるが（図５参照）、性能評価シミュレート手段４３、測定情報記憶手段４４、挙動変化数算出手段４５、トレース長算出手段４６の各処理手段を対象とするアーキテクチャごとに備えるようにする。図８に示すコンピュータ性能評価装置４０は、アーキテクチャＡおよびアーキテクチャＢのもとでアプリケーション２の性能評価を行うものとする。
【００５８】
トレース長決定手段４７は、トレース長算出手段４６ａ、４６ｂそれぞれで算出されたサンプリングトレースのトレース長ｗの最小値である最小トレース長ｗｍｉｎ　を決定する。
【００５９】
そして、トレース生成手段４８は、最小トレース長ｗｍｉｎ　を用いてアプリケーション２からサンプリングトレースを採取してサンプリングトレース記憶手段４９に記憶する。代表トレース抽出手段４１０は、図１に示す代表トレース抽出手段１７と同様に処理を行い、各グループの代表トレース４を抽出する。
【００６０】
以上から判るように、本発明の実施の形態の特徴を列記すると以下の通りである。
（付記１）　プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する
ことを特徴とするコンピュータ性能評価方法。
（付記２）　当該コンピュータ性能評価方法は、更に、
前記対象プログラムの実行時の総実行命令数と所定の測定情報とを取得し、
前記総実行命令数および前記測定情報を計測情報記憶手段に記憶する
ことを特徴とする付記１に記載のコンピュータ性能評価方法。
（付記３）　前記対象プログラムの実行時の前記総実行命令数と前記測定情報との取得において、ハードウェアに備えられた監視機能を用いて取得する
ことを特徴とする付記２に記載のコンピュータ性能評価方法。
（付記４）　前記対象プログラムの実行時の前記総実行命令数と前記測定情報との取得において、プログラムの挙動変化が生じると想定した命令数より大きい命令数からなるトレースデータを取得し、当該トレースデータに対して挙動の変化が生じると想定した命令数より小さい命令数の間隔で性能評価シミュレーションを施して前記測定情報を取得する
ことを特徴とする付記２に記載のコンピュータ性能評価方法。
（付記５）　前記対象プログラムからの前記トレース長に基づくサンプリングトレースの採取において、前記トレースデータを用いてサンプリングトレースを採取する
ことを特徴とする付記４に記載のコンピュータ性能評価方法。
（付記６）　前記対象プログラムの実行時の前記測定情報の取得において、対象プログラムに前記測定情報を測定するディレクティブ・コードを予め記載し、当該対象プログラムを実機上で走行させることにより取得する
ことを特徴とする付記２に記載のコンピュータ性能評価方法。
（付記７）　前記対象プログラムの実行時の前記測定情報を取得する場合に、コンパイル対象のプログラムの前記測定情報を測定する機能を備えたコンパイラを用いて、当該対象プログラムのコンパイル時に所定の位置に前記測定情報を計測・出力するルーチンを付加したオブジェクト・コードを生成し、当該オブジェクト・コードを実機上で走行させることにより取得する
ことを特徴とする付記２に記載のコンピュータ性能評価方法。
（付記８）　当該コンピュータ性能評価方法は、更に、
前記対象プログラムが実行される複数のアーキテクチャごとに、前記対象プログラムの実行時の総実行命令数と所定の測定情報とをそれぞれ取得し、
前記アーキテクチャごとに、前記総実行命令数および前記測定情報に基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記アーキテクチャごとに、前記総実行命令数および前記挙動変化数に基づいて、採取する実行履歴の一部であるサンプリングトレースのトレース長を算出し、
複数の前記トレース長のうち最小のものを代表トレース長とし、
前記対象プログラムから前記代表トレース長に基づいてサンプリングトレースを採取する
ことを特徴とする付記１に記載のコンピュータ性能評価方法。
（付記９）　プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価装置であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出する挙動変化数算出手段と、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出するトレース長算出手段と、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取するサンプリングトレース生成手段と、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する代表トレース抽出手段とを備える
ことを特徴とするコンピュータ性能評価装置。
【００６１】
【発明の効果】
以上説明したように、本発明によれば、コンピュータ性能評価方法において、評価対象となるプログラムの総実行命令数と所定の測定情報から算出した挙動変化数とに基づいて、異なるフェーズ間をまたぐサンプリングトレースの割合を一定以下にし、なおかつ、できるだけ長い命令数のトレース長を算出する。これにより、クラスタリングによる代表トレースの抽出に適したサンプリングトレースのトレース長を容易に取得でき、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価方法を提供することが可能となる。
【００６２】
また、本発明によれば、コンピュータ性能評価装置において、上記のコンピュータ性能評価方法を実現し、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価装置を提供することが可能となる。
【図面の簡単な説明】
【図１】第１の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図２】本発明の実施の形態におけるコンピュータ性能評価方法の構成図である。
【図３】挙動変化数を求める処理の処理フローを示す図である。
【図４】期待値αとトレース長ｗとの関係を説明するための図である。
【図５】第２の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図６】サンプリングトレースの抜き出し例を示す図である。
【図７】第３の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図８】第５の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図９】サンプリングトレースのクラスタリングの例を示す図である。
【図１０】プログラムの実行時のＣＰＵの挙動例を示す図である。
【図１１】サンプリングトレースのトレース長によるＣＰＩのばらつきの変化を説明する図である。
【符号の説明】
１　ＣＰＵ
２　アプリケーション
４　代表トレース
１０　コンピュータ性能評価装置
１１　挙動計測手段
１２　測定情報記憶手段
１３　挙動変化数算出手段
１４　トレース長算出手段
１５　トレース生成手段
１６　サンプリングトレース記憶手段
１７　代表トレース抽出手段
【図１】
2004078338.tif 000003
【図２】
2004078338.tif 000004
【図３】
2004078338.tif 000005
【図４】
2004078338.tif 000006
【図５】
2004078338.tif 000007
【図６】
2004078338.tif 000008
【図７】
2004078338.tif 000009
【図８】
2004078338.tif 000010
【図９】
2004078338.tif 000011
【図１０】
2004078338.tif 000012
【図１１】
2004078338.tif 000013