JP2004078338A - コンピュータ性能評価方法及び装置 - Google Patents
コンピュータ性能評価方法及び装置 Download PDFInfo
- Publication number
- JP2004078338A JP2004078338A JP2002234536A JP2002234536A JP2004078338A JP 2004078338 A JP2004078338 A JP 2004078338A JP 2002234536 A JP2002234536 A JP 2002234536A JP 2002234536 A JP2002234536 A JP 2002234536A JP 2004078338 A JP2004078338 A JP 2004078338A
- Authority
- JP
- Japan
- Prior art keywords
- trace
- sampling
- performance evaluation
- representative
- computer performance
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】コンピュータ性能評価方法は、プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、コンピュータ性能評価方法及び装置に関し、特に、プログラムの実行履歴(トレース) を用いたコンピュータ性能評価方法及び装置に関する。
【0002】
【従来の技術】
コンピュータシステムの高速化に伴い、アプリケーション(プログラム)が巨大化した結果、コンピュータシステムの性能評価が難しくなってきている。そこで、コンピュータシステムの性能評価には、一部の実行履歴(サンプリングトレース) を用いた評価がしばしば行われる。
【0003】
サンプリングトレースを用いた評価は、アプリケーションの全実行を評価するのではなく、適当な間隔で短いマシン命令のシーケンス(トレース)を多数採取(サンプリング) してこれらを評価することで、アプリケーションの全実行の性能を推測するものである。即ち、サンプリングトレースを用いた評価は、サンプリングトレース群が全実行の挙動を反映しているという仮定の上に成り立っている。
【0004】
サンプリングトレースは、数多く採取した方が全実行履歴に近くなり、正確になる。一方で、トレース数が増大すると性能評価に伴う処理時間が増大する。
【0005】
これに対応するために、従来、代表サンプリングトレース抽出技術が知られている。これは、各トレースのCPI(clock per instruction )やキャッシュミス率等の解析結果を元に、代表となりうるサンプリングトレースを抽出する方法である。
【0006】
更に、最近では、代表サンプリングトレースの抽出を発展させた一例として、クラスタリングを用いた代表サンプリングトレース抽出方式が提案されている(T.Lafage, A.Seznec, ”Choosing Representative Slices of Program Executionfor Microarchitecture Simulations: A Preliminary Application to the Data Stream”, Workshop on Workload Characterization(WWC 2000), Sep. 2000. )。これは、クラスタリングにより解析結果の類似性に従ったグループ分けを行い、各グループ毎に代表トレースを抽出する方式である。
【0007】
【発明が解決しようとする課題】
ところが、クラスタリングを用いた代表サンプリングトレース抽出方式において、サンプリングトレース長を考慮したものがない。本発明者の検討によれば、サンプリングトレース長を考慮しないと、以下に述べる理由で、クラスタリングがうまく機能せず、グループを代表する適切な代表サンプリングトレースを抽出できない場合がある。
【0008】
クラスタリングは、図9(A)に示すように、グループ間の距離がグループ内の各トレースデータ同士の距離より大きい場合にはうまく機能する。即ち、この場合はクラスタがうまく生成でき、その代表サンプリングトレースも簡単に抽出できる。一方、グループ間の距離とグループ内の各トレースデータ同士の距離との関係が定まらない場合、クラスタがうまく生成できず、代表サンプリングトレースは抽出するものの適切なものではなくなる。これは、以下に説明するように、トレースデータ間のばらつきが小さくなるためである。
【0009】
図10は、あるプログラムの実行時のCPUの挙動例を示す。このプログラムは、2つの処理フェーズを繰り返すプログラムであると想定する。図10に示すように、これら2つの処理フェーズに明確な挙動差があるとし、CPI=4のフェーズAとCPI=1のフェーズBと仮定する。フェーズAの命令数をNA とし、フェーズBの命令数をNB とする。サンプリングのトレース長(実行命令数)をwとし、w<NA ,NB とする。
【0010】
この場合、サンプリングトレース長の値が大きくなるにつれてサンプリングトレース間のCPI値の差がなくなる。即ち、サンプリングトレース長が大きい場合には、フェーズ間をまたぐサンプリングトレースの割合が増大するために、各サンプリングトレースの挙動差のばらつきが小さくなる。図11(A)に示すように、5つのサンプリングトレースのうち、CPI=4のトレースが2個、CPI=2.5(=(4+1)/2)のトレースが2個、CPI=1のトレースが1個となってしまう。
【0011】
従って、クラスタリングによるグループ分けをうまく機能させるためには、図11(B)に示すように、サンプリングトレース長を小さくして、フェーズ間をまたぐサンプリングトレースの割合を小さくする必要がある。図11(B)においては、CPI=4のトレースが3個、CPI=1のトレースが2個となり、中間のCPI=2.5のトレースはない。従って、2個のクラスタが生成されることが判る。
【0012】
このように、サンプリングトレース長を小さくしすぎると、異なるアーキテクチャによる挙動変動の影響が見積もれない可能性がある。そこで、クラスタをうまく生成するために異なるフェーズ間をまたぐサンプリングトレースの割合を一定以下にし、かつ、代表サンプリングトレースの数を少なくするためにできるだけ長いトレースを採ることが重要である。
【0013】
本発明は、クラスタリングによる代表トレースの抽出に適したサンプリングトレース長を容易に決定できるようにして、効率のよいクラスタリングによる代表サンプリングトレースを用いたコンピュータ性能評価方法を提供することを目的とする。
【0014】
また、本発明は上記コンピュータ性能評価方法を実現する処理装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明のコンピュータ性能評価方法は、プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、採取したサンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する。
【0016】
また、本発明のコンピュータ性能評価装置は、プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価装置であって、対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出する挙動変化数算出手段と、総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出するトレース長算出手段と、対象プログラムから前記トレース長に基づいてサンプリングトレースを採取するサンプリングトレース生成手段と、採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する代表トレース抽出手段とを備える。
【0017】
本発明のコンピュータ性能評価方法及び装置によれば、対象プログラムの実行時の総実行命令数と所定の測定情報とを例えばハードウェアモニタにより取得する。そして、前記総実行命令数および前記測定情報に基づいて前記プログラムの実行時の挙動の変化数を算出する。記憶しておいた前記総実行命令数および算出した前記挙動変化数に基づいて、採取する実行履歴の一部であるサンプリングトレースのトレース長を算出する。次に、前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取して、前記サンプリングトレースに対して性能評価シミュレーションを施し、その評価結果に基づいて前記サンプリングトレースをクラスタリングし、クラスタリングしたグループごとに1つの代表サンプリングトレースを決定する。
【0018】
これにより、クラスタリングによる代表トレースの抽出に適したサンプリングトレースのトレース長を容易に取得でき、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価方法を提供することが可能となる。
【0019】
また、コンピュータ性能評価装置において、上記のコンピュータ性能評価方法を実現し、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価装置を提供することが可能となる。
【0020】
【発明の実施の形態】
図1に、第1の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【0021】
この例のコンピュータ性能評価装置10は、挙動計測手段11、測定情報記憶手段12、挙動変化数算出手段13、トレース長算出手段14、トレース生成手段15、サンプリングトレース記憶手段16、代表トレース抽出手段17からなる。
【0022】
挙動計測手段11は、アプリケーション2を実行するCPU1の挙動を測定し測定情報記憶手段12に記憶する。挙動計測手段11は、CPU1でアプリケーション2の実行時のCPIやキャッシュミス率を測定し、同時に総実行命令数Nを算出し、測定情報記憶手段12に記憶する。挙動計測手段11として、CPU1に備えられた既存のハードウェアモニタを利用する。
【0023】
挙動変化数算出手段13は、測定情報記憶手段12に保存されたCPI、キャッシュミス率などの測定情報に基づいて挙動変化数mを算出する。トレース長算出手段14は、測定情報記憶手段12に保存された総実行命令数Nおよび挙動変化数mからサンプリングトレースのトレース長wを算出する。トレース生成手段15は、アプリケーション2からトレース長wによるサンプリングトレースを生成し、サンプリングトレース記憶手段16に記憶する。
【0024】
代表トレース抽出手段17は、サンプリングトレース記憶手段16に保存されたサンプリングトレースに対してクラスタリングを適用して代表トレース4を抽出する。また、代表トレース抽出手段17は、サンプリングトレース記憶手段16に保存されたサンプリングトレースに対して性能評価シミュレーションを行い、トレースごとにCPIやキャッシュミス率などを測定し、その測定情報に基づいてサンプリングトレースをクラスタリングによるグループ分けを行い、グループごとに1つの代表トレース4を抽出する。
【0025】
コンピュータ性能評価装置10は、挙動計測手段11であるハードウェアモニタにより一定間隔でアプリケーション2の実行時のCPIやキャッシュミス率を測定し、総実行命令数Nを取得して測定情報記憶手段12に記憶する。そして、挙動変化数算出手段13により、図3に示す処理の流れ(アルゴリズム)を用いて測定情報記憶手段12に記憶された測定情報からアプリケーション2の挙動変化回数mを算出する。そして、トレース長算出手段14により、総実行命令数Nと挙動変化数mとに基づいて、サンプリングトレースのトレース長wを算出する。
【0026】
その後、トレース生成手段15により、算出されたトレース長wに基づいてアプリケーション2の実行時のサンプリングトレースを生成してサンプリングトレース記憶手段16に記憶する。そして、代表トレース抽出手段17により、サンプリングトレース記憶手段16に保存されたサンプリングトレースに対して性能評価シミュレートを行ってCPIやキャッシュミス率を算出し、その測定情報に基づいてサンプリングトレースをクラスタリングし、各グループの代表トレース4を抽出する。
【0027】
図2は、本発明の実施の形態におけるコンピュータ性能評価方法の構成図であり、本発明の遠隔操作を実行するコンピュータ性能評価方法の構成の一例の概略を示す。
【0028】
ステップS1において、挙動計測手段11であるハードウェアモニタが総実行命令数Nを計測する。即ち、マシン命令の総実行命令数Nを計測する。総実行命令数Nは、CPIやキャッシュミス率と共に測定情報記憶手段12に記憶される。
【0029】
総実行命令数Nは、サンプリングトレースのトレース長wの算出に用いる処理装置によって計測手段が異なってもよい。CPUに備えられたハードウェアモニタを用いた場合には、ハードウェアモニタの全実行命令数計測機能を用いて総実行命令数Nを取得する。また、プログラムから採取したトレースデータに基づいて総実行命令数Nを見積もる場合には、全トレースデータに含まれている総命令数を用いる。
【0030】
ステップS2において、挙動変化数算出手段13が、測定情報記憶手段12に記憶された各データに基づいて、挙動変化数mを算出する。即ち、CPI、キャッシュミス率などの挙動変化数mを算出する。挙動変化数mはトレース長算出手段14に送られる。
【0031】
まず、トレースデータ全体(全CPIの記録)の標準偏差Dを求める。隣接したトレース間で距離(ここでは、隣接したCPIの差を距離として用いる)を算出し、全体の標準偏差Dとの比がある一定値(挙動変化許容率)kより小さい場合には、挙動の変化はないと判断する。一方、全体の標準偏差Dとの比が挙動変化許容率kより大きい場合には、挙動が変化したと判断して挙動変化数mを1増加させる。
【0032】
図3に、挙動変化数mを求める処理の処理フローを示す。図3では、説明の簡単化のため、CPIのみで挙動変化数mを求める処理の手順を示している。
【0033】
まず、初期化として挙動変化数mと、1つ前のトレースのCPIの記録Vとを0にし、全CPIの記録の標準偏差値をDとし、所定の値を挙動変化許容率kとする(ステップS10)。
【0034】
そして、未処理のトレースのCPI記録が残っているかどうか調べ(ステップS11)、CPIの記録が残っている場合には、CPIの記録から1つ記録を取り出し、そのCPIの記録をXとする(ステップS12)。そして、X−V>D×kであるかどうかを判断する(ステップS13)。X−V>D×kである、即ち、XとVとの差が標準偏差D×kの範囲を超えていれば、挙動が変化したと判断して挙動変化数mに1加算する(ステップS14)。一方、X−V>D×kでない、即ち、XとVとの差が標準偏差D×kの範囲を超えていなければ、挙動は変化していないと判断して挙動変化数mはそのままとする。その後、CPIの記録XをVに代入し(ステップS15)、ステップS11の処理へ戻る。ステップS11で、未処理のCPIの記録が残っていなければ、mの値を挙動変化数とする(ステップS16)。
【0035】
ステップS3において、トレース長算出手段14が、挙動変化数mに基づいて、サンプリングトレースのトレース長wを算出する。トレース長wはトレース生成手段15に送られる。
【0036】
サンプリングトレースのトレース長wの計算は以下の式を用いて行う。フェーズ間を跨ぐサンプリングトレースの割合の期待値(確率)をαとする。図4に示すように、期待値αを達成するためサンプリングトレースのトレース長をw、アプリケーションの挙動による挙動変化がP1 、P2 、…、Pm とする。また、各フェーズの命令数をL(Pn )と表記することにする。フェーズ間に跨がるトレースが採取される期待値(確率)αは、以下の式で表される。
α=(w×m)/(Σm k L(Pk ))=w×m/N
この期待値αがクラスタリングの質を決定する。期待値αを満たすトレース長で最大のものは以下の式で求めることができる。
w=α×N/m
従って、サンプリングトレースのトレース長w以下にすれば、フェーズに跨がったサンプリングトレースが採取される確率がα以下となり、効果的なクラスタリングが可能となる。
【0037】
ステップS4において、トレース生成手段15がサンプリングトレースを生成する。即ち、ステップS3の処理で求めたトレース長wを用いて、サンプリングトレースを生成する。サンプリングトレースは、サンプリングトレース記憶手段16に記憶される。
【0038】
このとき、キャッシュの初期参照ミスにもとづく性能評価誤差(cold start miss bias)を回避するために、直前の命令列を付加する。付加する命令数は数M〜数10Mステップとする。なお、ここでは、付加する命令数については既知であると仮定する。
【0039】
ステップS5において、代表トレース抽出手段17は、サンプリングトレース記憶手段16に記憶されたサンプリングトレースに基づいて、クラスタリングによる代表トレース4を抽出する。代表トレース4は記憶手段に記憶される。即ち、生成されたサンプリングトレースを用いて性能評価シミュレーションを行い、トレースごとにCPIやキャッシュミスなどを測定する。
【0040】
そして、ステップ6において、測定したデータに基づいてサンプリングトレースをクラスタリングし、各グループ内の代表トレース4を抽出する。例えば、クラスタリングされたサンプリングトレース群(グループ)から平均的なサンプリングトレースを1つ抽出して、これを当該クラスタの代表トレース4とする。
【0041】
図5に、本発明の第2の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【0042】
この例のコンピュータ性能評価装置20は、トレース生成手段21、サンプリングトレース記憶手段22、性能評価シミュレート手段23、測定情報記憶手段24、挙動変化数算出手段25、トレース長算出手段26、トレース生成手段27、サンプリングトレース記憶手段28、代表トレース抽出手段29からなる。
【0043】
トレース生成手段21はアプリケーション2の実行時のサンプリングトレースを生成してサンプリングトレース記憶手段22に記憶する。性能評価シミュレート手段23は、サンプリングトレース記憶手段22に保存されたサンプリングトレースを用いて性能評価シミュレートを行いCPIやキャッシュミス率などを測定して測定情報記憶手段24に記憶する。
【0044】
なお、挙動変化数算出手段25、トレース長算出手段26、トレース生成手段27、サンプリングトレース記憶手段28、代表トレース抽出手段29は、それぞれ、図1に示す挙動変化数算出手段13、トレース長算出手段14、トレース生成手段15、サンプリングトレース記憶手段16、代表トレース抽出手段17と同様の処理を行うので説明を省略する。
【0045】
コンピュータ性能評価装置20は、トレース生成手段21により、アプリケーション2を実行するCPU1の挙動の変化が生じる命令数より大きいと思われる命令数のトレースデータを多数採取する。採取した全トレースデータに含まれている総命令数を総実行命令数Nとして見積もる。その後、性能評価シミュレート手段23により、挙動の変化が生じる命令数より十分小さいと思われる命令間隔でCPIやキャッシュミス率を測定し測定情報記憶手段24に記憶する。
【0046】
そして、挙動変化数算出手段25により、測定情報記憶手段24に保存された測定情報に基づいて、図3の処理フローに示すアルゴリズムを用いて、プログラム挙動変化数mを算出する。さらにトレース長算出手段26により、総実行命令数Nと挙動変化数mとに基づいてサンプリングトレースのトレース長wを算出する。トレース生成手段27により、アプリケーション2の実行時のトレース長wによるサンプリングトレースを再び採取し、サンプリングトレース記憶手段28に記憶する。
【0047】
そして、代表トレース抽出手段29により、サンプリングトレース記憶手段28に保存したサンプリングトレースに対して性能評価シミュレートを行いCPI、キャッシュミス率などを再算出し、算出した測定情報に基づいてサンプリングトレースをクラスタリングして、各グループの代表トレースを抽出する。
【0048】
代表トレース生成手段29は、サンプリングトレース記憶手段22に保存したトレースデータからトレース長wによるサンプリングトレースを抜き出して使用するようにしてもよい。この場合には、図6に示すように、トレース生成手段21が採取しサンプリングトレース記憶手段22に記憶したトレースデータから、算出したトレース長wにキャッシュ初期参照ミスによる性能評価誤差(cold start miss bias)を回避するための命令列用のトレース長Aを付加したトレース長w+Aによりサンプリングトレースを抜き出す。そして、代表トレース抽出手段29は、図1に示す代表トレース抽出手段17と同様に処理を行い、各グループの代表トレース4を抽出する。これにより、トレース生成手段27は、サンプリングトレースを改めて採取する必要がなく処理負担が軽減される。
【0049】
図7に、本発明の第3の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【0050】
この例のコンピュータ性能評価装置30は、挙動計測手段31、測定情報記憶手段32、トレース長算出手段33、トレース生成手段34、サンプリングトレース記憶手段35、代表トレース抽出手段36からなる。コンピュータ性能評価装置30は、コンピュータ性能評価装置10とほぼ同様の構成であるが、挙動変化数算出手段13を備えていない点が異なる(図1参照)。
【0051】
図7に示すアプリケーション2のソースコードには、CPI・キャッシュミス率を測定するディレクティブ・コードを予め挿入しておく。ディレクティブ・コードを含むアプリケーション2のソースコードをコンパイルし実機上で走行させることにより、CPU1の挙動計測手段31により、挙動変化数mを計測して測定情報記憶手段32に記憶する。トレース長算出手段33は、測定情報記憶手段32に保存された挙動変化数mに基づいてサンプリングトレースのトレース長wを算出する。そして、トレース生成手段34は、アプリケーション2からサンプリングトレースを生成してサンプリングトレース記憶手段35に記憶する。代表トレース抽出手段36は、性能評価シミュレーションを行ってサンプリングトレースのCPIやキャッシュミス率を算出し、その測定情報に基づいてサンプリングトレースをクラスタリングし、各グループの代表トレース4を抽出する。
【0052】
本発明の第4の実施態様として、図7に示すコンピュータ性能評価装置30において、アプリケーション2のコンパイラに、CPIやキャッシュミス率を測定するルーチンを付加する機能を備えるようにしてもよい(図示せず)。
【0053】
このコンパイラにより、アプリケーション2の関数の入り口およびループの入り口にCPI・キャッシュミス率を測定し、測定情報をディスクなどの記憶装置に記録するルーチンを挿入してコンパイル処理を行う。コンパイルしたアプリケーション2のオブジェクトコードを実機上で走行させることにより挙動変化数mを計測する。以下の処理は、第3の実施態様における処理と同様であるので説明を省略する。
【0054】
図8に、本発明の第5の実施態様におけるコンピュータ性能評価装置の構成の一例を示す。
【0055】
同じアプリケーションなどのプログラムが、あるアーキテクチャの下ではキャッシュミスが変化しないかあるいはCPIが変化しないために挙動の変化が認められないが、別のアーキテクチャの下では挙動の変化を生じるような場合がある。第5の実施態様におけるコンピュータ性能評価装置40では、広範囲なアーキテクチャに適用できる代表トレースを生成することが可能となるような構成をとる。
【0056】
コンピュータ性能評価装置40は、トレース生成手段41、サンプリングトレース記憶手段42、性能評価シミュレート手段43a/43b、測定情報記憶手段44a/44b、挙動変化数算出手段45a/45b、トレース長算出手段46a/46b、トレース長決定手段47、トレース生成手段48、サンプリングトレース記憶手段49、代表トレース抽出手段410からなる。
【0057】
コンピュータ性能評価装置40を構成する各手段は、コンピュータ性能評価装置20とほぼ同じであるが(図5参照)、性能評価シミュレート手段43、測定情報記憶手段44、挙動変化数算出手段45、トレース長算出手段46の各処理手段を対象とするアーキテクチャごとに備えるようにする。図8に示すコンピュータ性能評価装置40は、アーキテクチャAおよびアーキテクチャBのもとでアプリケーション2の性能評価を行うものとする。
【0058】
トレース長決定手段47は、トレース長算出手段46a、46bそれぞれで算出されたサンプリングトレースのトレース長wの最小値である最小トレース長wmin を決定する。
【0059】
そして、トレース生成手段48は、最小トレース長wmin を用いてアプリケーション2からサンプリングトレースを採取してサンプリングトレース記憶手段49に記憶する。代表トレース抽出手段410は、図1に示す代表トレース抽出手段17と同様に処理を行い、各グループの代表トレース4を抽出する。
【0060】
以上から判るように、本発明の実施の形態の特徴を列記すると以下の通りである。
(付記1) プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する
ことを特徴とするコンピュータ性能評価方法。
(付記2) 当該コンピュータ性能評価方法は、更に、
前記対象プログラムの実行時の総実行命令数と所定の測定情報とを取得し、
前記総実行命令数および前記測定情報を計測情報記憶手段に記憶する
ことを特徴とする付記1に記載のコンピュータ性能評価方法。
(付記3) 前記対象プログラムの実行時の前記総実行命令数と前記測定情報との取得において、ハードウェアに備えられた監視機能を用いて取得する
ことを特徴とする付記2に記載のコンピュータ性能評価方法。
(付記4) 前記対象プログラムの実行時の前記総実行命令数と前記測定情報との取得において、プログラムの挙動変化が生じると想定した命令数より大きい命令数からなるトレースデータを取得し、当該トレースデータに対して挙動の変化が生じると想定した命令数より小さい命令数の間隔で性能評価シミュレーションを施して前記測定情報を取得する
ことを特徴とする付記2に記載のコンピュータ性能評価方法。
(付記5) 前記対象プログラムからの前記トレース長に基づくサンプリングトレースの採取において、前記トレースデータを用いてサンプリングトレースを採取する
ことを特徴とする付記4に記載のコンピュータ性能評価方法。
(付記6) 前記対象プログラムの実行時の前記測定情報の取得において、対象プログラムに前記測定情報を測定するディレクティブ・コードを予め記載し、当該対象プログラムを実機上で走行させることにより取得する
ことを特徴とする付記2に記載のコンピュータ性能評価方法。
(付記7) 前記対象プログラムの実行時の前記測定情報を取得する場合に、コンパイル対象のプログラムの前記測定情報を測定する機能を備えたコンパイラを用いて、当該対象プログラムのコンパイル時に所定の位置に前記測定情報を計測・出力するルーチンを付加したオブジェクト・コードを生成し、当該オブジェクト・コードを実機上で走行させることにより取得する
ことを特徴とする付記2に記載のコンピュータ性能評価方法。
(付記8) 当該コンピュータ性能評価方法は、更に、
前記対象プログラムが実行される複数のアーキテクチャごとに、前記対象プログラムの実行時の総実行命令数と所定の測定情報とをそれぞれ取得し、
前記アーキテクチャごとに、前記総実行命令数および前記測定情報に基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記アーキテクチャごとに、前記総実行命令数および前記挙動変化数に基づいて、採取する実行履歴の一部であるサンプリングトレースのトレース長を算出し、
複数の前記トレース長のうち最小のものを代表トレース長とし、
前記対象プログラムから前記代表トレース長に基づいてサンプリングトレースを採取する
ことを特徴とする付記1に記載のコンピュータ性能評価方法。
(付記9) プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価装置であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出する挙動変化数算出手段と、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出するトレース長算出手段と、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取するサンプリングトレース生成手段と、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する代表トレース抽出手段とを備える
ことを特徴とするコンピュータ性能評価装置。
【0061】
【発明の効果】
以上説明したように、本発明によれば、コンピュータ性能評価方法において、評価対象となるプログラムの総実行命令数と所定の測定情報から算出した挙動変化数とに基づいて、異なるフェーズ間をまたぐサンプリングトレースの割合を一定以下にし、なおかつ、できるだけ長い命令数のトレース長を算出する。これにより、クラスタリングによる代表トレースの抽出に適したサンプリングトレースのトレース長を容易に取得でき、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価方法を提供することが可能となる。
【0062】
また、本発明によれば、コンピュータ性能評価装置において、上記のコンピュータ性能評価方法を実現し、効率のよい代表サンプリングトレースを用いたコンピュータ性能評価装置を提供することが可能となる。
【図面の簡単な説明】
【図1】第1の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図2】本発明の実施の形態におけるコンピュータ性能評価方法の構成図である。
【図3】挙動変化数を求める処理の処理フローを示す図である。
【図4】期待値αとトレース長wとの関係を説明するための図である。
【図5】第2の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図6】サンプリングトレースの抜き出し例を示す図である。
【図7】第3の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図8】第5の実施態様におけるコンピュータ性能評価装置の構成の一例を示す図である。
【図9】サンプリングトレースのクラスタリングの例を示す図である。
【図10】プログラムの実行時のCPUの挙動例を示す図である。
【図11】サンプリングトレースのトレース長によるCPIのばらつきの変化を説明する図である。
【符号の説明】
1 CPU
2 アプリケーション
4 代表トレース
10 コンピュータ性能評価装置
11 挙動計測手段
12 測定情報記憶手段
13 挙動変化数算出手段
14 トレース長算出手段
15 トレース生成手段
16 サンプリングトレース記憶手段
17 代表トレース抽出手段
Claims (5)
- プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価方法であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出し、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取し、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する
ことを特徴とするコンピュータ性能評価方法。 - 当該コンピュータ性能評価方法は、更に、
前記対象プログラムの実行時の総実行命令数と所定の測定情報とを取得し、
前記総実行命令数および前記測定情報を計測情報記憶手段に記憶する
ことを特徴とする請求項1に記載のコンピュータ性能評価方法。 - 前記対象プログラムの実行時の前記総実行命令数と前記測定情報との取得において、ハードウェアに備えられた監視機能を用いて取得する
ことを特徴とする請求項2に記載のコンピュータ性能評価方法。 - 当該コンピュータ性能評価方法は、更に、
前記対象プログラムが実行される複数のアーキテクチャごとに、前記対象プログラムの実行時の総実行命令数と所定の測定情報とをそれぞれ取得し、
前記アーキテクチャごとに、前記総実行命令数および前記測定情報に基づいて前記プログラムの実行時の挙動の変化数を算出し、
前記アーキテクチャごとに、前記総実行命令数および前記挙動変化数に基づいて、採取する実行履歴の一部であるサンプリングトレースのトレース長を算出し、
複数の前記トレース長のうち最小のものを代表トレース長とし、
前記対象プログラムから前記代表トレース長に基づいてサンプリングトレースを採取する
ことを特徴とする請求項1に記載のコンピュータ性能評価方法。 - プログラムの実行履歴からサンプリングして得た代表サンプリングトレースを用いたコンピュータ性能評価装置であって、
対象プログラムの実行時の総実行命令数と所定の測定情報とに基づいて前記プログラムの実行時の挙動の変化数を算出する挙動変化数算出手段と、
前記総実行命令数および前記挙動変化数に基づいて、採取するサンプリングトレースのトレース長を算出するトレース長算出手段と、
前記対象プログラムから前記トレース長に基づいてサンプリングトレースを採取するサンプリングトレース生成手段と、
採取した前記サンプリングトレースをクラスタリングして、そのクラスタごとに代表サンプリングトレースを決定する代表トレース抽出手段とを備える
ことを特徴とするコンピュータ性能評価装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002234536A JP2004078338A (ja) | 2002-08-12 | 2002-08-12 | コンピュータ性能評価方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002234536A JP2004078338A (ja) | 2002-08-12 | 2002-08-12 | コンピュータ性能評価方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004078338A true JP2004078338A (ja) | 2004-03-11 |
Family
ID=32019321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002234536A Pending JP2004078338A (ja) | 2002-08-12 | 2002-08-12 | コンピュータ性能評価方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004078338A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006004211A (ja) * | 2004-06-18 | 2006-01-05 | Hitachi Ltd | ハードウェアモニタを用いた性能解析方法 |
JP2007213205A (ja) * | 2006-02-08 | 2007-08-23 | Fujitsu Ltd | システム分析プログラム、システム分析装置、およびシステム分析方法 |
JP2007272693A (ja) * | 2006-03-31 | 2007-10-18 | Fujitsu Ltd | システム分析プログラム、システム分析方法およびシステム分析装置 |
JP2008158906A (ja) * | 2006-12-25 | 2008-07-10 | Nec Corp | リソース監視における収集間隔調整システム、その方法およびプログラム |
JP2008305402A (ja) * | 2007-06-05 | 2008-12-18 | Internatl Business Mach Corp <Ibm> | 代表的なトレースを得るための命令を識別する方法、コンピュータ・プログラム及びシステム |
WO2010092641A1 (ja) * | 2009-02-13 | 2010-08-19 | パナソニック株式会社 | プログラムデバッグ装置およびエミュレータシステム |
JP2012198598A (ja) * | 2011-03-18 | 2012-10-18 | Nec Corp | データ保存装置、データ保存方法 |
US8943503B2 (en) | 2010-07-02 | 2015-01-27 | Samsung Electronics Co., Ltd. | Apparatus and method for thread progress tracking using deterministic progress index |
-
2002
- 2002-08-12 JP JP2002234536A patent/JP2004078338A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006004211A (ja) * | 2004-06-18 | 2006-01-05 | Hitachi Ltd | ハードウェアモニタを用いた性能解析方法 |
JP4599902B2 (ja) * | 2004-06-18 | 2010-12-15 | 株式会社日立製作所 | ハードウェアモニタを用いた性能解析方法 |
JP2007213205A (ja) * | 2006-02-08 | 2007-08-23 | Fujitsu Ltd | システム分析プログラム、システム分析装置、およびシステム分析方法 |
JP2007272693A (ja) * | 2006-03-31 | 2007-10-18 | Fujitsu Ltd | システム分析プログラム、システム分析方法およびシステム分析装置 |
JP2008158906A (ja) * | 2006-12-25 | 2008-07-10 | Nec Corp | リソース監視における収集間隔調整システム、その方法およびプログラム |
JP2008305402A (ja) * | 2007-06-05 | 2008-12-18 | Internatl Business Mach Corp <Ibm> | 代表的なトレースを得るための命令を識別する方法、コンピュータ・プログラム及びシステム |
WO2010092641A1 (ja) * | 2009-02-13 | 2010-08-19 | パナソニック株式会社 | プログラムデバッグ装置およびエミュレータシステム |
US8943503B2 (en) | 2010-07-02 | 2015-01-27 | Samsung Electronics Co., Ltd. | Apparatus and method for thread progress tracking using deterministic progress index |
JP2012198598A (ja) * | 2011-03-18 | 2012-10-18 | Nec Corp | データ保存装置、データ保存方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9323652B2 (en) | Iterative bottleneck detector for executing applications | |
Duan et al. | Versatile prediction and fast estimation of architectural vulnerability factor from processor performance metrics | |
JP4785213B2 (ja) | コンピュータ性能データを分析する方法 | |
Hamerly et al. | How to use simpoint to pick simulation points | |
EP2390790A1 (en) | Profiling of software applications | |
CA2428235A1 (en) | System and method for building a time series model | |
JPH10254700A (ja) | 個々の命令の実行頻度をサンプリングするプロセッサ性能カウンタ | |
JP2006227999A (ja) | ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム | |
JPWO2008129635A1 (ja) | 性能障害要因分析プログラムおよび性能障害要因分析装置 | |
US8245084B2 (en) | Two-level representative workload phase detection | |
CN106598822B (zh) | 一种用于容量评估的异常数据检测方法及装置 | |
EP1495417A1 (en) | System, and method for resource usage estimation | |
Weber et al. | Trace file comparison with a hierarchical sequence alignment algorithm | |
JP2004078338A (ja) | コンピュータ性能評価方法及び装置 | |
WO2018032897A1 (zh) | 报文转发性能评估方法、装置和计算机存储介质 | |
Todi | Speclite: using representative samples to reduce spec cpu2000 workload | |
Neill et al. | Fuse: Accurate multiplexing of hardware performance counters across executions | |
Trahay et al. | Selecting points of interest in traces using patterns of events | |
JP4996623B2 (ja) | 検出装置、プログラムおよび検出方法 | |
Li et al. | Efficient microarchitectural vulnerabilities prediction using boosted regression trees and patient rule inductions | |
Van Biesbrouck et al. | Representative multiprogram workloads for multithreaded processor simulation | |
JP2715904B2 (ja) | 計算機システム性能評価装置 | |
Kihm et al. | Phase-guided small-sample simulation | |
CN111158974A (zh) | 一种面向云服务器的硬件感知cpu能耗测算方法 | |
JPH0887417A (ja) | コンパイラ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050811 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081021 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081222 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20081222 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20081222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090407 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090608 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090929 |