JP6631374B2 - 情報処理装置、動作状況収集プログラム及び動作状況収集方法 - Google Patents

情報処理装置、動作状況収集プログラム及び動作状況収集方法 Download PDF

Info

Publication number
JP6631374B2
JP6631374B2 JP2016080400A JP2016080400A JP6631374B2 JP 6631374 B2 JP6631374 B2 JP 6631374B2 JP 2016080400 A JP2016080400 A JP 2016080400A JP 2016080400 A JP2016080400 A JP 2016080400A JP 6631374 B2 JP6631374 B2 JP 6631374B2
Authority
JP
Japan
Prior art keywords
information
cpu
limit value
execution
operating frequency
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
JP2016080400A
Other languages
English (en)
Other versions
JP2017191446A (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
Priority to JP2016080400A priority Critical patent/JP6631374B2/ja
Priority to US15/484,373 priority patent/US10281971B2/en
Publication of JP2017191446A publication Critical patent/JP2017191446A/ja
Application granted granted Critical
Publication of JP6631374B2 publication Critical patent/JP6631374B2/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
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Description

本発明は、情報処理装置、動作状況収集プログラム及び動作状況収集方法に関する。
例えば、利用者に対するサービスの提供等を行う事業者(以下、単に事業者とも呼ぶ)は、計算機システムで動作するプログラムや計算機システムで動作させる予定のプログラムに対して電力プロファイルを行う。
電力プロファイルは、例えば、プログラムの実行時における消費電力量の特性を解析するものである。事業者は、電力プロファイルを行うことにより、例えば、プログラム(以下、解析対象プログラムまたは検証用プログラムとも呼ぶ)に含まれる関数毎の消費電力量の特性を取得することが可能になる。そのため、事業者は、例えば、解析対象プログラムに含まれる関数のうちの消費電力量が大きい関数や、単位時間あたりの消費電力量(以下、消費電力とも呼ぶ)が大きい関数を、性能改善のために改修すべき箇所として特定することが可能になる(例えば、非特許文献1及び2参照)。
小野美由紀、外2名、「ソフトウェアの消費電力分析手法」、情報処理学会研究報告 Vol.2015−HPC−150、No.29、2015/8/5、p.2 Kashif Nizam Khan,外7名,"Energy Profiling using lgProf",2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing,p.1115−p.1117
上記のような電力プロファイルを行う場合、事業者は、例えば、所定の時間間隔毎に、解析対象プログラムの実行に伴うCPU(Central Processing Unit)に対してサンプリングを行う。このとき、同時にCPUが計測する消費電力量を実行箇所に割り付けて集計することにより、プログラムの電力プロファイルを実現している。この場合、事業者は、サンプリングを行う間隔(以下、単にサンプリング間隔とも呼ぶ)をある程度短くする必要がある。なぜなら、サンプリング間隔が長い場合においては、前回のサンプリングから様々な関数が実行されるため、今回サンプリングされたプログラム実行箇所の消費電力量としては不正確になってしまうためである。また、サンプリング間隔が長い場合においては、例えば、短い時間で実行される関数のサンプリングが困難になることがある。
しかしながら、サンプリング間隔が短い場合、CPUに対して行われる割り込みの頻度が高くなる。そのため、この場合、計算機システムでは、サンプリングを行うための割り込みに起因した性能低下が発生し、事業者が想定している挙動と異なる挙動が行われる可能性がある。
また、サンプリング間隔が短い場合、サンプリングにより取得される情報が多くなる。そのため、この場合、取得された情報を記憶するために必要な記憶領域が大きくなる場合や、分析対象とするプログラムの実行時間が長い場合に、プログラム全体の電力プロファイルの取得が困難になる場合がある。
そこで、一つの側面では、サンプリング間隔を短くすることなく閾値よりも消費電力の大きい関数を特定することを可能とする情報処理装置、動作状況収集プログラム及び動作状況収集方法を提供することを目的とする。
実施の形態の一つの態様によれば、情報処理装置は、検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定する設定部と、前記検証用プログラムの実行を前記CPUに対して指示する実行指示部と、前記検証用プログラムの実行中に前記CPUに対して割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得する取得部と、前記設定部に対する前記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する出力部と、を有する。
一つの側面によれば、サンプリング間隔を短くすることなく閾値よりも消費電力の大きい関数を特定することを可能とする。
情報処理装置1の全体構成を示す図である。 情報処理装置1の全体構成を示す図である。 情報処理装置1の全体構成を示す図である。 情報処理装置1のハードウエア構成を説明する図である。 第1の実施の形態における動作状況収集処理の概略を説明するフローチャートである。 第1の実施の形態における動作状況収集処理の概略を説明する図である。 第1の実施の形態における動作状況収集処理の概略を説明する図である。 第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。 第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。 第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。 第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。 第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。 第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。 サンプリング情報131の具体例を説明する図である。 対応情報135の具体例を説明する図である。 関数情報132の具体例を説明する図である。 制限情報134の具体例を説明する図である。 第2の制限値について第1制限値と同様の処理を行うことが有効である場合を説明する図である。 第2の制限値について第1制限値と同様の処理を行うことが有効である場合を説明する図である。 サンプリング情報131aの具体例を説明する図である。 制限情報134aの具体例を説明する図である。 制限情報134の具体例を説明する図である。
[情報処理装置の構成]
図1から図3は、情報処理装置1の全体構成を示す図である。図1から図3に示す情報処理装置1は、CPU101と、記憶部1a(以下、記憶装置1aとも呼ぶ)とを有している。
図1に示す情報処理装置1は、CPU101(CPU101の一部であるプログラム実行部111)が実行する解析対象プログラムの電力プロファイルを行う。具体的に、図1に示す情報処理装置1において、CPU101がオペレーティングシステム(OS:Operating System)を構成するプログラムであるカーネルKLと協働することにより動作する情報取得部121は、例えば、プログラム実行部111による解析対象プログラムの実行に応じて、その解析対象プログラムに含まれる関数毎の消費電力量を取得する。そして、情報取得部121は、例えば、取得した消費電力量を含む情報からサンプリングデータ131(以下、サンプリング情報131とも呼ぶ)を作成し、記憶部1aに記憶する。
その後、図1に示す情報処理装置1において、CPU101がカーネルKN上で動作するアプリケーションAPと協働することにより動作する情報解析部122は、記憶部1aに記憶されたサンプリング情報131に基づいて、電力プロファイルを行う。これにより、情報処理装置1は、事業者は、解析対象プログラムに含まれる関数毎の消費電力量の特性を解析することが可能になる。サンプリング情報131の具体例については後述する。
[情報取得部の処理の具体例]
次に、情報取得部121の処理の具体例について説明する。
図1に示すCPU101は、プログラム実行部111の他に、情報取得部121に対して割り込みが発生したことを通知する割り込み処理部112と、CPU101の消費電力量の制限等を行う電力制限部114とを有する。割り込み処理部112は、例えば、CPU101が有するPMC(Performance Monitoring Counter)の機能を利用するものである。また、電力制限部114は、例えば、CPU101が有するRAPL(Running Average Power Limit)の機能を利用するものである。
具体的に、図1に示す例において、割り込み処理部112は、例えば、所定の時間間隔(例えば、10(ミリ秒)間隔)で情報取得部121に通知(割り込み通知)を行う。そして、割り込み処理部112から通知を受信した情報取得部121は、プログラム実行部111にアクセスすることにより、プログラム実行部111が現在実行している解析対象プログラムの動作情報(命令アドレス)を取得し、また、カーネルKNで生成されるプロセスIDを取得する。さらに、情報取得部121は、この場合、例えば、電力制限部114にアクセスすることにより、CPU101の現在の消費電力量を取得する。これにより、事業者は、サンプリング情報131を作成することが可能になる。
ここで、上記のような電力プロファイルを取得する場合、事業者は、例えば、所定の時間間隔毎に、解析対象プログラムの実行に伴うCPU101に対してサンプリングを行う。この場合、事業者は、サンプリングを行う間隔をある程度短くする必要がある。なぜなら、サンプリング間隔が長い場合においては、前回のサンプリングから様々な関数の実行が行われるため、今回サンプリングされたプログラム実行箇所の消費電力量としては不正確になってしまうためである。また、サンプリング間隔が長い場合においては、例えば、短い時間で実行される関数のサンプリングが困難になることがある。
しかしながら、割り込み処理部112に設定されたサンプリング間隔が短い場合、CPU101に対して行われる割り込みの頻度が高くなる。そのため、この場合、情報処理装置1では、図3に示すように、サンプリングを行うための割り込みに起因した性能低下が発生し、事業者が想定している挙動と異なる挙動が行われる可能性がある。
また、サンプリング間隔が短い場合、サンプリングにより取得される情報が多くなる。そのため、この場合、取得された情報を記憶するために必要な記憶領域が大きくなる場合や、分析対象とするプログラムの実行時間が長い場合に、プログラム全体の電力プロファイルの取得が困難になる場合がある。
そこで、本実施の形態における情報処理装置1のCPU制御部141は、図2に示すように、解析対象プログラムの実行に伴う消費電力の制限値(以下、第1制限値とも呼ぶ)をCPU101に対して設定する。そして、CPU制御部141は、解析対象プログラムの実行をCPU101に対して指示する。
さらに、CPU制御部141は、図3に示すように、解析対象プログラムの実行中にCPU101に対して割り込みを発生させ、実行中の関数を示す実行関数情報と、解析対象プログラムの実行中におけるCPU101の動作周波数(以下、第1動作周波数とも呼ぶ)とを対応させて取得する。そして、CPU制御部141は、取得した情報からサンプリング情報131を作成し、記憶部1a等に記憶する。その後、情報処理装置1の情報解析部142(以下、判定部とも呼ぶ)は、作成されたサンプリング情報131に基づき、第1制限値の設定によって第1動作周波数が制限されているか否かを示す制限情報を、実行関数情報と対応させて記憶装置に出力する。
すなわち、解析対象プログラムの実行中において、消費電力が第1制限値に到達した場合、CPU101の電力制限部114は、解析対象プログラムの動作周波数を調整する。具体的に、電力制限部114は、消費電力が第1制限値を上回らないように、解析対象プログラムの動作周波数を抑制する。
そのため、解析対象プログラムの実行中において、消費電力が第1制限値に到達した場合における動作周波数は、消費電力が第1制限値に到達していない場合における動作周波数よりも小さくなる。そこで、情報解析部142は、例えば、解析対象プログラムの実行中におけるCPU101の第1動作周波数と、消費電力が第1制限値に到達していない場合における動作周波数(以下、第2動作周波数とも呼ぶ)とを比較する。そして、第1動作周波数が第2動作周波数を下回る場合、情報解析部142は、解析対象プログラムの実行中において消費電力が第1制限値に到達したものと判定する。
これにより、情報処理装置1は、第1動作周波数を取得した際に実行されていた関数の消費電力(第1制限値によって制限が行われていない場合の消費電力)が、第1制限値よりも高いか否かについて判定することが可能になる。
さらに、CPU101が解析対象プログラムの動作周波数を抑制した場合、動作周波数が抑制された際に実行中であった関数の処理時間が長くなる。そのため、情報処理装置1は、制限が行われていない場合の消費電力が第1制限値を上回る関数の実行中にサンプリングが行われる確率を高めることが可能になる。
これにより、情報処理装置1は、解析対象プログラムの実行中において、サンプリング間隔を短くすることなく、消費電力が所定の閾値よりも大きい関数を特定することを可能とする。また、情報処理装置1は、サンプリングされた情報(記憶部1a等に記憶する必要がある情報)の情報量を抑制することが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図4は、情報処理装置1のハードウエア構成を説明する図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体(ストレージ)104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、記憶媒体104内のプログラム格納領域(図示しない)に、消費電力が所定の閾値よりも大きい関数を特定する処理(以下、動作状況収集処理とも呼ぶ)を行うためのプログラム110を記憶する。
CPU101は、図4に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働して動作状況収集処理を行う。
記憶媒体104は、例えば、動作状況収集処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130または記憶装置130とも呼ぶ)を有する。また、外部インターフェース103は、例えば、他の情報処理装置(例えば、物理マシンや仮想マシン)と通信を行う。なお、図1で説明した記憶部1aは、情報格納領域130に対応するものであってよい。
次に、CPU101が有する機能について説明を行う。図2等に示すCPU101は、プログラム実行部111と、割り込み処理部112と、動作レベル計測部113と、電力制限部114とを有する。
動作レベル計測部113は、例えば、CPU101の所定のレジスタを参照し、CPU101の現在の動作周波数に対応する情報であるP−stateを、CPU101の現在の動作レベルとして取得する。
電力制限部114は、消費電力の第1制限値の設定が行われた場合、プログラム実行部111において解析対象プログラムの実行に伴う消費電力が第1制限値を上回らないように、プログラム実行部111に対する制御を行う。電力制限部114は、例えば、第1制限値が設定された所定のレジスタ(以下、第1レジスタとも呼ぶ)を参照することにより、プログラム実行部111に対する制御を行う。
[情報処理装置のソフトウェア構成]
次に、情報処理装置1のCPU制御部141及び情報解析部142の機能について説明を行う。CPU101は、プログラム110と協働することにより、図2等で説明したように、CPU制御部141と、情報解析部142として動作する。
CPU制御部141は、解析対象プログラムの実行に伴う消費電力の第1制限値を第1レジスタに設定する設定部を有する。CPU制御部141の設定部は、例えば、事業者からの入力があった場合に、第1制限値を第1レジスタに設定する。これにより、電力制限部114は、解析対象プログラムの実行時における消費電力が第1制限値を上回らないように、動作周波数を抑制することが可能になる。
なお、第1制限値は、例えば、消費電力が消費電力を上回らないように動作周波数を抑制するために、抑制を行う時間区間と、その時間区間における平均消費電力量の制限値とからなるものであってもよい。そして、電力制限部114は、この場合、平均消費電力量の制限値を時間区間で除算した値によって動作周波数の抑制を行うものであってよい。
また、CPU制御部141は、解析対象プログラムの実行をCPU101に対して指示する実行指示部を有する。そして、CPU制御部141は、解析対象プログラムの実行中にCPU101に対して割り込みを発生させ、実行中の関数を示す実行関数情報133と、解析対象プログラムの実行中におけるCPU101の動作レベル(以下、第1動作レベルとも呼ぶ)とを対応させて取得する取得部を有する。なお、CPU制御部141の取得部は、例えば、CPU101が設定可能な各動作レベルと、CPU101が設定可能な各動作周波数とを対応させた対応情報135を参照し、取得した第1動作レベルに対応する動作周波数を第1動作周波数として取得する。
さらに、CPU制御部141は、第1制限値の設定によって第1動作周波数が制限されているか否かを示す制限情報134を、実行関数情報133と対応させて情報格納領域130に出力する出力部を有する。制限情報134は、第1制限値の設定によりCPU101の第1動作周波数が制限されているか否かを示す情報、すなわち、消費電力が第1制限値に到達したか否かを示す情報である。
情報解析部142は、CPU制御部141が取得した第1動作周波数に基づき、解析対象プログラムの実行中に消費電力が第1制限値に到達したか否かを判定する。
具体的に、情報解析部142は、例えば、CPU制御部141が取得した第1動作周波数と、消費電力が第1制限値に到達しなかった場合における、解析対象プログラムを実行する際のCPU101の第2動作周波数とを比較する。そして、情報解析部142は、第1動作周波数が第2動作周波数を下回る場合、解析対象プログラムの実行中に消費電力が第1制限値に到達したと判定する。すなわち、情報解析部142は、この場合、CPU制御部141から第1動作周波数とともに取得された実行関数情報133に対応した関数を、電力制限部114によって制限されていない場合の消費電力が第1制限値を上回る関数として判定する。また、情報解析部142は、第1動作周波数が第2動作周波数を下回らない場合、解析対象プログラムの実行中に消費電力が第1制限値を到達しなかったと判定する。すなわち、情報解析部142は、この場合、CPU制御部141から第1動作周波数とともに取得された実行関数情報133に対応した関数を、電力制限部114によって制限されていない場合の消費電力が第1制限値を上回らない関数として判定する。
なお、CPU制御部141は、実行中の関数を示すプロセスID及び命令アドレスを取得するものであってもよい。そして、情報解析部142は、この場合、各関数の命令アドレスと関数名とを対応付けた関数情報132を参照し、CPU制御部141が取得した命令アドレスに対応する関数名を実行関数情報133として特定するものであってもよい。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図5は、第1の実施の形態における動作状況収集処理の概略を説明するフローチャートである。また、図6及び図7は、第1の実施の形態における動作状況収集処理の概略を説明する図である。図6及び図7を参照しながら、図5の動作状況収集処理について説明を行う。
情報処理装置1は、図5に示すように、プログラム実行タイミングまで待機する(S1のNO)。プログラム実行タイミングは、例えば、解析対象プログラムの実行時における第1制限値を事業者が入力したタイミングであってよい。そして、プログラム実行タイミングになった場合(S1のYES)、情報処理装置1は、解析対象プログラムの実行に伴う消費電力の第1制限値をCPU101に設定する(S2)。具体的に、情報処理装置1は、例えば、第1制限値を第1レジスタに設定する。すなわち、情報処理装置1は、解析対象プログラムに実行時の消費電力が第1制限値を上回る場合に、CPU101の動作周波数が抑制されるように設定を行う。
その後、情報処理装置1は、解析対象プログラムの実行をCPU101に対して指示する(S3)。そして、情報処理装置1は、解析対象プログラムの実行中にCPU101に対して割り込みを発生させ、実行中の関数を示す実行関数情報133と、解析対象プログラムの実行中におけるCPU101の第1動作周波数とを対応させて取得する(S4)。さらに、情報処理装置1は、第1制限値の設定によって第1動作周波数が制限されているか否かを示す制限情報134を、実行関数情報133と対応させて情報処理装置130に出力する。
具体的に、情報処理装置1は、解析対象プログラムの実行中における実行関数情報133と、CPU101の第1動作レベルとを対応させて取得する。情報処理装置1は、例えば、予め定められた時間間隔毎に実行関数情報133と第1動作レベルとの取得を行う。そして、情報処理装置1は、取得した実行関数情報133と第1動作レベルとを含むサンプリング情報131を作成し、情報格納領域130に記憶する。
その後、情報処理装置1は、対応情報135を参照し、サンプリング情報131に含まれる第1動作レベルに対応する動作周波数を第1動作周波数として取得する。そして、情報処理装置1は、取得した第1動作周波数に基づき、解析対象プログラムの実行中に消費電力が第1制限値に到達したか否かを判定する。具体的に、情報処理装置1は、例えば、CPU制御部141が取得した第1動作周波数と、消費電力が第1制限値に到達しなかった場合における、解析対象プログラムを実行する際のCPU101の第2動作周波数とを比較する。その結果、第1動作周波数が第2動作周波数を下回る場合、情報解析部142は、解析対象プログラムの実行中に消費電力が第1制限値に到達したと判定する。また、第1動作周波数が第2動作周波数を下回らない場合、情報解析部142は、解析対象プログラムの実行中に消費電力が第1制限値を到達しなかったと判定する。
すなわち、解析対象プログラムの実行中において、消費電力が第1制限値に到達した場合、CPU101の電力制限部114は、解析対象プログラムの動作周波数を抑制する。そのため、情報処理装置1は、第1動作周波数が第2動作周波数を下回る場合に、解析対象プログラムの実行中に消費電力が第1制限値に到達したと判定することが可能になる。以下、消費電力と第1制限値との関係について説明を行う。
図6及び図7は、消費電力と第1制限値との関係について説明する図である。図6及び図7において、横軸は時間(単位はマイクロ秒)であり、縦軸は消費電力(単位はワット(W))である。また、図6及び図7は、解析対象プログラムにおいて、関数Aと関数Bと関数Cとが時系列順に実行される場合を示す例である。
具体的に、図6に示す例では、CPU101に第1制限値が設定されていない。そのため、CPU101は、消費電力の制限を受けることなく関数A、関数B及び関数Cを実行する。
これに対し、図7に示す例では、CPU101に第1制限値(50(W))が設定されている。そのため、電力制限部114は、この場合、各関数の実行時における消費電力が50(W)を超えないように動作周波数の制御を行う。そして、図7に示す例では、関数Bの消費電力が図10で説明した場合と比較して抑制されている。すなわち、図7に示す例は、電力制限部114によって、関数Bの実行時の動作周波数が関数A及び関数Cの実行時の動作周波数よりも小さくなるように制御が行われている状態である。
そのため、情報処理装置1は、関数A、関数B及び関数Cの実行時における動作周波数を比較することにより、実行中における消費電力が第1制限値(50(W))に到達した関数が関数Bであると特定することが可能になる。
また、図7に示す関数Bの実行時間は、図6で説明した例と比較して長くなっている。そのため、電力制限部114が解析対象プログラムの動作周波数を抑制した場合、動作周波数が抑制された際に実行中であった関数の処理時間は長くなる。これにより、情報処理装置1は、消費電力が第1制限値に到達する関数の実行中にサンプリングが行われる確率を高めることが可能になる。
そして、情報処理装置1は、図6に示すように、解析対象プログラムの実行中に取得された実行関数情報133と、実行関数情報133の実行時において、第1制限値の設定によりCPU101の動作周波数が制限されているか否かを示す制限情報134とを情報格納領域130に出力(記憶)する。
このように、本実施の形態における情報処理装置1のCPU制御部141は、解析対象プログラムの実行に伴う消費電力の第1制限値をCPU101に対して設定する。そして、CPU制御部141は、解析対象プログラムの実行をCPU101に対して指示する。
さらに、CPU制御部141は、図3に示すように、解析対象プログラムの実行中にCPU101に対して割り込みを発生させ、実行中の関数を示す実行関数情報と、解析対象プログラムの実行中におけるCPU101の第1動作周波数とを対応させて取得する。そして、CPU制御部141は、取得した情報からサンプリング情報131を作成し、記憶部1a等に記憶する。その後、情報処理装置1の情報解析部142は、作成されたサンプリング情報131に基づき、第1制限値の設定によって第1動作周波数が制限されているか否かを示す制限情報134を、実行関数情報と対応させて記憶装置に出力する。
すなわち、情報処理装置1は、実行中の消費電力が所定の閾値よりも大きい関数の実行時における動作周波数を抑制するように設定を行う。これにより、情報処理装置1は、各関数の実行中にサンプリングした情報を参照することで、各関数の消費電力が所定の閾値よりも大きいか否かを判定することが可能になる。
また、情報処理装置1は、実行中の消費電力が所定の閾値よりも大きい関数の実行時における動作周波数を抑制することにより、実行中の消費電力が所定の閾値よりも大きい関数の実行時間を長くすることが可能になる。そのため、情報処理装置1は、実行中の消費電力が所定の閾値よりも大きい関数の実行中にサンプリングが行われる確率を高めることが可能になる。
したがって、情報処理装置1は、解析対象プログラムの実行中において、サンプリング間隔を短くすることなく、消費電力が所定の閾値よりも大きい関数を特定することを可能とする。そして、情報処理装置1は、作成されたサンプリング情報131の情報量を抑制することが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図8から図13は、第1の実施の形態における動作状況収集処理の詳細を説明するフローチャートである。また、図14から図22は、第1の実施の形態における動作状況収集処理の詳細を説明する図である。図14から図22を参照しながら、図8から図13の動作状況収集処理を説明する。
[プログラム実行処理]
初めに、CPU制御部141が解析対象プログラムを実行する処理(以下、プログラム実行処理とも呼ぶ)について説明を行う。
情報処理装置1のCPU制御部141は、図8に示すように、プログラム実行タイミングまで待機する(S11のNO)。そして、プログラム実行タイミングになった場合(S11のYES)、CPU制御部141は、解析対象プログラムの実行に伴う消費電力の第1制限値をCPU101に設定する(S12)。具体的に、CPU制御部141は、この場合、電力制限部114に対して第1制限値の設定を行う。
さらに、CPU制御部141は、割り込み発生の有効化をCPU101に対して指示する(S13)。具体的に、CPU制御部141は、割り込み処理部112に対して割り込み発生の有効化の指示を行う。そして、CPU制御部141は、解析対象プログラムの実行をCPU101に対して指示する(S14)。具体的に、CPU制御部141は、プログラム実行部111に対して解析対象プログラムの実行を指示する。
これにより、CPU制御部141は、後述するように、サンプリング情報131を作成するために必要な情報の取得を行うことが可能になる。
その後、CPU制御部141は、解析対象プログラムの実行が終了するまで待機する(S15のNO)。そして、CPU制御部141は、解析対象プログラムの実行が終了した場合(S15のYES)、CPU制御部141は、割り込み発生の無効化をCPU101に対して指示する(S16)。具体的に、CPU制御部141は、この場合、割り込み処理部112に対して割り込み発生の無効化の指示を行う。
S16の処理の後、CPU制御部141は、第1制限値よりも大きい制限値(以下、第2制限値とも呼ぶ)について、第1制限値と同様の処理を行うか否かを判定する(S17)。その結果、第2制御部について第1制御部と同様の処理を行わない場合(S17のNO)、CPU制御部141は、プログラム実行処理を終了する。S17の処理の詳細については後述する。また、第2制御部について第1制御部と同様の処理を行う場合の処理については後述する。
[動作状況収集処理の詳細]
次に、動作状況収集処理の詳細について説明を行う。
CPU制御部141は、図9に示すように、割り込み処理部112が割り込みを受信するまで待機する(S21のNO)。そして、割り込み処理部112が割り込みを受信した場合(S21のYES)、CPU制御部141は、プログラム実行部111にアクセスすることにより、プログラム実行部111が現在実行している関数を示すプロセスID及び命令アドレスを取得する(S22)。
また、CPU制御部141は、この場合、動作レベル計測部113にアクセスすることにより、CPU101の現在の動作レベルである第1動作レベルを取得する(S23)。そして、CPU制御部141は、S22の処理で取得した情報と、S23の処理で取得した第1動作レベルからサンプリング情報131を作成する(S24)。以下、サンプリング情報131の具体例について説明を行う。
[サンプリング情報の具体例]
図14は、サンプリング情報131の具体例を説明する図である。図14に示すサンプリング情報131は、サンプリング情報131に含まれる各情報を識別する「情報ID」と、CPU101で実行されていたプロセスのID(S22において取得したプロセスID)を示す「プロセスID」とを項目として有する。また、図14に示すサンプリング情報131は、CPU101で実行されていた命令の格納先アドレス(S22において取得した命令アドレス)を識別する「命令アドレス」と、CPU101の第1動作レベル(S23において取得した第1動作レベル)が設定される「動作レベル」とを項目として有する。さらに、図14に示すサンプリング情報131は、サンプリング情報131に含まれる各情報の作成時刻を示す「時刻」を項目として有する。
具体的に、図14に示すサンプリング情報131において、「ID」が「1」である情報には、「プロセスID」として「A」が設定され、「命令アドレス」として「0x00003121」が設定され、「動作レベル」として「0x1400」が設定されている。また、図14に示すサンプリング情報131において、「ID」が「1」である情報には、「時刻」として「10:10:00.000000」が設定されている。
すなわち、「ID」が「1」である情報は、「時刻」が「10:10:00.000000」であるときに、「プロセスID」が「A」であって「命令アドレス」が「0x00003121」である関数が実行されていたことを示している。また、「ID」が「1」である情報は、その時の動作レベルが「0x1400」であったことを示している。図14に含まれる他の情報については説明を省略する。
図9に戻り、CPU制御部141は、消費電力が第1制限値に到達しなかった場合における、解析対象プログラムを実行する際のCPU101の第2動作周波数を取得する(S25)。すなわち、CPU制御部141は、電力制限部114による消費電力の制限が行われていない場合における、解析対象プログラムを実行する際のCPU101の動作周波数を第2動作周波数として取得する。第2動作周波数は、例えば、事業者によって計測され、情報格納領域130に予め記憶されるものであってよい。なお、以下、第2動作周波数が2.0(GHz)であるものとして説明を行う。
そして、CPU制御部141は、図10に示すように、S24の処理で作成したサンプリング情報131のうち、第1動作周波数が第2動作周波数を下回っている情報が存在するか否かを判定する(S31)。
具体的に、CPU制御部141は、対応情報135を参照し、S24の処理で作成したサンプリング情報131に含まれる第1動作レベルに対応する動作周波数を第1動作周波数としてそれぞれ取得する。以下、対応情報135の具体例について説明を行う。
[対応情報の具体例]
図15は、対応情報135の具体例を説明する図である。図15に示す対応情報135は、対応情報135に含まれる各情報を識別する「情報ID」と、CPU101の動作レベルが設定される「動作レベル」と、CPU101の動作周波数が設定される「動作周波数」とを項目として有している。
具体的に、図15に示す対応情報135において、「情報ID」が「1」である情報には、「動作レベル」として「0x1400」が設定され、「動作周波数」として「2.0(GHz)」が設定されている。図15に含まれる他の情報については説明を省略する。
そのため、CPU制御部141は、S31の処理において、図14に示すサンプリング情報131における「情報ID」が「1」から「5」である情報の「動作レベル」に対応する「動作周波数」として、それぞれ「2.0(GHz)」、「1.8(GHz)」、「2.0(GHz)」、「1.7(GHz)」及び「2.0(GHz)」を特定する。したがって、情報解析部142は、図14に示すサンプリング情報131における「情報ID」が「2」及び「4」である情報の「動作レベル」に設定された情報に対応する「動作周波数」が、第2動作周波数を下回っていると判定する。
図10に戻り、第1動作周波数が第2動作周波数を下回っている情報が存在する場合(S31のYES)、情報解析部142は、S31の処理において存在した情報に対応する関数の実行中に、消費電力が第1制限値を上回ったと判定する(S32)。一方、第1動作周波数が第2動作周波数を下回っている情報が存在しない場合(S31のNO)、情報解析部142は、S32の処理を実行しない。
具体的に、情報解析部142は、図14に示すサンプリング情報131において、「情報ID」が「2」及び「4」である情報に対応する関数の実行中に、消費電力が第1制限値を上回ったと判定する。
その後、情報解析部142は、S24の処理において作成したサンプリング情報131と関数情報132とを参照し、S31の処理で存在した情報に対応する実行関数情報133を取得する(S33)。以下、関数情報132の具体例について説明を行う。
[関数情報の具体例]
図16は、関数情報132の具体例を説明する図である。図16に示す関数情報132は、関数情報132に含まれる各情報を識別する「情報ID」と、各命令の格納先を識別する「命令アドレス」とを項目として有する。また、図16に示す関数情報132は、解析対象プログラムに含まれる関数名を識別する「関数名」を項目として有する。
具体的に、図16に示す関数情報132において、「ID」が「1」である情報には、「命令アドレス」として「0x00003000−0x00004fff」が設定され、「関数名」として「関数A」が設定されている。すなわち、「ID」が「1」である情報は、「関数名」が「関数A」である関数が、「命令アドレス」が「0x00003000」から「0x00004fff」である領域(メモリ領域)に格納されていることを示している。図16に含まれる他の情報については説明を省略する。
したがって、情報解析部142は、S33の処理において、例えば、図14に示すサンプリング情報131を参照し、「情報ID」が「2」及び「4」である情報における「命令アドレス」に設定された情報である「0x00006b33」及び「0x00009002」を特定する。そして、CPU制御部141は、図16に示す関数情報132を参照し、「命令アドレス」に「0x00006b33」及び「0x00009002」を含む命令アドレスが設定された情報の「関数名」に設定された情報である「関数B」及び「関数C」を実行関数情報133として取得する。
図10に戻り、情報出力部124は、S33の処理で取得した実行関数情報133を含む制限情報134を情報格納領域130に記憶する(S34)。以下、制限情報134の具体例について説明を行う。
[制限情報の具体例]
図17及び図22は、制限情報134の具体例を説明する図である。図17及び図22に示す制限情報134は、制限情報134に含まれる各情報を識別する「情報ID」と、S33の処理で取得された実行関数情報133を識別する「関数名」とを項目として有する。なお、以下、情報出力部124が、実行中に消費電力が第1制限値に到達した関数に関する情報のみを制限情報134として出力するものとして説明を行う。
具体的に、図17に示す制限情報134において、「ID」が「1」である情報には、「関数名」として「関数B」が設定され、「ID」が「2」である情報には、「関数名」として「関数C」が設定されている。すなわち、図17に示す制限情報134は、実行中に消費電力が第1制限値に到達した関数が、「関数B」及び「関数C」であることを示している。図22の説明については後述する。
[S17の処理の詳細]
次に、S17の処理の詳細について説明を行う。情報解析部142は、S17の処理において、例えば、事業者が予め情報格納領域130に設定した情報を参照し、第2制限値について第1制限値と同様の処理を行うか否かの判定を行う。以下、第2の制限値について第1制限値と同様の処理を行うことが有効である場合の説明を行う。
[第2の制限値について第1制限値と同様の処理を行うことが有効である場合]
図18及び図19は、第2の制限値について第1制限値と同様の処理を行うことが有効である場合を説明する図である。具体的に、図18は、第1制限値が50(W)である場合の消費電力と第1制限値との関係について説明する図である。また、図19は、第2制限値が60(W)である場合の消費電力と第2制限値との関係について説明する図である。
図18に示す例において、関数Bと関数Cの消費電力は、第1制限値を上回らないように制限されている。すなわち、図18に示す例は、電力制限部114による制限が行われていない場合における関数B及び関数Cの消費電力が50(W)を上回ることを示している。しかしながら、情報処理装置1は、この場合、関数B及び関数Cのうち、どちらの関数の消費電力の方が大きいか判断することができない。
一方、図19に示す例において、関数B及び関数Cのうち、関数Cの消費電力のみが第2制限値を上回らないように制限されている。すなわち、図19に示す例は、電力制限部114による制限が行われていない場合における関数Cの消費電力が60(W)を上回ることを示している。
そのため、情報処理装置1は、図18及び図19に示す内容を参照することにより、電力制限部114による制限が行われていない場合における関数Cの消費電力が、60(W)以上であると判定することが可能になる。また、情報処理装置1は、図18及び図19に示す内容を参照することにより、電力制限部114による制限が行われていない場合における関数Bの消費電力が、50(W)以上であって60(W)以下であると判定することが可能になる。したがって、情報処理装置1は、この場合、電力制限部114による制限が行われていない場合における関数Cの消費電力の方が、関数Bの消費電力よりも大きいと判定することが可能になる。
[第2制限値が設定される場合のプログラム実行処理]
初めに、第2制限値が設定される場合のプログラム実行処理について説明を行う。S17の処理において、第2制限値について第1制限値と同様の処理を行う旨の判定が行われた場合(S17のYES)、CPU制御部141は、図11に示すように、プログラム実行タイミングまで待機する(S41のNO)。そして、プログラム実行タイミングになった場合(S41のYES)、CPU制御部141は、解析対象プログラムの実行に伴う消費電力の第2制限値をCPU101に設定する(S42)。具体的に、CPU制御部141は、この場合、電力制限部114に対して第2制限値の設定を行う。
さらに、CPU制御部141は、割り込み発生の有効化をCPU101に対して指示する(S43)。具体的に、CPU制御部141は、割り込み処理部112に対して割り込み発生の有効化の指示を行う。そして、CPU制御部141は、解析対象プログラムの実行をCPU101に対して指示する(S44)。具体的に、CPU制御部141は、プログラム実行部111に対して解析対象プログラムの実行を指示する。すなわち、CPU制御部141は、この場合、第1制限値よりも大きい第2制限値をCPU101に設定した状態で、解析対象プログラムの実行を再度行う。
その後、CPU制御部141は、解析対象プログラムの実行が終了するまで待機する(S45のNO)。そして、CPU制御部141は、解析対象プログラムの実行が終了した場合(S45のYES)、CPU制御部141は、割り込み発生の無効化をCPU101に対して指示する(S46)。具体的に、CPU制御部141は、この場合、割り込み処理部112に対して割り込み発生の無効化の指示を行う。
[第2制限値が設定された場合の動作状況収集処理の詳細]
次に、第2制限値が設定された場合の動作状況収集処理の詳細について説明を行う。CPU制御部141は、図12に示すように、割り込み処理部112が割り込みを受信するまで待機する(S51のNO)。すなわち、CPU制御部141は、S22及びS23の処理を実行する際に実行されていた解析対象プログラムが再度実行され、割り込み処理部112が割り込みの通知を行うまで待機する。
そして、割り込み処理部112が割り込みを受信した場合(S51のYES)、CPU制御部141は、S22の処理と同様に、プログラム実行部111にアクセスすることにより、プログラム実行部111が現在実行している関数を示すプロセスID及び命令アドレスを取得する(S52)。また、CPU制御部141は、この場合、S23の処理と同様に、動作レベル計測部113にアクセスすることにより、CPU101の現在の動作レベルである第1動作レベルを取得する(S53)。さらに、CPU制御部141は、この場合、S24の処理と同様に、S52の処理で取得した情報と、S53の処理で取得した第1動作周波数からサンプリング情報131を作成する(S54)。以下、S54の処理で作成されるサンプリング情報131(以下、サンプリング情報131aとも呼ぶ)の具体例について説明を行う。
[サンプリング情報の具体例]
図20は、サンプリング情報131aの具体例を説明する図である。図20に示すサンプリング情報131aは、図14で説明したサンプリング情報131と同じ項目を有している。そして、図20に示すサンプリング情報131aは、図14で説明したサンプリング情報131と比較して、「動作レベル」に設定された値のみが異なる。
具体的に、図20に示すサンプリング情報131aにおいて、「情報ID」が「1」から「5」である情報の「動作レベル」には、それぞれ「0x1400」、「0x1400」、「0x1400」、「0x1200」及び「0x1400」が設定されている。
すなわち、図20に示すサンプリング情報131aでは、図14で説明したサンプリング情報131と異なり、「情報ID」が「2」である情報の「動作周波数」に第2動作周波数である「0x1400」が設定されている。そして、図15で説明した対応情報135によれば、「動作レベル」が「0x1400」である情報の「動作周波数」は、「2.0(GHz)」である。
一方、図20に示すサンプリング情報131aでは、「情報ID」が「2」である情報の「動作周波数」に第2動作周波数である「0x1200」が設定されている。そして、図15で説明した対応情報135によれば、「動作レベル」が「0x1200」である情報の「動作周波数」は、「1.8(GHz)」である。そのため、情報解析部142は、電力制限部114による制限が行われていない場合、「情報ID」が「4」である情報に対応する関数の消費電力の方が、「情報ID」が「2」である情報に対応する消費電力よりも大きいと判定することが可能になる。
図12に戻り、CPU制御部141は、S25の処理と同様に、消費電力が第1制限値に到達しなかった場合における、解析対象プログラムを実行する際のCPU101の第2動作周波数を取得する(S55)。
そして、情報解析部142は、図13に示すように、S31の処理と同様に、S55の処理で作成したサンプリング情報131のうち、第1動作周波数が第2動作周波数を下回っている情報が存在するか否かを判定する(S61)。その結果、第1動作周波数が第2動作周波数を下回っている情報が存在する場合(S61のYES)、情報解析部142は、S61の処理において存在した情報に対応する関数の実行中に、消費電力が第2制限値を上回ったと判定する(S62)。一方、第1動作周波数が第2動作周波数を下回っている情報が存在しない場合(S61のNO)、情報解析部142は、S62の処理を実行しない。
具体的に、情報解析部142は、例えば、図20で説明したサンプリング情報131aを参照し、「情報ID」が「4」である情報に対応する関数の実行中に、消費電力が第2制限値を上回ったと判定する。
その後、情報解析部142は、S54の処理において作成したサンプリング情報131と関数情報132とを参照し、S61の処理で存在した情報に対応する実行関数情報133を取得する(S63)。
具体的に、情報解析部142は、図20に示すサンプリング情報131aを参照し、「情報ID」が「4」である情報における「命令アドレス」に設定された情報である「0x00009002」を特定する。そして、CPU制御部141は、図20に示す関数情報132を参照し、「命令アドレス」に「0x00009002」を含む命令アドレスが設定された情報の「関数名」に設定された情報である「関数C」を実行関数情報133として取得する(S63)。
図11に戻り、情報出力部124は、S63の処理で取得した実行関数情報133を含む制限情報134を情報格納領域130に記憶する(S64)。以下、S64の処理において情報格納領域130に記憶される制限情報(以下、制限情報134aとも呼ぶ)の具体例について説明を行う。
[制限情報の具体例]
図21は、制限情報134aの具体例を説明する図である。図21に示す制限情報134aは、図17で説明した制限情報134と同じ項目を有する。具体的に、図21に示す制限情報134aにおいて、「ID」が「1」である情報には、「関数名」として「関数C」が設定されている。すなわち、図21に示す制限情報134aは、実行中の消費電力が第2制限値を上回る関数が、「関数C」であることを示している。
なお、情報解析部142は、S64の処理において、図17で説明した制限情報134と、図21で説明した制限情報134aとを参照し、図17で説明した制限情報134に含まれる情報を、実行中の消費電力が大きい関数に対応する情報の順に並び替えるものであってもよい。
具体的に、図17で説明した制限情報134に情報が含まれる関数(関数B及び関数C)のうち、図21で説明した制限情報134aに情報が含まれる関数は、関数Cである。すなわち、電力制限部114が制限していない場合における実行中の消費電力は、関数Bよりも関数Cの方が大きい。
そのため、情報解析部142は、例えば、図22に示すように、「情報ID」が「1」である情報の「関数名」として「関数C」を設定し、「情報ID」が「2」である情報の「関数名」として「関数B」を設定するものであってよい。これにより、事業者は、電力制限部114が制限していない場合における実行中の消費電力が第1制限値に到達する関数についての情報を、消費電力が大きい関数の順に取得することが可能になる。
このように、本実施の形態における情報処理装置1のCPU制御部141は、解析対象プログラムの実行に伴う消費電力の第1制限値をCPU101に対して設定する。そして、CPU制御部141は、解析対象プログラムの実行をCPU101に対して指示する。
さらに、CPU制御部141は、図3に示すように、解析対象プログラムの実行中にCPU101に対して割り込みを発生させ、実行中の関数を示す実行関数情報と、解析対象プログラムの実行中におけるCPU101の第1動作周波数とを対応させて取得する。そして、CPU制御部141は、取得した情報からサンプリング情報131を作成し、記憶部1a等に記憶する。その後、情報処理装置1の情報解析部142は、作成されたサンプリング情報131に基づき、第1制限値の設定によって第1動作周波数が制限されているか否かを示す制限情報134を、実行関数情報と対応させて記憶装置に出力する。
これにより、情報処理装置1は、解析対象プログラムの実行中において、サンプリング間隔を短くすることなく、消費電力が所定の閾値よりも大きい関数を特定することを可能とする。また、情報処理装置1は、サンプリングされた情報の情報量を抑制することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定する設定部と、
前記検証用プログラムの実行を前記CPUに対して指示する実行指示部と、
前記検証用プログラムの実行中に前記CPUに対して割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得する取得部と、
前記設定部に対する前記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する出力部と、を有する、
ことを特徴とする情報処理装置。
(付記2)
付記1において、さらに、
前記取得部が取得した前記第1動作周波数に基づき、前記検証用の実行中に前記消費電力が前記第1制限値に到達したか否かを判定する判定部を有し、
前記出力部は、前記消費電力が前記第1制限値に到達したか否かを示す情報を、前記制限情報として出力する、
ことを特徴とする情報処理装置。
(付記3)
付記2において、
前記判定部は、前記取得部が取得した前記第1動作周波数と、前記消費電力が前記第1制限値に到達しなかった場合における、前記検証用プログラムを実行する際の前記CPUの第2動作周波数とを比較し、前記第1動作周波数が前記第2動作周波数を下回る場合、前記検証用プログラムの実行中に前記消費電力が前記第1制限値に到達したと判定し、前記第1動作周波数が前記第2動作周波数を下回らない場合、前記検証用プログラムの実行中に前記消費電力が前記第1制限値を到達しなかったと判定する、
ことを特徴とする情報処理装置。
(付記4)
付記1において、
前記取得部は、前記CPUからの割り込み要求があったことに応じて、前記実行関数情報及び前記第1動作周波数の取得を行う、
ことを特徴とする情報処理装置。
(付記5)
付記4において、
前記CPUは、一定間隔毎に前記取得部に対して割り込みを発生させる、
ことを特徴とする情報処理装置。
(付記6)
付記2において、
前記出力部は、前記検証用プログラムの実行中に前記消費電力が前記第1制限値に到達したと判定された場合に、前記消費電力が前記第1制限値に到達したことを示す情報を、前記制限情報として出力する、
ことを特徴とする情報処理装置。
(付記7)
付記3において、
前記設定部は、前記第1制限値が設定された際に実行された前記検証用プログラムの実行の終了後、前記第1制限値よりも大きい第2制限値を前記CPUに対して設定し、
前記判定部は、前記第2制限値が設定された際に実行された前記検証用プログラムの実行中に、前記第1動作周波数が前記第2動作周波数を下回ると判定された場合、前記検証用プログラムの実行中に前記消費電力が前記第2制限値に到達したと判定し、前記第1動作周波数が前記第2動作周波数を下回らないと判定された場合、前記検証用プログラムの実行中に前記消費電力が前記第2制限値に到達していないと判定し、
前記出力部は、前記消費電力が前記第2制限値に到達したか否かを示す情報を、前記制限情報として出力する、
ことを特徴とする情報処理装置。
(付記8)
付記1において、
前記取得部は、
前記検証用プログラムを実行中に、前記CPUの第1動作レベルを取得し、
前記CPUの動作レベルと前記CPUの動作周波数とを対応させた対応情報を参照し、取得した前記第1動作レベルに対応する動作周波数を前記第1動作周波数として取得する、
ことを特徴とする情報処理装置。
(付記9)
コンピュータに、
検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定し、
前記検証用プログラムの実行を前記CPUに対して指示し、
前記検証用プログラムの実行中に前記CPUに対する割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得し、
前記設定部に対する前記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する、
ことを特徴とする動作状況収集プログラム。
(付記10)
検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定し、
前記検証用プログラムの実行を前記CPUに対して指示し、
前記検証用プログラムの実行中に前記CPUに対する割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得し、
前記設定部に対する前記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する、
ことを特徴とする動作状況収集方法。
1:情報処理装置 101:CPU
111:プログラム実行部 131:サンプリング情報
141:CPU制御部 142:情報解析部

Claims (9)

  1. 検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定する設定部と、
    前記検証用プログラムの実行を前記CPUに対して指示する実行指示部と、
    前記検証用プログラムの実行中に前記CPUに対して割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得する取得部と、
    前記設定部に対する前記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する出力部と、を有する、
    ことを特徴とする情報処理装置。
  2. 請求項1において、さらに、
    前記取得部が取得した前記第1動作周波数に基づき、前記検証用プログラムの実行中に前記消費電力が前記第1制限値に到達したか否かを判定する判定部を有し、
    前記出力部は、前記消費電力が前記第1制限値に到達したか否かを示す情報を、前記制限情報として出力する、
    ことを特徴とする情報処理装置。
  3. 請求項2において、
    前記判定部は、前記取得部が取得した前記第1動作周波数と、前記消費電力が前記第1制限値に到達しなかった場合における、前記検証用プログラムを実行する際の前記CPUの第2動作周波数とを比較し、前記第1動作周波数が前記第2動作周波数を下回る場合、前記検証用プログラムの実行中に前記消費電力が前記第1制限値に到達したと判定し、前記第1動作周波数が前記第2動作周波数を下回らない場合、前記検証用プログラムの実行中に前記消費電力が前記第1制限値を到達しなかったと判定する、
    ことを特徴とする情報処理装置。
  4. 請求項1において、
    前記取得部は、前記CPUからの割り込み要求があったことに応じて、前記実行関数情報及び前記第1動作周波数の取得を行う、
    ことを特徴とする情報処理装置。
  5. 請求項2において、
    前記出力部は、前記検証用プログラムの実行中に前記消費電力が前記第1制限値に到達したと判定された場合に、前記消費電力が前記第1制限値に到達したことを示す情報を、前記制限情報として出力する、
    ことを特徴とする情報処理装置。
  6. 請求項3において、
    前記設定部は、前記第1制限値が設定された際に実行された前記検証用プログラムの実行の終了後、前記第1制限値よりも大きい第2制限値を前記CPUに対して設定し、
    前記判定部は、前記第2制限値が設定された際に実行された前記検証用プログラムの実行中に、前記第1動作周波数が前記第2動作周波数を下回ると判定された場合、前記検証用プログラムの実行中に前記消費電力が前記第2制限値に到達したと判定し、前記第1動作周波数が前記第2動作周波数を下回らないと判定された場合、前記検証用プログラムの実行中に前記消費電力が前記第2制限値に到達していないと判定し、
    前記出力部は、前記消費電力が前記第2制限値に到達したか否かを示す情報を、前記制限情報として出力する、
    ことを特徴とする情報処理装置。
  7. 請求項1において、
    前記取得部は、
    前記検証用プログラムを実行中に、前記CPUの第1動作レベルを取得し、
    前記CPUの動作レベルと前記CPUの動作周波数とを対応させた対応情報を参照し、取得した前記第1動作レベルに対応する動作周波数を前記第1動作周波数として取得する、
    ことを特徴とする情報処理装置。
  8. コンピュータに、
    検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定し、
    前記検証用プログラムの実行を前記CPUに対して指示し、
    前記検証用プログラムの実行中に前記CPUに対して割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得し、
    記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する、
    ことを特徴とする動作状況収集プログラム。
  9. 検証用プログラムの実行に伴う消費電力の第1制限値をCPUに対して設定し、
    前記検証用プログラムの実行を前記CPUに対して指示し、
    前記検証用プログラムの実行中に前記CPUに対する割り込みを発生させ、実行中の関数を示す実行関数情報と、前記検証用プログラムの実行中における前記CPUの第1動作周波数とを対応させて取得し、
    記第1制限値の設定によって前記第1動作周波数が制限されているか否かを示す制限情報を、前記実行関数情報と対応させて記憶装置に出力する、
    ことを特徴とする動作状況収集方法。
