JP6083278B2 - 計算システム及びその電力管理方法 - Google Patents

計算システム及びその電力管理方法 Download PDF

Info

Publication number
JP6083278B2
JP6083278B2 JP2013060736A JP2013060736A JP6083278B2 JP 6083278 B2 JP6083278 B2 JP 6083278B2 JP 2013060736 A JP2013060736 A JP 2013060736A JP 2013060736 A JP2013060736 A JP 2013060736A JP 6083278 B2 JP6083278 B2 JP 6083278B2
Authority
JP
Japan
Prior art keywords
power
frequency
processing
performance
optimum
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
JP2013060736A
Other languages
English (en)
Other versions
JP2014186522A (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 JP2013060736A priority Critical patent/JP6083278B2/ja
Publication of JP2014186522A publication Critical patent/JP2014186522A/ja
Application granted granted Critical
Publication of JP6083278B2 publication Critical patent/JP6083278B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Power Sources (AREA)

Description

本発明は、計算システム及びその電力管理方法に関する。
産業・基礎科学など様々な分野での大規模な並列シミュレーションの活用増大により超並列高性能計算システム(いわゆるスーパーコンピュータ)の性能は年々高くなっている。このような計算システムの大規模化に向けた様々な課題の中に、消費電力の削減がある。CPU(Central Processing Unit)の演算性能は上がっているのに、計算システムの消費電力制約のために、計算システムは処理性能を出し切れないという状況になりつつある。計算システムの低消費電力化と同様に与えられた消費電力制約下で、ジョブの実行効率を最大化することも重要となってきている。
サーバやデータセンタにおいては、多数のCPUで構成されるシステムの消費電力制約を超えない範囲でジョブを実行させるための技術として、CPU側の技術としては動的に周波数を調整するDFS(Dynamic Frequency Scaling)や周波数に合わせて電圧も制御するDVFS(Dynamic Voltage and Frequency Scaling)の技術が知られている。また、CPU内のレジスタに消費電力上限を設定して、その設定を自律的に守らせるPower Capping技術、又はPower Capping技術で電力が上限を超えた時の急速な消費電力低減に使用されるClock Throttling(クロックパルスのマスクによる周波数の強制低減)の技術が知られている。また、Pipeline Throttling(命令発行制限やメモリアクセス制限等による命令処理量の強制低減)の技術が知られている。
システム側の電力管理技術は、システムの電力制約、電力管理ポリシ又は電力管理モードなどが別途設定されていれば、その設定に基づき稼働中の各CPUに対する消費電力割り当て値を決定する。各CPUは、その割り当て値を守るように前述のCPU電力管理技術を使用してCPU電力を制御することでシステム全体の消費電力制約を守らせる。
また、少なくとも1台以上の演算器と制御部とを有する並列計算装置が知られている(例えば、特許文献1参照)。演算器は、その個数が処理タイミングによって変動し、かつ、それぞれの処理時間が一定のタスクを処理する。制御部は、演算器全体の処理能力を一定として、タスク処理に使用する演算器の台数と、使用する演算器の動作周波数を制御する。
また、並列コンピュータにおける事前対応型電力管理の方法が知られている(例えば、特許文献2参照)。並列コンピュータは、サービス・ノードと複数の計算ノードとを含む。サービス・ノードは、帯域外サービス・ネットワークを介して計算ノードに接続されている。各計算ノードは、コンピュータ・プロセッサと、コンピュータ・プロセッサに動作可能に連結されているコンピュータ・メモリとを含む。
特開2006−190104号公報 特表2010−537266号公報
並列処理プログラムの中には、並列化可能な部分と並列化不可能な逐次処理部分が存在する。並列処理プログラムの処理時間Tは、おおよそ次式のように示すことができる。ここで、Cpは、並列処理部分ののべサイクル数である。Csは、逐次処理部分ののべサイクル数である。Fpは、並列処理部分のクロック周波数である。Fsは、逐次処理部分のクロック周波数である。PLは、並列数である。
T=Cp/(Fp×PL)+Cs/Fs
このように並列処理プログラムの処理時間Tは、並列処理部分と逐次処理部分で分離されているため、並列処理部分の高速化の効果と逐次処理部分の高速化の効果を独立に考えることができる。逐次処理部分は、稼働CPU数が1個なので、DVFSを用いたクロック周波数及び電圧制御により高速化が可能である。しかし、並列処理プログラムの処理のうち並列処理部分の高速化には、改善の余地がある。
本発明の目的は、全プロセッシングエレメントを稼働させる場合より高い処理性能を達成することができる計算システム及びその電力管理方法を提供することである。
計算システムは、複数のプロセッシングエレメントと、異なる複数の動作負荷を特定の基準周波数下で処理した際のプロセッシングエレメントのダイナミック電力と、前記動作負荷の最適周波数とを関連付けた最適周波数導出表を用いて、前記基準周波数で並列処理プログラムを前記複数のプロセッシングエレメントのうちの少なくとも1個のプロセッシングエレメントに仮動作させたときのプロセッシングエレメントのダイナミック電力を基に、並列処理プログラムを実行するプロセッシングエレメントの性能最適周波数及び前記性能最適周波数に対応する電源電圧を導出する導出部と、前記導出部により導出された前記性能最適周波数、前記電源電圧及び計算システムの制約電力を基に、前記プロセッシングエレメントの稼働数を設定する設定部とを有する。
プロセッシングエレメントの周波数及び電源電圧の他に、プロセッシングエレメントの稼働数を設定することにより、全プロセッシングエレメントを稼働させる場合より高い処理性能を達成することができる。
図1は、本実施形態による計算システムの構成例を示す図である。 図2は、トランジスタのリーク電流を示すグラフである。 図3は、クロック周波数及び遅延時間の例を示すグラフである。 図4は、プロセッシングエレメントの稼働数及び計算システムの性能を示すグラフである。 図5は、計算システムの電力管理方法を示すフローチャートである。 図6(A)及び(B)は、図5の処理主体を説明するための図である。 図7は、図5の最適周波数導出表の構成例を示す図である。 図8は、プロセッシングエレメントの非稼働時電力に応じた最適動作点の変動を示すグラフである。 図9は、マルチコアプロセッサのCPUの構成例を示す図である。 図10は、バッファフル率検出回路を有するCPUの構成例を示す図である。 図11は、電力管理コントローラの処理例を示すフローチャートである。 図12は、本実施形態の効果を説明するためのグラフである。 図13は、図7の最適周波数導出表の例を示す図である。
図1は、本実施形態による計算システムの構成例を示す図である。計算システム100は、複数のプロセッシングエレメント(PE)101がネットワーク104に接続されている。各プロセッシングエレメント101は、処理を行う処理要素であり、演算処理用の中央処理装置(CPU)102及びCPU102に接続されたローカルメモリ103を有する。計算システム100は、単一のラックで構成されていてもよいし、複数のラックから構成されていてもよい。複数ラックの構成の場合は、プロセッシングエレメント101間のネットワーク104は、ラック内ネットワークとラック間ネットワークで構成される。
計算システム100では、処理対象とする並列処理プログラムの処理全体のうちの大部分を占める並列処理可能部分は並列プログラミングや並列化コンパイラ等により処理が類似した複数のサブタスクに分割される。これらのサブタスクは、プログラム実行時に各プロセッシングエレメント101(プロセッシングエレメント101がマルチコアプロセッサの場合はプロセッシングエレメント101内の各プロセッサコア)に割り当てられて、実行時に該当するプロセッシングエレメント101にロードされた上で並列に実行される。個々の並列処理プログラムは、タスクの規模により計算システム100全体で処理される場合もあれば、計算システム100全体を幾つかの部分に区画化したうちの一つで実行される場合もある。後者の場合、各区画には計算システム100全体の消費電力制約値が何らかのポリシに基づいてその区画の消費電力制約として分配される。各区画で処理される並列処理プログラムは、そのジョブを処理する区画に割り当てられた消費電力制約を満たすように実行されるため、この場合でも各区画を計算システム100の各区画の電力制約を計算システム100の電力制約とみなす。
並列処理プログラムの並列処理部分は、プロセッシングエレメント101の数に対して十分大きい並列数を持つ。並列処理部分の分割数(サブタスク数)は、並列処理プログラム作成時に予めパラメータ化されていたり、並列化コンパイラによる並列数を指定したコンパイル等により容易に変更可能である。また、並列実行数を調整することによるサブタスクの割り当てやサブタスク間の通信等のプロセッシングエレメント101間の通信時間の変動量は、各並列実行プロセッシングエレメント101の処理時間全体と比べて無視できるくらい小さいとする。
プロセッシングエレメント101の1個当たり消費電力Paは、そのCPU102内の全ゲートのクロック信号当たりの平均動作率をα、配線及び素子のスイッチングにかかわる総容量をC、CPU102の電源電圧をV、CPU102のリーク電流をIkとし、CPU102のクロック周波数(動作周波数)をfとすると、次式(1)のように表すことができる。ここで、Pbは、CPU102の固定電力であり、Pcは、メモリ関連電力である。
Pa=α×C×V2×f+Ik×V+Pb+Pc ・・・(1)
メモリ関連電力Pcは、ローカルメモリ103自体の消費電力並びにCPU102及びローカルメモリ103間のデータ転送にかかる消費電力であり、メモリアクセスの発生頻度と相関がある。CPU102の固定電力Pbは、CPU102内で別電源供給されたアナログマクロやシリアルI/O等のように半導体チップ内のクロック周波数にかかわらずに、一定量消費される電力成分を表す。
図2は、トランジスタのリーク電流Ikを示すグラフである。横軸は、ドレイン及びソース間電圧Vdsである。縦軸は、ドレイン及びソース間電流Idsである。DIBL(Drain Induced Barrier Lowering)効果等により、電圧Vdsが増加すると、閾値電圧Vthが減少し、リーク電流Ikが増加する。リーク電流Ikの曲線は、トランジスタの動作時に変動させる程度の狭い範囲では、2〜3次式程度の正係数の多項式で近似することができる。例えば、リーク電流Ikは、次式のように、2次曲線201に近似することができる。ここで、電圧Vdsは、例えば電源電圧Vであり、a及びbは定数である。
Ik=a×V2+b
図3は、クロック周波数301及び遅延時間302の例を示すグラフである。横軸は、電源電圧Vを示す。電源電圧Vが増加すると、素子のスイッチング性能が上がるため、遅延時間301が短くなり、クロック周波数302が上がる。逆に、電源電圧Vを下げていくと、素子のスイッチング性能が下がり、電源電圧Vが閾値電圧Vthより下がると、素子が動作しにくくなる。電源電圧Vとクロック周波数fの関係では、電源電圧Vは閾値電圧Vthを切片としたクロック周波数fの単調増加関数となり、実用的な電圧変動範囲では、1次直線303に近似すると、次式になる。ここで、γは定数である。
V=γ×f+Vth
ローカルメモリ103は、それが接続されるCPU102のクロック信号の周波数fが増加すると、内部処理速度の上昇により、メモリアクセス頻度も増加するため、メモリ関連電力Pcは、次式により、ある固定値P0mを切片として、クロック周波数fが線形増加するとしてモデル化できる。
Pc=P0m+f×Pm
このような関係を考慮して、上式(1)を、クロック周波数fについて整理すると、次式のように、正係数の多項式として近似することができる。ここで、C0、C1、C2、C3は、正の実数である。
Pa=α×C×V2×f+Ik×V+Pb+Pc
={α×C×V2×f+Ik×V}+{P0m+f×Pm}+Pb
=α×C×(γ×f+Vth)2×f+(a×V2+b)×V+P0m+f×Pm+Pb
=α×C×(γ×f+Vth)2×f+(a×(γ×f+Vth)2+b)×(γ×f+Vth)+P0m+f×pm+Pb
=(α×C×γ2+a×γ3)×f3+(2×α×C×γ×Vth+3×a×γ2×Vth)× f2+・・・
=C0×f3+C1×f2+C2×f+C3
プロセッシングエレメント101単体の性能は、クロック周波数fに比例するため、並列処理時の計算システム100全体の性能は並列処理を行っているプロセッシングエレメント101の数Nとそのクロック周波数fの積N×fに比例するとみなすことができる。ここで、計算システム100の電力をPs、プロセッシングエレメント101の電力をPpとすると、計算システム100の電力制約下での性能最大化を目指すためには、余剰電力が出ないように、Ps=N×Ppとなるように、プロセッシングエレメント数N、電源電圧V及びクロック周波数fを調整する。この時の計算システム100の性能Gsは、次式(2)のようになる。
Gs∝N×f=f×Ps/Pp
=f×Ps/(C0×f3+C1×f2+C2×f+C3
= Ps/(C0×f2+C1×f+C2+C3/f) ・・・(2)
図4は、式(2)のプロセッシングエレメント101の稼働数N及び計算システム100の処理性能Gsを示すグラフである。横軸は、CPU102のクロック周波数fを示す。式(2)のように、計算システム100の性能Gsは、クロック周波数fの関数として表され、f>0で極大点401を一つ持つ曲線となる。ここまでの説明は、計算システム100内で非稼働となったプロセッシングエレメント101の消費電力をほぼ0とみなしたモデルの説明である。次に、非稼働時のプロセッシングエレメント101の電力が0ではない場合を考える。プロセッシングエレメント101の非稼働時電力をC4とし、計算システム100内の全プロセッシングエレメント101の数MのうちN個が稼働中とすると、上式(2)の性能Msは、次式(3)のようになる。
Gs∝N×f=(Ps−C4×M)/{C0×f2+C1×f+C2 +(C3−C4)/f} ・・・(3)
また、稼働時の最適のプロセッシングエレメント101の電力Pp1が導出された後の最適のプロセッシングエレメント101の数Nは次式で求められる。
N=(Ps−M×C4)/(Pp1−C4) ・・・(4)
この場合も、式(4)の分子は固定値であり、式(4)の分母は式(2)と同様の形となるので、式(2)と同様に、計算システム性能Gsは、図4のような、極大点401を一つ持つものとなる。ここで、非稼働時にクロック信号が停止すると考えれば、C3≧C4とみなすことができるため、1/fの係数も正と考えることができる。
このことから、計算システム100の消費電力制約の下で、計算システム100の性能Gsを最大化するクロック周波数fとそれに対応する電源電圧V及びプロセッシングエレメント101の数Nの最適値が存在し、使用可能なプロセッシングエレメント101をすべて使用することが、必ずしも計算システム100の性能Gsの最大化につながらないということがわかる。
高性能の超並列計算システム100では、プロセッシングエレメント101間通信による処理性能の低下を抑えるために、プロセッシングエレメント101間通信として消費電力の大きな高速入出力(I/O)制御回路を用いたシリアル転送を用いることができる。その場合には、入出力制御回路のアクセスの有無にかかわらず、常時大電力を消費し続けることになり、上のプロセッシングエレメント101の消費電力式の固定電力成分が非常に大きくなる。式(2)の性能Gsの最適点は、式の性質上、図4において、プロセッシングエレメント101の固定電力成分C3が大きくなると、クロック周波数fが大きい側(プロセッシングエレメント101数Nが少ない側)に移る。そのため、この様な固定電力成分C3の大きいプロセッシングエレメント101は全プロセッシングエレメント101を稼働させるより、稼働させるプロセッシングエレメント101の数Nを絞って、その分、電源電圧Vやクロック周波数fを上げた方が計算システム100全体の性能Gsは高くなるケースが多い。
また、式(2)からわかるように、図4の特性グラフの性能最大点401は、C0及びC1が大きい(実行するプログラムの消費電力が大きい)と、クロック周波数fが低い側(プロセッシングエレメント101数Nが多い側)に移る。このように、最適動作点401は、実行するプログラムの消費電力によっても変動することがわかる。
本実施形態は、動作点401を基に、稼働するプロセッシングエレメント101の数N、クロック周波数f及び電源電圧Vを調整することにより、計算システム100の性能Gsの最大化を図る。
図5は、計算システム100の電力管理方法を示すフローチャートである。図5の処理は、ステップ511のプロセッシングエレメント101の特性情報取得処理と、ステップS512の性能最大化プロセッシングエレメント数及び動作条件算出処理と、ステップS505の動作条件設定処理と、ステップS506の並列処理プログラム実行処理とを有する。ステップS511は、ステップS501及びS502を有する。ステップS512は、ステップS503及びS504を有する。
図6(A)は、図5の処理主体を説明するための図である。計算システム100は、複数のCPU102を有する。各CPU102は、複数の演算コア601を有するマルチコアプロセッサである。1個のCPU102内の1個の演算コア601は、プログラムを実行することにより図5の処理を行い、各CPU102から情報603を入力し、各CPU102に対して電源電圧V及びクロック周波数fなどを設定するための制御信号602を出力する。また、1個のプロセッシングエレメント101が図5の処理を行ってもよい。この場合、図5の処理を行うプロセッシングエレメント101は、図1のネットワーク104を介して、他のプロセッシングエレメント101に対して通信を行う。
図6(B)は、他の図5の処理主体を説明するための図である。計算システム100は、複数のCPU102の他に、電力管理コントローラ611を有する。電力管理コントローラ611は、プログラムを実行することにより図5の処理を行い、各CPU102から情報603を入力し、各CPU102に対して電源電圧V及びクロック周波数fなどを設定するための制御信号602を出力する。この場合、電力管理コントローラ611は、図1のネットワーク104とは別のネットワークを介して、プロセッシングエレメント101に対して通信を行う。以下、電力管理コントローラ611が図5の処理を行う例を説明する。
稼働させるすべてのプロセッシングエレメント101は、各並列タスクの処理時間を揃えるために、同一のクロック周波数fに設定される。電源電圧Vは、全プロセッシングエレメント101で同一でもよいし、プロセッシングエレメント101毎のプロセスばらつきに応じて調整してもよい。
プロセッシングエレメント101の消費電力、特にCPU102の電力については、ダイナミック電力とリーク電力がある。リーク電力については、計算システム100が水冷等により低温で温度管理され、リーク電力の変動が小さい領域で動作していう前提で、既知の固定値として扱う。プロセッシングエレメント101は、動作時に内部の各部の稼働情報を記録して、それを基に自身の消費電力(ダイナミック電力)を演算する機能を持つ。
電力管理コントローラ611は、同一のクロック周波数fの下でプロセッシングエレメント101の消費電力の異なる複数の動作負荷において、下記の3個のパラメータを求める。
(1)その負荷を特定の基準周波数下で処理した際のプロセッシングエレメント101のダイナミック電力
(2)その負荷での最適周波数(図4の最適動作点401)
(3) その負荷で周波数を(2)の最適周波数に変更した場合のプロセッシングエレメント101の電力
図7は、図5の最適周波数導出表521の構成例を示す図である。最適周波数導出表521は、例えば、電力管理コントローラ611内に記憶される。最適周波数導出表521は、規定周波数で実行した時のプロセッシングエレメント101のダイナック電力値P1〜Pmと、その時の性能最適周波数F1〜Fmと、その性能最適周波数F1〜Fm及びそれに対応する電源電圧V1〜Vmを使用した時の変更後電力P1a〜Pmaを有する。最適周波数導出表521は、予め作成される。
上の(1)〜(3)の情報は、プロセッシングエレメント101の電力及び周波数特性がわかっていれば求めることができるため、例えば、設計時の設計データを用いた消費電力解析や、製造後、プロセッシングエレメント101単体での実機測定等により、計算システム100を組む前に、最適周波数導出表521を求めることができる。
最適周波数導出表521は、後述する検索処理のために、予めダイナミック電力P1〜Pmの大きさで、エントリをソートしておく。最適周波数導出表521は、式(2)のGs∝f×Ps/Ppのうちのf/Ppの部分で決まる値で作成されるため、並列処理プログラムを計算システム100全体で処理する場合でも、区画化した一部分で処理する場合でも、同じ最適周波数導出表521を使用することができる。
実行される並列処理プログラムは、図5の処理開始前に並列実行数Nを実行時に指定できるように、Nをパラメータ化して作成(コンパイル)されているか、このプログラムの処理に割り当てられる全プロセッシングエレメント101の数Mと同じかそれより小さい並列数で、並列化コンパイラによって予めコンパイルされている。
まず、ステップS501では、電力管理コントローラ611は、電力情報取得用の並列処理プログラムを各プロセッシングエレメント101にテスト実行させる。この処理は、消費電力が計算システム100の制約電力を超えないような十分低い周波数で実行し、定常特性を取得するのに十分な時間実行させる。
次に、ステップS502では、電力管理コントローラ611は、1個又は複数のプロセッシングエレメント101の並列処理部分の定常的なダイナミック電力Pdを取得する。並列処理部分について、定常的なダイナミック電力の取得に十分な長さだけ並列処理プログラムを実行した上で、その時のプロセッシングエレメント101のダイナミック電力Pdを取得する。
ダイナック電力Pdを取得するプロセッシングエレメント101は1個でもいいし、ダイナミック電力Pdのばらつきを考慮する場合は、複数のプロセッシングエレメント101からダイナミック電力Pdを取得した上で、平均処理等を行い、1個のダイナミック電力Pdを求めてもよい。
また、プロセッシングエレメント101単体においても、異なる期間の定常状態のダイナミック電力Pdを保持する複数レジスタを用意するなどして、複数のダイナミック電力Pdを取得してもよい。電力管理コントローラ611は、得られた複数のダイナミック電力Pdを基に、平均ダイナミック電力Pdを用いる。
また、電力管理コントローラ611は、統計処理により分散を考慮して例えば「平均+1σ」相当のダイナミック電力Pdを求めてもよい。
また、複数のプロセッシングエレメント101が同時動作することにより、ばらつきが重なり合って緩和される効果を加味する為の係数αを導入し、以下の式で算出したダイナミック電力Pdを用いてもよい。
Pd=平均電力値+(最大電力−平均電力)×α
次に、ステップS512の性能最大化プロセッシングエレメント数及び動作条件算出処理を説明する。
ステップS503では、電力管理コントローラ611は、得られたダイナミック電力Pdを基に最適周波数導出表521を検索し、その並列処理プログラムに最適な周波数fを求める。例えば、図7の最適周波数導出表521を用いて、ダイナミック電力がP1の場合には、最適な周波数がF1になる。また、得られたダイナミック電力Pdが、図7の最適周波数導出表521のi番目のエントリのダイナミック電力P(i)とi+1番目のエントリのダイナミック電力P(i+1)の間の場合、電力管理コントローラ611は、i番目のエントリの最適周波数F(i)とi+1番目のエントリの最適周波数F(i+1)を用いて、次式の線形補間により、最適周波数fを導出する。
f=F(i)+{F(i+1)−F(i)}×{Pd−P(i)}/{P(i+1)+P(i)}
また、電力管理コントローラ611は、上記の最適周波数fに対応する最適電源電圧Vを求める。最適電源電圧Vは、最適周波数fでCPU102を正常動作させることができる電源電圧である。
次に、ステップS504では、電力管理コントローラ611は、図7の最適周波数導出表521を用いて、求めた最適周波数f及び最適電源電圧Vの動作時のプロセッシングエレメント101の電力を変更後電力P1a〜Pmaとして求める。この場合も、電力管理コントローラ611は、上記の最適周波数fの導出と同様に、線形補間により、変更後電力P1a〜Pmaを求める。
次に、電力管理コントローラ611は、計算システム100の制約電力Ps、最適動作時の変更後電力Pp(P1a〜Pma)、全プロセッシングエレメント数M及びプロセッシングエレメント101の非稼働時電力C4を基に、式(4)を用いて、次式により、最適稼働プロセッシングエレメント数Nを導出する。
N=(Ps−C4×M)/( Pp−C4
ここで、最適稼働プロセッシングエレメント数Nが全プロセッシングエレメント数Mより多い場合は、最適稼働プロセッシングエレメント数NをMとする。その場合、各プロセッシングエレメント101は、Ps/Mの電力で動作させられる。この制御は、ステップS511の処理と同様のテスト実行を行い、最適周波数f及び最適電源電圧Vの組みを変化させながら、取得するダイナミック電力PdがPs/Mとなる最適周波数f及び最適電源電圧Vの組みを見つけてもいいし、Power Capping手法のように各プロセッシングエレメント101に制約電力Ps/Mを設定して、各プロセッシングエレメント101が設定電力以下で動作するように自律的に制御を行わせてもよい。
次に、ステップS505では、電力管理コントローラ611は、上記の最適稼働プロセッシングエレメント数Nに基づき稼働させるプロセッシングエレメント101を決定し、稼働させるプロセッシングエレメント101の上記の最適周波数f及び最適電源電圧Vを設定する。また、電力管理コントローラ611は、オペレーティングシステム(OS)等の並列タスクをスケジューリングするプロセスに最適稼働プロセッシングエレメント数Nを通知する。電力管理コントローラ611は、実行するタスクが並列実行数固定でコンパイルされている場合は、本処理内で対象タスクを並列化コンパイラを用いて、並列数を最適稼働プロセッシングエレメント数Nとして、対象タスクを再コンパイルする。タスクの並列数がパラメータ化されて作成されているプログラムの場合は、電力管理コントローラ611は、実行時の並列数の設定を最適稼働プロセッシングエレメント数Nに設定する。
次に、ステップS506では、電力管理コントローラ611は、ステップS505の動作条件設定に基づいて、対象の並列処理プログラムを各プロセッシングエレメント101に実行させる。
図8は、プロセッシングエレメント101の非稼働時電力C4に応じた最適動作点の変動を示すグラフである。計算システム100の性能801は、プロセッシングエレメント101の非稼働時電力C4が大きい場合の性能であり、最適動作点802を有する。計算システム100の性能803は、プロセッシングエレメント101の非稼働時電力C4が小さい場合の性能であり、最適動作点804を有する。
式(3)から分かるように、プロセッシングエレメント101の非稼働時電力C4の値が変わると、分母の1/fの係数C4−C3が変化するため、計算システム100の性能が最適となる周波数も変動する。つまり、プロセッシングエレメント101が休止時の消費電力が異なる複数の低電力モードを持っていた場合、休止させたプロセッシングエレメント101をどの低電力モードで待機させるかによって、最適な動作点802又は804が変わる。よって、プロセッシングエレメント101が休止時電力の異なる複数の低電力モードを持っていた場合、その低電力モードごとに図7の最適周波数導出表521を用意し、計算システム100の低電力モード設定によって、使用する最適周波数導出表521を切り替えることにより、休止時電力が異なるモードを持つ場合にも対応することができる。
図9は、マルチコアプロセッサのCPU102の構成例を示す図である。CPU102は、マルチコアプロセッサであり、複数の演算コア601を有する。また、CPU102は、共有キャッシュメモリ901、メモリ制御回路902及び入出力(I/O)制御回路903を有する。各演算コア601は、共有キャッシュメモリ901を介して、メモリ制御回路902に対して、コマンドCMDを出力し、データDTを入出力する。また、各演算コア601は、共有キャッシュメモリ901を介して、入出力制御回路903に対して、コマンドCMDを出力し、データDTを入出力する。メモリ制御回路902は、内部バッファを有し、ローカルメモリ103に対してデータを読み書き制御し、内部バッファがフルになるとビジー信号MBSYを出力する。入出力制御回路903は、内部バッファを有し、ネットワーク104に対してデータを入出力制御し、内部バッファがフルになるとビジー信号IBSYを出力する。
これまでの説明における計算システム100をマルチコアCPU102と考え、これまでの説明におけるプロセッシングエレメント101を演算コア601と考え、規模を縮小してこれまでの式を当てはめて考える。その場合、演算コア601は、式(1)の固定電力に相当する周波数f及び電源電圧Vに依存しない電力成分がほとんどないため、式(2)及び(3)の性能Gsで固定電力が0であるとみなして考えることにより、プロセッシングエレメント101内の全演算コア601を使用した場合が一番電力当たりの性能が高くなることが分かる。すなわち、周波数fを低くし、その分、大量のプロセッシングエレメント101を動作させた方が全体の性能が上がる。このことから、プロセッシングエレメント101がマルチコアプロセッサの場合は、プロセッシングエレメント101内の演算コア601は全て動作させた上で、プロセッシングエレメント101の数Nを本実施形態で決定することにより、性能を最大化できる。これにより、プロセッシングエレメント101がマルチコアプロセッサの場合でも、性能を最大化することが可能となる。
これまでの説明では、性能GsはN×fに比例するという前提で行ってきた。しかし、例えばメモリアクセスが多い処理の場合は、周波数fを上げても、メモリアクセスの処理待ちがボトルネックとなって、いくら周波数fを上げても、実際の処理性能は上がらず、Gs∝N×fという前提が崩れる場合がある。この代表的なものがCPU102のメモリ制御回路902や入出力制御回路903である。これらの制御回路902及び903は、仕様上、最大バンド幅や通信レイテンシが決まっているため、いくらCPU102内部の周波数fを上げても、速くはならない。本実施形態により求めた最適周波数fが、このようなメモリアクセスや入出力アクセスによる性能劣化が大きい領域に入っていた場合は、最高性能は達成できずに、性能向上に結び付かない無駄な電力が消費されることになる。このようなケースの対策として、以下の様に、メモリアクセス又は入出力アクセスによる性能劣化を検知して、周波数が無駄に高くならない機構を入れて、消費電力を抑制する。無駄な電力消費を抑えることにより、電気代の削減や故障発生率の抑制などにつながる。計算システム100を区画化して、複数のジョブを実行している場合には、上位のシステム制御において、この機構により生じた消費電力の余剰を別の区画で処理されているジョブの電力制約値に加えることにより、その別の区画のジョブの性能をさらに上げるといったことも可能となる。
図10は、バッファフル率検出回路を有するCPU102の構成例を示す図である。CPU102は、バッファフル率検出回路を有する。バッファフル率検出回路は、クロックカウンタ1001、カウンタ1002、除算器1003及びバッファフル率レジスタ1004を有し、メモリ制御回路902のバッファのバッファフル率を検出する。クロックカウンタ1001及びカウンタ1002は、リセット信号RSによりカウント値がリセットされる。クロックカウンタ1001は、クロック信号をカウントする。メモリ制御回路902は、内部バッファがフルになるとビジー信号MBSYを出力する。カウンタ1002は、メモリ制御回路902のビジー信号MBSYをカウントする。除算器1003は、カウンタ1002のカウント値とクロックカウンタ1001のカウント値との除算を行い、除算結果をバッファフル率として出力する。バッファフル率レジスタ1004は、保持信号HLDを入力すると、除算器1003が出力するバッファフル率を保持する。メモリ制御回路902のバッファフル率を検出する方法を説明したが、同様に、図9の入出力制御回路903のバッファフル率の検出回路を設けることができる。
メモリアクセス又は入出力アクセスによる性能劣化を検出する回路として、CPU102内のメモリ制御回路902及び入出力制御回路903のバッファにおいて、カウンタ1002は、バッファがフルになったクロック数をカウントする。バッファフル率レジスタ1004は、バッファフル率を保持する。バッファフル率は、全実行クロック数のうちのバッファフルとなったクロック数の割合である。
図11は、電力管理コントローラ611の図10のCPU102に対する処理例を示すフローチャートであり、図5のステップS511及びS512において最適周波数を求めた後かつステップS506の前に行われる処理である。この処理は、サンプル取得として十分な数のプロセッシングエレメント101で実行すればよく、全プロセッシングエレメント101で実行する必要はない。
ステップS1001では、電力管理コントローラ611は、リセット信号RSの印加及び解除を行い、クロックカウンタ1001及びカウンタ1002のカウント値をリセットする。
次に、ステップS1002では、電力管理コントローラ611は、一定期間(定常状態として十分な期間)プロセッシングエレメント101を動作させる。
次に、ステップS1003では、電力管理コントローラ611は、保持信号HLDにより、バッファフル率をレジスタ1004に格納する。
次に、ステップS1003では、電力管理コントローラ611は、バッファフル率レジスタ1004に格納されているバッファフル率を読み出す。
次に、電力管理コントローラ611は、バッファフル率が閾値より小さい場合は、メモリボトルネックは無視できるとみなして、設定された最適周波数で図5のステップS506の処理を各プロセッシングエレメント101に実行させる。
また、電力管理コントローラ611は、バッファフル率が閾値より大きい場合は、最適周波数から周波数を段階的に下げながら、上記と同様に、バッファフル率を取得する。そして、電力管理コントローラ611は、バッファフル率が閾値より小さくなった時点の周波数を設定し、図5のステップS506の処理を行う。
このような制御により、メモリボトルネックがある場合に無駄に周波数を上げることなく、適切な消費電力で並列処理を実行することができる。
これまでの説明からわかるように、計算システム100の性能特性から求められる最適プロセッシングエレメント数Nが計算システム100の全プロセッシングエレメント数Mより小さいような動作状況の場合、全プロセッシングエレメント101を動作させた時には、図4の特性グラフ上で最適点401ではない動作点で動作していることになる。そのため、その動作点の性能と最適動作点401の性能の差分に当たる分だけ、本実施形態を用いた方が性能が向上することがわかる。
図12は、本実施形態の効果を説明するためのグラフであり、計算システム100の性能1201及び稼働プロセッシングエレメント数1208を示す。例えば、計算システム100で図12のような特性を持った並列処理プログラムを実行したとする。計算システム100の全プロセッシングエレメント数1206が17000個だった場合、17000個のすべてのプロセッシングエレメント101を動作させた場合は、動作点1202で動作して、計算システム性能1201は8.0[a.u.]となる。これに対し、本実施形態の最適動作点1203は、稼働プロセッシングエレメント数1205が12500個であり、周波数1204が1.6[a.u.]である。本実施形態の最適動作点1203で動作させた場合には、計算システム性能1207は9.5[a.u.]となり、全プロセッシングエレメント稼働の動作点1202に対して、約19%の性能1209の向上となる。
図13は、図7の最適周波数導出表521の例を示す図である。以下、図13の最適周波数導出表521を用いた処理例を、図5を参照しながら説明する。例えば、全プロセッシングエレメント数Mは17000個であり、計算システム制約電力は950kWであり、非稼働プロセッシングエレメント電力C4は11Wである。
ステップS501では、電力管理コントローラ611は、まず最適周波数導出表521が前提としている基準動作モードの周波数f及び電源電圧Vで並列処理プログラムを各プロセッシングエレメント101に仮動作させる。
次に、ステップS502では、電力管理コントローラ611は、並列処理を受け持つプロセッシングエレメント101の定常的なダイナミック電力を取得する。このダイナミック電力が38Wだったとする。これは、前に述べたように複数の電力平均でもよいし、電力値のばらつきを考慮した補正値でもよい。
次に、ステップS503では、電力管理コントローラ611は、図13の最適周波数導出表521を基に、ダイナミック電力が38Wの時の最適周波数を求める。図13の最適周波数導出表521は、2行目が36Wであり、3行目が40Wであるので、最適周波数fは、次式の線形補間により、求められる。
f=1.7+(1.5−1.7)×(38−36)/(40−36)
=1.6[a.u.]
その後、電力管理コントローラ611は、最適周波数fに対応する電源電圧Vを導出する。
次に、ステップS504では、電力管理コントローラ611は、図13の最適周波数導出表521を基に、次式の線形補間により、プロセッシングエレメント101の変更後電力Ppを導出する。
Pp=73+(71−73)×(1.5−1.6)/(1.5−1.7)
=72[W]
次に、電力管理コントローラ611は、式(4)を用いて、最適稼働プロセッシング数Nを導出する。
N=(950000−17000×11)/(72−11)
≒12500個
次に、ステップS505では、電力管理コントローラ611は、上記で求めた最適周波数(=1.6[a.u.])、それに対応する電源電圧、及び稼働プロセッシングエレメント数(≒12500個)を計算システム100の設定に反映させる。さらに、電力管理コントローラ611は、プログラム並列数設定が12500でない場合は、パラメータ設定及び再コンパイル等の方法で並列数を12500にする。
次に、ステップS506では、電力管理コントローラ611は、上記で行った計算システム100の設定及び並列数設定に基づいて、各プロセッシングエレメント101に並列処理プログラムを実行させる。
次に、プロセッシングエレメント101が図7に示すm個の動作モードを有する例を説明する。m個の動作モードは、それぞれ、周波数及び電源電圧の組みが設定されている。例えば、第1の動作モードは、周波数F1及びそれに対応する電源電圧V1が設定されている。すなわち、プロセッシングエレメント101は、異なる複数の周波数Fi及び各周波数FiでCPU102を正常動作させる電源電圧Viの組(Fi,Vi)として規定される複数の動作モードMiを持つ。ここで、iは自然数である。動作モードは、図5の処理を実行するプログラムから設定可能である。この場合、図5のステップS503では、複数の動作モードMiの中から1個の動作モードを選択する。
ステップS503では、電力管理コントローラ611は、上記と同様に、図7の最適周波数導出表521を参照し、得られたダイナミック電力Pdを用いて、次式の線形補間により、最適周波数fを導出する。
f=F(i)+{F(i+1)−F(i)}×{Pd−P(i)}/{P(i+1)−P(i)}
次に、電力管理コントローラ611は、動作モードとして最適周波数fより周波数が低く最も最適周波数fに近い周波数Fiの動作モードMiを選択し、選択した動作モードMiの周波数Fi及び電源電圧Viを設定する。
次に、ステップS504では、電力管理コントローラ611は、図7の最適周波数導出表521を参照し、選択した動作モードMiの周波数Fi及び電源電圧Viにおけるプロセッシングエレメント101の変更後電力Ppを読み出す。そして、電力管理コントローラ611は、その変更後電力Ppを基に、上記と同様に、最適稼働プロセッシングエレメント数Nを求める。
仮に、周波数fが動作モードMiの周波数fiと動作モードMi+1の周波数fi+1の間の周波数だった場合、動作モードMiと動作モードMi+1のどちらで動作させた方が性能が出るかは特性によってどちらの場合も考えられるため、事前には決められない。本実施形態では、周波数が低い側の動作モードを選択し、選択した動作モードにおける変更後電力Ppを読み出し、総電力が計算システム100の制約電力を超えないことを保証している。なお、周波数fより周波数が低い動作モードで動作させるので、変更後の実際の電力は変更後電力Ppより小さくなるため、本来の最適稼働プロセッシングエレメント数Nは変更後電力Ppを用いて求めた稼働プロセッシングエレメント数Nより大きくなる。最適稼働プロセッシングエレメント数よりやや少ない稼働プロセッシングエレメント数で動作することになるため、計算システム100の電力が制約電力を超えることはない。このように、変更後電力Ppを基に稼働プロセッシングエレメント数Nを求めることにより、簡便に動作モードMi及び稼働プロセッシングエレメント数Nを決定することができる。動作モードM1〜Mmの周波数F1〜Fmのステップが十分細かければ、処理を簡略化することによる性能劣化も小さくなる。
次に、他の方法を説明する。例えば、図7の最適周波数導出表521の最後列の変更後電力をダイナミック電力とスタティック電力に分けて記録しておく。ここで、上の方法で最適周波数を求めるために用いた各動作モードの変更後電力をPpo1とし、変更後のダイナミック電力をPpd1とし、変更後のスタティック電力をPps1とする。また、目的とする動作モードでのダイナミック電力をPpo2とし、変更後のダイナミック電力をPpd2とし、変更後のスタティック電力をPps2とする。
この場合、目的とした動作モードでの電力Ppは、次式により導出する。
Pp=Ppo1×Ppd2/Ppo2+Pps2
電力Ppは、目的の動作モードにおける変更後のダイナミック電力の変動比Ppd2/Ppo2を用いて、元のダイナミック電力Ppo1を補正することにより、前述の簡便な変更後電力の導出よりも、電力の精度を上げて、より無駄の小さい最適稼働プロセッシングエレメント数Nを求めることができる。また、ダイナミック電力の変換係数Ppd2/Ppo2の部分を予め求めて表に格納して利用してもよい。
また、前述の簡便な方法では、動作モードは周波数が小さい側の動作モードを選択していたが、上記のようにプロセッシングエレメント電力の精度を向上させるため、得られた周波数fを挟む両側の動作モードMiの周波数Fiを用いて、次式により性能Gsを計算し、性能が高い側の動作モードを選択してもよい。
Gs∝N×Fi
次に、本実施形態の効果を説明する。計算システム100が並列処理プログラムを実行した時の並列演算部分の性能特性が図12のようになっていたとする。稼働プロセッシングエレメント数1208は、計算システム100全体の消費電力が規定の制約電力を超えない範囲で最大となるように調整する。横軸は、CPU102のクロック周波数を表す。計算システム性能1201は、右側の縦軸に表す。稼働プロセッシングエレメント数1208は、左側の縦軸に表す。計算システム性能1201は、式(3)で表されるように、周波数fに対して極大点203を一つ持つ曲線になる。稼働プロセッシングエレメント数1208は、周波数fが高くなるにつれて、プロセッシングエレメント101単体の消費電力が上昇するため、減少する特性となる。本実施形態では、計算システム100の全プロセッシングエレメント数1206を17000個としているため、稼働プロセッシングエレメント数1208は、全プロセッシングエレメント数1206を超えるグラフ左側では17000個で横ばいとなっており、対応する計算システム性能1201は、稼働プロセッシングエレメント数1208が増やせないため、周波数fを低くした時の性能が急激に減っている。
計算システム100の全プロセッシングエレメント101を動作させた場合は、周波数が1.0[a.u.]近辺のところが計算システム制約電力下で周波数最大となる動作点1202となる。これに対し、本実施形態では、計算システム性能1201から得られる最適動作点1203を予め求めて最適周波数導出表521にテーブル化して利用するため、計算システム性能1201は周波数1204が1.6[a.u.]付近の動作点1203となる。本実施形態の動作点1203の計算システム性能1207は、全プロセッシングエレメント動作時の動作点1202の計算システム性能に対して、8.0[a.u.]から9.5[a.u.]への約17%の改善となる。この時、稼働プロセッシングエレメント数1208は、17000個から約12000個程度に減少する。これより、本実施形態により計算システム性能が改善されることが分かる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100 計算システム
101 プロセッシングエレメント
102 CPU
103 ローカルメモリ
104 ネットワーク

Claims (8)

  1. 複数のプロセッシングエレメントと、
    異なる複数の動作負荷を特定の基準周波数下で処理した際のプロセッシングエレメントのダイナミック電力と、前記動作負荷の最適周波数とを関連付けた最適周波数導出表を用いて、前記基準周波数で並列処理プログラムを前記複数のプロセッシングエレメントのうちの少なくとも1個のプロセッシングエレメントに仮動作させたときのプロセッシングエレメントのダイナミック電力を基に、並列処理プログラムを実行するプロセッシングエレメントの性能最適周波数及び前記性能最適周波数に対応する電源電圧を導出する導出部と、
    前記導出部により導出された前記性能最適周波数、前記電源電圧及び計算システムの制約電力を基に、前記プロセッシングエレメントの稼働数を設定する設定部と
    を有することを特徴とする計算システム。
  2. 記設定部は、前記複数のプロセッシングエレメントのすべてを稼働するよりも性能が高くなるように、前記プロセッシングエレメントの稼働数を設定することを特徴とする請求項1記載の計算システム。
  3. 前記導出部は、性能が最大となるように前記性能最適周波数及び前記電源電圧を導出することを特徴とする請求項1又は2記載の計算システム。
  4. 前記導出部は、複数の周波数及び電源電圧の組みのうちから、性能が最大となる組みの前記性能最適周波数及び前記電源電圧を導出することを特徴とする請求項1〜3のいずれか1項に記載の計算システム。
  5. 前記設定部は、前記導出部により導出された前記性能最適周波数及び前記電源電圧を基に前記プロセッシングエレメントの変更後電力を導出し、前記導出したプロセッシングエレメントの変更後電力及び前記計算システムの制約電力を基に、前記プロセッシングエレメントの稼働数を設定することを特徴とする請求項1〜4のいずれか1項に記載の計算システム。
  6. 前記複数のプロセッシングエレメントのうちの少なくとも1個は、
    メモリと、
    記メモリを制御するメモリ制御回路と、
    第1の検出回路とを有し、
    前記メモリ制御回路は、第1のバッファを有し、
    前記第1の検出回路は、前記第1のバッファのフル率を検出し、
    前記導出部は、前記第1のバッファのフル率を基に、前記性能最適周波数を導出することを特徴とする請求項1〜5のいずれか1項に記載の計算システム。
  7. さらに、前記複数のプロセッシングエレメントに接続されるネットワークを有し、
    前記複数のプロセッシングエレメントのうちの少なくとも1個は、
    記ネットワークの入出力を制御する入出力制御回路と、
    第2の検出回路とを有し、
    前記入出力制御回路は、第2のバッファを有し、
    前記第2の検出回路は、前記第2のバッファのフル率を検出し、
    前記導出部は、前記第2のバッファのフル率を基に、前記性能最適周波数を導出することを特徴とする請求項1〜6のいずれか1項に記載の計算システム。
  8. 複数のプロセッシングエレメントを有する計算システムの電力管理方法であって、
    導出部により、異なる複数の動作負荷を特定の基準周波数下で処理した際のプロセッシングエレメントのダイナミック電力と、前記動作負荷の最適周波数とを関連付けた最適周波数導出表を用いて、前記基準周波数で並列処理プログラムを前記複数のプロセッシングエレメントのうちの少なくとも1個のプロセッシングエレメントに仮動作させたときのプロセッシングエレメントのダイナミック電力を基に、並列処理プログラムを実行するプロセッシングエレメントの性能最適周波数及び前記性能最適周波数に対応する電源電圧を導出し、
    設定部により、前記導出部により導出された前記性能最適周波数、前記電源電圧及び計算システムの制約電力を基に、前記プロセッシングエレメントの稼働数を設定することを特徴とする計算システムの電力管理方法。
JP2013060736A 2013-03-22 2013-03-22 計算システム及びその電力管理方法 Expired - Fee Related JP6083278B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013060736A JP6083278B2 (ja) 2013-03-22 2013-03-22 計算システム及びその電力管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013060736A JP6083278B2 (ja) 2013-03-22 2013-03-22 計算システム及びその電力管理方法

Publications (2)

Publication Number Publication Date
JP2014186522A JP2014186522A (ja) 2014-10-02
JP6083278B2 true JP6083278B2 (ja) 2017-02-22

Family

ID=51834038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013060736A Expired - Fee Related JP6083278B2 (ja) 2013-03-22 2013-03-22 計算システム及びその電力管理方法

Country Status (1)

Country Link
JP (1) JP6083278B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6107801B2 (ja) * 2014-12-12 2017-04-05 日本電気株式会社 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
US10101786B2 (en) 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US11054883B2 (en) * 2017-06-19 2021-07-06 Advanced Micro Devices, Inc. Power efficiency optimization in throughput-based workloads

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085164A (ja) * 2003-09-10 2005-03-31 Sharp Corp マルチプロセッサシステムの制御方法およびマルチプロセッサシステム
JP4476876B2 (ja) * 2005-06-10 2010-06-09 三菱電機株式会社 並列計算装置
WO2012001776A1 (ja) * 2010-06-29 2012-01-05 富士通株式会社 マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
JP5713029B2 (ja) * 2011-02-10 2015-05-07 富士通株式会社 スケジューリング方法、設計支援方法、およびシステム

Also Published As

Publication number Publication date
JP2014186522A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
US9977699B2 (en) Energy efficient multi-cluster system and its operations
US20220214738A1 (en) Multi-level cpu high current protection
US9261949B2 (en) Method for adaptive performance optimization of the soc
EP2596413B1 (en) Managing current and power in a computing system
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
US9619240B2 (en) Core-level dynamic voltage and frequency scaling in a chip multiprocessor
US8443209B2 (en) Throttling computational units according to performance sensitivity
CN105830035B (zh) 多核动态工作负荷管理
US8447994B2 (en) Altering performance of computational units heterogeneously according to performance sensitivity
US20120110352A1 (en) Method and apparatus for thermal control of processing nodes
EP3237998B1 (en) Systems and methods for dynamic temporal power steering
EP3649536B1 (en) Core frequency management using effective utilization for power-efficient performance
KR20130061747A (ko) 코어 마다의 전압 및 주파수 제어 제공
US20170371761A1 (en) Real-time performance tracking using dynamic compilation
Rao et al. Efficient online computation of core speeds to maximize the throughput of thermally constrained multi-core processors
JP6083278B2 (ja) 計算システム及びその電力管理方法
Wang et al. Mitigation of NBTI induced performance degradation in on-chip digital LDOs
Mohammed et al. Temperature-aware task scheduling for dark silicon many-core system-on-chip
Wang et al. Evaluating the energy consumption of openmp applications on haswell processors
Wang et al. Achieving fair or differentiated cache sharing in power-constrained chip multiprocessors
US11853111B2 (en) System and method for controlling electrical current supply in a multi-processor core system via instruction per cycle reduction
Kim et al. Dynamic frequency scaling for embedded systems with memory intensive applications
Islam et al. Learning based power management for periodic real-time tasks
Marcu Power–thermal profiling of software applications
KR20220084900A (ko) 인터럽트 제어 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170109

R150 Certificate of patent or registration of utility model

Ref document number: 6083278

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees