JPWO2016181549A1 - 性能評価装置及び性能評価プログラム - Google Patents

性能評価装置及び性能評価プログラム Download PDF

Info

Publication number
JPWO2016181549A1
JPWO2016181549A1 JP2017517563A JP2017517563A JPWO2016181549A1 JP WO2016181549 A1 JPWO2016181549 A1 JP WO2016181549A1 JP 2017517563 A JP2017517563 A JP 2017517563A JP 2017517563 A JP2017517563 A JP 2017517563A JP WO2016181549 A1 JPWO2016181549 A1 JP WO2016181549A1
Authority
JP
Japan
Prior art keywords
model
performance
evaluation
program
formula
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.)
Granted
Application number
JP2017517563A
Other languages
English (en)
Other versions
JP6239195B2 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2016181549A1 publication Critical patent/JPWO2016181549A1/ja
Application granted granted Critical
Publication of JP6239195B2 publication Critical patent/JP6239195B2/ja
Active 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

性能評価装置(10)は、対象プログラム(40)の構造を待ち行列モデルにより表したプログラムモデル式(81)と、対象プログラム(40)によるハードウェアリソースの要求構造を待ち行列モデルにより表したリソースモデル式(82)とが組み合わせられた処理性能モデル式(83)のパラメータの値(84)を、対象プログラムを評価用計算機(21)で動作させた結果を示す性能データ(50)に基づき計算して、評価モデル式(85)を生成する。性能評価装置(10)は、評価モデル式(84)のパラメータに、対象システムのハードウェアの構成及び能力を示す計算機リソースデータ(60)を設定して、対象システムで対象プログラム(40)を動作させた場合の性能を評価する。

Description

この発明は、システムの性能評価技術に関する。
システム構築する際、使用する計算機リソースを適切に決定することが重要である。計算機リソースとは、ハードウェアの構成及び能力である。決定した計算機リソースが適切であるか確認するためには、決定した計算機リソースを用いた場合に、システムで求められる性能を満たすかどうかを事前に検証することが必要である。
IoT(Internet of Things)分野及びスマートメータシステムといった大量のデータトランザクションが同時発生するような大規模なシステムでは、数百万件規模のデータ量を数分程度で処理することが求められる。しかし、大規模なシステムの場合、必要となるハードウェアが多く、ハードウェアの調達が困難なため事前に十分な検証を行えないことがある。
そこで、大規模なシステムの場合、手持ちハードウェアを元に構成した試験環境で性能を測定し、測定した性能を計算により本番環境での性能に変換することが行われている。
例えば、試験環境と本番環境との規模の差異により、線形関数に従って性能が劣化するとして、試験環境で測定された性能を計算により本番環境の性能に変換することがある。しかし、実際には、規模の差異により、指数関数に従って性能が劣化する場合がある。この場合、事前検証では性能を満たすと判定されていても、本番環境で実際にシステムを稼働させると性能を満たさないことが起こる。
特許文献1には、本番環境を構成する並列計算機の構成データから計算機の待ち行列モデルを生成することが記載されている。特許文献1では、待ち行列モデルに基づき想定されるレスポンス時間を計算している。これにより、特許文献1では、本番環境を用意することなく、本番環境の性能を予測している。
特開2000−298593号公報
特許文献1に記載された方法では、待ち行列モデルを生成するために、システムの構成を詳細なプログラム要素に分解し、各プログラム要素の特性値を取得する必要がある。具体的には、システムを構成する各プログラム要素の利用傾向と、各プログラム要素がリソースを使用する頻度及び使用する時間とを取得する必要がある。
そのため、外部調達したパッケージ製品のようなブラックボックス化された製品を組み込んだシステムでは、特許文献1に記載された方法を使用することは困難である。また、プログラムの構成が複雑な場合にも、特許文献1に記載された方法を使用することは困難である。
本発明は、簡便に性能評価を実施可能とすることを目的とする。
この発明に係る性能評価装置は、
対象プログラムの構造を待ち行列モデルにより表したプログラムモデル式と、前記対象プログラムによるハードウェアリソースの要求構造を待ち行列モデルにより表したリソースモデル式とが組み合わせられた処理性能モデル式のパラメータの値を、前記対象プログラムを評価用計算機で動作させた結果を示す性能データに基づき計算して、評価モデル式を生成する評価モデル生成部と、
前記評価モデル生成部によって生成された評価モデル式のパラメータに、対象システムのハードウェアの構成及び能力を示す計算機リソースデータを設定して、前記対象システムで前記対象プログラムを動作させた場合の性能を評価する性能評価部と
を備える。
この発明では、プログラムモデル式とリソースモデル式とが組み合わせられた処理性能モデル式のパラメータを、評価用計算機で動作させた結果を示す性能データに基づき計算して評価モデル式を生成する。これにより、システムを構成するプログラムの特性値を取得することなく、性能評価を行うことが可能である。
実施の形態1に係る性能評価装置10の構成図。 評価用計算機21が1台の場合の性能データ50を示す図。 評価用計算機21が複数台の場合の性能データ50を示す図。 プログラムモデル式81の一覧を示す図。 プログラムモデル式81のモデルa1の説明図。 プログラムモデル式81のモデルa2の説明図。 プログラムモデル式81のモデルa3の説明図。 プログラムモデル式81のモデルa4の説明図。 プログラムモデル式81のモデルa5の説明図。 プログラムモデル式81のモデルa6の説明図。 プログラムモデル式81のモデルa7の説明図。 リソースモデル式82の一覧を示す図。 実施の形態1に係る性能評価装置10の動作を示すフローチャート。 実施の形態1に係る評価モデル生成処理のフローチャート 特性表53の説明図。 計算機リソースデータ60を示す図。 評価結果70を示す図。 評価結果70の他の例を示す図。 実施の形態2に係る性能評価装置10の構成図。 処理性能モデル式83のパターンを示す図。 実施の形態2に係る評価モデル生成処理を示すフローチャート。 実施の形態2に係る評価モデル生成処理の他の流れ示すフローチャート。 実施の形態1,2に係る性能評価装置10のハードウェア構成例を示す図。
実施の形態1.
***構成の説明***
図1に基づき、実施の形態1に係る性能評価装置10の構成について説明する。
性能評価装置10は、対象システムの計算機リソースで対象プログラム40を動作させた場合の性能を評価する。ここでは、対象プログラム40は、単体のプログラムではなく、機能単位等のある程度大きなプログラムの集合である。また、ここでは、対象システムの計算機リソースとは、本番環境として想定する計算機リソースのことである。
性能評価装置10は、評価用計算機21とネットワークを介して接続されている。性能評価装置10は、測定部20と、分析部30とを備える。
評価用計算機21は、対象プログラム40を動作させるための計算機である。図1では、評価用計算機21は1台だけ示されているが、計算機リソースの異なる評価用計算機21が複数台あってもよい。
測定部20は、評価用計算機21で対象プログラム40を動作させ、動作させた結果を示す性能データ50を生成する。評価用計算機21が複数台ある場合には、測定部20は、各評価用計算機21で対象プログラム40を動作させ、各評価用計算機21で動作させた結果を示す性能データ50を生成する。
具体的には、測定部20は、複数のインデックスiについて、到着率λを設定する。測定部20は、各インデックスiについて、到着率λでリクエストを対象プログラム40に送信し、リクエストの処理時間Tqを計測する。ここでは、処理時間Tqは、ラウンドトリップ時間である。
そして、測定部20は、図2に示すように、評価用計算機21の計算機リソースを示す計算機リソースデータ51と、各インデックスiについての到着率λ及び処理時間Tqのデータセット52とを含む性能データ50を生成する。
図2では、評価用計算機21が1台であることを想定して、性能データ50には、計算機リソースデータ51と、データセット52との組が1つだけ存在した。しかし、評価用計算機21が複数台ある場合には、図3に示すように、性能データ50には、計算機リソースデータ51と、データセット52との組が評価用計算機21の台数分存在することになる。
分析部30は、測定部20が生成した性能データ50を用いて、対象システムの計算機リソースで対象プログラム40を動作させた場合の性能を評価する。
分析部30は、モデル取得部31と、プログラムモデル記憶部32と、リソースモデル記憶部33と、評価モデル生成部34と、性能評価部35とを備える。
モデル取得部31は、プログラムモデル記憶部32から対象プログラム40に対応するプログラムモデル式81を取得するとともに、リソースモデル記憶部33から対象プログラム40に対応するリソースモデル式82を取得する。
ここでは、モデル取得部31は、性能評価装置10の利用者からの指示に従い選択されたプログラムモデル式81及びリソースモデル式82を取得する。
プログラムモデル記憶部32は、複数のプログラムモデル式81を記憶する。プログラムモデル式81は、対象プログラム40の構造を待ち行列モデルにより表した式である。
具体的には、プログラムモデル式81は、対象プログラム40に対するリクエスト1つ当たりの平均処理時間Tqを、窓口数nと、リクエストの到着率λと、リクエスト1つ当たりのプロセスの処理時間Tsとを用いて表した式である。平均処理時間Tqとは、リクエストが到着してから、そのリクエストについてのプロセスの処理が完了するまでの平均時間である。
リソースモデル記憶部33は、複数のリソースモデル式82を記憶する。リソースモデル式82は、対象プログラム40によるハードウェアリソースの要求構造を待ち行列モデルにより表した式である。つまり、リソースモデル式82は、対象プログラム40内部のプロセスがCPU(Central Processing Unit)やストレージI/O(Input/Output)等のハードウェアリソースをどのように要求するかを待ち行列モデルにより表した式である。
ハードウェアリソースは、OS(Operating System)によって各プロセスに配分される。そのため、各プロセスがハードウェアリソースを要求した場合の処理時間は、他のプロセスからのリクエストの有無によって変動する。そこで、ここでは、待ち行列モデルを用いて対象プログラム40によるハードウェアリソースの要求構造を表している。
具体的には、リソースモデル式82は、あるハードウェアリソースに対するリクエスト1つ当たりの平均処理時間Tqを、窓口数nと、リクエストの到着率λと、リクエスト1つ当たりのプロセスの処理時間Tsとを用いて表した式である。平均処理時間Tqとは、リクエストが到着してから、そのリクエストについてのプロセスの処理が完了するまでの平均時間である。
評価モデル生成部34は、モデル取得部31によって取得されたプログラムモデル式81及びリソースモデル式82を組み合わせて処理性能モデル式83を生成する。そして、評価モデル生成部34は、処理性能モデル式83の少なくとも一部のパラメータの値84を、測定部20によって生成された性能データ50に基づき計算して、評価モデル式85を生成する。
評価モデル生成部34は、モデル合成部341と、パラメータ計算部342と、モデル式生成部343とを備える。
モデル合成部341は、プログラムモデル式81及びリソースモデル式82を組み合わせて処理性能モデル式83を生成する。
プログラムモデル式81におけるプロセスの処理時間Tsは、対象プログラム40内部のプロセスが要求するハードウェアリソースの処理時間の合計と考えることができる。そこで、モデル合成部341は、プログラムモデル式81におけるプロセスの処理時間Tsを、リソースモデル式82における平均処理時間Tqを用いて表して、処理性能モデル式83を生成する。具体的には、対象プログラム40が利用するハードウェアリソースをP個とすると、Ts:=Σi=1 Tqr_iとする。
パラメータ計算部342は、生成した処理性能モデル式83の少なくとも一部のパラメータを近似する値84を、測定部20によって生成された性能データ50に基づき計算する。
ここでは、パラメータ計算部342は、各インデックスiについて、処理性能モデル式83における到着率λを性能データ50における到着率λとした場合に、処理性能モデル式83における平均処理時間Tqが性能データ50における処理時間Tqに近い時間となるように、処理性能モデル式83における窓口数nと、窓口数nと、リクエストの到着率λと、プロセスの処理時間Tsとの少なくとも一部のパラメータについての値84を計算する。
モデル式生成部343は、処理性能モデル式83のパラメータのうち、値84が計算されたパラメータを値84に置き換えて、評価モデル式85を生成する。
性能評価部35は、評価モデル生成部34によって生成された評価モデル式85のパラメータに、対象システムの計算機リソースデータ60を設定して、対象システムで対象プログラム40を動作させた場合の性能を評価する。そして、性能評価部35は、評価結果70を出力する。
図4から図11に基づき、プログラムモデル式81について説明する。
図4に示すように、ここでは、プログラムモデル記憶部32が7種類のプログラムモデル式81を記憶している。
なお、プログラムモデル記憶部32が記憶するプログラムモデル式81は、性能を評価したい対象プログラム40に応じて決定されるものである。したがって、プログラムモデル記憶部32は、図4に示す一部のプログラムモデル式81だけを記憶していてもよいし、図4に示すプログラムモデル式81以外にも他のプログラムモデル式81を記憶していてもよい。
図5に基づき、図4のモデルa1について説明する。
モデルa1は、処理要求が到着するとすぐにプログラムが処理を実行する場合を模擬したモデルである。つまり、待ち時間Twを0と仮定できる場合である。
モデルa1の平均処理時間Tqa1=Tsとなる。
図6に基づき、図4のモデルa2について説明する。
モデルa2は、到着率λでプログラムが処理要求を受け取り1個のキューに蓄積して、1個のプロセスがキューから処理要求を取り出し、逐次実行する場合を模擬したモデルである。
モデルa2の平均処理時間Tqa2は、ケンドール記号におけるM/M/1の挙動を示すと仮定できる。M/M/1の1つ目のMは到着間隔の分布がポアソン分布に従うことを意味する。M/M/1の2つ目のMは処理時間の分布がポアソン分布に従うことを意味する。M/M/1の1は窓口が1個であることを意味する。
したがって、モデルa2の平均処理時間Tqa2=mmn(1,λ,Ts)となる。ここで、mmn(n,λ,Ts)は、ケンドールによる待ち行列モデルを数式化したものである。
mmn(m,R,Ts)は、サービス窓口数m、平均到着率R、平均プロセス処理時間Tsのときの平均処理時間Tqを意味する。mmn(m,R,Ts)は以下の式により算出される。
mmn(m,R,Ts)=Tw(m,u,Ts,ps)+Ts
u=R*Ts,ps=u/m
Tw(m,u,Ts,ps)=(P(m,u,ps)*Ts)/(m*(1−ps))
P(m,u,ps)=(1−Rvb(m,u))/(1−ps*Rvb(m,u))
Rvb(m,u)=(1−(u/m!))/(Σk=0 (u/m!))
図7に基づき、図4のモデルa3について説明する。
モデルa3は、到着率λでプログラムが処理要求を受け取り1個のキューに蓄積して、n個のプロセスがキューから処理要求を取り出し、逐次実行する場合を模擬したモデルである。
モデルa3の平均処理時間Tqa3は、ケンドール記号におけるM/M/nの挙動を示すと仮定できる。M/M/nのnは窓口がn個であることを意味する。したがって、モデルa3の平均処理時間Tqa3=mmn(n,λ,Ts)となる。
図8に基づき、図4のモデルa4について説明する。
モデルa4は、到着率λでプログラムが処理要求を受け取りn個のキューに蓄積して、n個のプロセスが対応するキューから処理要求を取り出し、逐次実行する場合を模擬したモデルである。モデルa4は、到着率λがn個に等分されて各キューに蓄積され、各プロセスが対応するキューから処理要求を取り出し、逐次実行する場合を模擬したモデルと言い換えることができる。
モデルa4の平均処理時間Tqa4は、ケンドール記号におけるM/M/1の挙動を示すと仮定できる。したがって、モデルa4の平均処理時間Tqa4=mmn(1,λ/n,Ts)となる。
図9に基づき、図4のモデルa5について説明する。
モデルa5は、モデルa3が複数連なった場合を模擬したモデルである。つまり、モデルa5は、到着率λでプログラムが処理要求を受け取り1個のキューに蓄積して、n個のプロセスがキューから処理要求を取り出し、逐次実行する処理が複数連なった場合を模擬したモデルである。
モデルa5の平均処理時間Tqa5は、複数のモデルa3の総和を示すと仮定できる。したがって、モデルa5の平均処理時間Tqa5=ΣTqa3_i=Σmmn(na_i,λ,Tsa_i)となる。また、mmn(1,λ/Σa_i,ΣTsa_i)>Tqa5>mmn(Σa_i,λ,ΣTsa_i)である。
図10に基づき、図4のモデルa6について説明する。
モデルa6は、モデルa4が複数連なった場合を模擬したモデルである。つまり、モデルa6は、到着率λでプログラムが処理要求を受け取りn個のキューに蓄積して、n個のプロセスが対応するキューから処理要求を取り出し、逐次実行する処理が複数連なった場合を模擬したモデルである。
モデルa6の平均処理時間Tqa6は、複数のモデルa4の総和を示すと仮定できる。したがって、モデルa6の平均処理時間Tqa6=ΣTqa4_i=Σmmn(1,λ/n,Tsa_i)となる。
図11に基づき、図4のモデルa7について説明する。
モデルa7は、モデルa6における各モデルa4が次のモデルa4の処理の完了を待つ場合を模擬したモデルである。
モデルa7の平均処理時間Tqa7=mmn(1,λ/n,Ts)*(ΣTsa_i/Ts)となる。ここで、モデルa7におけるTs=ΣTsa_i/na_iである。
モデルa7が、モデルa5における各モデルa3が次のモデルa3の処理の完了を待つ場合を模擬する場合には、モデルa7の平均処理時間Tqa7=mmn(na_i,λ,Ts)*(ΣTsa_i/Ts)となる。
図12に基づき、リソースモデル式82について説明する。
図12に示すように、ここでは、リソースモデル記憶部33が3種類のリソースモデル式82を記憶している。
なお、リソースモデル記憶部33が記憶するリソースモデル式82は、性能を評価したい対象プログラム40に応じて決定されるものである。したがって、リソースモデル記憶部33は、図12に示す一部のリソースモデル式82だけを記憶していてもよいし、図12に示すリソースモデル式82以外にも他のリソースモデル式82を記憶していてもよい。
モデルr1について説明する。
モデルr1は、CPUの性能特性を模擬したモデルである。
CPUの場合、プロセスの命令コードを実行するCPUは、ケンドール記号におけるM/M/nモデルの挙動を示すと仮定できる。したがって、CPUのコア数をnとすると、モデルr1の平均処理時間Tqr1=mmn(n,λ,Tscpu)となる。ここで、Tscpuは、単体処理特性時のCPUの消費時間である。単体処理特性時のCPUの消費時間とは、1つのCPUのコアを使って1つのプロセスを処理する場合の消費時間である。
モデルr2について説明する。
モデルr2は、ストレージI/Oの性能特性を模擬したモデルである。
ストレージI/Oの場合、キューは1つであると考えられ、ストレージI/Oは、ケンドール記号におけるM/M/1モデルの挙動を示すと仮定できる。したがって、モデルr2の平均処理時間Tqr2=mmn(1,λ,Tsstrage)となる。ここで、Tsstrageは、単体処理特性時のストレージI/Oの消費時間である。単体処理特性時のストレージI/Oの消費時間とは、1つのストレージI/Oを使って1つのプロセスを処理する場合の消費時間である。
モデルr3について説明する。
モデルr3は、ネットワークI/Oの性能特性を模擬したモデルである。
ネットワークI/Oの場合、キューは1つであると考えられ、ネットワークI/Oは、ケンドール記号におけるM/M/1モデルの挙動を示すと仮定できる。したがって、モデルr3の平均処理時間Tqr3=mmn(1,λ,Tsnet)となる。ここで、Tsnetは、単体処理特性時のネットワークI/Oの消費時間である。単体処理特性時のネットワークI/Oの消費時間とは、1つのネットワークI/Oを使って1つのプロセスを処理する場合の消費時間である。
***動作の説明***
図13に基づき、実施の形態1に係る性能評価装置10の動作を説明する。
S11の性能データ計測処理では、測定部20は、評価用計算機21で対象プログラム40を動作させ、動作させた結果を示す性能データ50を生成する。
ここでは、図2に示す性能データ50が生成されたとする。
S12のモデル取得処理では、モデル取得部31は、利用者からの指示に従い、プログラムモデル記憶部32から1つのプログラムモデル式81を取得する。また、モデル取得部31は、利用者からの指示に従い、リソースモデル記憶部33から1つ以上のリソースモデル式82を取得する。
ここでは、プログラムモデル式81としてモデルa2のTqa2=mmn(1,λ,Ts)が取得され、リソースモデル式82としてモデルr1のTqr1=mmn(n,λ,Tscpu)が取得されたとする。
S13の評価モデル生成処理では、評価モデル生成部34は、S12で取得されたプログラムモデル式81及びリソースモデル式82を組み合わせて処理性能モデル式83を生成する。そして、評価モデル生成部34は、処理性能モデル式83の少なくとも一部のパラメータを、S12で取得された性能データ50に基づき計算して、評価モデル式85を生成する。
図14に基づき、実施の形態1に係る評価モデル生成処理を説明する。
S131のモデル合成処理では、モデル合成部341は、S12で取得されたプログラムモデル式81とリソースモデル式82とを合成して、処理性能モデル式83を生成する。
ここでは、Tqa2=mmn(1,λ,Ts)のTsがTqr1=mmn(n,λ,Tscpu)に置き換えられて、Tq=mmn(1,λ,mmn(n,λ,Tscpu))が処理性能モデル式83として生成される。
S132のパラメータ計算処理では、パラメータ計算部342は、S131で生成された処理性能モデル式83の少なくとも一部のパラメータについての値84を、S12で取得された性能データ50に基づき計算する。
具体的には、パラメータ計算部342は、性能データ50のデータセット52における各インデックスiについて、Tq=mmn(1,λ,mmn(n,λ,Tscpu))の到着率λを性能データ50における到着率λとした場合に、平均処理時間Tqが性能データ50における処理時間Tqに近い時間になるように、処理性能モデル式83が最も近似した関数54となる値84を計算する。値84の計算方法は、既存の任意の方式を用いればよい。
つまり、パラメータ計算部342は、図2に示すデータセット52の到着率λ毎の処理時間Tqを図15のように示した特性表53とした場合に、到着率λ毎の処理時間Tqに最も近似した関数54となる値84を計算する。最も近似したとは、到着率λ毎の処理時間Tqに対する関数54で計算される値の最小二乗距離が最も小さくなるという意味である。
ここでは、パラメータλ及びTscpuについての値84が計算され、いずれも0.5と計算されたとする。
なお、性能評価装置10の利用者が、図15に示すようなグラフを見ながら、パラメータの値84を調整して、近似した関数54を生成することにより値84を計算してもよい。
S133のモデル式生成処理では、モデル式生成部343は、S131で生成された処理性能モデル式83のパラメータのうち、S132で値84が計算されたパラメータを計算された値84に置き換えて、評価モデル式85を生成する。
ここでは、Tq=mmn(1,λ,mmn(n,λ,Tscpu))のパラメータλ及びTscpuが、いずれも0.5に置き換えられ、Tq=mmn(1,λ,mmn(n,0.5,0.5))が評価モデル式85として生成される。
S14の性能評価処理では、性能評価部35は、S13で生成された評価モデル式85のパラメータに、対象システムの計算機リソースデータ60を設定して、対象システムで対象プログラム40を動作させた場合の性能を評価する。そして、性能評価部35は、評価結果70を出力する。
ここでは、評価モデル式85であるTq=mmn(1,λ,mmn(n,0.5,0.5))に、図16に示す計算機リソースデータ60が入力される。具体的には、評価モデル式85におけるサービス窓口数nに計算機リソースデータ60におけるCPUのコア数8が入力され、評価モデル式85における到着率λに計算機リソースデータ60に含まれる想定到着率1000TPSが入力され、平均処理時間Tqが計算される。そして、図17に示すように、計算された平均処理時間Tqが、目標処理時間0.5sec以内であるか否かを示す評価結果70が出力される。図17では、計算された平均処理時間Tqが、目標処理時間0.5sec以内であるとして、結果はOKとなっている。もし、計算された平均処理時間Tqが、目標処理時間0.5sec以内でなければ、結果はNGとなる。
***実施の形態1の効果***
以上のように、実施の形態1に係る性能評価装置10では、プログラムモデル式81とリソースモデル式82とが組み合わせられた処理性能モデル式83のパラメータの値84を、評価用計算機21で動作させた結果を示す性能データ50に基づき計算して評価モデル式85を生成する。そして、評価モデル式85により、対象システムで対象プログラム40を動作させた場合の性能評価を行う。
これにより、対象システムを構成するプログラムの特性値を取得することなく、簡便に性能評価を行うことが可能である。
特に、実施の形態1に係る性能評価装置10では、プログラムの構造を待ち行列モデルにより表したプログラムモデル式81だけを用いて評価モデル式85を生成しているわけではない。実施の形態1に係る性能評価装置10では、対象プログラム40によるハードウェアリソースの要求構造を待ち行列モデルにより表したリソースモデル式82を、プログラムモデル式81に組み込んだ処理性能モデル式83を用いて、評価モデル式85を生成している。
これにより、プログラムのキューの配置等のソフトウェア構造に起因する特性だけでなく、CPUのコア数等のハードウェア構造に起因する特性を、対象システムを構成するプログラムの特性値を取得することなく、性能評価に反映することができる。
プログラムモデル式81にリソースモデル式82を組み込んでいるため、評価モデル式85は重畳した待ち行列モデルとなっている。これにより、様々なプログラムの構造や、同一の計算機で複数のプログラムが並行して動作する場合等の性能評価にも容易に対応可能である。
スマートメータやIoTのような均一の機器のデータを集中して集めるシステムは、ランダムなデータ発生と多量で均一な処理が動作の特徴である。そのため、このようなシステムを対象とする場合には、実施の形態1に係る性能評価装置10のような待ち行列モデルを用いた性能評価が特に有効である。
なお、上記説明では、S14で性能評価部35は、結果がOKであるかNGであるかを示す評価結果70を出力した。
しかし、性能評価部35は、図18に示すように、評価モデル式85におけるサービス窓口数nに計算機リソースデータ60におけるCPUのコア数8を設定した場合の、到着率λと平均処理時間Tqとの関係をグラフ化して出力してもよい。図18では、グラフに、目標処理時間と想定到着率とも示している。これにより、利用者は、現在想定している対象システムの計算機リソースデータ60であれば、到着率λがいくつなら、目標処理時間をクリアできるか等の検討をすることが可能である。
また、上記説明では、評価用計算機21が1台だけである場合を例として説明した。しかし、評価用計算機21が複数台あってもよい。
この場合、S14では、パラメータ計算部342は、図3に示すような、各評価用計算機21についてのデータセット52を用いて値84を計算する。そして、パラメータ計算部342は、各データセット52における各インデックスiについて、到着率λを到着率λとした場合に、平均処理時間Tqを処理時間Tqが近い時間になる値84が計算される。
また、上記説明では、パラメータ計算部342は、処理性能モデル式83のパラメータを近似する値84、つまり近似値を計算するとした。しかし、パラメータ計算部342は、近似値に代えて、CPUの周波数やメモリの容量等の計算機リソースをパラメータとして含む近似式を計算してもよい。
例えば、パラメータ計算部342は、データセット52毎に近似値を計算する。そして、パラメータ計算部342は、データセット52毎の近似値の差異と、データセット52に対応する計算機リソースデータ51の計算機リソースとの差異から、計算機リソースをパラメータとして含む近似式を計算する。
図3の例であれば、評価用計算機21はCPUの周波数が異なる。そこで、パラメータ計算部342は、データセット52毎のパラメータTscpuの近似値の差異と、データセット52に対応する計算機リソースデータ51のCPUの周波数の差異とから、パラメータTscpuの値84として、CPUの周波数のパラメータVclock[GHz]を含む近似式を計算する。
例えば、図3の(a)のデータセット52により計算されたパラメータTscpuの値84が0.5であり、図3の(b)のデータセット52により計算されたパラメータTscpuの値84が1.0であったとする。図3の(a)のCPUの周波数は2GHzであり、図3の(b)のCPUの周波数は4GHzである。そこで、パラメータ計算部342は、パラメータTscpuの近似式を0.25Vclockと計算してもよい。この場合、S13では、Tq=mmn(1,λ,mmn(n,0.5,0.25Vclock))が評価モデル式85として生成される。そして、S14では、評価モデル式85における到着率λに計算機リソースデータ60における想定到着率1000TPSが入力され、評価モデル式85におけるサービス窓口数nにCPUのコア数8が入力され、評価モデル式85におけるCPUの周波数Vclockに2が入力され、平均処理時間Tqが計算される。
なお、ここでは、データセット52の数を2つとした。しかし、多くのデータセット52を用いることにより、より精度よく、またより多くの計算機リソースをパラメータとして含んだ評価モデル式85を生成することが可能である。
実施の形態2.
実施の形態1では、性能評価装置10の利用者の指示に従い取得されたプログラムモデル式81及びリソースモデル式82から評価モデル式85が生成された。
実施の形態2では、利用者の指示によらず、評価モデル式85を生成する点が実施の形態1と異なる。実施の形態2では、この異なる点を説明する。
***構成の説明***
図19に基づき、実施の形態2に係る性能評価装置10の構成について説明する。
評価モデル生成部34が、近似度計算部344を備える点が、図1に示す性能評価装置10と異なる。
モデル取得部31は、プログラムモデル記憶部32から複数のプログラムモデル式81を取得し、リソースモデル記憶部33から複数のリソースモデル式82を取得する。ここでは、モデル取得部31は、プログラムモデル記憶部32から全てのプログラムモデル式81を取得し、リソースモデル記憶部33から全てのリソースモデル式82を取得する。
モデル合成部341は、図20に示すように、モデル取得部31が取得した各プログラムモデル式81及び各リソースモデル式82を組み合わせて全てのパターンの処理性能モデル式83を生成する。
パラメータ計算部342は、図20に示すように、モデル合成部341が生成した各処理性能モデル式83について、パラメータの値84を計算する。
近似度計算部344は、図20に示すように、パラメータ計算部342が各処理性能モデル式83について計算した値84の近似度86を計算する。
ここでは、近似度計算部344は、到着率λ毎の処理時間Tqに対するパラメータ計算部342が計算した関数54で計算される値の最小二乗距離を近似度86として計算する。これに限らず、近似度計算部344は、パラメータ計算部342が計算した関数54で計算される値と、データセット52の値との差分の最大値を近似度として計算するなど、他の方法により近似度86を計算してもよい。
モデル式生成部343は、近似度計算部344が計算した近似度86が最も高い処理性能モデル式83におけるパラメータのうち、値84が計算されたパラメータを、その処理性能モデルについて計算された値84に置き換えて、評価モデル式85を生成する。
***動作の説明***
図21に基づき、実施の形態2に係る評価モデル生成処理を説明する。
なお、前提として、S12のモデル取得処理では、モデル取得部31は、プログラムモデル記憶部32から全てのプログラムモデル式81を取得し、リソースモデル記憶部33から全てのリソースモデル式82を取得する。
S231からS233の理を全てのパターンの処理性能モデル式83について実行する。
S231のモデル合成処理では、モデル合成部341は、S23で取得された各プログラムモデル式81及び各リソースモデル式82を組み合わせて、まだ生成されていないパターンの処理性能モデル式83を生成する。
S232のパラメータ計算処理では、パラメータ計算部342は、S231で生成された処理性能モデル式83についてパラメータの値84を計算する。
S233の近似度計算処理では、近似度計算部344は、S231で生成された処理性能モデル式83についてS232で計算された値84の近似度86を計算する。
S234のモデル式生成処理では、モデル式生成部343は、S233で計算された近似度86が最も高い処理性能モデル式83について、その処理性能モデル式83のパラメータを、その処理性能モデル式83について計算された値84に置き換えて、評価モデル式85を生成する。
***実施の形態2の効果***
以上のように、実施の形態1に係る性能評価装置10では、複数の処理性能モデル式83を生成して、最も近似する関数54を構成する処理性能モデル式83から評価モデル式85を生成する。
これにより、対象プログラム40の構造が自明でない場合等にも、評価モデル式85を生成することが可能となる。
なお、上記説明では、モデル取得部31は、全てのプログラムモデル式81及び全てのリソースモデル式82を取得し、モデル合成部341は、全てのパターンの処理性能モデル式83を生成するとした。しかし、これでは評価モデル式85を生成するための処理時間が長くなる恐れがある。
そこで、図22に示すように、処理を変更してもよい。
具体的には、1度目のS231からS233のループでは、モデル合成部341は、全てのパターンの処理性能モデル式83を生成するのではなく、一部の代表的なパターンの処理性能モデル式83だけを生成する。S234では、モデル式生成部343は、生成した処理性能モデル式83のうち最も近似度86が高い処理性能モデル式83を用いて評価モデル式85を生成する。
そして、モデル式生成部343は、再分析が必要か否かを決定する。ここでは、モデル式生成部343は、生成した評価モデル式85及び近似度86を利用者に確認させ、利用者の指示に従い再分析が必要か否かを決定する。モデル式生成部343は、近似度86が閾値以上であるか否か等により、再分析が必要か否かを決定してもよい。
再分析が必要であると決定された場合には、処理がS231からS233のループの先頭に戻される。2度目以降のループでは、モデル合成部341は、直前のS234で生成された評価モデル式85の基となった処理性能モデル式83に近いパターンの処理性能モデル式83を複数生成する。モデル式生成部343は、生成した処理性能モデル式83のうち最も近似度86が高い処理性能モデル式83を用いて評価モデル式85を生成する。
そして、モデル式生成部343は、再分析が必要か否かを決定する。
つまり、まず大まかなパターンで評価モデル式85を生成し、徐々に詳細なパターンで評価モデル式85を生成する。これにより、処理時間を短縮しつつ、比較的精度の高い評価モデル式85を生成することが可能である。
ここでは、1度目のS231からS233のループでは、代表的なパターンとして、各プログラムモデル式81及び各リソースモデル式82の係数を1に固定した場合のパターンを生成する。2度目のS231からS233のループでは、S234で生成された評価モデル式85の基となった処理性能モデル式83で用いられた各プログラムモデル式81及び各リソースモデル式82の係数を変化させた処理性能モデル式83を生成する。3度目以降のS231からS233のループでは、係数をより細かく変化させた処理性能モデル式83を生成する。
図23は、実施の形態1,2に係る性能評価装置10のハードウェア構成例を示す図である。
性能評価装置10はコンピュータである。
性能評価装置10は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インターフェース905、ディスプレイインターフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インターフェース905は、ケーブル911により入力装置907に接続されている。
ディスプレイインターフェース906は、ケーブル912によりディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インターフェース905は、入力装置907のケーブル911が接続されるポートである。入力インターフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインターフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインターフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
補助記憶装置902には、上述した測定部20と、モデル取得部31と、評価モデル生成部34と、モデル合成部341と、パラメータ計算部342と、モデル式生成部343と、近似度計算部344と、性能評価部35と(以下、測定部20と、モデル取得部31と、評価モデル生成部34と、モデル合成部341と、パラメータ計算部342と、モデル式生成部343と、近似度計算部344と、性能評価部35とをまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図23では、1つのプロセッサ901が図示されているが、性能評価装置10が複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値とが、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリにファイルとして記憶される。また、上述したプログラムモデル記憶部32及びリソースモデル記憶部33は、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリとして実現される。
「部」を「サーキットリー」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
10 性能評価装置、20 測定部、21 評価用計算機、30 分析部、31 モデル取得部、32 プログラムモデル記憶部、33 リソースモデル記憶部、34 評価モデル生成部、341 モデル合成部、342 パラメータ計算部、343 モデル式生成部、344 近似度計算部、35 性能評価部、40 対象プログラム、50 性能データ、51 計算機リソースデータ、52 データセット、53 特性表、54 関数、60 計算機リソースデータ、70 評価結果、81 プログラムモデル式、82 リソースモデル式、83 処理性能モデル式、84 値、85 評価モデル式、86 近似度。

Claims (6)

  1. 対象プログラムの構造を待ち行列モデルにより表したプログラムモデル式と、前記対象プログラムによるハードウェアリソースの要求構造を待ち行列モデルにより表したリソースモデル式とが組み合わせられた処理性能モデル式のパラメータの値を、前記対象プログラムを評価用計算機で動作させた結果を示す性能データに基づき計算して、評価モデル式を生成する評価モデル生成部と、
    前記評価モデル生成部によって生成された評価モデル式のパラメータに、対象システムのハードウェアの構成及び能力を示す計算機リソースデータを設定して、前記対象システムで前記対象プログラムを動作させた場合の性能を評価する性能評価部と
    を備える性能評価装置。
  2. 前記プログラムモデル式は、リクエスト1つ当たりの平均処理時間Tqを、窓口数nと、リクエストの到着率λと、リクエスト1つ当たりのプロセスの処理時間Tsとを用いて表した式であり、
    前記リソースモデル式は、リクエスト1つ当たりの平均処理時間Tqを、窓口数nと、リクエストの到着率λと、リクエスト1つ当たりのプロセスの処理時間Tsとを用いて表した式であり、
    前記処理性能モデル式は、前記プログラムモデル式における処理時間Tsを、前記リソースモデル式における平均処理時間Tqを用いて表した式である
    請求項1に記載の性能評価装置。
  3. 前記性能データは、複数のインデックスiについて、リスエストの到着率λに対するリクエスト1つ当たりの処理時間Tqを示し、
    前記評価モデル生成部は、
    各インデックスiについて、前記処理性能モデル式における前記到着率λを前記性能データにおける前記到着率λとした場合に、前記処理性能モデル式における前記平均処理時間Tqが前記性能データにおける前記処理時間Tqに近い時間になるように、前記処理性能モデル式における窓口数nと、窓口数nと、リクエストの到着率λと、プロセスの処理時間Tsとの少なくとも一部のパラメータについて、近似値、又は、計算機リソースをパラメータとして有する近似式を前記値として計算するパラメータ計算部と、
    前記処理性能モデル式における前記少なくとも一部のパラメータを、前記パラメータ計算部によって計算された近似値又は近似式に置き換えて前記評価モデル式を生成するモデル式生成部と
    を備える請求項2に記載の性能評価装置。
  4. 前記パラメータ計算部は、複数のプログラムモデル式の各プログラムモデル式と、複数のリソースモデル式の各リソースモデル式とを組み合わせた複数の処理性能モデル式それぞれについて、前記少なくとも一部のパラメータについての近似値又は近似式を計算し、
    前記モデル式生成部は、計算された近似値又は近似式の近似度が高い処理性能モデル式における前記少なくとも一部のパラメータを、その処理性能モデルについて計算された近似値又は近似式に置き換えて前記評価モデル式を生成する
    請求項3に記載の性能評価装置。
  5. 前記評価モデル生成部は、前記処理性能モデル式のパラメータを、前記対象プログラムを構成の異なる複数の評価用計算機で動作させて得られた複数の性能データに基づき計算して、前記評価モデル式を生成する
    請求項1に記載の性能評価装置。
  6. 対象プログラムの構造を待ち行列モデルにより表したプログラムモデル式と、前記対象プログラムによるハードウェアリソースの要求構造を待ち行列モデルにより表したリソースモデル式とが組み合わせられた処理性能モデル式のパラメータを、前記対象プログラムを評価用計算機で動作させた結果を示す性能データに基づき計算して、評価モデル式を生成する評価モデル生成処理と、
    前記評価モデル生成処理によって生成された評価モデル式のパラメータの値に、対象システムのハードウェアの構成及び能力を示す計算機リソースデータを設定して、前記対象システムで前記対象プログラムを動作させた場合の性能を評価する性能評価処理と
    をコンピュータに実行させる性能評価プログラム。
JP2017517563A 2015-05-14 2015-05-14 性能評価装置及び性能評価プログラム Active JP6239195B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/063900 WO2016181549A1 (ja) 2015-05-14 2015-05-14 性能評価装置及び性能評価プログラム

Publications (2)

Publication Number Publication Date
JPWO2016181549A1 true JPWO2016181549A1 (ja) 2017-07-13
JP6239195B2 JP6239195B2 (ja) 2017-11-29

Family

ID=57247897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017517563A Active JP6239195B2 (ja) 2015-05-14 2015-05-14 性能評価装置及び性能評価プログラム

Country Status (2)

Country Link
JP (1) JP6239195B2 (ja)
WO (1) WO2016181549A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633194A (zh) * 2019-09-26 2019-12-31 中国民用航空总局第二研究所 一种硬件资源在特定环境下的性能评估方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018105079A1 (ja) * 2016-12-08 2018-06-14 三菱電機株式会社 性能評価装置、性能評価方法および性能評価プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128771A (ja) * 2010-12-17 2012-07-05 Mitsubishi Electric Corp 情報処理装置及びプログラム
JP2014132419A (ja) * 2013-01-07 2014-07-17 Nec Corp 仮想化システムの性能予測装置、性能予測方法およびコンピュータ・プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128771A (ja) * 2010-12-17 2012-07-05 Mitsubishi Electric Corp 情報処理装置及びプログラム
JP2014132419A (ja) * 2013-01-07 2014-07-17 Nec Corp 仮想化システムの性能予測装置、性能予測方法およびコンピュータ・プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633194A (zh) * 2019-09-26 2019-12-31 中国民用航空总局第二研究所 一种硬件资源在特定环境下的性能评估方法
CN110633194B (zh) * 2019-09-26 2023-03-28 中国民用航空总局第二研究所 一种硬件资源在特定环境下的性能评估方法

Also Published As

Publication number Publication date
JP6239195B2 (ja) 2017-11-29
WO2016181549A1 (ja) 2016-11-17

Similar Documents

Publication Publication Date Title
US20110320391A1 (en) Method and Apparatus for Predicting Application Performance Across Machines with Different Hardware Configurations
US10942763B2 (en) Operation management apparatus, migration destination recommendation method, and storage medium
CN112633511B (zh) 用于计算量子配分函数的方法、相关装置及程序产品
US10699049B2 (en) System design using accurate performance models
CN109726811A (zh) 使用优先级队列训练神经网络
CN107169807A (zh) 一种期权定价的方法、装置及系统
WO2018144534A1 (en) Hardware-based machine learning acceleration
CN113568821A (zh) 一种ai芯片计算性能的测试方法、装置、设备、及介质
CN110825436A (zh) 应用于人工智能芯片的计算方法和人工智能芯片
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
JP6239195B2 (ja) 性能評価装置及び性能評価プログラム
CN112100910A (zh) 一种处理器的功耗模型训练方法、功耗测试方法及装置
CN112464599B (zh) 应用在电路的静态时序分析中确定电源电压数据的方法
CN113902118A (zh) 量子测量设备校准方法及装置、电子设备和介质
US9501321B1 (en) Weighted service requests throttling
JP2012128771A (ja) 情報処理装置及びプログラム
WO2018163291A1 (ja) アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム
JP6271090B2 (ja) 性能算出システム、性能算出装置、性能算出方法及び性能算出プログラム
CN109669668B (zh) 一种系统性能测试中实现模拟交易执行的方法和装置
JP6287226B2 (ja) 見積もり装置、見積もりシステム、見積もり方法、及び、プログラム
Kwasnick et al. Setting use conditions for reliability modeling
CN112433914A (zh) 获取并行计算任务进度的方法及系统
von Kistowski et al. Measuring and rating the energy-efficiency of servers
JPWO2013141018A1 (ja) 最適システム設計支援装置
JP2017224226A (ja) 分析装置、分析方法および分析プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171031

R150 Certificate of patent or registration of utility model

Ref document number: 6239195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250