JP2023076063A - 制御プログラム、情報処理装置および制御方法 - Google Patents
制御プログラム、情報処理装置および制御方法 Download PDFInfo
- Publication number
- JP2023076063A JP2023076063A JP2021189231A JP2021189231A JP2023076063A JP 2023076063 A JP2023076063 A JP 2023076063A JP 2021189231 A JP2021189231 A JP 2021189231A JP 2021189231 A JP2021189231 A JP 2021189231A JP 2023076063 A JP2023076063 A JP 2023076063A
- Authority
- JP
- Japan
- Prior art keywords
- power consumption
- control unit
- delay time
- control
- consumption data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 43
- 238000012545 processing Methods 0.000 claims description 29
- 230000010365 information processing Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 1
- 239000006185 dispersion Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 28
- 230000010363 phase shift Effects 0.000 description 28
- 238000012544 monitoring process Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 206010027476 Metastases Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000009401 metastasis Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
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)
Abstract
【課題】各CPUの消費電力のピークが同期することを避け、性能を保持したまま消費電力を平準化する。【解決手段】情報処理装置10が備える各プロセッサは、各プロセッサの消費電力の同期を検出すると、プロセッサごとに異なる遅延時間となるように自己のプロセッサの遅延時間を計算し、遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他のプロセッサに開示し、他のプロセッサに開示した消費電力のデータおよび他のプロセッサによって開示された消費電力のデータを用いて負荷分散を行う。【選択図】図5
Description
本発明は、データ転送を効率化するアーキテクチャを備える制御プログラム等に関する。
1台のCPU(Central Processing Unit)がシステムの資源を繰り返しアクセスする状況では、消費電力の推移のピーク(山)とボトム(谷)とが交互に発生する。例えば、ストレージのIO(Input Output)処理や、データベースを使った業務の定型バッチ処理等、ループを使って繰り返し同じ処理を行う場合が相当する。
複数のCPUからなる分散処理システムでは、いずれのCPUも負荷が低い場合には、動的な負荷分散がされない。動的な負荷分散がされない場合には、CPUの処理の割り当てが不均一なため、各CPUの消費電力のピークとボトムとが揃わず、システム全体の消費電力は、設計時に決められた総消費電力量を超えることはない。図11は、動的負荷分散がされない場合の消費電力の推移を示す参考図である。図11に示すように、動的負荷分散がされない場合には、各CPUの消費電力のピークとボトムとが揃っていない。そして、システム全体の消費電力は、総消費電力量を超えることはない。
これに対して、いずれかのCPUで負荷が高いまたは低い場合には、適当なタイミングでCPU間の動的な負荷分散がされる。動的な負荷分散がされる場合、CPUへの処理の割り当ては、実行時に他のCPUの状況を確認して、処理の割り当てを均一化するというようなフィードバックがかかる。この結果、各CPUの消費電力のピークとボトムとはだんだんと揃っていく。この現象は、同期現象と呼ばれる。図12は、動的負荷分散がされた場合の消費電力の推移を示す参考図である。図12上図に示すように、動的負荷分散がされると、各CPUの消費電力のピークとボトムとは揃っていき、同期現象が発生する。
同期現象が発生すると、各CPUの消費電力のピークとボトムとが揃うために、ピーク時にはシステム全体の消費電力が設計時に決められた総消費電力量に達する場合がある。かかる場合には、システム全体の消費電力は、設計時に決められた総消費電力量を超えることができないので、システムは、CPUのクロックを一時的に低下させて性能を低下させる(電力キャッピングという)。図12下図に示すように、同期現象が発生すると、システム全体の消費電力は、ピークの部分で総消費電力量に達するが、超えることができないので、総消費電力のキャッピングがされる。これにより、CPUの性能が低下する。
ここで、CPUの消費電力における1周期のピークとボトムとのタイミング(位相)をずらすことで、電力キャッピングを避けることが考えられる。例えば、システムは、CPUのクロックをCPU単位で低下させたり、処理内部に短時間のスリープを挟み込んだりして位相をずらし、電力キャッピングを避ける。ところが、CPUのクロックをCPU単位で低下させたり、処理内部に短時間のスリープを挟み込んだりすると、CPUの性能が低下してしまうことに変わりはない。
また、処理量周期から推測できるタスクの処理量が、タスクキューごとに分散されるように、例えば、同一周期のタスクを同一キューに追加するように格納先のタスクキューを選択し追加することで、タスクキューに入っているタスクと新たにタスクキューに入れるタスクの位相を違えることができる技術が開示されている(例えば、特許文献1参照)。
また、プログラムの実行中に電力モードを変更することにより、プロセッサの性能を制御する技術が開示されている(例えば、特許文献2参照)。
しかしながら、複数のCPUからなる分散処理システムにおいて、動的な負荷分散がされると、各CPUの利用率を均一化するが、各CPUの消費電力のピークが同期してしまい、性能を保持したまま消費電力を平準化できないという問題がある。
例えば、CPUのクロックをCPU単位で低下させたり、処理内部に短時間のスリープを挟み込んだりする技術では、各CPUの消費電力のピークの同期を避けることができるが、性能が低下してしまう。
また、タスクの位相を違える技術では、タスクの処理量の大小を予め見積もることができればタスクの位相を違えることができ、各CPUの消費電力のピークの同期を避けることができる。ところが、タスクの処理量の大小を予め見積もることができない場合には、各CPUの消費電力のピークの同期を避けることが難しい。この結果、各CPUの消費電力のピークが同期してしまい、性能を保持したまま消費電力を平準化できない。
また、電力モードを変更する技術は、そもそもCPU間の動的な負荷分散に関する技術ではない。
一つの側面では、各CPUの消費電力のピークが同期することを避け、性能を保持したまま消費電力を平準化することを目的とする。
第1の案では、制御プログラムは、複数の制御部からなる情報処理装置における各制御部の制御プログラムであって、各制御部の消費電力の同期を検出すると、制御部ごとに異なる遅延時間となるように自己の制御部の遅延時間を計算し、前記遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他の制御部に開示し、他の制御部に開示した消費電力のデータおよび他の制御部によって開示された消費電力のデータを用いて負荷分散を行う、処理をコンピュータに実行させる。
一実施態様によれば、各CPUの消費電力のピークが同期することを避け、性能を保持したまま消費電力を平準化することができる。
以下に、本発明にかかる制御プログラム、情報処理装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
図1は、コンピュータシステムのハードウェア構成図である。コンピュータシステム1は、情報処理装置10、ドライブ装置20および表示装置30を有する。
情報処理装置10は、プロセッサ11および12、メモリ13、ネットワークデバイス14、ストレージデバイス15、SSD(Solid State Drive)16、並びに、HDD(Hard Disk Drive)17を有する。プロセッサ11および12、メモリ13、ネットワークデバイス14、ストレージデバイス15、ドライブ装置20、並びに、表示装置30は、バス40により相互に接続される。
また、プロセッサ11および12は、それぞれ複数のコアを有する。プロセッサ11および12は、プログラムをメモリ13上に展開して実行する。プログラムを実行するにあたり、プログラムに含まれるスレッドをプロセッサ11および12のそれぞれのコアが実行する。
プロセッサ11および12は、プログラムを実行することでアプリケーションを動作させる。そして、プロセッサ11および12は、アプリケーションを動作させることで、ネットワークデバイス14によりネットワークスイッチ2を介して外部との通信を行わせる。また、プロセッサ11および12は、アプリケーションを動作させることで、ストレージデバイス15によりSSD16およびHDD17に対するデータの読み書きを行うデータ転送を行う。本実施例における、プロセッサ11および12による、ネットワークデバイス14またはストレージデバイス15を用いたデータの転送処理の制御については後で詳細に説明する。ここで、図1では、プロセッサ11および12を2台記載したが、プロセッサの数は単一でなければ特に制限はない。
ネットワークデバイス14は、InfiniBand等の高速IOデバイスである。ネットワークデバイス14は、ネットワークスイッチ2と接続される。ネットワークデバイス14は、プロセッサ11または12からの指示を受けて、ネットワークスイッチ2を介して外部装置との間でデータの送受信を行う。
SSD16およびHDD17は、大容量の補助記憶装置である。SSD16およびHDD17は、各種プログラムやデータを格納する。
ストレージデバイス15は、NVMe等の高速IOデバイスである。ストレージデバイス15は、SSD16およびHDD17に接続される。ストレージデバイス15は、プロセッサ11または12からの指示を受けて、SSD16およびHDD17に対するデータの読み出しおよび書き込みを実行する。
ドライブ装置20は、例えば磁気ディスクや光ディスク等の着脱可能な可搬型記憶媒体が挿入され、挿入された可搬型記憶媒体に対してデータの書き込みや読み出しを行なう。
表示装置30は、プロセッサ11および12から送信された画像を表示する。利用者は、表示装置30を確認することで、情報を受け取ることが可能である。
ここで、プロセッサ11,12の構成の一例を、図2を参照して説明する。図2は、プロセッサの構成の一例を示す図である。図2に示すように、1つのCPUソケット#1に2個のプロセッサ11a,11bが搭載されている。また、1つのCPUソケット#2に2個のプロセッサ12a,12bが搭載されている。すなわち、マルチソケットおよびマルチコアが実現される。
図3は、実施例に係る情報処理装置の機能構成の一例を示す図である。実施例に係る情報処理装置10は、マルチプロセッサにおいて、負荷分散の時に発生する同期現象を緩和する制御を行う。すなわち、負荷分散がされると、各プロセッサ(CPU)の消費電力のピークとボトムとは揃っていき、同期現象が発生する。同期現象が発生すると、各CPUの消費電力のピークとボトムとが揃うために、ピーク時にはシステム全体の消費電力が設計時に決められた総消費電力量に達する場合がある。かかる場合には、システム全体の消費電力は、設計時に決められた総消費電力量を超えることができないので、情報処理装置10は、CPUのクロックを一時的に低下させて性能を低下させる電力キャッピングを行ってしまう。そこで、情報処理装置10は、電力キャッピングを行わなわないで各CPUの消費電力の同期を緩和すべく、各CPUの消費電力の位相をずらすように制御する。
ここで、負荷分散の時に発生する同期現象について説明する。多数の振動子が相互に接続され、振動のスピードが互いに影響を及ぼし合う場合、振動子の同期現象が発生することが広く自然現象で見られる。同期現象を説明する数学モデルとして、蔵本モデルがよく知られている。なお、蔵本モデルについての文献として、例えば、[Y.Kuramoto 75]Y.Kuramoto.;In International Symposium on Mathematical Problems in Theoretical Physics, volume 39 of Lecture Notes in Physics, page 420.Springer, New York,(1975).、[Y.Kuramoto 84]Y.Kuramoto.: Chemical Oscillations,Waves, and Turbulence. Springer, Berlin,(1984).や、[長崎2016]長崎ら、完全二部グラフ構造上での爆発的同期転移の解析、2016年度人口知能学会全国大会が挙げられる。
実施例では、CPUの電力変動を振動子としてCPUの電力変動を蔵本モデルに当てはめることで、各プロセッサ11,12が、同期の状況をモニタリングし、同期現象を検出する。そして、各プロセッサ11,12が同期現象を検出すると、所定の計算に基づいて算出した遅延時間に対応する過去の時点の消費電力のデータを現在の消費電力のデータとして他のプロセッサに開示する。そして、各プロセッサ11,12は、開示された各プロセッサの消費電力のデータを用いて動的な負荷分散を行うようにする。この結果、情報処理装置10は、参照させる消費電力のデータを意図的にずらしたデータで動的な負荷分散を行うことができ、消費電力のピークをずらすことができ、性能を保持したまま消費電力を平準化できる。
情報処理装置10は、制御部11-1,11-2および記憶部13-1,13-2を有する。なお、制御部11-1、11-2は、それぞれ図1に示すプロセッサ11、12に対応する。また、記憶部13-1,13-2は、図1に示すメモリ13に対応する。
制御部11-1は、情報処理装置10全体を司る処理部であり、監視制御部111、同期緩和制御部112および負荷分散部113を有する。記憶部13-1は、FIFO(First In First Out)バッファ131および仮想消費電力情報132を有する。なお、制御部11-2は、制御部11-1と同様の機能を有するので、その説明を省略する。また、記憶部13-2は、記憶部13-1と同様の機能を有するので、その説明を省略する。
FIFOバッファ131は、サイクリックバッファであり、各時点のプロセッサ11(CPU)にかかる消費電力の値を記憶する。なお、記憶する時点は、例えば30分単位でも良く、1時間単位でも良く、予め決定されていれば良い。
仮想消費電力情報132は、現在の消費電力として開示する消費電力の情報である。なお、仮想消費電力情報132は、監視制御部111によって設定される。
ここで、仮想消費電力情報132の一例を、図4を参照して説明する。図4は、仮想消費電力情報の一例を示す図である。図4に示すように、仮想消費電力情報132は、消費電力現在値、仮想周波数および仮想位相を対応付けて記憶する。消費電力現在値は、他のプロセッサに現在の消費電力の値として開示する仮想的な現在値である。消費電力現在値は、自己のプロセッサが所定の計算をもとに算出した遅延時間に対する過去の時点の消費電力値である。所定の計算は、同期緩和制御部112によって実施される。仮想周波数は、消費電力現在値を計算した時点の消費電力の周波数である。仮想位相は、消費電力現在値を計算した時点の消費電力の位相である。
図3に戻って、監視制御部111は、各プロセッサの消費電力のデータを監視する。例えば、監視制御部111は、所定の時間ごとに、自己のプロセッサ(CPU)にかかる消費電力値をFIFOバッファ131に保存する。そして、監視制御部111は、FIFOバッファ131に保存された消費電力値をローパスフィルタに通す。ローパスフィルタは、移動平均をとるためである。移動平均をとるのは、1つの値が異常値であったときの影響を回避するためである。すなわち、監視制御部111は、遅延時間が初期値を示す0である場合には、FIFOバッファ131に保存された消費電力値について、最新の消費電力値から直近の期間までの消費電力値の移動平均を算出する。また、監視制御部111は、後述する同期緩和制御部112によって遅延時間が設定された場合には、遅延時間に対応する過去の時点の消費電力値から直近の期間までの消費電力値の移動平均を算出する。そして、監視制御部111は、算出した移動平均を消費電力の現在値として、仮想消費電力情報132の消費電力現在値に保存する。そして、監視制御部111は、所定の時間ごとにまたは他のプロセッサの要求に応じて、仮想消費電力情報132に保存した消費電力現在値を他のプロセッサに開示する。
また、監視制御部111は、三角関数近似機構を有し、フーリエ変換を行って、消費電力現在値を算出した時点の消費電力の周波数および位相を算出する。そして、監視制御部111は、消費電力の周波数および位相を、仮想消費電力情報132の仮想周波数および仮想位相に保存する。
同期緩和制御部112は、各プロセッサの消費電力が同期していることを検出すると、所定の計算をもとに算出した遅延時間を計算する。言い換えれば、同期緩和制御部112は、プロセッサごとに異なる遅延時間となるように、自己のプロセッサの遅延時間を計算する。例えば、同期緩和制御部112は、各プロセッサの電力変動を振動子と見立てた場合の各プロセッサの消費電力の周波数および位相を収集する。各プロセッサの消費電力の周波数および位相は、各プロセッサの監視制御部111によって非同期に計算される。そして、同期緩和制御部112は、各プロセッサの消費電力の周波数および位相から秩序変数ηを計算する。ここでいう秩序変数ηは、同期の度合いを表す変数であり、蔵本モデルの秩序変数ηに対応する。秩序変数ηは、複素平面上の半径「1」の単位円内部の1点であり、秩序変数距離|η|は原点0からの距離である。秩序変数距離|η|が1に近い程強く同期していることを意味し、0に近い程無秩序であることを意味する。同期緩和制御部112は、秩序変数距離|η|が予め定めた同期か否かを識別する同期閾値pと比較することで、同期中であるか否かを判定する。
そして、同期緩和制御部112は、同期中であると判定した場合には、位相移動制御を実施する。位相移動制御とは、自己のプロセッサおよび他のプロセッサの消費電力が同一の位相(局面)であると仮定し、他のプロセッサと同じ位相になることを避けるために、位相を移動させる制御のことをいう。つまり、位相移動制御は、自己のプロセッサにおける現在の消費電力値を位相差分過去の値とする。一例として、位相移動制御は、1サイクルを示す360度をプロセッサの数で均等分割し、分割した区画(位相)を乱数で選択する。別の例として、位相移動制御は、1サイクルを示す360度をプロセッサの数で均等分割し、分割した区画(位相)の中で自己のプロセッサの番号に対応する区画(位相)を選択する。そして、位相移動制御は、選択した区画(位相)の位相差を時間に換算して、過去の時間差(遅延時間)δを計算する。そして、位相移動制御は、計算した遅延時間δを監視制御部111に設定する。この後、監視制御部111は、設定された遅延時間δ分過去の時点の消費電力値から直近の期間の消費電力値の移動平均を現在の消費電力値として他のプロセッサに公開する。
ここで、基盤となる蔵本モデルについて説明する。蔵本モデルでは、全ての振動子が互いに接続する全結合グラフを前提とし、各振動子iの運動は、以下の式(1)で与えられる。なお、式(1)のKは結合強度、Nは個数、ωiは固有振動数である。
なお、同期緩和制御部112は、自己のプロセッサの消費電力の固有振動数および位相をそれぞれωi、θiに当てはめ、他のプロセッサの消費電力の位相をθjに当てはめ、秩序変数ηを計算すれば良い。固有振動数は、他の振動子(他のプロセッサ)の影響が全くない場合の自己のプロセッサiの振動数である。但し、実際には、お互いに影響し合っているので、自己のプロセッサiの固有振動数は、ある時点の振動数となる。そして、蔵本モデルでは、秩序変数ηが1に近いときには、K≧Kcという関係が成立(蔵本移転が発生)しており、秩序変数ηが0に近いときには、K<Kcという関係が成立している。そこで、同期緩和制御部112は、秩序変数距離|η|が予め定めた同期か否かを識別する同期閾値p以上であれば同期状態と判定し、秩序変数距離|η|が同期閾値p未満であれば非同期状態と判定する。
負荷分散部113は、各プロセッサに記憶される仮想消費電力情報132における各消費電力現在値に従って動的な負荷分散を実行する。例えば、負荷分散部113は、動的な負荷分散の方式として、ランダムアルゴリズムで定められた2つのプロセッサ間で負荷(タスク)のサイズを均一化する方式を適用すれば良い。かかる方式には、ワークスチーリング法や、ワークシェアリング法等があるが、事前に計画した負荷分散を行う静的負荷分散以外であればどのようなものでも良い。一例として、複数のプロセッサ間での負荷分散を向上させる特開2020-144737が挙げられる。
図5は、実施例に係る監視制御の流れの一例を示す図である。図5に示すように、監視制御部111は、所定の時間ごとに、消費電力モニタデバイス111aから消費電力値を読み出し、FIFOバッファ131に保存する(S100)。なお、消費電力モニタデバイス111aは、ハードウェアに限定されず、ソフトウェアであっても良い。FIFOバッファ131は、時刻および消費電力値のデータをFIFO順に蓄積する。
監視制御部111は、FIFOバッファ131に保存された、読み出しインデックスから直近の期間までの消費電力値を、ローパスフィルタ111bに通し、移動平均をとる。例えば、遅延時間設定値δが初期値を示す0である場合には、FIFOバッファ131の読み出しインデックスが最新の位置を示すので、ローパスフィルタ111bは、読み出しインデックスが示す最新の消費電力値から直近の期間の消費電力値の移動平均を算出する(S110)。また、遅延時間設定値δが設定されると、監視制御部111は、遅延時間設定値δに対応する読み出しインデックスを再設定する(S111)。そして、ローパスフィルタ111bは、再設定した読み出しインデックスから直近の期間までの消費電力値の移動平均を算出する(S110)。すなわち、監視制御部111は、遅延時間に対応する過去の時点の消費電力値から過去に向かう直近の期間の消費電力値の移動平均を算出する。
そして、監視制御部111は、所定の時間ごとにまたは他のプロセッサの要求に応じて、読み出しインデックスに対応する移動平均を、仮想消費電力情報132の消費電力現在値に書き出す(S120)。また、監視制御部111は、三角関数近似機構111cを用いて、消費電力現在値を算出した時点の消費電力の周波数および位相を算出し、仮想消費電力情報132の仮想周波数および仮想位相に保存する(S130)。そして、監視制御部111は、仮想消費電力情報132に保存した消費電力現在値を他のプロセッサに開示する(S140)。
これにより、負荷分散部113が、各プロセッサによって開示される各消費電力現在値に従って動的な負荷分散を実行することで、各プロセッサの消費電力の位相をずらすことができる。つまり、監視制御部111が、各プロセッサごとに異なる遅延時間をもとにした過去のある時点の消費電力のデータを互いに交換することで、情報処理装置10は、負荷分散による各プロセッサの消費電力のピークが同期することを避けることができる。
図6は、実施例に係る同期緩和制御処理のフローチャートの一例を示す図である。なお、同期緩和制御部112は、所定のタイミングで、自己のプロセッサおよび他のプロセッサに対して最新の消費電力情報を要求する。図6に示すように、同期緩和制御部112は、全プロセッサから最新の消費電力情報(位相、周波数)を収集する(ステップS11)。
そして、同期緩和制御部112は、収集した全プロセッサからの消費電力情報(位相、周波数)を用いて、秩序変数ηを計算する(ステップS12)。例えば、同期緩和制御部112は、全プロセッサの消費電力情報(位相、周波数)を式(1)および式(2)に当てはめて、秩序変数ηを計算する。
そして、同期緩和制御部112は、秩序変数距離|η|が同期閾値p以上であるか否かを判定する(ステップS13)。秩序変数距離|η|が同期閾値p以上であると判定した場合には(ステップS13;Yes)、同期緩和制御部112は、同期状態であると判断し、位相移動制御処理を実行する(ステップS14)。なお、位相移動制御処理のフローチャートは、後述する。そして、同期緩和制御部112は、ステップS15に移行する。
一方、秩序変数距離|η|が同期閾値p以上でないと判定した場合には(ステップS13;No)、同期緩和制御部112は、非同期状態であると判断し、ステップS15に移行する。
ステップS15において、同期緩和制御部112は、同期緩和制御を終了するか否かを判定する(ステップS15)。例えば、同期緩和制御部112は、同期緩和制御の実行を終了するための操作が行われたり、終了の割り込みがあったりした場合には、同期緩和制御を終了すると判定する。同期緩和制御を終了しないと判定した場合には(ステップS15;No)、同期緩和制御部112は、ステップS11に移行する。
一方、同期緩和制御を終了すると判定した場合には(ステップS15;Yes)、同期緩和制御部112は、同期緩和制御処理を終了する。
図7は、位相移動制御処理のフローチャートの一例を示す図である。図7に示すように、位相移動制御処理は、自己の消費電力の仮想周波数をfに設定する(ステップS21)。例えば、位相移動制御処理は、自己の仮想消費電力情報132に記憶された仮想周波数をfにコピーする。
そして、位相移動制御処理は、仮想周波数fを以下の式に代入して遅延時間δを計算する(ステップS22)。すなわち、位相移動制御処理は、1サイクルを示す360度を全プロセッサ(CPU)数Nで均等分割し、分割した区画(位相)を乱数で選択する。なお、以下の式のNは、全プロセッサ(CPU)の数である。また、rand(0,N)は、下限「0」から上限「N」までの間での一様乱数を算出する関数である。
δ=(1/f)×(rand(0,N)/N)
δ=(1/f)×(rand(0,N)/N)
そして、位相移動制御処理は、計算した遅延時間δを自己の遅延時間設定値に設定する(ステップS23)。例えば、例えば、位相移動制御処理は、遅延時間δを自己の遅延時間設定値にコピーする。この後、位相移動制御処理は、遅延時間設定値δを監視制御部111に設定する。
図8は、位相移動制御処理のフローチャート別の例を示す図である。図8に示すように、位相移動制御処理は、自己の消費電力の仮想周波数をfに設定する(ステップS31)。例えば、位相移動制御処理は、自己の仮想消費電力情報132に記憶された仮想周波数をfにコピーする。
そして、位相移動制御処理は、仮想周波数fを以下の式に代入して遅延時間δを計算する(ステップS32)。すなわち、位相移動制御は、1サイクルを示す360度を全CPU数Nで均等分割し、分割した区画(位相)の中で自己のプロセッサに対応するID(CPUID)に対応する区画(位相)を選択する。なお、以下の式のNは、全プロセッサ(CPU)の数である。
δ=(1/f)×(CPUID/N)
δ=(1/f)×(CPUID/N)
そして、位相移動制御処理は、計算した遅延時間δを自己の遅延時間設定値に設定する(ステップS33)。例えば、例えば、位相移動制御処理は、遅延時間δを自己の遅延時間設定値にコピーする。この後、位相移動制御処理は、遅延時間設定値δを監視制御部111に設定する。
この後、位相移動制御処理は、遅延時間設定値δを監視制御部111に設定する。そして、監視制御部111は、各プロセッサごとに異なる遅延時間設定値であって自己のプロセッサの遅延時間設定値δをもとにした過去のある時点の消費電力のデータ(消費電力現在値)を公開する。
図9は、実施例に係る負荷分散処理のフローチャートの一例を示す図である。なお、負荷分散部113は、例えば、自己の消費電力現在値が開示されたタイミングで負荷分散処理を実行する。図9に示すように、負荷分散部113は、全プロセッサから最新の消費電力情報(消費電力現在値)を収集する(ステップS41)。そして、負荷分散部113は、収集した全プロセッサの消費電力現在値を従って動的な負荷分散を実行する(ステップS42)。
これにより、負荷分散部113は、各プロセッサによって開示される各消費電力現在値に従って動的な負荷分散を実行することで、各プロセッサの消費電力の位相をずらすことができる。つまり、監視制御部111が、各プロセッサごとに異なる遅延時間をもとにした過去のある時点の消費電力のデータを互いに交換することで、情報処理装置10は、負荷分散による各プロセッサの消費電力のピークが同期することを避けることができる。
図10は、実施例に係る情報処理装置による制御処理の効果を示す図である。なお、図10では、情報処理装置10が、3台のCPU(プロセッサ)を備えている場合である。図10上図に示すように、各CPUは、3台のCPUの消費電力の同期を検出すると、現在の消費電力値を、各CPUごとに異なる遅延時間をもとにした過去の時点の消費電力値として他のCPUに公開する。このため、各CPUは、公開された消費電力値に従って動的な負荷分散を実行することで、ピークが重複していた位相を重複しないようにずらすことができる。ここでは、3台のCPUでは、それぞれの消費電力のピークが少しずつズレている。
この結果、情報処理装置10は、システムとしてCPUのクロックを一時的に低下させて性能を低下させたり(電力のキャッピング)、負荷分散の処理を変えたりせず従来のままで、自律的に且つ非同期に位相をずらすことができる。この結果、情報処理装置10は、各CPUの消費電力のピークが同期することを避け、性能を保持したまま消費電力を平準化することができる。図10下図に示すように、情報処理装置10は、各CPUにおける消費電力の位相のズレによって、全体の消費電力が総消費電力量に達せず、性能を保持したまま消費電力を平準化することができる。
[実施例の効果]
上記実施例によれば、情報処理装置10は、複数の制御部11-1,11-2からなる。制御部11-1は、各制御部11-1,11-2の消費電力の同期を検出すると、制御部11-1,11-2ごとに異なる遅延時間となるように自己の制御部11-1の遅延時間を計算する。制御部11-1は、遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他の制御部11-2に開示する。制御部11-1は、他の制御部11-2に開示した消費電力のデータおよび他の制御部11-2によって開示された消費電力のデータを用いて負荷分散を行う。これにより、情報処理装置10は、異なる遅延時間に対する時点の消費電力のデータを用いた負荷分散により各制御部11-1,11-2の消費電力のピークが同期することを避けることができ、消費電力を平準化することができる。
上記実施例によれば、情報処理装置10は、複数の制御部11-1,11-2からなる。制御部11-1は、各制御部11-1,11-2の消費電力の同期を検出すると、制御部11-1,11-2ごとに異なる遅延時間となるように自己の制御部11-1の遅延時間を計算する。制御部11-1は、遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他の制御部11-2に開示する。制御部11-1は、他の制御部11-2に開示した消費電力のデータおよび他の制御部11-2によって開示された消費電力のデータを用いて負荷分散を行う。これにより、情報処理装置10は、異なる遅延時間に対する時点の消費電力のデータを用いた負荷分散により各制御部11-1,11-2の消費電力のピークが同期することを避けることができ、消費電力を平準化することができる。
また、上記実施例によれば、制御部11-1は、消費電力における周期の1サイクルを複数の制御部11-1,11-2の数で均等に分割し、分割した区画の中から乱数に基づいて自己の制御部11-1の区画を選択し、選択した区画に対応する遅延時間を算出する。これにより、情報処理装置10は、制御部11-1,11-2ごとに異なる遅延時間を確実に算出できる。
また、上記実施例によれば、制御部11-1は、消費電力における周期の1サイクルを複数の制御部11-1,11-2の数で均等に分割し、分割した区画の中から制御部11-1,11-2ごとに割り当てられた識別番号に基づいて自己の制御部11-1の区画を選択し、選択した区画に対応する遅延時間を算出する。これにより、情報処理装置10は、制御部11-1,11-2ごとに異なる遅延時間を確実に算出できる。
また、上記実施例によれば、制御部11-1は、遅延時間に対する過去の時点の消費電力のデータから直近の期間までの消費電力のデータの移動平均を現在の消費電力のデータとして他の制御部11-2に開示する。これにより、制御部11-1は、1個の消費電力のデータが異常なデータであったときの影響を回避でき、正常なデータを他の制御部11-2に開示することができる。
また、上記実施例によれば、制御部11-1は、各制御部11-1,11-2の消費電力に関わるデータを蔵本モデルに入力して秩序変数を出力し、秩序変数を用いて各制御部11-1,11-2の消費電力の同期を検出する。これにより、制御部11-1は、蔵本モデルを利用して、消費電力の同期を検出できる。
[その他]
なお、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
なお、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
1 コンピュータシステム
2 ネットワークスイッチ
10 情報処理装置
11,12 プロセッサ
11a,11b,12a,12b プロセッサ
11-1,11-2 制御部
13-1,13-2 記憶部
13 メモリ
14 ネットワークデバイス
15 ストレージデバイス
16 SSD
17 HDD
20 ドライブ装置
30 表示装置
40 バス
111 監視制御部
112 同期緩和制御部
113 負荷分散部
131 FIFOバッファ
132 仮想消費電力情報
2 ネットワークスイッチ
10 情報処理装置
11,12 プロセッサ
11a,11b,12a,12b プロセッサ
11-1,11-2 制御部
13-1,13-2 記憶部
13 メモリ
14 ネットワークデバイス
15 ストレージデバイス
16 SSD
17 HDD
20 ドライブ装置
30 表示装置
40 バス
111 監視制御部
112 同期緩和制御部
113 負荷分散部
131 FIFOバッファ
132 仮想消費電力情報
Claims (7)
- 複数の制御部からなる情報処理装置における各制御部の制御プログラムであって、
各制御部の消費電力の同期を検出すると、制御部ごとに異なる遅延時間となるように自己の制御部の遅延時間を計算し、
前記遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他の制御部に開示し、
他の制御部に開示した消費電力のデータおよび他の制御部によって開示された消費電力のデータを用いて負荷分散を行う
処理をコンピュータに実行させることを特徴とする制御プログラム。 - 前記遅延時間を計算する処理は、消費電力における周期の1サイクルを前記複数の制御部の数で均等に分割し、分割した区画の中から乱数に基づいて自己の制御部の区画を選択し、選択した区画に対応する遅延時間を算出する
ことを特徴とする請求項1に記載の制御プログラム。 - 前記遅延時間を計算する処理は、消費電力における周期の1サイクルを前記複数の制御部の数で均等に分割し、分割した区画の中から制御部ごとに割り当てられた識別番号に基づいて自己の制御部の区画を選択し、選択した区画に対応する遅延時間を算出する
ことを特徴とする請求項1に記載の制御プログラム。 - 前記他の制御部に開示する処理は、前記遅延時間に対する過去の時点の消費電力のデータから直近の期間までの消費電力のデータの移動平均を現在の消費電力のデータとして他の制御部に開示する
ことを特徴とする請求項1に記載の制御プログラム。 - 各制御部の消費電力に関わるデータを蔵本モデルに入力して秩序変数を出力し、前記秩序変数を用いて各制御部の消費電力の同期を検出する
ことを特徴とする請求項1に記載の制御プログラム。 - 複数の制御部からなる情報処理装置であって、
各制御部は、
各制御部の消費電力の同期を検出すると、制御部ごとに異なる遅延時間となるように自己の制御部の遅延時間を計算する計算部と、
前記遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他の制御部に開示する開示部と、
他の制御部に開示した消費電力のデータおよび他の制御部によって開示された消費電力のデータを用いて負荷分散を行う負荷分散部と、
を有することを特徴とする情報処理装置。 - 複数の制御部からなる情報処理装置における各制御部の制御方法であって、
各制御部の消費電力の同期を検出すると、制御部ごとに異なる遅延時間となるように自己の制御部の遅延時間を計算し、
前記遅延時間に対する過去の時点の消費電力のデータを現在の消費電力のデータとして他の制御部に開示し、
他の制御部に開示した消費電力のデータおよび他の制御部によって開示された消費電力のデータを用いて負荷分散を行う
処理をコンピュータが実行することを特徴とする制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021189231A JP2023076063A (ja) | 2021-11-22 | 2021-11-22 | 制御プログラム、情報処理装置および制御方法 |
US17/874,335 US11868165B2 (en) | 2021-11-22 | 2022-07-27 | Computer-readable recording medium storing control program, information processing device, and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021189231A JP2023076063A (ja) | 2021-11-22 | 2021-11-22 | 制御プログラム、情報処理装置および制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023076063A true JP2023076063A (ja) | 2023-06-01 |
Family
ID=86383846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021189231A Pending JP2023076063A (ja) | 2021-11-22 | 2021-11-22 | 制御プログラム、情報処理装置および制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11868165B2 (ja) |
JP (1) | JP2023076063A (ja) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9830670B2 (en) * | 2008-07-10 | 2017-11-28 | Apple Inc. | Intelligent power monitoring |
JP5556326B2 (ja) | 2010-04-20 | 2014-07-23 | 日本電気株式会社 | 情報処理システム、タスク制御方法及びタスク制御プログラム |
KR101725098B1 (ko) * | 2010-10-12 | 2017-04-26 | 삼성전자주식회사 | 전력 관리 장치 및 그 제어 방법 |
JP5895246B2 (ja) * | 2012-04-26 | 2016-03-30 | パナソニックIpマネジメント株式会社 | 制御装置および制御方法 |
US9250682B2 (en) * | 2012-12-31 | 2016-02-02 | Intel Corporation | Distributed power management for multi-core processors |
KR102063716B1 (ko) | 2013-05-14 | 2020-02-11 | 삼성전자주식회사 | 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법 |
KR102468286B1 (ko) * | 2016-01-04 | 2022-11-21 | 한국전자통신연구원 | 대칭형 다중 처리 시스템에서의 전력 제한 장치 및 방법 |
JP7177350B2 (ja) * | 2019-02-12 | 2022-11-24 | 富士通株式会社 | ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 |
JP7307311B2 (ja) | 2019-03-08 | 2023-07-12 | 富士通株式会社 | 情報処理装置およびタスク管理プログラム |
-
2021
- 2021-11-22 JP JP2021189231A patent/JP2023076063A/ja active Pending
-
2022
- 2022-07-27 US US17/874,335 patent/US11868165B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11868165B2 (en) | 2024-01-09 |
US20230161640A1 (en) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102624607B1 (ko) | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 | |
Chen et al. | Autonomic provisioning of backend databases in dynamic content web servers | |
US9477532B1 (en) | Graph-data partitioning for workload-balanced distributed computation with cost estimation functions | |
US20140059232A1 (en) | Robust tenant placement and migration in database-as-a-service environments | |
US20080141264A1 (en) | Methods and systems for load balancing of virtual machines in clustered processors using storage related load information | |
JP2010009160A (ja) | 性能値算出装置 | |
CN115396377A (zh) | 对象存储的服务质量优化方法、装置、设备及存储介质 | |
JP5521644B2 (ja) | ハイブリッド並列処理システム、方法、及びプログラム | |
JP2006031525A (ja) | 情報処理装置および情報処理方法、並びに、プログラム | |
US10846138B2 (en) | Allocating resources of a memory fabric | |
JP4392665B2 (ja) | クラスタシステムの性能予測装置、性能予測方法及び性能予測プログラム | |
Madsen et al. | Enorm: Efficient window-based computation in large-scale distributed stream processing systems | |
US10002173B1 (en) | System and methods for dynamically adjusting between asynchronous and synchronous data replication policies in a networked virtualization environment | |
Wu et al. | An integrated security-aware job scheduling strategy for large-scale computational grids | |
JP2023076063A (ja) | 制御プログラム、情報処理装置および制御方法 | |
Wang et al. | Addressing skewness in iterative ml jobs with parameter partition | |
US20230393898A1 (en) | Pre-emptive scheduling of workloads to enable improved sharing of resources | |
KR101661475B1 (ko) | 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템 | |
CN106209975B (zh) | 一种跨数据中心云计算系统的资源供给方法 | |
AU2020462915B2 (en) | Information processing system for assisting in solving allocation problems, and method | |
Gu et al. | The implementation of MapReduce scheduling algorithm based on priority | |
Hu et al. | An improved heterogeneous dynamic list schedule algorithm | |
Patel et al. | Existing and Relevant Methodologies for Energy Efficient Cloud Data centers | |
US11947380B2 (en) | Separate clocking for components of a graphics processing unit | |
NANDAR et al. | Hadoop MapReduce Performance Improvement in Distributed System |