JPWO2012001779A1 - 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム - Google Patents

情報処理装置の使用量解析方法、情報処理システム及びそのプログラム Download PDF

Info

Publication number
JPWO2012001779A1
JPWO2012001779A1 JP2012522384A JP2012522384A JPWO2012001779A1 JP WO2012001779 A1 JPWO2012001779 A1 JP WO2012001779A1 JP 2012522384 A JP2012522384 A JP 2012522384A JP 2012522384 A JP2012522384 A JP 2012522384A JP WO2012001779 A1 JPWO2012001779 A1 JP WO2012001779A1
Authority
JP
Japan
Prior art keywords
program
event
execution
power consumption
information processing
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
JP2012522384A
Other languages
English (en)
Other versions
JP5510543B2 (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 Ltd
Original Assignee
Fujitsu 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 Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012001779A1 publication Critical patent/JPWO2012001779A1/ja
Application granted granted Critical
Publication of JP5510543B2 publication Critical patent/JP5510543B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/3409Recording 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 for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

プログラムを実行する演算処理ユニット(18−1)の利用量と電力量とからプログラムの使用量を計算する。演算処理ユニット(18−1)はプログラムの実行開始時にパフォーマンスカウンタ(34)を初期設定し、プログラムの実行完了時のパフォーマンスカウンタ(34)の各イベントの回数と予め計測した演算処理ユニットの各イベント発生時の消費電力とから、プログラムの電力量を計算する。このため、プログラム単位で、妥当性のある情報処理装置の使用量を計算できる。

Description

本発明は、情報処理装置の使用量解析方法、情報処理システム及びそのプログラムに関する。
近年、環境問題は重要な社会問題の一つであり、その中でもエネルギー消費量の削減は重要な問題である。電子計算機(情報処理装置)もその実行のために電力を消費する。特に、大型計算機は、消費する電力も大きくなる。
この電子計算機の消費電力の解析のため、パフォーマンスカウンタというハードウェア機構を利用する方法が提案されている。パフォーマンスカウンタは、キャッシュミスなどある特定のイベントの発生回数などを測定することができる。
例えば、第1の方法は、プロセッサ内の機能ブロックごとに発生するイベントの値に重みづけを加えて,パフォーマンスカウンタを更新する。このパフォーマンスカウンタの値を用いてプロセッサの消費電力を予測する。他の方法は、プロセッサに設けた温度センサーから温度を求め,パフォーマンスカウンタから稼働率を求め,温度と稼働率により消費電力を求める。このような提案は、計算機の消費電力をモニターする方法としては、有効である。
又、第2の方法は、計測しようとするプログラムに対して,特別なコードを埋め込み,そのタイミングで電力計を用いて電力値を記録し,プログラムと電力値の関係を時系列に表示し、プログラムのチューニングを行う。
米国特許第7,340,378B1公報 日本特許公開2008−026948号公報 日本特許公開2003−345472号公報 日本特許公開2005−025754号公報
一方、大型計算機を多数の利用者が使用する環境では、利用者が計算機を使用した使用量を計算することが望まれる。例えば、計算機を、多数の利用者が個々のプログラムを動作する大型計算機は、演算処理装置(CPU:Central Processing Unit)の処理時間によって、課金等の使用量の計算が行われている。しかし、計算機の高速化に伴い、多数の利用者が使用する大型計算機を動作させるための費用として、電力料金の割合が高くなっている。
また、大型計算機の電源設備や空調設備、電力基本料金などは、最大消費電力の大きさによって設備投資や料金が決まるため、たとえ電力量が小さくても、最大消費電力が大きいと費用が大きくなる。
従来技術の電力解析方法は、主にプログラムのチューニングや計算機の監視のための電力解析であったため、解析した電力値を大型計算機の使用量にリンクさせていなかった。このため、大型計算機の利用者にとって、CPUの処理時間を短くしようとするインセンティブは働いても、電力料金(電力量)または最大消費電力を小さくしようとするインセンティブは働いていなかった。
本発明の目的は、利用者が使用するプログラムの動作に要する電力量を付加した計算機の使用量を解析する情報処理装置の使用量解析方法、情報処理システム及びそのプログラムを提供することにある。
この目的の達成のため、開示の情報処理装置の使用量解析方法は、演算処理ユニットが、プログラムの実行開始時に、前記プログラムの実行により発生する各イベントのイベント回数を計数するパフォーマンスカウンタを初期設定する工程と、前記演算処理ユニットが、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を記憶ユニットに記憶する工程と、前記演算処理ユニットが、前記記憶ユニットに格納された予め計測した前記演算処理ユニットの各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの消費電力を計算する工程と、前記演算処理ユニットが、前記演算処理ユニットの利用量と前記消費電力とから前記プログラムの使用量を計算する工程とを有する。
又、この目的の達成のため、開示の情報処理システムは、ユーザーから要求されたプログラムを実行するとともに、前記プログラムの実行により発生する各イベントのイベント回数をパフォーマンスカウンタで計数する演算処理ユニットと、予め計測した前記演算処理ユニットの各イベント発生時の消費電力を含む前記演算処理ユニットの前記プログラムの実行に必要な情報を格納する記憶ユニットとを有し、前記演算処理ユニットは、前記プログラムの実行開始時に、前記パフォーマンスカウンタを初期設定し、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を前記記憶ユニットに記憶し、前記記憶ユニットに格納された前記各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算し、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する。
更に、この目的の達成のため、開示のプログラムは、プログラムの実行開始時に、前記プログラムの実行により発生する各イベントのイベント回数を計数するパフォーマンスカウンタを初期設定する工程と、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を記憶ユニットに記憶する工程と、前記記憶ユニットに格納された予め計測した演算処理ユニットの各イベント発生時の電力量と、前記各イベントの回数とから前記プログラムの電力量を計算する工程と、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する工程とを、コンピュータに実行させる。
プログラムを実行する演算処理ユニットの利用量と電力量とからプログラムの使用量を計算するため、利用者にとって公平性のある情報処理装置の使用量を計算できる。また、プログラムの実行開始時にパフォーマンスカウンタを初期設定し、プログラムの実行完了時のパフォーマンスカウンタの各イベントの回数と予め計測した演算処理ユニットの各イベント発生時の消費電力とから、プログラムの消費電力を計算するため、プログラム単位で、妥当性のある情報処理装置の使用量を計算できる。
実施の形態の情報処理システムのブロック図である。 図1のCPUコアのブロック図である。 実施の形態の消費電力解析処理フロー図である。 図3のイベントと消費電力の関係の計測処理の第1の実施の形態の説明図である。 図3のイベントと消費電力の関係の計測処理の第2の実施の形態の説明図である。 図3のイベントと消費電力の関係の計測処理結果の説明図である。 図3のイベント発生回数の計測のための第1の実施の形態のブロック図である。 図3のイベント発生回数の計測処理の第1の実施の形態の説明図である。 図8のイベント発生回数の計測処理結果の説明図である。 図3のイベント発生回数の計測処理の第2の実施の形態の説明図である。 図10のイベント発生回数の計測処理結果の説明図である。 図3のイベント発生回数の計測処理の第3の実施の形態の説明図である。 実施の形態の消費電力解析処理の説明図である。 図3のイベント発生回数の計測のための第2の実施の形態のブロック図である。 図14の動作説明図である。 実施の形態の使用量計算処理のブロック図である。 図16の使用量計算処理の説明図である。 図16、図17の課金情報構造体の説明図である。 図16、図17の課金情報ファイルの説明図である。 第2の実施の形態の消費電力解析処理フロー図である。
以下、実施の形態の例を、情報処理システムの実施の形態、電力使用量の解析の第1の実施の形態、電力使用量の計算、電力使用量の解析の第2の実施の形態、電力使用量を付加した使用量の計算処理、電力使用量の解析の第3の実施の形態、他の実施の形態の順で説明するが、情報処理システム、CPUコアは、この実施の形態に限られない。
(情報処理システムの実施の形態)
図1は、実施の形態の情報処理システムのブロック図である。図1は、多数の利用者が利用できる大型計算機システム(計算センター)を例に示す。図1に示すように、情報処理システムは、処理ユニット群1−1〜1−Nと、電源ユニット62と、管理ユニット(図1では、SVPと記す)60と、外部記憶装置(図1では、デイスクと記す)64と、ネットワークインターフェース装置(図示、NICと記す)66と、接続バス68とを有する。
処理ユニット群1−1〜1−Nは、複数の処理ユニット(システムボードと称す)1−1〜1−Nで構成される。各システムボード1−1〜1−Nは、演算処理(CPU:Central Processing Unit)チップ10とシステムコントローラ(図1では、SYSCONと記す)12と主記憶装置(メインメモリ)14とを有する。演算処理チップ(以下、CPUチップという)10は、単数又は複数のCPUコアを有する。この例では、1つのCPUチップ10は、4つのCPUコア18−1〜18−4を有する。1つのCPUチップ10内のCPUコアの数は、図示した4つに限られず、1つ以上であれば、良い。CPUコア18−1〜18−4は、図2で説明するように、プログラムを実行する。
主記憶装置14は、各CPUコア18−1〜18−4のデータ等を保持する。システムコントローラ12は、各CPUコア18−1〜18−4と主記憶装置14とバス68とに接続し、各CPUコア18−1〜18−4と主記憶装置24とバス68とのデータの入出力制御を行う。
外部記憶装置64は、不揮発性の記憶装置、例えば、磁気デイスク装置で構成される。しかし、外部記憶装置64が、他の不揮発性の大容量記憶装置で構成されることもできる。外部記憶装置64は、各システムボード1−1〜1−Nの動作に必要なデータ等を保持する。外部記憶装置64は、接続バス68を介し、各システムボード1−1〜1−Nのシステムコントローラ12に接続される。
ネットワークインターフェース装置(図1では、NIC:Network InterfaceCardと記す)66は、接続バス68を介し、各システムボード1−1〜1−Nのシステムコントローラ12に接続される。又、ネットワークインターフェース装置66は、ネットワーク7を介し、利用者が操作する端末装置8−0〜8−Mに接続される。
管理ユニット62は、各システムボード1−1〜1−Nの電源投入/切断、状態設定を含む初期化処理、状態監視処理を行う。管理ユニット62は、たとえば、サービスプロセッサ(SVP:Service Processor)で構成される。電源ユニット62は、商用電源に接続し、管理ユニット60からの電源投入指示に応じて、各システムボード1−1〜1−N及び外部記憶装置64、ネットワークインターフェース装置66に電力を供給する。
ネットワーク7は、専用回線網又は汎用回線網により構成される。ネットワーク7は、イントラネット、インターネット網を利用できる。端末装置8−0〜8−Mは、例えば、パーソナルコンピュータ(PC:Personal Computer)等で構成される。利用者は、端末装置8−0〜8−Mを操作し、ネットワーク7、ネットワークインターフェース装置66を介し、情報処理システムのシステムボード1−1〜1−Nとデータ等の送受信を行う。
この情報処理システムは、システムコントローラネットワーク7を介し各利用者の端末装置8−0〜8−Mと接続する。利用者は、端末装置8−0〜8−Mからアプリケーションプログラム名や必要なデータを入力する。端末装置8−0〜8−Mから入力した項目(アプリケーションプログラム名、データ)は、ネットワーク7、ネットワークインターフェース装置66、接続バス68、システムコントローラ12に伝達される。又、端末装置8−0〜8−Mから、必要なアプリケーションプログラムを、ネットワーク7、ネットワークインターフェース装置66、接続バス68、システムコントローラ12にアップロードすることもできる。
システムコントローラ12は、単数又は複数のCPUコア18−1〜18−4に指定されたアプリケーションプログラムの実行を指示する。指定されたCPUコアは、指定されたアプリケーションプログラムを実行する。このアプリケーションプログラムは、例えば、外部記憶装置64に保持されている。
システムボード1−1〜1−NのCPUコア18−1〜18−4は、利用者が指定したアプリケーションプログラムを実行した後、実行した結果を、システムコントローラ12、接続バス68、ネットワークインターフェース装置66、ネットワーク7を介し端末装置8−0〜8−Mに送信する。
又、CPUコア18−1〜18−4は、アプリケーションプログラムを実行した情報処理システムの使用量を計算し、利用者に課金する。本実施の形態では、CPUチップの処理時間と使用電力量(消費電力)に応じて、利用者の情報処理システムの使用量を計算する。この消費電力の計算のため、CPUコア18−1〜18−4が備えるパフォーマンスカウンタのカウント値を利用する。又、主記憶装置14に使用量領域16を設ける。使用量領域16は、イベントの単位時間当たりの消費電力を格納し、且つ課金情報を格納する。
図2は、図1のCPUコア18−1(18−2〜18−4)のブロック図である。図2に示すように、CPUコア18−1(18−2〜18−4)は、演算ユニットとキャッシュユニットとロード/ストア/フェッチユニットとインターフェースユニットとを有する。インターフェースユニットは、サービスプロセッサ(以下、SVPという)60と通信するインターフェースユニット38と、システムコントローラ(SYSCON)12と通信するバスインターフェースユニット20とを有する。
キャッシュユニットは、データ及びプログラム命令を保持する一次キャッシュ(L1 cache)22と、キャッシュインターフェース回路(Cache Interface Unit)24と、仮想アドレスと物理アドレスの変換を行うTLB(Translation Lookaside Buffer)26とを有する。バスインターフェースユニット20は、一次キャッシュ22、キャッシュインターフェース回路24、TLB26を、システムコントローラ12に接続する。
演算(実行)ユニットは、整数演算を行うフィックストポイントユニット(FXU(Fixed Point Unit)という)29と、浮動小数点演算を行うフローテイングポイントユニット(FPU(Floating Point Unit)という)31と、インストラクションシーケンスユニット(ISU(Instruction Sequencer Unit)という)27と、制御ロジック回路(Control Logic)40とを有する。
FXU29とFPU31は、汎用レジスタ(GPR:General Purpose Register)28、フローテイングポイントレジスタ(FPR:Floating Point Register)30,コンディションレジスタ(CR:Condition Register)32,リネーミングレジスタ(Rename Buffer)23のようなリソースに接続する。
ロード/ストア/フェッチユニットは、1次キャッシュ22からの命令をプリフェッチするIFU(Instruction Fetch Unit)25と、1次キャッシュ22からのデータをGPR28,FPR30、リネーミングレジスタ23にロードストアするLSU(Load Store Unit)21とを有する。
ISU27は、カウント/リンクレジスタ(CTR)及びコンプリーションレジスタ(GR)42を参照し、FXU29、FPU31などの内部回路にIFU25から与えられた命令のシーケンスを制御する。FXU29,FPU31は、GPR28、FRP30、CR32、リネーミングレジスタ23を使用し、命令を実行する。
CPUコア18−1(18−2〜18−4)は、パフォーマンスカウンタ34を有する。パフォーマンスカウンタ34は、プログラム実行中のイベント回数を計数する。この実施の形態では、パフォーマンスカウンタ34は、整数演算のイベント(INT_INS)の回数を計数するINTカウンタ35Aと、浮動小数点演算のイベント(FP_INS)の回数を計数するFPカウンタ35Bと、L1キャッシュミスのイベント(L1_TCM)の回数を計数するL1カウンタ35Cと、TLBミスのイベント(TLB_TL)の回数を計数するTLBカウンタ35Dとを有する。
INTカウンタ35Aは、IFU25からの整数演算命令をイベントとして計数する。FPカウンタ35Bは、LSU21からのロードストア命令をイベントとして計数する。L1カウンタ35Cは、L1キャッシュ22からのL1キャッシュミスをイベントとして格納する。TLBカウンタ35Dは、TLBユニット26からTLBミスをイベントとして計算する。
L1キャッシュミスは、L1キャッシュ22のメモリから指定された命令、データを読み出す場合に、L1キャッシュ22のメモリに指定された命令、データが保持されていないことを示す。この場合、キャッシュインターフェース回路24は、バスインターフェースユニット20を介し、主記憶装置14から必要な命令、データを読み出し、1次キャッシュ22に格納する。
又、TLBミスは、TLB26が、テーブルを用いて仮想アドレスと物理アドレスの変換を行う場合に、テーブルに仮想アドレスと物理アドレスの変換データが存在しないことを示す。この場合、キャッシュインターフェース回路24は、バスインターフェースユニット20を介し、主記憶装置14から必要な変換データを読み出し、TLB26のテーブルに格納する。
又、CPUコア18−1(18−2〜18−4)は、パフォーマンスカウンタ管理部36を有する。パフォーマンスカウンタ管理部36は、パフォーマンスカウンタ34が取得するイベントの設定やカウンタの開始・終了の指示を行うレジスタ37A,37Bを有する。
この実施の形態では、消費電力を計算するため、パフォーマンスカウンタ34を利用する。そして、パフォーマンスカウンタ34の監視するイベントの内、CPUの消費電力に大きく関係するイベントを計測する。この実施の形態では、消費電力計測のイベントは、整数演算や浮動小数点演算の演算操作、キャッシュミス、TLBミスである。整数演算や浮動小数点演算の演算操作は、消費電力に大きく関係する。又、キャッシュミスの場合は、主記憶装置14から必要な命令、データを読み出し、1次キャッシュに格納する操作が必要となるため、消費電力に大きく関係する。更に、TLBミスの場合、主記憶装置14からページ単位に変換テーブルを読み出し、TLB26に格納する操作が必要であるため、消費電力に大きく関係する。
このため、本実施の形態では、パフォーマンスカウンタ34の観測イベントの内、整数演算、浮動小数点演算、キャッシュミス、TLBミスのイベント回数を、プログラムの消費電力の解析に利用する。
(電力使用量の解析の第1の実施の形態)
図3は、実施の形態の電力使用量解析処理フロー図である。
(S10)図4乃至図6を用いて、後述するように、プログラム実行前に、CPUコア18−1(18−2〜18−4)であるイベントが発生したときに、電力値を測定し、イベントと消費電力の関係を調べ、主記憶装置14の使用量領域に格納する。
(S12)次に、CPUコア18−1(18−2〜18−4)がプログラムを実行する。図7乃至図12で後述するように、CPUコア18−1(18−2〜18−4)がプログラムを実行中及び実行終了後のパフォーマンスカウンタ34のイベント発生回数を測定する。
(S14)図13を用いて、後述するように、プログラム実行後、イベント発生回数とイベントの消費電力の関係から、プログラムの電力量または最大消費電力を計算する。
次に、ステップS10のイベントと消費電力の関係の計測処理を説明する。イベントと消費電力との関係を、プログラムの実行前にあらかじめ測定する。以下に測定方法を説明する。
図4は、イベントと消費電力との関係の計測処理の第1の実施の形態の説明図である。図4に示すように、回路シミュレーター80を用いて、それぞれのイベントごとに、単位時間当たりのイベントの発生回数に対する消費電力を計算する。回路シミュレーター80は、回路シミュレーションプログラムを実行する実行する情報処理装置である。
先ず、あらかじめ、それぞれのイベント(整数演算、浮動小数点演算、L1キャッシュミス、TLBミスなど)を発生させるテストプログラムを作成する。例えば、整数演算を行うプログラム、浮動小数点演算を行うプログラム、L1キャッシュミスを起こすプログラム、TLBミスを起こすプログラムなどを準備する。
回路シミュレーター80が、作成したテストプログラムを実行し、それぞれのイベントの発生回数を、回路シミュレーションを実行する情報処理装置のパフォーマンスカウンタから観測する。そして、回路シミュレーター80がパフォーマンスカウンタの観測値から各イベントの消費電力を計算する。
回路シミュレーターは、ソフトウェアシミュレーターとハードウェアシミュレーターとが知られている。ソフトウェアシミュレーターは、回路の動作をシミュレーションするソフトウェアである。ソフトウェアシミュレーターは、アナログ回路シミュレーターとデジタル回路シミュレーターに分類できる。
アナログ回路シミュレーターは,アナログ回路を入力することにより、入力したアナログ回路の動作をシミュレーションするとともに、電力(電圧や電流)を計算できる。例えば、周知のSPICE(Simulation Program with Integrated Circuit Emphasis)を利用できる。尚、SPICEは、http://ja.wikipedia.org/wiki/SPICE_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2で参照できる。
又、デジタル回路シミュレーターは、デジタル回路(RTLおよびゲートレベル)を入力することにより、デジタル回路の動作をシミュレーションする。デジタル回路シミュレーターは、直接、各回路の電力値を求めることはできないが、回路の各素子の動作率を求めることができる。例えば、シノプシス(synopsys)社(会社名)のVCS(登録商標名、http://www.synopsys.co.jp/products/vcs/detail.html参照)を利用できる。
本実施の形態では、アナログ回路シミュレーターでCPUコアの各素子の電力を測定する。又、デジタル回路シミュレーターで前述のテストプログラムを動作し、各回路素子の動作率及び全体の消費電力を測定する。デジタル回路シミュレーターで測定した各回路素子の動作率と消費電力と、アナログ回路シミュレーターで測定した各回路素子の消費電力とから、イベントと消費電力との関係を計算する。
一方、ハードウェアシミュレーター(エミュレーターとも呼ばれる)は,デジタル回路の動作をシミュレートする専用ハードウェアとソフトウェアからなるシステムである。ハードウェアシミュレーターは、回路情報をハードウェア上に展開して、回路の動作をシミュレーションする。電力値は、上記したデジタル回路シミュレーターと同じ方法で回路全体の電力を求めることができる。例えば、ケーデンス(cadence)社のPalladium(登録商標名)を利用できる。
これらのシミュレーターを利用する方法は、消費電力を計測すべきプログラムを実行する情報処理システムを使用することなく、測定できる。即ち、ソフトウェアで消費電力を測定できる。
図5は、イベントと消費電力との関係の計測処理の第2の実施の形態の説明図である。図5において、図1及び図2で説明したものと同一のものは、同一の記号で示してある。図5に示すように、図1の情報処理システムを使用して各イベントの消費電力を測定する。即ち、図1の情報処理システムの構成において、電源ユニット62の電力量(Wh)を計測する電力計70を設ける。又、電力計70に接続するI/Oポート19を、バス68に接続する。CPUチップ10のCPUコア18−1〜18−4が、電力計の電力量をI/Oポート19から取り込む。
次に、前述のシミュレーターによる消費電力測定処理と同様に、あらかじめ、それぞれのイベントを発生させるそれぞれのテストプログラムを準備する。情報処理システムにそれぞれのテストプログラムを実行させる。情報処理システムは、各テストプログラムの終了後、対応するイベントの発生回数をパフォーマンスカウンタ34から測定し、且つ電力計70により電力量を取り込む。
図6は、測定された各イベントと単位時間当たりの消費電力の関係図である。図6は、図4のシミュレーター又は図5の構成において、整数演算を行うプログラム、浮動小数点演算を行うプログラム、L1キャッシュミスを起こすプログラム、TLBミスを起こすプログラムが実行された場合のイベントと電力量(消費電力)の対応を示す。尚、本実施の形態では、全てのイベントが1単位時間で終了するものとして説明する。
即ち、図6の消費電力の測定結果は、1回の整数演算(INT_INS)に電力を100mW消費し、1回の浮動小数点演算(FP_INS)に電力を200mW消費することを示す。又、図6の消費電力の測定結果は、1回のL1キャッシュミス(L1_TCM)に300mW電力消費し、1回のTLBミス(TLB_TL)に400mW電力消費することを示す。図6の各イベントの消費電力の測定結果は、主記憶装置14の使用量格納領域16のイベント消費電力格納域16Aに、格納する。
(電力使用量の計算)
つぎに、図3のステップS12のプログラムの実行時に、消費電力解析のためのイベントの発生回数を計測する処理を説明する。図7は、プログラム実行時のイベント回数計測処理の第1の実施の形態の説明図である。図8は、図7の第1の実施の形態の第1の測定処理のタイムチャート図、図9は、図8の処理のイベント回数測定結果を示す図である。
図7において、図1、図2で説明したものと同一のものは、同一の記号で示す。図7に示すように、CPUコア18−1は、OS(Operating Sysem)のカーネル(Kernel)80の管理のもとに、プロセスプログラム(アプリケーションプログラム)82を実行する。カーネル80は、プロセスプログラム82ごとに、プロセス構造体80−1と呼ばれるデータを持つ。
プロセス構造体80−1は,実行中のプロセスプログラムの情報(識別子ID、プロセス自身の状態,メモリやファイル,CPUコアの情報、課金情報など)を保持する。カーネル80が、プロセスプログラム82に制御権を渡した後(CTR),CPUコア18−1は、プロセスプログラム82の実行を開始する。そして、プロセスプログラム82は、プロセスを終了すると、カーネル80に制御権を返す(CTP)。
図7及び図8は、プロセスプログラム82自身が、プログラム82のプロセスの最後でパフォーマンスカウンタ34を観測する。先ず、プロセスプログラム82の先頭で、パフォーマンスカウンタ34の初期設定を行い、パフォーマンスカウンタ34の計測を開始する。図2の例では、プロセスプログラム82が、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに開始を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウントを開始する。又、プロセスプログラム82が、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに開始を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント値を保存しても良い。
そして、プロセスプログラム82の末尾で、パフォーマンスカウンタ34の値を観測し、記録を取る。図2の例では、プロセスプログラム82が、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止を指示し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント動作を停止する。そして、プロセスプログラム82は、各イベントについて、イベント回数カウンタ35A〜35Dのカウント値を読み出し、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録する。
又、プロセスプログラム82が、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止を指示し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント値を保存する。そして、プロセスプログラム82は、各イベントについて、初期設定時に保存したカウント値と停止指示した時に保存したカウント値との差分を計算し、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録しても良い。
例えば、イベント回数の測定結果例は、図9に示すように、プロセスプログラム82の実行により、整数演算(INT_INS)回数は「6」であり、浮動小数点演算(FP_INS)回数は「3」であり、L1キャッシュミス(L1_TCM)回数は「1」であり、TLBミス(TLB_TL)回数は「1」である。図9の各イベントの回数の測定結果は、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに、格納する。
図10は、図7の第1の実施の形態の第2の測定処理のタイムチャート図、図11は、図10の処理のイベント回数測定結果を示す図である。図10は、プロセスプログラム82自身が、定期的にパフォーマンスカウンタ34を観測する処理を示す。
図10に示すように、プロセスプログラム82の先頭で、パフォーマンスカウンタ34の初期設定を行い、パフォーマンスカウンタ34の計測を開始する。図2の例では、プロセスプログラム82が、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに開始を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウントを開始する。
プロセスプログラム82は、定期的に、パフォーマンスカウンタ34の値を観測し、記録を取る。例えば、タイマーの割込みにより、プロセスプログラム82は、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止(ST:Stop)を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウントを停止する。
そして、プロセスプログラム82は、各イベントについて、イベント回数カウンタ35A〜35Dのカウント値を読み出し(CP)、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録する。更に、プロセスプログラム82は、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに再開(R:Restart)を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント動作を再開する。
そして、プロセスプログラム82の末尾で、パフォーマンスカウンタ34の値を観測し、記録を取る。図2の例では、プロセスプログラム82が、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止を指示し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント動作を停止する。そして、プロセスプログラム82は、各イベントについて、イベント回数カウンタ35A〜35Dのカウント値を読み出し(CP)、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録する。
例えば、定期的なイベント回数の測定結果例を、図11に示す。図11では、プロセスプログラム82の実行により、定期的な測定時刻1〜9毎に、その時刻の整数演算(INT_INS)回数、浮動小数点演算(FP_INS)回数、L1キャッシュミス(L1_TCM)回数、TLBミス(TLB_TL)回数を測定し、記録する。図11の各測定時刻における各イベントの回数の測定結果は、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに、格納する。
このプロセスプログラムによるイベント回数計測処理では、プロセスプログラムを修正するか、又は特別なランタイムをリンクする。即ち、カーネルを修正する必要がない。又、図8の測定処理では、性能の低下が少ない。更に、図11の測定処理では、最大消費電力を求めることができる。
図12は、プログラム実行時のイベント回数計測処理の第2の実施の形態の説明図である。図12において、図1、図2、図7で説明したものと同一のものは、同一の記号で示す。図12に示すように、CPUコア18−1は、カーネル(OS:Operating System)80の管理のもとに、プロセスプログラム(アプリケーションプログラム)82を実行する。カーネル80は、プロセスプログラムごとに、プロセス構造体80−1と呼ばれるデータを持つ。
プロセス構造体80−1は,実行中のプロセスプログラムの情報(識別子ID、プロセス自身の状態,メモリやファイル,CPUコアの情報、課金情報など)を保持する。カーネル80が、プロセスプログラム82に制御権を渡した後(CTR),CPUコア18−1は、プロセスプログラム82の実行を開始する。そして、プロセスプログラム82は、プロセスを終了すると、カーネル80に制御権を返す(CTP)。
図12では、プロセスプログラム82以外のバックグラウンドで動作するプログラムがイベント回数の計測処理を行う。この実施の形態では、カーネル80が、イベント回数の計測を行う。カーネル80は、プロセスプログラム82に制御権を渡す(CTR)の直前に、パフォーマンスカウンタ34の初期設定を行い、パフォーマンスカウンタ34の計測を開始する。図2の例では、カーネル80が、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに開始を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウントを開始する。
そして、プロセスプログラム82の実行が完了し、プロセスプログラム82が、カーネル80に制御権を返した(CTP)後に、カーネル80は、パフォーマンスカウンタ34の値を観測し、記録を取る。図2の例では、カーネル80が、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止を指示し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント動作を停止する。そして、カーネル80は、各イベントについて、イベント回数カウンタ35A〜35Dのカウント値を読み出し、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録する。例えば、イベント回数の測定結果例は、図9に示したものと同一であり、説明を省略する。
又、図12に示すカーネル80の計測処理の他の例は、図10と同様に、カーネル80が、定期的にパフォーマンスカウンタ34を観測する処理を行う。即ち、カーネル80は、プロセスプログラム82に制御権を渡す(CTR)の直前に、パフォーマンスカウンタ34の初期設定を行い、パフォーマンスカウンタ34の計測を開始する。図2の例では、カーネル80が、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに開始を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウントを開始する。
カーネル80は、定期的にパフォーマンスカウンタ34の値を観測し、記録を取る。例えば、タイマーの割込みにより、カーネル80は、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止(ST:Stop)を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウントを停止する。
そして、カーネル80は、各イベントについて、イベント回数カウンタ35A〜35Dのカウント値を読み出し(CP)、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録する。更に、カーネル80は、パフォーマンスカウンタ管理部36のスタートレジスタ37Aに再開(R:Restart)を設定し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント動作を再開する。
プロセスプログラム82の実行が完了し、プロセスプログラム82が、カーネル80に制御権を返した(CTP)後に、カーネル80は、パフォーマンスカウンタ34の値を観測し、記録を取る。図2の例では、カーネル80が、パフォーマンスカウンタ管理部36のストップレジスタ37Bに停止を指示し、指定したパフォーマンスカウンタ34のイベント回数カウンタ35A〜35Dのカウント動作を停止する。そして、カーネル80は、各イベントについて、イベント回数カウンタ35A〜35Dのカウント値を読み出し、主記憶装置14の使用量格納領域16のイベント回数格納域16Bに記録する。
例えば、定期的なイベント回数の測定結果例は、図11に示したものと同一であり、説明を省略する。カーネル80が計測処理を実行する場合には、プロセスプログラム82の実行性能の低下を防止できる。
又、パフォーマンスカウンタ34を観測し、記録を取る処理の間も、パフォーマンスカウンタ34は動作し続ける。このままでは、パフォーマンスカウンタの処理に伴う消費電力も課金対象になってしまう恐れがある。そのため、その増加分はカウンタの計測から除外する。
図8のプロセスプログラム82が計測処理を行う場合には、パフォーマンスカウンタ34の初期設定処理が終わってからカウンタ34の計測を開始し、プロセスプログラム82の末尾でカウンタ34を止めてからカウンタの値を計測し記録を取るため、増加分は計測値に含まれない。
図10のプロセスプログラム82が定期的に計測処理を行う場合には、図10で説明したように、定期的にカウンタ34の値を計測し、記録を取る処理(CP)の前後で、カウンタ34を止める処理(ST)とカウンタ34を再開する処理(R)を行うことにより、増加分を計測値から排除できる。
図12のカーネル80が計測処理を行う場合には、プロセスプログラム82の切り替えの時に、パフォーマンスカウンタ34の値も同時に退避復元を行う。
次に、図3のステップS14のプログラムの実行完了後の電力量解析処理を説明する。先ず、図8で説明したプログラムの先頭及び末尾での計測処理結果では、図6で説明した各イベント1回の消費電力と図9の計測したプログラムのイベント回数から、各イベントの消費電力にイベント回数を乗算し、各イベントの乗算結果を加算し、電力量を計算する。例えば、図6に示した各イベント1回の消費電力と図9で示した計測したプログラムのイベント回数の例では、プログラムの電力量は、以下のように計算される。
電力量=0.1×6+0.2×6+0.3×1+0.4×1=1.9Wh
次に、図10で説明したプログラムの先頭及び末尾、及び定期的な計測処理結果では、図6で説明した各イベント1回の消費電力と図11の計測したプログラムのイベント回数から、電力量と時間毎の消費電力を計算する。
電力量は、各イベントの消費電力にイベント回数の総数を乗算し、各イベントの乗算結果を加算して、計算する。例えば、図6に示した各イベント1回の消費電力と図11で示した計測したプログラムのイベント回数の例では、プログラムの電力量は、以下のように計算される。
電力量=0.1×6+0.2×6+0.3×1+0.4×1=1.9W
又、時刻毎の消費電力を計算する。図13は、時刻毎の消費電力を計算した結果を格納したテーブルを示す図である。即ち、図11の時刻毎に発生したイベントの消費電力とイベントの回数を乗算し、各時刻の消費電力を計算する。例えば、図11の例では、時刻1では、整数演算イベント(INT_INS)が1回発生しているため、時刻1の消費電力は、0.1×1=0.1Wと計算される。又、時刻2では、浮動小数点演算イベント(FP_INS)が1回、L1キャッシュミス(L1_TCM)が1回、TLBミス(TLB_TL)が1回発生している。このため、時刻2の消費電力は、以下のように計算される。
時刻2の消費電力=0.2×1+0.3×1+0.4×1=0.9W
図13に示すように、プログラム実行開始から終了までの各時刻における消費電力を計算できるため、プログラムの実行に要した最大消費電力を求めることができる。図13の例では、最大消費電力は、時刻2の0.9Wである。
このように、利用者の指定したプログラムの実行ごとに、プログラムの実行に要した電力量または最大消費電力を求めることができる。この電力量又は最大消費電力の値によって、後述するように、プログラムの大型計算機の課金等の使用量計算を行うことにより、課金に対する公平性が高まる。また、大型計算機の運用管理者にとっても,課金設定が容易に行える。
さらに,プログラムのチューニングによって、電力量または最大消費電力を小さくしようとするインセンティブが働く。このため、大型計算機が使用するエネルギー消費量の削減につながることが期待できる。
(電力使用量の解析の第2の実施の形態)
図14は、第2の実施の形態の説明図である。図14において、図1、図2,図7で説明したものと同一のものは、同一の記号で示す。図14は、実施の形態の電力量解析処理を、マルチプロセスに適用したものである。
図14に示すように、マルチプロセスは,一つのCPUコア18−1が複数のプロセス82−1,82−2を実行する場合に,プロセスを切り替えながら実行する。このマルチプロセスは、複数のプロセスを同時に実行しているように見せることができる。CPUコア18−1は、OS(Operating Sysem)としてのカーネル(Kernel)80の管理のもとに、プロセスプログラム(アプリケーションプログラム)82−1,82−2を実行する。カーネル80は、プロセスプログラム82−1,82−2ごとに、プロセス構造体80−1,80−2と呼ばれるデータを持つ。
プロセス構造体80−1,80−2は,実行中のプロセスプログラムの情報(識別子ID、プロセス自身の状態,メモリやファイル,CPUコアの情報、課金情報など)を保持する。カーネル80が、プロセスプログラム82−1,82−2に制御権を渡した後,CPUコア18−1は、プロセスプログラム82−1.82−2の実行を開始する。そして、プロセスプログラム82−1,82−2は、プロセスを終了すると、カーネル80に制御権を返す。カーネル80は、複数のプロセスの切り替えを行う。切り替えの際に、カーネル80は、プロセス構造体80−1,80−2に、プロセスの状態を保存する。
図14では、CPUコア18−1が、プロセス(プログラム)82−1の実行からプロセス(プログラム)82−2の実行に切り替わるときに,CPUコア18−1が、プロセス18−1のプロセス構造体80−1にCPUコア18−1の情報を退避し,プロセス18−2のプロセス構造体80−2からCPUコア18−1の情報を復元する。
また、CPUチップが複数のCPUコアを有するマルチコアの構成である場合には、復元されるプロセスは、以前退避したCPUコアとは別のCPUコアに復元されることがある。更に、マルチプロセスの場合には,あるプログラムが子プロセスを生成して、2つ以上のプロセスでプログラムを実行する、又は別のプログラムのプロセスが同時に実行する場合がある。また,マルチコア構成のCPUチップにおいては、プロセスの実行が別のCPUコアに移動することもある。
第2の実施の形態では、プログラム毎の電力量解析処理をマルチプロセスに対応させたものである。図15は、第2の実施の形態の電力量解析処理の説明図である。図15において、図1,図2,図7,図14で示したものと同一のものは、同一の記号で示してある。
まず,イベントと消費電力の関係を調べる方法は,図4及び図5で説明した第1の実施の形態と同じである。次に、プログラムの実行時に,どのイベントが発生したかを計測する処理を図15により説明する。第1の処理方法は、OSのカーネル80が,プロセス終了時に、パフォーマンスカウンタ34を観測する処理である。
図15に示すように、カーネル80のプロセス構造体80−1,80−2に,CPUコア18−1のパフォーマンスカウンタ34の値を格納するための領域84−1,84−2を追加する。対象のプログラム82−1,82−2のプロセスのいずれかが実行開始するときに、カーネル80がCPUコア18−1のパフォーマンスカウンタ34の初期設定を行い、パフォーマンスカウンタ34の計測を開始する。
カーネル80は、プロセスを切り替えるときに(例えば、プロセス82−1からプロセス82−2に切り替えるときに),CPUコア18−1のパフォーマンスカウンタ34の値をプロセス構造体80−1の領域84−1に退避し、プロセス構造体80−2の領域84−2の値をCPUコア18−1のパフォーマンスカウンタ34に復元する。
更に、カーネル80は、プログラムの実行が終了する時に、CPUコア18−1のパフォーマンスカウンタ34の値を実行が終了するプログラムのプロセス構造体に記録する。第1の処理は、電力量を計算できる。
第2の処理方法は、カーネル80が、プロセスごとにパフォーマンスカウンタ34を定期的に観測する処理である。第1の処理方法と同様に、カーネル80のプロセス構造体80−1,80−2に,パフォーマンスカウンタ34の値を格納するための領域84−1,84−2を追加する。対象のプログラムのプロセスにいずれかが実行を開始するときに、カーネル80は、パフォーマンスカウンタ34の初期設定を行い、パフォーマンスカウンタ34の計測を開始する。
カーネル80は、プロセスを切り替えるときに(例えば、プロセス82−1からプロセス82−2に切り替えるときに),CPUコア18−1のパフォーマンスカウンタ34の値をプロセス構造体80−1の領域84−1に退避し、プロセス構造体80−2の領域84−2の値をCPUコア18−1のパフォーマンスカウンタ34に復元する。
更に、カーネル80は、定期的に、パフォーマンスカウンタ34の値をプロセス構造体80−1,80−2に記録する。例えば、定期的な記録処理に、タイマー割込みを使用することができる。この処理により、図10、図11、図13で説明したように、プログラムの最大消費電力を求めることができる。
又、カーネル80がパフォーマンスカウンタ34の値を記録し、プロセスが切り替わるときに,パフォーマンスカウンタ34の値をプロセス構造体80−1,80−2に退避・復元するため,プロセスの実行が、別のCPUコアに移動した場合にも電力量解析処理を継続できる。
更に、プログラム実行後,プログラムの電力量または最大消費電力を求める。カーネル80内のプロセス構造体80−1,80−2に記録されているパフォーマンスカウンタの値を用いて,プロセスプログラムごとに電力量または最大消費電力を求める。このため、マルチプロセスの場合に対応でき,さらにマルチコアの場合にも対応できる。
(電力使用量を付加した使用量の計算処理)
図16は、実施の形態の使用量計算処理のモジュールの構成図である。図16において、図7、図12で説明したものは、同一の記号で示してある。図16は、例えば、UNIX(登録商標)の課金処理モジュールを示す。図16に示すように、OSのカーネル80内のプロセス構造体80−1内の課金情報構造88−1は、プロセスプログラム82ごとに,CPU使用時間、I/O転送バイト数等を保持する。
課金処理モジュール86は、OSに設けられる。課金処理モジュール86は、システムコール(acct)により,課金情報構造88−1から保持データを取り出し、課金計算し、課金情報ファイル16Dに出力する。
図17は、図16における課金処理の説明図である。図18は、図16、図17の課金情報構造88−1の説明図である。図19は、図16及び図17の課金情報ファイル16Dの説明図である。
図17は、プログラムの実行後、イベントと消費電力との関係から、プロセスごとに求めた電力量または最大消費電力を課金情報構造体に格納し、課金情報構造体の内容をファイルに出力する処理を示す。図17に示すように、課金情報構造体88−1が、OSのカーネル80内のプロセス構造体80−1内に設けられる。
図18に示すように、課金情報構造体88−1は,ユーザーID(int ac_uid)と、ユーザーCPU使用時間(int ac_utime)と、システムCPU使用時間(int ac_stime)と、起動から終了までに経過した実時間(int ac_etime)と、平均メモリ使用量(int ac_mem)と、消費電力(int ac_power)とを有する。即ち、課金情報構造体88−1に、消費電力を格納するための領域を追加する。
ユーザーCPU時間は、CPU10がユーザーのプログラム実行に要した時間である。システムCPU時間は、CPUシステム(システムコントローラ12、メモリ14)がユーザーのプログラム実行に要した時間である。起動から終了までに経過した実時間は、プログラムの起動から終了までに経過した実際の時間である。平均メモリ使用量は、プログラムが使用した主記憶装置の平均メモリ使用量である。
図17に示すように、課金情報を出力するシステムコールにより課金処理モジュール86に課金情報を取る指示を出力する(S1)。課金情報処理モジュール86は、対象プログラムの開始時に、課金情報を取る指示とパフォーマンスカウンタの計測をプロセス構造体80−1に指示する(S2)。
前述のように、カーネル80がプロセスプログラム82に制御権を渡し、CPU10が、プログラム82を実行し、CPUコア18−1のパフォーマンスカウンタ34が、イベントの回数計測を行う。プロセスプログラム82又はカーネル80は、プロセスプログラム82の実行終了時に、パフォーマンスカウンタ34のイベント回数を主記憶装置14に展開されたイベント回数格納域16Bに格納する。この例では、主記憶装置14に展開されたプロセス構造体80−1のパフォーマンスカウンタ領域に格納する。そして、課金処理モジュール86は、プロセス構造体80−1のパフォーマンスカウンタ域(図17では、16Bで示す)の値を用いて,対象プロセスの消費電力または最大消費電力を計算する(S3)。
課金処理モジュール86は、計算した消費電力を課金情報構造体88−1に格納する(S4)。課金処理モジュール86は、課金情報構造体88−1の内容をシステムコールで指定された課金情報ファイル16Dに出力する。
図19は、課金情報ファイル16Dの説明図である。課金情報ファイル16Dは、ユーザー名と、コマンド実行回数vと、実時間wと、実行時間x、平均メモリ使用量yと、電力量zとを、各ユーザーに格納する。実時間wは、図18の起動から終了までに経過した実時間を示し、実行時間は、図18の(ユーザーCPU時間+システムCPU時間)を示す。
課金処理モジュール86は、更に、課金値を、コマンド実行回数vと、実時間wと、実行時間x、平均メモリ使用量yと、電力量zから計算する。例えば、課金処理モジュール86は、下記式(1)で、課金値を計算する。
課金値=a×v+b×w+c×x+d×y+e×z (1)
尚、式(1)で、パラメータa,b,c,d,eは、計算機センターで決めるパラメータである。
この実施の形態では、従来の課金情報処理の拡張により,電力量を扱うことができる。又、電力量の代わりに最大消費電力を使用しても良く、電力量と最大消費電力とを組み合わせても良い。
(電力使用量の解析の第3の実施の形態)
図20は、第3の実施の形態の電力解析処理フロー図である。第3の実施の形態は、イベントと消費電力の関係を動的に変更するものである。即ち、イベントと消費電力の関係は、線形であるとは限られないため,イベントと消費電力の関係とに誤差が生じる場合がある。第3の実施の形態は、第1の実施の形態で解析した電力量と電力計によって求めた電力量とを比較し,イベントと消費電力との関係を調整(フィードバック)する。これにより、イベントと消費電力との関係との誤差を小さくする。
先ず、情報処理システムの構成は、図1、図2の構成に、図5で説明した電力計70とI/Oポート19を付加する。
(S20)第1の実施の形態の図3のS10と同様で、イベント毎の単位時間の消費電力を測定する。
(S22)第1の実施の形態の図3のS12と同様の処理で、プログラム実行毎に、発生したイベント回数を計測する。
(S24)第1の実施の形態の図3のS14と同様に、単位時間の消費電力と測定したイベント回数から、プログラムの電力量Bを計算する。この実施の形態では、イベント毎の単位時間当たりの消費電力を使用する。例えば,イベントiの発生回数に対する単位時間当たりの消費電力(関係A)をaiとし,ある時間tの間に発生したイベントiの回数をeiとする。その時の電力量WBは,以下の式(2)で表わされる。
WB=Σ(ai×ei) (2)
このプログラム実行の間にS10と同様に、電力計70を用いて、イベント毎の単位時間の消費電力を測定する。この後、式(3)により、プログラム実行時の測定電力量WCを計算する。又、図17〜図19を用いて説明したように、課金等のプログラムの使用量を計算し、課金情報ファイル16Dに出力する。
(S26)つぎに、イベント回数から計測した電力量WBと電力計70を用いて電力量WCとを比較し,単位時間当たりの消費電力(関係(A))のパラメータaiを調整する。例えば、新しい関係(A)のパラメータnewai以下の式(3)のように更新する。
newai=ai+ α×(WC−WB)×(ei/ Σei) (3)
尚、(3)式の「ei」は、前述のイベント回数である。(3)式の意味は,プログラム実行中に実際に電力計70で測定した電力量WCが計算した電力量WBより大きければ,関係(A)のパラメータaiを今までより大きくする。又、(3)式の「α」は利得であり、大きな値にすると発振してしまう。例えば、αは、「0.1」程度が好ましい。
(S28)そして、次のプロセスプログラムが実行される場合には、ステップS22に戻り、更新したパラメータaiを使用する。
又、(3)式では、電力量の計算に固定値を考慮していないが、リーク電流等で固定的に消費する電力が必要である。このため、消費電力の計算に固定値を付加する。例えば,電力bを固定値とした場合,電力量を求める式(2)は以下の(4)式に変更する。
WB=Σ(ai×ei)+b×t (4)
尚、式(4)の時間tは、プログラムの実行時間である。
更に、式(3)と同様に、固定値bのパラメータの調整を行う。例えば、新しい固定値newbを以下の式(5)で計算する。
newb=b+ β×(WC−WB)/t (5)
(5)式は、プログラム実行中に実際に電力計70で測定した電力量WCが計算した電力量WBより大きければ,固定値bを今までより大きくする式である。又、式(5)中の「β」は利得であり、大きな値にすると発振してしまう。利得βは、0.01程度が望ましい。
以上のフィードバックの計算式は、例示であり、フィードバック可能な式であれば、他の計算式でもかまわない。また,この計算式は,システムに固定的に組み込まれている必要はなく,ソフトウェア(プログラム)で記述した場合は,ユーザ(使用者,管理者)が変更してもかまわない。
このように、解析した電力量と電力計によって実際に計測した電力量とを比較し,イベントと消費電力の関係を調整(フィードバック)する。これにより、イベントと消費電力との関係との誤差を小さくできる。特に、情報処理システムの温度変化等の環境変化により、消費電力が変化する場合に有効である。
(他の実施の形態)
前述の実施の形態では、複数のシステムボードを有する情報処理システムで説明したが、1つ以上のシステムボードを有する情報処理システムに適用できる。又、CPUチップ10内に、4つのCPUコアを有する例で説明したが、1つ以上のCPUコアを備えるCPUチップに適用できる。
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
プログラムを実行する演算処理ユニットの利用量と消費電力とからプログラムの使用量を計算するため、利用者にとって、公平性のある情報処理装置の使用量を計算できる。また、プログラムの実行開始時にパフォーマンスカウンタを初期設定し、プログラムの実行完了時のパフォーマンスカウンタの各イベントの回数と予め計測した演算処理ユニットの各イベント発生時の消費電力とから、プログラムの電力量を計算するため、プログラム単位で、妥当性のある情報処理装置の使用量を計算できる。
1−1〜1−N システムボード
7 ネットワーク
8−0〜8−M 端末装置
10 CPUユニット
12 システムコントローラ
14 記憶ユニット
18−1〜18−4 CPUコア
27,29,31 演算ユニット
21,25 ロード/ストアユニット
22,24,26 キャッシュユニット
34 パフォーマンスカウンタ
36 パフォーマンスカウンタ管理部
60 管理ユニット
62 電源ユニット
64 外部記憶装置
66 ネットワークインターフェース装置
68 接続バス
この目的の達成のため、開示の情報処理装置の使用量解析方法は、パフォーマンスカウンタを有する演算処理ユニットが、プログラムの実行開始時に、前記プログラムの実行により前記演算処理ユニットが実行した各イベントのイベント回数を計数する前記パフォーマンスカウンタを初期設定する工程と、前記演算処理ユニットが、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を記憶ユニットに記憶する工程と、前記演算処理ユニットが、前記記憶ユニットに格納された予め計測した前記演算処理ユニットの各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算する工程と、前記演算処理ユニットが、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する工程とを有する。
又、この目的の達成のため、開示の情報処理システムは、ユーザーから要求されたプログラムを実行するとともに、前記プログラムの実行により前記演算処理ユニットが実行した各イベントのイベント回数をパフォーマンスカウンタで計数する演算処理ユニットと、予め計測した前記演算処理ユニットの各イベント発生時の消費電力を含む前記演算処理ユニットの前記プログラムの実行に必要な情報を格納する記憶ユニットとを有し、前記演算処理ユニットは、前記プログラムの実行開始時に、前記パフォーマンスカウンタを初期設定し、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を前記記憶ユニットに記憶し、前記記憶ユニットに格納された前記各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算し、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する。
更に、この目的の達成のため、開示のプログラムは、プログラムの実行開始時に、前記プログラムの実行により発生する各イベントのイベント回数を計数するコンピュータのパフォーマンスカウンタを初期設定する工程と、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を記憶ユニットに記憶する工程と、前記記憶ユニットに格納された予め計測した演算処理ユニットの各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算する工程と、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する工程とを、前記コンピュータに実行させる。
プログラムを実行する演算処理ユニットの利用量と電力量とからプログラムの使用量を計算するため、利用者にとって公平性のある情報処理装置の使用量を計算できる。また、プログラムの実行開始時にパフォーマンスカウンタを初期設定し、プログラムの実行完了時のパフォーマンスカウンタの各イベントの回数と予め計測した演算処理ユニットの各イベント発生時の消費電力とから、プログラムの消費電力を計算するため、プログラム単位で、リアルタイムで且つ高速に情報処理装置の使用量を計算できる。
管理ユニット60は、各システムボード1−1〜1−Nの電源投入/切断、状態設定を含む初期化処理、状態監視処理を行う。管理ユニット60は、たとえば、サービスプロセッサ(SVP:Service Processor)で構成される。電源ユニット62は、商用電源に接続し、管理ユニット60からの電源投入指示に応じて、各システムボード1−1〜1−N及び外部記憶装置64、ネットワークインターフェース装置66に電力を供給する。
プログラムを実行する演算処理ユニットの利用量と電力量とからプログラムの使用量を計算するため、利用者にとって、公平性のある情報処理装置の使用量を計算できる。また、プログラムの実行開始時にパフォーマンスカウンタを初期設定し、プログラムの実行完了時のパフォーマンスカウンタの各イベントの回数と予め計測した演算処理ユニットの各イベント発生時の消費電力とから、プログラムの消費電力を計算するため、プログラム単位で、リアルタイムで且つ高速に情報処理装置の使用量を計算できる。

Claims (18)

  1. 演算処理ユニットが、プログラムの実行開始時に、前記プログラムの実行により発生する各イベントのイベント回数を計数するパフォーマンスカウンタを初期設定する工程と、
    前記演算処理ユニットが、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を記憶ユニットに記憶する工程と、
    前記演算処理ユニットが、前記記憶ユニットに格納された予め計測した前記演算処理ユニットの各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算する工程と、
    前記演算処理ユニットが、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する工程とを有する
    ことを特徴とする情報処理装置の使用量解析方法。
  2. 請求項1の情報処理装置の使用量解析方法において、
    前記電力量を計算する工程は、
    前記各イベントの消費電力と前記各イベントの回数とから、前記プログラムの各イベントの電力量を計算する工程と、
    前記各イベントの電力量の総和を計算し、前記プログラムの電力量を計算する工程とを含む
    ことを特徴とする情報処理装置の使用量解析方法。
  3. 請求項1の情報処理装置の使用量解析方法において、
    前記イベントの回数を記録する工程は、前記演算処理ユニットが、前記プログラムの実行中に定期的に前記パフォーマンスカウンタの各イベントの回数を観測し、定期的に観測した前記各イベントの回数を前記記憶ユニットに記憶する工程を含み、
    前記電力量を計算する工程は、前記演算処理ユニットが前記記憶ユニットに記憶された各イベントの回数と前記各イベント発生時の消費電力とから、前記観測時刻毎に、消費電力を計算する工程とを含む
    ことを特徴とする情報処理装置の使用量解析方法。
  4. 請求項1の情報処理装置の使用量解析方法において、
    前記演算処理ユニットが、各イベントを発生させるテストプログラムを実行する工程と、
    前記演算処理ユニットが、前記テストプログラムの実行完了時の前記パフォーマンスカウンタの各イベントの回数と、前記演算処理ユニットに供給される電力を計測する電力計の電力値とから、前記演算処理ユニットの各イベント発生時の消費電力を計測し、前記記憶ユニットに格納する工程とを更に有する
    ことを特徴とする情報処理装置の使用量解析方法。
  5. 請求項1の情報処理装置の使用量解析方法において、
    前記記憶する工程は、前記演算処理ユニットが、前記プログラムの実行完了時に、前記パフォーマンスカウンタの少なくとも整数演算イベント、浮動小数点演算イベント、キャッシュミスイベント、TLBミスイベントの回数を記憶ユニットに記憶する工程を含む
    ことを特徴とする情報処理装置の使用量解析方法。
  6. 請求項1の情報処理装置の使用量解析方法において、
    前記演算処理ユニットが、複数のプログラムの実行の内、一のプログラムの実行から他のプログラムの実行に切り替える時に、前記一のプログラムの実行による前記パフォーマンスカウンタの値を前記記憶ユニットに退避する工程と、
    前記演算処理ユニットが、前記他のプログラムの実行から前記一のプログラムの実行に切り替える時に、前記記憶ユニットに退避した前記一のプログラムの値を前記パフォーマンスカウンタの復元する工程とを更に有する、
    ことを特徴とする情報処理装置の使用量解析方法。
  7. 請求項1の情報処理装置の使用量解析方法において、
    前記使用量を計算する工程は、
    前記プログラムの実行を要求したユーザーへの課金を計算する工程を含む
    ことを特徴とする情報処理装置の使用量解析方法。
  8. 請求項1の情報処理装置の使用量解析方法において、
    前記演算処理ユニットが、前記プログラムの実行完了時の前記パフォーマンスカウンタの各イベントの回数と、前記演算処理ユニットに供給される電力を計測する電力計の電力値とから、前記演算処理ユニットの各イベント発生時の消費電力を計測し、前記記憶ユニットの前記各イベントの消費電力を更新する工程を更に有する
    ことを特徴とする情報処理装置の使用量解析方法。
  9. ユーザーから要求されたプログラムを実行するとともに、前記プログラムの実行により発生する各イベントのイベント回数をパフォーマンスカウンタで計数する演算処理ユニットと、
    予め計測した前記演算処理ユニットの各イベント発生時の消費電力を含む前記演算処理ユニットの前記プログラムの実行に必要な情報を格納する記憶ユニットとを有し、
    前記演算処理ユニットは、前記プログラムの実行開始時に、前記パフォーマンスカウンタを初期設定し、少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を前記記憶ユニットに記憶し、前記記憶ユニットに格納された前記各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算し、前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する
    ことを特徴とする情報処理システム。
  10. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットは、
    前記各イベントの消費電力と前記各イベントの回数とから、前記プログラムの各イベントの電力量を計算し、前記各イベントの電力量の総和を計算し、前記プログラムの電力量を計算する
    ことを特徴とする情報処理システム。
  11. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットは、前記プログラムの実行中に定期的に前記パフォーマンスカウンタの各イベントの回数を観測し、定期的に観測した前記各イベントの回数を前記記憶ユニットに記憶し、前記記憶ユニットに記憶された各イベントの回数と前記各イベント発生時の消費電力とから、前記観測時刻毎に、消費電力を計算する
    ことを特徴とする情報処理システム。
  12. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットが、各イベントを発生させるテストプログラムを実行し、前記テストプログラムの実行完了時の前記パフォーマンスカウンタの各イベントの回数と、前記演算処理ユニットに供給される電力を計測する電力計の電力値とから、前記演算処理ユニットの各イベント発生時の消費電力を計測し、前記記憶ユニットに格納する
    ことを特徴とする情報処理システム。
  13. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットは、前記プログラムの実行完了時に、前記パフォーマンスカウンタの少なくとも整数演算イベント、浮動小数点演算イベント、キャッシュミスイベント、TLBミスイベントの回数を記憶ユニットに記憶する
    ことを特徴とする情報処理システム。
  14. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットが、複数のプログラムの実行の内、一のプログラムの実行から他のプログラムの実行に切り替える時に、前記一のプログラムの実行による前記パフォーマンスカウンタの値を前記記憶ユニットに退避し、前記他のプログラムの実行から前記一のプログラムの実行に切り替える時に、前記記憶ユニットに退避した前記一のプログラムの値を前記パフォーマンスカウンタの復元する
    ことを特徴とする情報処理システム。
  15. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットは、
    前記プログラムの実行を要求したユーザーへの課金を計算する
    ことを特徴とする情報処理システム。
  16. 請求項9の情報処理システムにおいて、
    前記演算処理ユニットが、前記プログラムの実行完了時の前記パフォーマンスカウンタの各イベントの回数と、前記演算処理ユニットに供給される電力を計測する電力計の電力値とから、前記演算処理ユニットの各イベント発生時の消費電力を計測し、前記記憶ユニットの前記各イベントの消費電力を更新する
    ことを特徴とする情報処理システム。
  17. プログラムの実行開始時に、前記プログラムの実行により発生する各イベントのイベント回数を計数するパフォーマンスカウンタを初期設定する工程と、
    少なくとも前記プログラムの実行完了時に、前記パフォーマンスカウンタの各イベントの回数を記憶ユニットに記憶する工程と、
    前記記憶ユニットに格納された予め計測した演算処理ユニットの各イベント発生時の消費電力と、前記各イベントの回数とから前記プログラムの電力量を計算する工程と、
    前記演算処理ユニットの利用量と前記電力量とから前記プログラムの使用量を計算する工程とを、
    コンピュータに実行させるプログラム。
  18. 請求項17のプログラムにおいて、
    前記電力量を計算する工程として、
    前記各イベントの消費電力値と前記各イベントの回数とから、前記プログラムの各イベントの電力量を計算する工程と、
    前記各イベントの電力量の総和を計算し、前記プログラムの電力量を計算する工程とを
    コンピュータに実行させるプログラム。
JP2012522384A 2010-06-30 2010-06-30 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム Active JP5510543B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/061150 WO2012001779A1 (ja) 2010-06-30 2010-06-30 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム

Publications (2)

Publication Number Publication Date
JPWO2012001779A1 true JPWO2012001779A1 (ja) 2013-08-22
JP5510543B2 JP5510543B2 (ja) 2014-06-04

Family

ID=45401534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012522384A Active JP5510543B2 (ja) 2010-06-30 2010-06-30 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム

Country Status (3)

Country Link
US (1) US9372523B2 (ja)
JP (1) JP5510543B2 (ja)
WO (1) WO2012001779A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6146197B2 (ja) * 2013-08-07 2017-06-14 株式会社ソシオネクスト 設計支援方法、設計支援プログラム、および設計支援装置
US9495271B2 (en) * 2014-01-29 2016-11-15 Freescale Semiconductor, Inc. Statistical power indication monitor for purpose of measuring power consumption
JP6363409B2 (ja) * 2014-06-25 2018-07-25 Necプラットフォームズ株式会社 情報処理装置の試験方法および情報処理装置
WO2016021253A1 (ja) * 2014-08-08 2016-02-11 株式会社Jvcケンウッド 受信強度算出装置、受信強度算出方法、プログラム
TWI571820B (zh) * 2014-11-06 2017-02-21 財團法人資訊工業策進會 工具機耗電量預測系統與方法
US20160217239A1 (en) * 2015-01-22 2016-07-28 Synopsys, Inc. Method and system for selecting stimulation signals for power estimation
JP6646201B2 (ja) 2015-07-27 2020-02-14 富士通株式会社 情報処理装置、電力推定プログラム及び電力推定方法
KR102402584B1 (ko) * 2015-08-26 2022-05-27 삼성전자주식회사 사용자 어플리케이션의 특성에 따른 연산 디바이스 동적 제어 기법
JP6683920B2 (ja) * 2016-02-24 2020-04-22 富士通株式会社 並列処理装置、電力係数算出プログラムおよび電力係数算出方法
US10191792B2 (en) * 2016-03-04 2019-01-29 International Business Machines Corporation Application abnormality detection
JP2017167930A (ja) * 2016-03-17 2017-09-21 富士通株式会社 情報処理装置、電力測定方法及び電力測定プログラム
US10401934B2 (en) 2017-01-11 2019-09-03 Microsoft Technology Licensing, Llc Process-level activity tagging
JP6790913B2 (ja) 2017-02-24 2020-11-25 富士通株式会社 情報処理装置、情報処理方法及びプログラム
JP6911544B2 (ja) 2017-06-02 2021-07-28 富士通株式会社 プログラム、情報処理装置及び情報処理方法
US10948957B1 (en) 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
US10917327B1 (en) * 2020-03-27 2021-02-09 EMC IP Holding Company LLC Adaptive testing based on real-time analysis

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2718399B2 (ja) * 1995-08-10 1998-02-25 日本電気株式会社 コンピュータ接続対応データ無線機
JP3351725B2 (ja) * 1997-01-08 2002-12-03 株式会社東芝 パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体
JPH10269767A (ja) * 1997-03-19 1998-10-09 Mitsubishi Electric Corp 半導体装置
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
JPH11161692A (ja) * 1997-11-28 1999-06-18 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP4195746B2 (ja) * 1998-12-11 2008-12-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データ課金システム、コンテンツ生成装置、データ課金置および方法
JP2001318807A (ja) * 2000-05-11 2001-11-16 Nec Microsystems Ltd タスク切り替え制御方法及び装置
US6810482B1 (en) * 2001-01-26 2004-10-26 Synopsys, Inc. System and method for estimating power consumption of a circuit thourgh the use of an energy macro table
US6513145B1 (en) * 2001-07-31 2003-01-28 Hewlett-Packard Company Method for estimating the power consumed in a microprocessor
US6820222B2 (en) * 2001-08-08 2004-11-16 Texas Instruments Incorporated Apparatus and method for processor power measurement in a digital signal processor using trace data and simulation techniques
US7039910B2 (en) * 2001-11-28 2006-05-02 Sun Microsystems, Inc. Technique for associating execution characteristics with instructions or operations of program code
US7096145B2 (en) * 2002-01-02 2006-08-22 Intel Corporation Deterministic power-estimation for thermal control
US8271400B2 (en) * 2002-01-15 2012-09-18 Hewlett-Packard Development Company, L.P. Hardware pay-per-use
US7290246B2 (en) 2002-04-04 2007-10-30 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
EP1351148A3 (en) 2002-04-04 2008-05-07 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
US7149636B2 (en) 2002-04-04 2006-12-12 Texas Instruments Incorporated Method and apparatus for non-obtrusive power profiling
US7337433B2 (en) 2002-04-04 2008-02-26 Texas Instruments Incorporated System and method for power profiling of tasks
JP2004272669A (ja) * 2003-03-10 2004-09-30 Hitachi Ltd グリッドコンピューティングにおける課金管理方法及び課金管理装置
US8484643B2 (en) * 2003-03-31 2013-07-09 Fujitsu Limited CPU usage time counting method and job control system using this CPU usage time
US20040268159A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Power profiling
US7493621B2 (en) * 2003-12-18 2009-02-17 International Business Machines Corporation Context switch data prefetching in multithreaded computer
JP2005266845A (ja) * 2004-03-16 2005-09-29 Osaka Gas Co Ltd 計算機使用料金算出装置及び計算機演算処理分割方法
WO2006024325A1 (en) * 2004-08-31 2006-03-09 Freescale Semiconductor, Inc. Method for estimating power consumption
US7480809B2 (en) * 2004-10-15 2009-01-20 Genesis Microchip Inc. Reducing power consumption of a microprocessor
US8230059B1 (en) * 2005-11-08 2012-07-24 Hewlett-Packard Development Company, L.P. Method of monitoring resource usage in computing environment
US7802241B2 (en) * 2005-12-12 2010-09-21 Freescale Semiconductor, Inc. Method for estimating processor energy usage
US20070192157A1 (en) * 2006-02-15 2007-08-16 Elizabeth Ann Gooch Interactive system for managing, tracking and reporting work and staff performance in a business environment
JP4832125B2 (ja) * 2006-03-15 2011-12-07 富士通セミコンダクター株式会社 性能解析装置、性能解析方法、性能解析プログラム、および記録媒体
US7549069B2 (en) * 2006-03-15 2009-06-16 Fujitsu Limited Estimating software power consumption
JP2008026948A (ja) 2006-07-18 2008-02-07 Renesas Technology Corp 半導体集積回路
US7340378B1 (en) 2006-11-30 2008-03-04 International Business Machines Corporation Weighted event counting system and method for processor performance measurements
US7716457B2 (en) * 2007-01-16 2010-05-11 Oracle America, Inc. Method and apparatus for counting instructions during speculative execution
US8161532B2 (en) * 2007-04-04 2012-04-17 Microsoft Corporation Operating system independent architecture for subscription computing
KR100934215B1 (ko) * 2007-10-29 2009-12-29 한국전자통신연구원 이벤트 처리 명령어 세트 기반의 마이크로프로세서 및 이를이용한 이벤트 처리 방법
US8219993B2 (en) * 2008-02-27 2012-07-10 Oracle America, Inc. Frequency scaling of processing unit based on aggregate thread CPI metric
US20090300399A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Profiling power consumption of a plurality of compute nodes while processing an application
US8250389B2 (en) * 2008-07-03 2012-08-21 International Business Machines Corporation Profiling an application for power consumption during execution on a plurality of compute nodes
JP5299161B2 (ja) * 2008-08-22 2013-09-25 富士通株式会社 計算機装置および消費電力のサンプリング方法
US8611827B2 (en) * 2008-12-09 2013-12-17 Nec Corporation System, method, and program for correcting radiowave environment data
US8954487B2 (en) * 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service
US8305737B2 (en) * 2009-06-25 2012-11-06 Server Technology, Inc. Power distribution apparatus with input and output power sensing and method of use
US20110016455A1 (en) * 2009-07-20 2011-01-20 Glenn Perry Power Profiling for Embedded System Design
US20110072378A1 (en) * 2009-09-24 2011-03-24 Nokia Corporation Method and apparatus for visualizing energy consumption of applications and actions
US20110218691A1 (en) * 2010-03-05 2011-09-08 Efficient Energy America Incorporated System and method for providing reduced consumption of energy using automated human thermal comfort controls
US20110264418A1 (en) * 2010-04-21 2011-10-27 Sentilla Corporation, Inc. Determining electrical consumption in a facility
US8397087B1 (en) * 2010-05-31 2013-03-12 Symantec Corporation Systems and methods for individually managing the power usage of software applications

Also Published As

Publication number Publication date
US20130117596A1 (en) 2013-05-09
WO2012001779A1 (ja) 2012-01-05
JP5510543B2 (ja) 2014-06-04
US9372523B2 (en) 2016-06-21

Similar Documents

Publication Publication Date Title
JP5510543B2 (ja) 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム
CN103154890B (zh) 模拟装置、方法以及程序
Dargie A stochastic model for estimating the power consumption of a processor
JP5961971B2 (ja) シミュレーション装置,方法,およびプログラム
Contreras et al. Power prediction for Intel XScale® processors using performance monitoring unit events
Guerreiro et al. GPGPU power modeling for multi-domain voltage-frequency scaling
US8010334B2 (en) Method and apparatus for evaluating integrated circuit design performance using basic block vectors, cycles per instruction (CPI) information and microarchitecture dependent information
Shafi et al. Design and validation of a performance and power simulator for PowerPC systems
Guerreiro et al. Modeling and decoupling the GPU power consumption for cross-domain DVFS
Bhattacharjee et al. Full-system chip multiprocessor power evaluations using FPGA-based emulation
Rosa et al. Fast energy evaluation of embedded applications for many-core systems
Hassani et al. LiveSim: Going live with microarchitecture simulation
JP2018139093A (ja) 情報処理装置、情報処理方法及びプログラム
Wang et al. An improved instruction-level power model for ARM11 microprocessor
Hart et al. Predicting memcached throughput using simulation and modeling.
Li et al. Fine-grained energy modeling for the source code of a mobile application
Mittal et al. Integrating sampling approach with full system simulation: Bringing together the best of both
Luo et al. Efficiently evaluating speedup using sampled processor simulation
Goel Per-core power estimation and power aware scheduling strategies for CMPs
Srinivasan et al. Ultra-fast cpu performance prediction: Extending the monte carlo approach
Powell et al. Using continuous statistical machine learning to enable high-speed performance prediction in hybrid instruction-/cycle-accurate instruction set simulators
Chiou et al. Parallelizing computer system simulators
Zaman et al. CAPE: A cross-layer framework for accurate microprocessor power estimation
Zaman et al. Towards a cross-layer framework for accurate power modeling of microprocessor designs
Srinivasan et al. Montesim: a monte carlo performance model for in-order microachitectures

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

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: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140310

R150 Certificate of patent or registration of utility model

Ref document number: 5510543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150