JP2016080400A 2016-04-13 2016-04-13 情報処理装置、動作状況収集プログラム及び動作状況収集方法 Expired - Fee Related JP6631374B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016080400A JP6631374B2 (ja) 2016-04-13 2016-04-13 情報処理装置、動作状況収集プログラム及び動作状況収集方法
US15/484,373 US10281971B2 (en) 2016-04-13 2017-04-11 Information processing device, and method of analyzing power consumption of processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016080400A JP6631374B2 (ja) 2016-04-13 2016-04-13 情報処理装置、動作状況収集プログラム及び動作状況収集方法

Publications (2)

Publication Number Publication Date
JP2017191446A JP2017191446A (ja) 2017-10-19
JP6631374B2 true JP6631374B2 (ja) 2020-01-15

Family

ID=60038795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016080400A Expired - Fee Related JP6631374B2 (ja) 2016-04-13 2016-04-13 情報処理装置、動作状況収集プログラム及び動作状況収集方法

Country Status (2)

Country Link
US (1) US10281971B2 (ja)
JP (1) JP6631374B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11442834B2 (en) * 2018-08-21 2022-09-13 Wiliot, LTD. System and method for analyzing power usage of an energy-aware computing system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052792A (en) * 1993-08-24 2000-04-18 Mensch, Jr.; William D. Power management and program execution location management system for CMOS microcomputer
JPH11232147A (ja) * 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
US7290246B2 (en) * 2002-04-04 2007-10-30 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
US7366932B2 (en) * 2002-10-30 2008-04-29 Stmicroelectronics, Inc. Method and apparatus to adapt the clock rate of a programmable coprocessor for optimal performance and power dissipation
US20040268159A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Power profiling
US7127625B2 (en) * 2003-09-04 2006-10-24 Hewlett-Packard Development Company, L.P. Application management based on power consumption
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20070162780A1 (en) * 2006-01-10 2007-07-12 Yao-Yi Wang Method for controlling an operating frequency of a processor during playback of a recorded video
US7444449B2 (en) * 2006-02-09 2008-10-28 Sony Ericsson Mobile Communications Ab Method, computer program product and computer system for controlling execution of an interruption routine
US8102398B2 (en) * 2006-03-03 2012-01-24 Ati Technologies Ulc Dynamically controlled power reduction method and circuit for a graphics processor
US20070220293A1 (en) * 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US7804435B2 (en) * 2006-08-31 2010-09-28 Ati Technologies Ulc Video decoder with reduced power consumption and method thereof
US7716500B2 (en) * 2006-08-31 2010-05-11 Ati Technologies Ulc Power source dependent program execution
US8725488B2 (en) * 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage
US8610732B2 (en) * 2008-12-11 2013-12-17 Nvidia Corporation System and method for video memory usage for general system application
JP5256340B2 (ja) * 2009-03-05 2013-08-07 株式会社日立製作所 計算機及び計算機の電力管理システム
US8488951B2 (en) * 2009-07-09 2013-07-16 Nvidia Corporation Multimedia framework to provide ultra-low power multimedia playback
JP2011039836A (ja) * 2009-08-12 2011-02-24 Nec Corp 携帯機器に搭載されるプロセッサ、および消費電流低減方法
US8862786B2 (en) * 2009-08-31 2014-10-14 International Business Machines Corporation Program execution with improved power efficiency
US20110289329A1 (en) * 2010-05-19 2011-11-24 Sumit Kumar Bose Leveraging smart-meters for initiating application migration across clouds for performance and power-expenditure trade-offs
US8984305B2 (en) 2010-12-21 2015-03-17 Intel Corporation Method and apparatus to configure thermal design power in a microprocessor
WO2012105000A1 (ja) * 2011-02-01 2012-08-09 富士通株式会社 プログラム実行方法
JP5601236B2 (ja) * 2011-02-10 2014-10-08 富士通株式会社 情報抽出プログラム、情報抽出方法、および情報抽出装置
JP5794010B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 情報処理装置、制御プログラムおよび制御方法
JP5790431B2 (ja) * 2011-11-18 2015-10-07 富士通株式会社 設計支援装置、設計支援方法および設計支援プログラム
US9348594B2 (en) * 2011-12-29 2016-05-24 Intel Corporation Core switching acceleration in asymmetric multiprocessor system
KR101655137B1 (ko) * 2012-02-04 2016-09-07 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링
US9703364B2 (en) * 2012-09-29 2017-07-11 Intel Corporation Rotational graphics sub-slice and execution unit power down to improve power performance efficiency
US9521268B2 (en) * 2013-06-03 2016-12-13 Broadcom Corporation Application layer integration into a multi-rat access and handover environment
US9609329B2 (en) * 2013-06-25 2017-03-28 Samsung Electronics Co., Ltd Dynamic voltage/frequency scaling for video processing using embedded complexity metrics
JP6197873B2 (ja) * 2013-09-20 2017-09-20 富士通株式会社 情報処理システム、管理装置、情報処理方法及びプログラム
US9436265B2 (en) * 2013-10-24 2016-09-06 Fujitsu Limited Information processing apparatus and load control method
EP3126928A4 (en) * 2014-04-04 2017-11-08 Empire Technology Development LLC Instruction optimization using voltage-based functional performance variation
KR102248787B1 (ko) * 2014-08-28 2021-05-06 삼성전자 주식회사 Gpu의 리소스에 대한 전력 소비 제어방법 및 장치
US9652026B2 (en) * 2014-12-21 2017-05-16 Qualcomm Incorporated System and method for peak dynamic power management in a portable computing device

Also Published As

Publication number Publication date
US10281971B2 (en) 2019-05-07
JP2017191446A (ja) 2017-10-19
US20170300102A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
Yadwadkar et al. Selecting the best vm across multiple public clouds: A data-driven performance modeling approach
US8904240B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
US8131843B2 (en) Adaptive computing using probabilistic measurements
Nguyen et al. {AGILE}: elastic distributed resource scaling for {infrastructure-as-a-service}
US9524180B2 (en) Managing virtual machines using tracing information
US9317393B2 (en) Memory leak detection using transient workload detection and clustering
US9032254B2 (en) Real time monitoring of computer for determining speed and energy consumption of various processes
Sembrant et al. Efficient software-based online phase classification
JP5742125B2 (ja) プログラム、情報生成装置及び情報生成方法
US8850402B2 (en) Determining performance of a software entity
US20130254754A1 (en) Methods and systems for optimizing the performance of software applications at runtime
US8307246B2 (en) Real time monitoring of computer for determining speed of various processes
JP2018194988A (ja) 情報処理装置、情報処理方法、およびプログラム
Rameshan et al. Hubbub-scale: Towards reliable elastic scaling under multi-tenancy
US9910709B2 (en) Allocation control method and apparatus
Wang et al. Vmon: Monitoring and quantifying virtual machine interference via hardware performance counter
JP6631374B2 (ja) 情報処理装置、動作状況収集プログラム及び動作状況収集方法
Rao et al. Online measurement of the capacity of multi-tier websites using hardware performance counters
KR102676385B1 (ko) 가상화 서버에서 가상머신 cpu 자원을 관리하는 장치 및 방법
JP2011118596A (ja) 情報処理装置およびプロファイリング方法
Vallone et al. Making neighbors quiet: An approach to detect virtual resource contention
US11438408B2 (en) Transferring applications from overutilized arrays of computer systems to underutilized arrays of computer systems
KR102323670B1 (ko) 프라이빗 멀티 클라우드에서 컨테이너화된 애플리케이션을 위한 동적 멀티레벨 규칙 기반 자동 스케일링 방법 및 장치
Kim et al. Orchestra: Guaranteeing Performance SLAs for Cloud Applications by Avoiding Resource Storms
Yang et al. Radio: Reconciling Disk I/O Interference in a Para-virtualized Cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191125

R150 Certificate of patent or registration of utility model

Ref document number: 6631374

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees