JP5431633B2 - 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法 - Google Patents

性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法 Download PDF

Info

Publication number
JP5431633B2
JP5431633B2 JP2006075394A JP2006075394A JP5431633B2 JP 5431633 B2 JP5431633 B2 JP 5431633B2 JP 2006075394 A JP2006075394 A JP 2006075394A JP 2006075394 A JP2006075394 A JP 2006075394A JP 5431633 B2 JP5431633 B2 JP 5431633B2
Authority
JP
Japan
Prior art keywords
input data
function
tuning
performance
index value
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.)
Expired - Fee Related
Application number
JP2006075394A
Other languages
English (en)
Other versions
JP2007249844A (ja
Inventor
千鶴 柏木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2006075394A priority Critical patent/JP5431633B2/ja
Priority to US11/524,384 priority patent/US8762975B2/en
Publication of JP2007249844A publication Critical patent/JP2007249844A/ja
Application granted granted Critical
Publication of JP5431633B2 publication Critical patent/JP5431633B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、プログラム実行性能のチューニングをおこなう性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法に関する。
チューニング技術とは、作成されたプログラムを効率よく走らせるために、処理速度の低下の原因となる性能指標値(たとえば、サイクル数やキャッシュミス率)があらわれた関数をチューニングポイントとして抽出する技術である。
具体的には、このチューニング技術を用いてプログラムをチューニングする場合、あるデータを入力して性能解析をおこない、その結果を元にチューニングポイントを抽出し、チューニングをおこなう。効率の良いチューニングをおこなうためには、チューニングポイントを正確に見出すことが必要である。
たとえば、MPEGデコーダのプログラムを対象とすると、ある圧縮データについて伸長処理に時間がかかり再生が追いつかない場合には、この伸長処理の関数のサイクル数が高いと考えられる。したがって、その関数をチューニングポイントとして、プログラムの処理効率の向上を図ることができる。
また、このようなチューニング技術については、実行頻度、命令フェッチやメモリアクセス頻度、キャッシュミス率を測定し、得られた測定結果を元にチューニングポイントを抽出している(たとえば、下記特許文献1〜3を参照。)。
特公平8−1608号公報 特開平7−191882号公報 特開平8−263372号公報
しかしながら、上述した従来のチューニング技術では、入力データの種類などによって測定結果が片寄ることが多いため、正確にチューニングポイントを見出すことは困難であるという問題があった。したがって、幾度となく測定する中で総合的な判断によりチューニングポイントを見出さなければならず、開発者の負担が増大するという問題があった。
また、プログラムの実行占有率や性能指標値など、総合的にも局所的にもプログラム性能が表現できる環境においては、入力データの種類などによって性能測定結果が異なる場合、開発者はそれぞれの入力データとプログラムの特徴から、実行頻度が高くチューニング効果が期待できるモジュールを人為的判断で特定していた。
したがって、ある一回の測定で同一性能指標値の複数の関数が存在し、この測定結果を元に性能解析やチューニングをおこなう場合、どちらの関数をチューニングすべきか判断することができず、正確にチューニングポイントを見出すことは困難であるという問題があった。
また、ある一つの入力データDaでの測定結果のみを用いてプログラムのチューニングをおこなった結果、その入力データDaを与えた場合についての性能は改善する反面、他のデータDbを与えて測定した場合、入力データDaによるチューニング前よりも性能が低下してしまうという問題があった。
この発明は、上述した従来技術による問題点を解消するため、簡単かつ効率的に正確なチューニングポイントを自動で見出すことにより、プログラムの性能向上および開発者の負担軽減を図ることができる性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、この発明にかかる性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法は、対象プログラムに与える複数の入力データを取得し、取得された複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定し、測定された前記入力データごとの性能指標値を、前記関数ごとに合成し、合成された前記関数ごとの合成結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出することを特徴とする。
この発明によれば、どのような入力データに対しても平均的に性能改善をおこなうことが可能なチューニングポイントの候補となる関数を抽出することができる。
また、上記発明において、前記入力データに関する属性情報に基づいて、前記入力データごとの性能指標値を、前記関数ごとに合成することとしてもよい。
この発明によれば、合成元となる各入力データの性能指標値を平準化することができる。
また、上記発明において、前記属性情報は、前記入力データのデータサイズであることとしてもよい。
この発明によれば、データサイズにより入力データを正規化することができ、合成元となる各入力データの性能指標値を平準化することができる。
また、上記発明において、前記属性情報は、前記入力データの入力頻度であることとしてもよい。
この発明によれば、入力データの特性に応じて、合成元となる各入力データの性能指標値を平準化することができる。
また、上記発明において、前記属性情報は、前記入力データに関する前記プログラムの実行ルートの網羅性に関する情報であることとしてもよい。
この発明によれば、関数に影響を与える入力データの重要度を高くすることにより、チューニングポイント候補の抽出精度の向上を図ることができる。
また、上記発明において、測定された性能指標値の測定回数に基づいて、前記合成結果の信頼度を算出することとしてもよい。
この発明によれば、合成結果の性能指標を簡単に提示することができる。
また、上記発明において、前記チューニングポイントの候補となる関数の前記入力データごとの性能指標値に基づいて、前記チューニングポイントの候補となる関数に対するチューニング判断の指標値を算出することとしてもよい。
この発明によれば、チューニングポイントの候補の絞込みの判断材料を提示することができる。
また、上記発明において、チューニング判断の指標値の算出結果に基づいて、チューニングポイントの候補となる関数の中から、チューニングポイントとなる関数を抽出することとしてもよい。
この発明によれば、チューニングポイントの候補の中からのチューニングポイントの絞込みを自動でおこなうことができる。
この発明にかかる性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法によれば、簡単かつ効率的に正確なチューニングポイントを自動で見出すことにより、プログラムの性能向上および開発者の負担軽減を図ることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法の好適な実施の形態を詳細に説明する。
(性能チューニングの概要)
まず、この発明の実施の形態にかかる性能チューニングの概要について説明する。図1は、この発明の実施の形態にかかる性能チューニングの概要を示す説明図である。図1において、(1)で、開発者はプログラムを作成する。
(2)で、作成されたプログラムにデータA,データB,データC,・・・を与えてプログラムを実行する。そして、測定結果として、データごとに関数(ここでは、例としてFunc1〜Func4)の性能指標値が測定される。
(3)で、関数ごとに測定結果を合成し合成結果と合成回数(経験値)を得る。この合成結果により、ここでは、関数Func1〜Func4の中から関数Func1,Func2をチューニング対象とする。
(4)で、(3)で選ばれた関数ごとに、複数の性能指標値を合成する。これにより、チューニング対象となるべき関数をチューニングポイントとして出力することができる。
(性能チューニング装置のハードウェア構成)
つぎに、この発明の実施の形態にかかる性能チューニング装置のハードウェア構成について説明する。図2は、この発明の実施の形態にかかる性能チューニング装置のハードウェア構成を示すブロック図である。図2において、性能チューニング装置は、CPU201と、ROM202と、RAM203と、HDD(ハードディスクドライブ)204と、HD(ハードディスク)205と、FDD(フレキシブルディスクドライブ)206と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)207と、ディスプレイ208と、I/F(インターフェース)209と、キーボード210と、マウス211と、スキャナ212と、プリンタ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
ここで、CPU201は、性能チューニング装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。HDD204は、CPU201の制御にしたがってHD205に対するデータのリード/ライトを制御する。HD205は、HDD204の制御で書き込まれたデータを記憶する。
FDD206は、CPU201の制御にしたがってFD207に対するデータのリード/ライトを制御する。FD207は、FDD206の制御で書き込まれたデータを記憶したり、FD207に記憶されたデータを性能チューニング装置に読み取らせたりする。
また、着脱可能な記録媒体として、FD207のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリーカードなどであってもよい。ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F209は、通信回線を通じてインターネットなどのネットワーク214に接続され、このネットワーク214を介して他の装置に接続される。そして、I/F209は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ212は、画像を光学的に読み取り、性能チューニング装置内に画像データを取り込む。なお、スキャナ212は、OCR機能を持たせてもよい。また、プリンタ213は、画像データや文書データを印刷する。プリンタ213には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
(性能チューニング装置の機能的構成)
つぎに、この発明の実施の形態にかかる性能チューニング装置の機能的構成について説明する。図3は、この発明の実施の形態にかかる性能チューニング装置の機能的構成を示すブロック図である。図3において、性能チューニング装置300は、取得部301と、測定部302と、合成部303と、抽出部304と、信頼度算出部305と、合成指標値算出部306と、から構成されている。
まず、取得部301は、チューニングの対象となるプログラム(以下、「対象プログラム」と称す。)に与える複数の入力データを取得する。対象プログラムは、複数の関数により構成されている。関数はプログラム内の機能を特定する実行単位(たとえば、「document.write()」など)である。
また、入力データの種類は、対象プログラムに応じて異なる。たとえば、対象プログラムが画像処理プログラムの場合、入力データは画像データである。また、対象プログラムが音声処理プログラムの場合、入力データは音声データである。また、対象プログラムがファイルシステムの場合、入力データはファイルである。
また、測定部302は、取得部301によって取得された複数の入力データをそれぞれ対象プログラムに与えて実行させることにより、関数ごとの性能指標値を、入力データごとに測定する。ここで、性能指標値とは、関数の性能をあらわす値であり、たとえば、サイクル数やキャッシュミス率などであらわすことができる。より具体的には、たとえば、ある対象プログラムに入力データが与えられた場合、この入力データに対する対象プログラム内の関数の性能指標値は、当該関数が実行されたときのサイクル数となる。
図4は、関数ごとの性能指標値の一例を示すグラフである。具体的には、対象プログラムに2つの異なるデータ(ここでは、データD1およびデータD2とする。以降、入力データ総数をnとし、i番目(i=1〜n)のデータを「データDi」と称す。)を与えた場合の関数ごとの性能指標値(ここでは、サイクル数)を示している。
図4において、(a)はデータD1を与えた場合の対象プログラム内の各関数F1〜F4のサイクル数を示しており、(b)はデータD2を与えた場合の対象プログラム内の各関数F1〜F4のサイクル数を示している。
ここでは、例として4つの関数F1〜F4について示したが、関数の数は対象プログラムによってまちまちであり、たとえば、数百から数千程度存在する。以降、対象プログラムの関数の総数をmとし、j番目(j=1〜m)の関数を関数Fjと称す。
また、図3において、合成部303は、測定部302によって測定された入力データごとの性能指標値を、関数ごとに合成する。合成結果となる関数Fjごとの合成性能指標値Sjは、下記式(1)であらわすことができる。
Sj=C1・Mj1+C2・Mj2+……+Ci・Mji+……+Cn・Mjn
・・・(1)
上記式(1)において、Ciは入力データDiに関する属性情報により設定される重み係数である。重み係数Ciは、属性情報を加味して任意に定義することができる。また、Mjiは、データDiが与えられた場合の関数Fjの性能指標値である。
ここで、重み係数Ciの具体例について説明する。
<例1>入力データDiのデータサイズ(処理量)ziによる重み付け
たとえば、各データDiのデータサイズ(処理量)ziが大きく異なる場合、データサイズziで正規化するなどして単位データ量あたりの処理として再合成することができる。この場合、重み係数Ciは下記式(2)であらわすことができる。
Ci=1/zi・・・(2)
対象プログラムが画像処理プログラムの場合、入力データDiは画像データとなる。したがって、画像データである入力データDiのデータサイズziは、画像データサイズとなる。たとえば、入力データD1のデータサイズz1がz1=600[pixel]、入力データD2のデータサイズz2がz2=1000[pixel]、入力データD3のデータサイズz3がz3=200[pixel]とすると、合成結果となる関数Fjごとの合成性能指標値Sjは、下記式(3)となる。
Sj=(1/600)×Mj1+(1/1000)×Mj2+(1/200)×Mj3
・・・(3)
また、対象プログラムが音声処理プログラムの場合、入力データDiは音声データとなる。したがって、音声データである入力データDiのデータサイズziは、音声データ長となる。たとえば、入力データD1のデータサイズz1がz1=1.5[sec]、入力データD2のデータサイズz2がz2=5.2[sec]、入力データD3のデータサイズz3がz3=3.0[sec]とすると、合成結果となる関数Fjごとの合成性能指標値Sjは、下記式(4)となる。
Sj=(1/1.5)×Mj1+(1/5.2)×Mj2+(1/3.0)×Mj3
・・・(4)
また、対象プログラムがファイルシステムの場合、入力データDiはファイルとなる。したがって、ファイルである入力データDiのデータサイズziは、ファイルサイズとなる。たとえば、入力データD1のデータサイズz1がz1=20[KB]、入力データD2のデータサイズz2がz2=500[KB]、入力データD3のデータサイズz3がz3=2[KB]とすると、合成結果となる関数Fjごとの合成性能指標値Sjは、下記式(5)となる。
Sj=(1/20)×Mj1+(1/500)×Mj2+(1/2)×Mj3
・・・(5)
<例2>入力データDiの特性による重み付け
たとえば、プリンタのPostScript処理においては、入力データDiは、テキスト形式で入力されるケースが圧倒的に多く、JPEG画像で入力されるケースは少ないというような特性がある。このような場合、入力頻度qiなどで重み付けすることができる。この場合、重み係数Ciは下記式(6)であらわすことができる。
Ci=qi・・・(6)
たとえば、テキスト形式の入力データD1の入力頻度q1がq1=90[%]、JPEG画像の入力データD2の入力頻度q2がq1=5[%]とすると、合成結果となる関数Fjごとの合成性能指標値Sjは、下記式(7)となる。
Sj=0.9×Mj1+0.05×Mj2・・・(7)
<例3>入力データDiの実行ルートの網羅性(カバレージ率vi)による重み付け
たとえば、入力するデータによって実行ルートが大きく異なるようなプログラムの場合、実行ルートの網羅性を加味するためカバレージ率viなどで重み付けすることができる。この場合、重み係数Ciは下記式(8)であらわすことができる。
Ci=vi・・・(8)
たとえば、入力データD1を与えた場合の関数Fjのカバレージ率v1をv1=80[%]、入力データD2を与えた場合の関数Fjのカバレージ率v2をv2=20[%]、入力データD3を与えた場合の関数Fjのカバレージ率v3をv3=50[%]とすると、合成結果となる関数Fjごとの合成性能指標値Sjは、下記式(9)となる。
Sj=0.8×Mj1+0.2×Mj2+0.5×Mj3・・・(9)
つぎに、合成結果(合成性能指標値Sj)について具体的に説明する。図5は、合成部303による合成結果を示す説明図である。図5に示した合成結果は、図4に示した性能指標値(ここでは、サイクル数)を合成したものである。合成されたサイクル数を合成サイクル数と称す。
図5において、(a)は、重み係数CiをCi=1、すなわち、重み付けしない場合の合成性能指標値S1〜S4を示している。
(b)は、入力データDiに関する属性情報を入力データDiのデータサイズ(処理量)ziとした場合の合成性能指標値S1〜S4を示している。
(c)は、入力データDiに関する属性情報を入力データDiの入力頻度qiとした場合の合成性能指標値S1〜S4を示している。
(d)は、入力データDiに関する属性情報を、入力データDiを与えた場合の関数Fjのカバレージ率viとした場合の合成性能指標値S1〜S4を示している。
また、図3において、抽出部304は、合成部303によって合成された関数Fjごとの合成結果(合成性能指標値Sj)に基づいて、関数F1〜Fmの中から対象プログラムのチューニングポイント候補となる関数(以下、「チューニングポイント候補」と称す。)を抽出する。
具体的には、抽出部304による抽出基準としては、基準となるしきい値Stを設定しておき、合成性能指標値Sjがしきい値St以上となる関数Fxを抽出することとしてもよい。また、関数F1〜Fmの合成性能指標値S1〜Smのうち、上位y(y=1,2,…)番目までの合成性能指標値S1〜Syの関数F1〜Fyを抽出することとしてもよい。以降、チューニングポイント候補Fx、F1〜Fyを総称してチューニングポイント候補Fkと称す。
たとえば、図5においては、上位2番目までの合成性能指標値を特定することで、チューニングポイント候補Fkを抽出している。すなわち、図5の(a)では、関数F4(1位)と関数F1(2位)がチューニングポイント候補Fkとして抽出されている。
(b)では、関数F3(1位)と関数F4(2位)がチューニングポイント候補Fkとして抽出されている。
(c)では、関数F4(1位)と関数F3(2位)がチューニングポイント候補Fkとして抽出されている。
(d)では、関数F4(1位)と関数F1(2位)がチューニングポイント候補Fkとして抽出されている。
また、図3において、信頼度算出部305は、測定部302によって測定された性能指標値の測定回数に基づいて、合成結果(合成性能指標値Sj)の信頼度Eを算出する。具体的には、合成部303が扱った入力データDiの総数nが信頼度Eとなる。この信頼度Eは合成を経験した性能指標値の総数に相当するため、信頼度Eを付加情報として提供することで、チューニング精度の指標とすることができる。
また、図3において、合成指標値算出部306は、チューニングポイント候補Fkの入力データDiごとの性能指標値Mkiに基づいて、チューニングポイント候補Fkに対するチューニング判断の指標値(以下、「合成指標値Tk」と称す。)を算出する。
この合成指標値の算出例について説明する。図6は、合成指標値の算出例を示す図表である。図6では、図5(b)において、関数F3,F4がチューニングポイント候補Fkとして抽出された場合における合成指標値の算出例を示している。
図6において、合成元サイクル数とは、性能指標値Mkiがサイクル数で表わされている場合、合成部303による合成時に重み付け係数Ciによって重み付けされた性能指標値Mkiが示すサイクル数である。
具体的には、たとえば、図5(b)においては、関数F3における入力データD1の合成サイクル数は「20」であるが、この合成サイクル数は、入力データD1の重み付け係数C1=1/100と、関数F3における入力データD1の性能指標値M1=2000(図4(a)を参照。)との積である。
また、稼働率VPCとは、VLIW命令数/サイクル数で得られる値である。なお、図6においては、関数F3における入力データD1の稼働率VPCは「0.8」となっている。
また、合成元指標値とは、合成指標値Tkの算出元となる入力データDiごとの指標値であり、チューニングポイント候補Fkごとに算出される。たとえば、関数F1〜Fmの中で関数Fjのサイクル数が最も大きい場合でも、関数Fjの稼働率VPCが高ければチューニングの余地が少ないと予想される。そのため、合成元サイクル数と稼働率VPCを合成する。この合成のための算出式を下記式(10)に示す。
合成元指標値=合成元サイクル数×(1−VPC)・・・(10)
関数F3における入力データD1の合成元指標値は、20×(1−0.8)=4となる。また、合成指標値Tkは、入力データDiごとの合成元指標値の和であり、チューニングポイント候補Fkごとに算出される。関数F3にける合成指標値Tkは、4+21=25である。算出されたチューニングポイント候補Fkごとの合成指標値Tkは、図2に示したディスプレイ208に表示してもよく、また、プリンタ213により印刷出力することとしてもよい。
また、この場合、抽出部304は、算出された合成指標値Tkに基づいて、チューニングポイント候補Fkの中からチューニングポイントとなる関数(以下、「チューニングポイントFp」と称す。)を抽出することとしてもよい。
チューニングポイントFpの抽出基準としては、基準となるしきい値Tを設定しておき、合成指標値Tkがしきい値T以上となる関数FvをチューニングポイントFpとして抽出することとしてもよい。また、合成指標値Tkのうち上位w(w=1,2,…)番目までの合成指標値の関数FkをチューニングポイントFpとして抽出することとしてもよい。
たとえば、合成指標値Tkが最大の関数をチューニングポイントFpとすると、図5(b)では、関数F3の合成指標値は「25」であり、関数F4の合成指標値は「35」であるため、合成指標値が高い関数F4がチューニングポイントFpとなる。
これにより、チューニングポイント候補Fkが多数抽出された場合でも、チューニングポイントFpの絞込みをおこなうことができ、チューニング精度の向上を図ることができる。
なお、上述した取得部301、測定部302、合成部303、抽出部304、信頼度算出部305、および合成指標値算出部306は、具体的には、たとえば、図2に示したROM202,RAM203,HD205などの記録媒体に記録されているプログラムを、CPU201に実行させることによって、またはI/F209によって、その機能を実現する。
(性能チューニング処理手順)
つぎに、この発明の実施の形態にかかる性能チューニング装置300の性能チューニング処理手順について説明する。図7は、この発明の実施の形態にかかる性能チューニング装置300の性能チューニング処理手順を示すフローチャートである。
図7において、まず、取得部301により複数の入力データDiが取得されるまで待ち受け(ステップS701:No)、複数の入力データDiが取得された場合(ステップS701:Yes)、複数の入力データDiを対象プログラムに与えて実行させ、関数Fjごとの性能指標値Mjiを入力データDiごとに測定する(ステップS702)。
つぎに、合成部303により、その測定結果(性能指標値Mji)を関数Fjごとに合成し(ステップS703)、抽出部304により、この合成結果に基づいて関数F1〜Fmの中からチューニングポイント候補Fkを抽出する(ステップS704)。
このように、複数の入力データDiの合成結果を用いてチューニングポイント候補Fkを抽出することにより、チューニングポイント候補Fkを容易に見出すことができる。これにより、チューニングポイント候補Fkの性能指標値を改善することで、ある一つの入力データを与えた場合の性能だけが向上するのではなく、どのような入力データDiに対しても平均的に性能を向上させることができる。また、重み係数Ciを定義することで、チューニングポイント候補Fkの信頼性や抽出精度の向上を図ることができる。
このあと、信頼度算出部305により信頼度Eを算出する(ステップS705)。これにより、チューニングポイント候補Fkの信頼性やチューニング精度の向上を図ることができる。また、合成指標値算出部306により、チューニングポイント候補Fkにおける合成指標値Tkを入力データDiごとに算出し(ステップS706)、抽出部304により、その算出結果に基づいてチューニングポイント候補Fkの中からチューニングポイントFpを抽出する(ステップS707)。
そして、チューニングポイント候補Fk、信頼度E、チューニングポイントFpの出力処理(表示または印刷出力)をおこなう(ステップS708)。これにより、一連の処理を終了する。このように、1種類の性能指標値Mkiのみを用いてチューニングポイント候補Fkを抽出するとチューニング余地が十分考慮されない可能性があるが、複数種類の性能指標値Mkiを合成することにより、チューニングポイント候補Fkを絞り込むことができ、チューニングポイントFpの抽出精度の向上を図ることができる。
このように、上述した実施の形態によれば、人為的判断をおこなうことなく、精度の高いチューニングポイント候補Fkの抽出が可能となり、ある一つの入力データの性能だけが向上するのではなく、どのような入力データに対しても平均的な性能向上を図ることができる。また、作業工数も大幅に削減できるため、設計期間の短縮化や設計者の労力負担軽減を図ることができる。
また、複数回(複数の入力データDi)の性能測定において、性能測定時の属性情報等が大幅に異なる場合、測定結果をそのまま、すなわち属性情報を考慮せずに合成すると、不公平な合成となるが、属性情報で重み付けをして合成することにより、公平に合成することができるため、合成結果(合成性能指標値Sj)の信頼性や精度の向上を図ることができる。
また、合成結果(合成性能指標値Sj)に対し付加情報として信頼度Eを出力することで、その合成結果(合成性能指標値Sj)がどれくらい経験を積んだ値なのか、どれくらい信頼性があるのかを判断することができ、チューニングポイント候補Fk,チューニングポイントFpの抽出精度の向上を図ることができる。
また、1種類の性能指標値Mkiのみを用いてチューニングポイントFpを抽出するとチューニング余地が十分考慮されない可能性があるが、複数種類の性能指標値Mkiを合成することにより、チューニングポイントFpの抽出精度の向上を図ることができる。
以上説明したように、この発明にかかる性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法によれば、簡単かつ効率的に正確なチューニングポイントを自動で見出すことにより、プログラムの性能向上および開発者の負担軽減を図ることができる。
なお、本実施の形態で説明した性能チューニング方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
(付記1)対象プログラムに与える複数の入力データを取得させる取得工程と、
前記取得工程によって取得された複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定させる測定工程と、
前記測定工程によって測定された前記入力データごとの性能指標値を、前記関数ごとに合成させる合成工程と、
前記合成工程によって合成された前記関数ごとの合成結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出させる抽出工程と、
をコンピュータに実行させる性能チューニングプログラム。
(付記2)前記合成工程は、前記入力データに関する属性情報に基づいて、前記入力データごとの性能指標値を、前記関数ごとに合成させることを特徴とする付記1に記載の性能チューニングプログラム。
(付記3)前記属性情報は、前記入力データのデータサイズであることを特徴とする付記2に記載の性能チューニングプログラム。
(付記4)前記属性情報は、前記入力データの入力頻度であることを特徴とする付記2に記載の性能チューニングプログラム。
(付記5)前記属性情報は、前記入力データに関する前記プログラムの実行ルートの網羅性に関する情報であることを特徴とする付記2に記載の性能チューニングプログラム。
(付記6)前記測定工程によって測定された性能指標値の測定回数に基づいて、前記合成結果の信頼度を算出させる信頼度算出工程を前記コンピュータに実行させることを特徴とする付記1〜5のいずれか一つに記載の性能チューニングプログラム。
(付記7)前記チューニングポイントの候補となる関数の前記入力データごとの性能指標値に基づいて、前記チューニングポイントの候補となる関数に対するチューニング判断の指標値を算出させる指標値算出工程を前記コンピュータに実行させることを特徴とする付記1〜6のいずれか一つに記載の性能チューニングプログラム。
(付記8)前記指標値算出工程によって算出された算出結果に基づいて、前記抽出工程(以下、「第1の抽出工程」という)によって抽出されたチューニングポイントの候補となる関数の中から、チューニングポイントとなる関数を抽出させる第2の抽出工程を前記コンピュータに実行させることを特徴とする付記7に記載の性能チューニングプログラム。
(付記9)付記1〜8のいずれか一つに記載の性能チューニングプログラムを記録した前記コンピュータに読み取り可能な記録媒体。
(付記10)対象プログラムに与える複数の入力データを取得する取得手段と、
前記取得手段によって取得された複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定する測定手段と、
前記測定手段によって測定された前記入力データごとの性能指標値を、前記関数ごとに合成する合成手段と、
前記合成手段によって合成された前記関数ごとの合成結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出する抽出手段と、
を備えることを特徴とする性能チューニング装置。
(付記11)対象プログラムに与える複数の入力データを取得する取得工程と、
前記取得工程によって取得された複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定する測定工程と、
前記測定工程によって測定された前記入力データごとの性能指標値を、前記関数ごとに合成する合成工程と、
前記合成工程によって合成された前記関数ごとの合成結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出する抽出工程と、
を含んだことを特徴とする性能チューニング方法。
以上のように、この発明にかかる性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法は、プログラムのチューニングに有用であり、特に関数が多いプログラムに適している。
この発明の実施の形態にかかる性能チューニングの概要を示す説明図である。 この発明の実施の形態にかかる性能チューニング装置のハードウェア構成を示すブロック図である。 この発明の実施の形態にかかる性能チューニング装置の機能的構成を示すブロック図である。 関数ごとの性能指標値の一例を示すグラフである。 合成部による合成結果を示す説明図である。 合成指標値の算出例を示す図表である。 この発明の実施の形態にかかる性能チューニング装置の性能チューニング処理手順を示すフローチャートである。
符号の説明
300 性能チューニング装置
301 取得部
302 測定部
303 合成部
304 抽出部
305 信頼度算出部
306 合成指標値算出部

Claims (9)

  1. 対象プログラムに与える複数の入力データを取得し、
    取得した前記複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定し、
    測定した前記入力データごとの前記性能指標値と、前記入力データに関する属性情報に基づいて設定される重み係数との積を、前記関数ごとに加算し、
    前記関数ごとの前記加算結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出する、
    処理をコンピュータに実行させる性能チューニングプログラム。
  2. 前記属性情報は、前記入力データのデータサイズであることを特徴とする請求項1に記載の性能チューニングプログラム。
  3. 前記属性情報は、前記複数の入力データにおける入力データのデータ形式の出現頻度であることを特徴とする請求項1に記載の性能チューニングプログラム。
  4. 前記属性情報は、前記入力データに関する前記対象プログラムの実行ルートの網羅性に関する情報であることを特徴とする請求項1に記載の性能チューニングプログラム。
  5. 測定した前記性能指標値の測定回数に基づいて、前記加算結果の信頼度を算出する処理を前記コンピュータに実行させることを特徴とする請求項1〜4のいずれか一つに記載の性能チューニングプログラム。
  6. 前記性能指標値はサイクル数で表され、
    前記チューニングポイントの候補となる関数の前記入力データごとの性能指標値と、前記重み係数と、1から前記入力データでのVLIW命令数/サイクル数を引いた値との積を、前記関数ごとに加算することにより、前記チューニングポイントの候補となる関数に対するチューニング判断の指標値を算出する処理を前記コンピュータに実行させることを特徴とする請求項1〜5のいずれか一つに記載の性能チューニングプログラム。
  7. 対象プログラムに与える複数の入力データを取得し、
    取得した前記複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定し、
    測定した前記入力データごとの前記性能指標値と、前記入力データに関する属性情報に基づいて設定される重み係数との積を、前記関数ごとに加算し、
    前記関数ごとの前記加算結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出する、
    処理をコンピュータに実行させる性能チューニングプログラムを記録した前記コンピュータに読み取り可能な記録媒体。
  8. コンピュータを有する性能チューニング装置であって、
    対象プログラムに与える複数の入力データを取得し、
    取得した前記複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定し、
    測定した前記入力データごとの前記性能指標値と、前記入力データに関する属性情報に基づいて設定される重み係数との積を、前記関数ごとに加算し、
    前記関数ごとの前記加算結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出する、
    処理を前記コンピュータが実行することを特徴とする性能チューニング装置。
  9. コンピュータが実行する性能チューニング方法であって、
    前記コンピュータにより、対象プログラムに与える複数の入力データを取得し、
    前記コンピュータにより、取得した前記複数の入力データをそれぞれ前記対象プログラムに与えて実行させることにより、前記対象プログラム内の機能を特定する関数ごとの性能指標値を、前記入力データごとに測定し、
    前記コンピュータにより、測定した前記入力データごとの前記性能指標値と、前記入力データに関する属性情報に基づいて設定される重み係数との積を、前記関数ごとに加算し、
    前記コンピュータにより、前記関数ごとの前記加算結果に基づいて、前記関数の中からチューニングポイントの候補となる関数を抽出する、
    ことを特徴とする性能チューニング方法。
JP2006075394A 2006-03-17 2006-03-17 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法 Expired - Fee Related JP5431633B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006075394A JP5431633B2 (ja) 2006-03-17 2006-03-17 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法
US11/524,384 US8762975B2 (en) 2006-03-17 2006-09-21 Performance tuning apparatus, performance tuning method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006075394A JP5431633B2 (ja) 2006-03-17 2006-03-17 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法

Publications (2)

Publication Number Publication Date
JP2007249844A JP2007249844A (ja) 2007-09-27
JP5431633B2 true JP5431633B2 (ja) 2014-03-05

Family

ID=38519494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006075394A Expired - Fee Related JP5431633B2 (ja) 2006-03-17 2006-03-17 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法

Country Status (2)

Country Link
US (1) US8762975B2 (ja)
JP (1) JP5431633B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012142144A2 (en) * 2011-04-12 2012-10-18 Opnet Technologies, Inc. Assessing application performance with an operational index
US9652355B2 (en) 2012-09-25 2017-05-16 Nec Corporation Bottleneck detection device, method and recording medium storing program

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH081608B2 (ja) 1986-01-22 1996-01-10 富士通株式会社 プログラム実行解析ツール
US5485574A (en) 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs
JPH07191882A (ja) 1993-12-27 1995-07-28 Nec Corp メモリアクセス頻度測定方式
JPH08263372A (ja) 1995-03-28 1996-10-11 Hitachi Ltd キャッシュミス情報の収集とチューニングを行う装置
US5787285A (en) * 1995-08-15 1998-07-28 International Business Machines Corporation Apparatus and method for optimizing applications for multiple operational environments or modes
US5966538A (en) * 1997-10-31 1999-10-12 Hewlett-Packard Company Method and apparatus for automatically determining which compiler options should be used when compiling a computer program
US6959431B1 (en) * 1999-05-13 2005-10-25 Compuware Corporation System and method to measure and report on effectiveness of software program testing
US7222269B2 (en) 2001-12-06 2007-05-22 Ns Solutions Corporation Performance evaluation device, performance evaluation information managing device, performance evaluation method, performance evaluation information managing method, performance evaluation system
JP3987333B2 (ja) * 2001-12-06 2007-10-10 新日鉄ソリューションズ株式会社 性能測定装置、性能測定システム、記録媒体およびプログラム
JP2003316611A (ja) * 2002-04-19 2003-11-07 Hitachi Ltd プログラム性能解析方法及びその実施装置並びにその処理プログラム
US8276135B2 (en) * 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7228534B2 (en) * 2003-06-14 2007-06-05 Intel Corporation Optimizing performance of a program or a computer system
US7546598B2 (en) * 2003-09-03 2009-06-09 Sap Aktiengesellschaft Measuring software system performance using benchmarks
JP2005100161A (ja) * 2003-09-25 2005-04-14 Hitachi Software Eng Co Ltd 性能試験支援装置
US7770157B2 (en) * 2005-08-08 2010-08-03 International Business Machines Corporation System and method for improving virtual machine performance using an offline profile repository

Also Published As

Publication number Publication date
US8762975B2 (en) 2014-06-24
JP2007249844A (ja) 2007-09-27
US20070220489A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
US8886515B2 (en) Systems and methods for enhancing machine translation post edit review processes
JP4395176B2 (ja) 未来技術動向予測支援装置、方法、プログラム及び未来技術動向予測支援サービスを提供する方法
JP4997892B2 (ja) 検索システム、検索方法及び検索プログラム
CN111738589B (zh) 基于内容推荐的大数据项目工作量评估方法、装置及设备
JP4682030B2 (ja) 図形検索プログラム、該プログラムを記録した記録媒体、図形検索装置、および図形検索方法
JP2017146888A (ja) 設計支援装置及び方法及びプログラム
US8510249B2 (en) Determining whether text information corresponds to target information
JP2007323315A (ja) 協調フィルタリング方法、協調フィルタリング装置、および協調フィルタリングプログラムならびにそのプログラムを記録した記録媒体
JP5866064B2 (ja) 画像検索装置、画像検索方法、および記録媒体
JP6012860B2 (ja) 作業時間推定装置
JP6025487B2 (ja) フォレンジック分析システムおよびフォレンジック分析方法並びにフォレンジック分析プログラム
JP5431633B2 (ja) 性能チューニングプログラム、該プログラムを記録した記録媒体、性能チューニング装置、および性能チューニング方法
JP2006201926A (ja) 類似文書検索システム、類似文書検索方法、およびプログラム
US7580570B2 (en) Accuracy model for recognition signal processing engines
JP5370256B2 (ja) 解析支援プログラム、解析支援装置および解析支援方法
JP6529698B2 (ja) データ分析装置およびデータ分析方法
JP4739006B2 (ja) 画像出力装置、画像出力方法、および画像出力プログラム
US9858113B2 (en) Creating execution flow by associating execution component information with task name
US8694289B2 (en) Bayesian model generating computer product, apparatus, and method
JP4759419B2 (ja) 遅延解析プログラム、記録媒体、遅延解析方法、および遅延解析装置
US7681161B2 (en) Circuit delay analyzer, circuit delay analyzing method, and computer product
JP2016134079A (ja) 分析プログラム、分析方法及び分析装置
JP7435740B2 (ja) 音声認識装置、制御方法、及びプログラム
WO2022172445A1 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
JP4001605B2 (ja) 翻訳パターン作成装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5431633

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees