JP6193393B2 - 分散コンピューティングシステムのための電力の最適化 - Google Patents

分散コンピューティングシステムのための電力の最適化 Download PDF

Info

Publication number
JP6193393B2
JP6193393B2 JP2015544307A JP2015544307A JP6193393B2 JP 6193393 B2 JP6193393 B2 JP 6193393B2 JP 2015544307 A JP2015544307 A JP 2015544307A JP 2015544307 A JP2015544307 A JP 2015544307A JP 6193393 B2 JP6193393 B2 JP 6193393B2
Authority
JP
Japan
Prior art keywords
computing
power metric
computing node
specific
group
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.)
Active
Application number
JP2015544307A
Other languages
English (en)
Other versions
JP2015537309A (ja
Inventor
ジョウ,シヤオホゥ
ワイ. リー,ケヴィン
ワイ. リー,ケヴィン
カーナ,ラーフル
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2015537309A publication Critical patent/JP2015537309A/ja
Application granted granted Critical
Publication of JP6193393B2 publication Critical patent/JP6193393B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria

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)
  • Debugging And Monitoring (AREA)

Description

電力効率は、単一のコンピューティングノード(例えば携帯電話、スマートフォン、タブレット、ウルトラブック(登録商標)、ノートブック、ラップトップ、デスクトップ、サーバ)のオペレータ並びにコンピューティングノードグループ(例えばデータセンタ、クラウドコンピューティングオペレーション及び/又はサーバのような多数のコンピューティングノードを備えるコンピューティングクラスタのオペレーション)のオペレータにとって重要である。
従来の電力効率モニタリングシステムは、サーバ内に含まれる単一のプロセッサの個々のコアにより経験されるコンピューティング負荷といった、「低いレベル」に集中している。
本発明の実施形態の特徴及び利点は、添付の特許請求の範囲、1つ又は複数の例示の実施形態についての以下の詳細な説明並びに対応する図面から明らかとなるであろう。
テレメトリシステム及び分析クラウドモジュールを備える本発明の実施形態を示す図である。 テレメトリシステムを備える本発明の実施形態を示す図である。 分析クラウドモジュールを備える本発明の実施形態を示す図である。 分析クラウドモジュールを備える本発明の実施形態を示す図である。 分析クラウドモジュールを備える本発明の実施形態を示す図である。 本発明の実施形態で使用するためのシステムを示す図である。 本発明の実施形態における方法を示す図である。 本発明の実施形態における負荷分散のためのシステムを示す図である。
以下の説明では、様々な具体的詳細が説明されるが、本発明の実施形態は、これらの具体的詳細を用いることなく実施されてもよい。周知の回路、構造又は技術は、本説明の理解を曖昧にするのを避けるため詳細には示されていない。「実施形態」又は「様々な実施形態」及び同様の語は、説明される実施形態が特定の特徴、構造又は特性を含み得ることを示すが、必ずしも全ての実施形態がそのよう特定の特徴、構造又は特性を含んでいない。一部の実施形態は、他の実施形態について説明される特徴の一部又は全てを有してもよく、あるいは全く有していないこともある。「第1」、「第2」、「第3」等という用語は、共通の対象物を説明し、言及されている類似の対象物の異なるインスタンスを示す。そのような形容詞は、説明される対象物が、時間的に、空間的に、ランク的に又は任意の他の方法により所与の順序でなければならないことを示唆するものではない。「接続される」という用語は、複数の要素が相互に直接物理的に接触するか電気的に接触することを示すことがあり、「結合される」という用語は、複数の要素が相互に協働するか対話することを示すことがあるが、これらの要素は、直接物理的又は電気的に接触していてもよく、接触していなくてもよい。また、類似又は同じ符号を用いて、異なる図の同じ又は類似の部分を指示することがあるが、このようにすることは、同様又は同じ符号を有する全ての図が単一又は同一の実施形態を構成することを意味するものではない。
実施形態は、電力消費のようなコンピューティングノードグループの挙動の知識を用いて、コンピューティングストラテジを改善するシステムを含む。例えば(単一のコンピューティングノードの挙動とは反対に)コンピューティングノードグループの挙動に基づいて、実施形態は、利用可能なコンピューティングリソースを効率的に使用するため、コンピューティングタスクを、コンピューティングノードのネットワーク内に含まれる特定のコンピューティングノードに送る(例えばリダイレクトするか、負荷バランシングする)(が、そのネットワーク内の他のコンピューティングノードには送らない)ことを決定することができる。これは、「シリコンレベル」(例えばサーバのような個々のコンピューティングノード)及び/又は大きなグループレベル(例えばデータセンタ)で得られるデータに依拠する「電力調整(power tuning)」を要する。電力調整は、例えばコンピュータ負荷バランシングにより電力消費を幾つかのコンピューティングノードの間で分散させることに関連する。
実施形態は、分析用のクラウドベースのモジュール(しばしば「分析クラウドモジュール」又は「クラウドモジュール」と呼ばれる)を含み、このクラウドベースのモジュールにおいて、コンピューティングノード(例えばデータセンタ内のサーバ)の動作データ(例えば電力効率、計算負荷分散及び/又は集中等)がプロファイルされ、格納される。動作データに基づいて、クラウドモジュールは、電力又は動作の最適化スキームを構築し、関連するフィードバックをコンピューティングノード(例えばサーバ、タブレット、モバイルコンピューティングユニット)に提供することができる。この最適化は、負荷バランシングに関するが、これだけに限定されない。ユーザは、グラフィカルユーザインタフェース(GUI)を介して特定のノードの電力消費履歴、ピーク電力消費、データ転送レート等を見ることができる。ユーザは次いで、特定のノードの電力効率を、他の類似のノードについての履歴メトリックから収集される業界データ(industry data)と比較することができる。
サーバラック、1つのデータセンタ、複数のデータセンタ等について電力効率を最適化するために、実施形態は、個々のノードの電力挙動データの主要な態様のトラックを続ける。このデータは収集されて格納される。データを「連続して」収集し、かつ/又は長い期間にわたって収集し、個々のコンピューティングノードの電力消費パターン並びにより大きなコンピューティングノードグループのより「マクロ」なビューを決定するのに分析され得る、データセットを構築することができる。データセットはその後、電力の効率的最適化を助長するのに使用され得るパターン/関係を見つけるために、検査(例えば「マイニング」)され得る。
実施形態は、電力データをプロファイルし、そのデータを分析して電力メトリック(測定の単位)を取得し、次いでこれらのメトリックに基づいて、1つ又は多くのコンピューティングノードについて電力消費を最適化する。コンピューティングノードは、遠くの距離にわたって広く分散され得るが、本明細書で説明されるプロファイル、分析及び最適化のいずれか又は全てを処理するクラウドモジュールにより、管理され得る。
一実施形態は、テレメトリシステムを含み、このテレメトリシステムは分析クラウドモジュールに結合してもよく、結合しなくてもよい。例えば図1は、コンピューティングノードグループ105、106、107をそれぞれ含むデータセンタ101、102、103を含む。データセンタは、1個、10個、20個、30個又はそれ以上のコンピューティングノード(例えばサーバ)といった、少数又は多数のコンピューティングデバイスを含んでよい。したがって、コンピューティングノードグループ105、106、107は、単一のコンピューティングノード(例えばサーバ、スマートフォン、タブレット)、複数のコンピューティングノードの大きなグループ(例えば20又はそれ以上のサーバ)あるいは上述のグループより多くの又は少ない何らかの他の数を含み得る。
データセンタ101、102、103はそれぞれ、テレメトリシステム110、111、112を介して分析クラウドモジュール120に結合する。分析クラウドモジュール120は、テレメトリシステム110、111、112からの入力を分析する。分析クラウドモジュール120は、リアルタイムモニタリングモジュール130のような様々なモジュールを含んでよい。リアルタイムモニタリングモジュール130は、システム101、102、103のリアルタイムモニタリングを提供する。分析クラウドモジュール120は履歴モジュール131を含んでもよく、履歴モジュール131は、システム101、102、103の性能をログ記録し、かつシステム101、102、103及び/又は他のシステムから収集した履歴情報を含み得る。上記の他のシステムは、システム101、102、103と積極的にネットワーク化されてもよく、ネットワーク化されていなくてもよい。分析クラウドモジュール120は、分析オーバービューモジュール132を含んでもよく、この分析オーバービューモジュール132は、モジュール130及び/又は131からの入力を収集し、最適化提案133(例えば負荷バランシング又はシステム構成に関するコンピュータ命令又はコマンド)のような出力を、システム101、102、103及び/又は他のシステムといったシステムに提供する。
図1のコンポーネント間(例えばデータセンタ101とクラウドモジュール120との間)の接続インフラストラクチャは、例えばTCP/IPネットワーク、企業内ネットワーク、公衆インターネット等に基づくものであってよい。
図2は、テレメトリシステムを備える本発明の実施形態を示す。テレメトリシステムは、例えば図6のシステム600(下述)において具現化されてよい。テレメトリシステム210は、電力挙動データのようなデータを、コンピューティングノードの様々なコンポーネントから取得することができる。例えばテレメトリシステム210は、温度、キャッシュミス及び/又はチャネルアクセスに関するデータをメモリ221から受け取ることがある。テレメトリシステム210は、温度、変換索引バッファ(TLB:translation lookaside buffer)ミス及び/又は実行される命令又は動作に関するデータをプロセッサ225から受け取ってもよい。テレメトリシステム210は、インタラプト、デバイスアクセス、データ転送レート及び/又は応答レートに関するデータを入出力(I/O)バス230から受け取ってもよい。
テレメトリシステム210は、例えば温度、電流引き込み(current drawn,)及び/又は電圧レベルに関するデータを、プラットフォームセンサ235から受け取ってもよい。一実施形態において、テレメトリシステム210は、テレメトリデータを、センサ235内に含まれる分散型の物理センサ及び論理センサのセットからキャプチャしてもよい。物理センサは、分散型温度センサ(例えばサーミスタ)、電圧メータ(例えば電圧計)、電流メータ(例えば電流計又はマイクロ電流計)、信頼性インジケータ(例えばTLBミス用のカウンタ)、動作カウンタ、秒/分ごとの回転(revolution)を含む。論理センサは、例えばデータ転送レート、エラーレート、サービス応答時間、信号対雑音比及び周波数応答といった、オペレーティングシステムメトリックとサービス品質(SOC)メトリックを含む。
テレメトリシステム210は、収集したデータを「データコレクタ」メモリ211に格納し得る。実行モジュール212は、メモリ211内に格納されたデータを実行するための制御ロジックを含み得る。図6に関してより深く検討される制御ロジックを含み得る実行モジュール212は、コンポーネント221、225、230、235又は他のコンピューティングノード若しくはコンピューティングノードグループからの他のコンポーネントからの、リアルタイムモニタリング値、データログ、履歴傾向及び/又はリアルタイムデータと履歴データとの間の比較を提供し得る。しかしながら、別の実施形態では、実行モジュール212は、生のデータを分析クラウドモジュール220に提供してもよく、その後、分析クラウドモジュール220がコンポーネント221、225、230、235又は他のコンピューティングノード若しくはコンピューティングノードグループからの他のコンポーネントからの、リアルタイムモニタリング値、データログ、履歴傾向及び/又はリアルタイムデータと履歴データとの間の比較を提供する。分析クラウドモジュール220は、このデータを受けて、最適化提案240をテレメトリシステム210に提供し得る。そのような提案は、コンピューティングジョブを、コンピューティングノードのグループのうちの1つのサーバから、コンピューティングノードの同じグループ内又はコンピューティングノードの別のグループ内の別のサーバへシフトすることであり得る。これらの提案は、コンピュータ命令の形式で作成され得るが、実装及び/又は考慮事項のために、コンポーネント221、225、230、235とは別個のコンピューティングノードハードウェア及び/又はソフトウェア245に、並びに/あるいはコンポーネント221、225、230、235に渡されることがある。
テレメトリシステム210は、データを、単一のサーバ、サーバラック又はサーバのグループを含む可能性がある1つ又は複数のコンピューティングノードから(積極的又は受動的に)取得し得る。特に、テレメトリシステム210は、データをコンポーネント221、225、230、235から受動的に受け取ってもよく、あるいはこの情報について、例えばコンポーネント221、225、230、235にポーリングしてもよい。
複数のテレメトリシステムが、図1のデータセンタ101、102、103とクラウドモジュール120との間に含まれるシステム110、111、112のような、複数のコンピューティングノードをトラックするのに必要とされることがある。しかしながら、物理的な位置及び分布は変えられる。本明細書で使用されるとき、モジュールという用語は、任意のハードウェア、ソフトウェア、ファームウェア又はその組み合わせを指す。多くの場合。別個のものとして図示されているモジュール境界は一般に変化するものであり、潜在的に重複する。例えば第1及び第2のモジュールは、幾つかの独立のハードウェア、ソフトウェア又はファームウェアを潜在的に保持しつつ、ハードウェア、ソフトウェア、ファームウェア又はその組み合わせを共有することがある。モジュールは、同じウェハ、基板、チップセット上に含まれてもよく、幾つかの基板、短距離又は長距離にわたるパッケージにわたって分散されてもよい。したがって、システム110、111、112は別個にそれぞれ、別個にそれぞれデータセンタ101、102、103内に配置されてよく、これらのデータセンタ自体が相互にリモートに配置される。しかしながら、システム110、111、112は別個にそれぞれ、データセンタ101、102、103とクラウドモジュール120との間であってよい(ただし、データセンタ101、102、103内には配置されない)。システム110、111、112は別個にそれぞれ、クラウドモジュール120内に含まれてもよい(コンポーネント110、111、112、120を含む破線のブロック140を参照されたい)。更に他の実施形態では、システム110、111、112は単一のパッケージに含まれ、共通のハードウェア及びソフトウェアを使用し、クラウドモジュール120、データセンタ101、102、103又はこれらの間若しくはこれらに結合される任意のポイントのいずれかに含まれてよい。クラウドモジュール120自体は、データセンタ101、102、103のうちの1つ又はグループ105、106、107内に含まれるコンピューティングノードのいずれかに配置され得る。
図3は、分析クラウドモジュールを備える本発明の実施形態を示す。分析クラウドモジュール320は、直接又は間接的に(例えばテレメトリシステムを介して)コンピュータノードグループ305、306、307に結合される。コンピュータノードグループ305、306、307は、例えばプロセッサとメモリの温度、I/Oトラフィック及びTLBミス等をクラウドモジュール320に提供することができる。コンピューティングノードグループ305は、例えば単一のコンピューティングノードを含んでもよく、多くのコンピューティングノードを含んでもよい。一実施形態において、分析クラウドモジュール320は、コンピュータノードグループ305、306、307から直接受け取るか、あるいはコンピュータノードグループ305、306、307からテレメトリシステムを介して間接的に受け取ったこのデータを格納し、トラックし、分析することができる。このデータは、1つのコンピューティングノードに特有のものであってよく、複数のコンピューティングノードにより一般的に関連するもの(例えばコンピューティングノードのグループ全体にわたって配置されるメモリモジュールにより引き込まれる平均電流)であってもよい。
上述のように、クラウドモジュール320は、(例えば負荷バランシングに関する)最適化提案(例えばコマンド)340を、テレメトリシステム310、並びに/あるいはオペレーティングシステム(OS)及びデータセンタ管理ハードウェア及び/又はソフトウェア341に提供することがある。テレメトリシステムは、提案340に照らして電力効率を最適化するようコンピューティングシステムノードのソフトウェア及び/又はハードウェアを設定するエージェントとして機能し得る。提案340はその後、コンピューティングノードグループ305、306、307に通信され、クラウドモジュール320にデータを提供しないコンピューティングノードグループ308にも通信され得る。
本発明の実施形態は、サーバのような参加コンピューティングノードから、そのノードが実行しているソフトウェアに関わらず、電力挙動データを集約する。例えば温度に関して、このデータは、ソースを示すヘッダと、温度測定値を示すペイロードとを有する一般的な通信パッケージで提供されてもよい。したがって、クラウドモジュール320は、大量の電力利用及び一般的なコンピューティングノードの動作データを収集する。これらのデータを、次いで、(以下で更に検討される)データマイニングモジュールにより処理して、サーバのグループ、1のデータセンタ又は複数のデータセンタ間における電力消費パターンを分析して見つけることができる。したがって、システム300は、電力効率を、任意の単一の演算ノード並びに任意のコンピューティングノードのラック、1つ又は複数のコンピューティングノードグループについて、あるいは全体的な対象物としてデータセンタについてさえも、電力効率を調査して調整し、対応するエネルギ効率を最適化する。
一実施形態は、変化する分析粒度レベルを提供することができる。例えば単一の実施形態は、例えば単一のコンピューティングノードの単一のメモリモジュール用のカウントを読み、書き、アクティブ化することのように、細かい粒度で低レベルのシリコン電力挙動を提供することがある。この種の詳細なデータは、電力分析クラウドモジュール320に伝達されてもよい。クラウドモジュール320は、グラフィカルユーザインタフェース(GUI)ダッシュボードを提供することができ、このGUIダッシュボードから、ユーザは、リアルタイム電力消費、レジスタカウンタ、電力メータ値等を含むリアルタイム電力挙動を、様々な粒度で、単一のマシン(低レベル)、コンピューティングノードのラック全体(中程度のレベル)並びに/あるいは1つ又は複数のデータセンタにおけるマシンの一部又は全体(高レベル)からモニタリングすることができる。クラウドモジュール320は、モニタリングする全ての単一のコンピューティングノードの電力利用履歴を格納してよく、また、利用についての視覚的表現を提供して、様々な時間範囲において、選択されたコンピューティングノードについての電力データのユーザレビューを助ける。したがって、実施形態は、ユーザが、「低レベル」(例えば個々のサーバ)から「高レベル」(例えばデータセンタ)までのものを見ることを可能にする。
データマイニングモジュール321は、既知のデータマイニング技術を用いる実施形態において、特定のノードの生産性が低い時の時刻といった関連性を決定できるようにする(例えば恐らくは、大気環境が温かく、問題となっているノードの効率に悪影響を与える時の時期及び時刻を相関させる)。データマイニングモジュール321は、単一の参加ノードをモニタリングして、そのノードについて(及びモジュール321がモニタリングする多くの他のノードについて)集約された大量の電力挙動データを取得し、モジュール321がモニタリングするノードについて履歴プロファイルを生成することができる。これらのプロファイルは、特定のプロセッサの平均温度がXであることを示すことがあり、これは、そのプロセッサの製造業者によって提案されている温度よりもかなり高い。この蓄積されたデータを用いて、クラウドモジュール120は、特定のプロセッサが、Xと比べてか高すぎる温度で実行していると決定し、続いて演算負荷をそのプロセッサから他のコンピューティングリソースへ分岐させることができる。
クラウドモジュール320は、例えばデータセンタの全体的な電力消費量を、業界標準(例えばグループ305、306、307に特有ではない標準)と、あるいはクラウドモジュール320によって収集又はインポートされる履歴データ(例えばグループ305、306、307に特有の履歴データ、あるいは他のグループに加えて、グループ305、306、307に少なくとも基づく履歴データ)とより良く比較する方法のような、情報を提供してもよい。クラウドモジュール320は、したがって、例えばサーバが(例えば標準以下のデータレートの伝送を提供する)ボトルネックであり、これらのボトルネックが生じる時間における、電力消費履歴、ピーク電力値、ピーク電力消費時間を分析することができる。
図4は、分析クラウドモジュールを含む本発明の実施形態を示す。図4は、コンピューティングノードのグループ401を考慮しており、したがって、(単一のコンピューティングノードに関する)図2よりも粒度レベルが高く、(コンピューティングノードの幾つかのグループに関する)図3の粒度レベルよりも低い。システム400は、データマイニングモジュール421を備えるクラウドモジュール420を含み、データマイニングモジュール421は、コンピューティングノード405、406、407(例えばサーバ)に結合されて、メモリ最適化提案/コマンド440をテレメトリシステム410に提供する。メモリ最適化提案/コマンド440は次いで、グループ401及び/又は別のコンピューティングノード408に通信される。テレメトリシステムは、図4のように配置されてもよく、あるいはノード405、406、407のうちのいずれかと、クラウドモジュール420との間に配置されてもよい。
一実施形態において、コンピューティングノード405、406、407がそれぞれ、メモリアクセスデータ、メモリ電力消費データ等をクラウドモジュール420に提供し、クラウドモジュール420は次いで、メモリアクセスパターン及び電力消費データを分析することにより、メモリ電力消費及び全体的なメモリ性能を最適化することができる。参加サーバからの大きなスケールのデータは、電力分析クラウドモジュールがスキーマを構築し、かつメモリ構成、アクセスパターン及び電力消費の間の相関性を見つけて最適化提案を提供すること(例えばどのメモリ管理スキームが、特定のタイプの演算負荷に最も良く機能するかを決定すること)を可能にする。最適化提案は、次いでテレメトリシステム410に送信され、テレメトリシステム410は、これに応じて、サーバノード405、406及び/又は407のハードウェア及び/又はソフトウェアを構成する。
図5は、分析クラウドモジュールを備える本発明の実施形態を示す。図5は、図5における粒度に関して、例えばサーバのような単一のコンピューティングノードの低レベルの分析に関する図2と類似する。システム500は、データマイニングモジュール521を備えるクラウドモジュール520を含み、クラウドモジュール520は、サーバ505に結合されて、電力最適化提案/コマンド540をテレメトリシステム510に提供する。テレメトリシステム510は、一実施形態では、サーバ505とクラウドモジュール520との間に配置され得る。クラウドモジュール520は、サーバ505及び/又は別のコンピューティングノード508のための最適化提案を、そのサーバからの様々な論理及び/又は物理メトリックを相関させることにより提供する。論理メトリックは、例えばメモリ利用、プロセッサ利用/ワークロード、規定されるプロセスの数及び実行されるスレッドの数を含む。物理メトリックは、例えばプロセッサの温度、メモリ又は任意の他のコンポーネントの温度、ネットワークアクティビティのためのデータ転送レート、TLBミス等を含む。このプロセスは、クラウドモジュール520に関連する残りのコンピューティングノード(図5には図示せず)において実装されてよい。
実施形態は、多くの異なるシステムタイプで実装されてもよい。ここで図6を参照すると、本発明の実施形態に係るシステムのブロック図が示されている。システム600を使用して、例えばテレメトリシステム110、分析クラウドモジュール120、データセンタ101、サーバグループ105内の任意のサーバあるいはクラウドモジュール120を介して分析及び/又は管理される任意のコンピューティングノード(例えばラップトップ、携帯電話、スマートフォン、モバイルコンピューティングノード、ウルトラブック(登録商標)、デスクトップ、ノートブック、パーソナルデジタルアシスタント)を実装することができる。マイクロプロセッサシステム600は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続650を介して結合される第1のプロセッサ670と第2のプロセッサ680を含む。プロセッサ670及び680はそれぞれ、マルチコアプロセッサであってよい。「プロセッサ」という用語は、レジスタ及び/又はメモリからの電子データを処理して、その電子データをレジスタ及び/又はメモリ内に格納可能な他の電子データに変換する、任意のデバイス又はデバイスの一部を指すことがある。第1のプロセッサ670は、メモリコントローラハブ(MCH)及びポイントツーポイント(P−P)インタフェースを含み得る。同様に、第2のプロセッサ680は、MCH及びP−Pインタフェースを含み得る、MCHは、これらのプロセッサをそれぞれのメモリ、すなわちメモリ632とメモリ634に結合してよく、これらのメモリは、それぞれのプロセッサに対してローカルに取り付けられるメインメモリ(例えば動的ランダムアクセスメモリ(DRAM))の一部であってよい。第1のプロセッサ670及び第2のプロセッサ680は、それぞれP−P相互接続を介してチップセット690に結合され得る。チップセット690はP−Pインタフェースを含み得る。さらに、チップセット690は、インタフェースを介して第1のバス616に結合されてよい。様々なI/Oデバイス614が、バスブリッジ618とともに第1のバス616に結合されてよく、バスブリッジ618が第1のバス616を第2のバス620に結合する。様々なデバイスが、第2のバス620に結合されてよく、そのようなデバイスには、例えばキーボード/マウス622、通信デバイス626及びディスクドライブや大容量記憶デバイスといったデータ記憶ユニット628が含まれ、一実施形態において、データ記憶ユニット628はコード630を含んでもよい。コードは、メモリ628、632、634、システム600にネットワーク経由で結合されるメモリを含め、1つ又は複数のメモリ内に含まれ得る。さらに、オーディオI/O624も第2のバス620に結合され得る。
諸実施形態は、コードとして実装されてよく、命令を実行するようシステムをプログラムするのに使用することができる命令を格納する記憶媒体上に格納され得る。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、半導体ドライブ(SSD)、コンパクトディスク読み取り専用メモリ(CD−ROM)、コンパクトディスク書き換え可能媒体(CD−RW)及び磁気光学ディスクを含む任意のタイプのディスクと、動的RAM(DRAM)、静的RAM(SRAM)、EPROM、フラッシュメモリ、EEPROM、磁気若しくは光カード又は電気的命令を格納するのに適した任意の他のタイプの媒体といったROMやRAMのような半導体デバイスを含み得るが、これらに限定されない。
本発明の実施形態は、ここでは命令、関数、プロシージャ、データ構造、アプリケーションプログラム、構成設定及びコード等のようなデータに関連して説明されてもよい。データがマシンによってアクセスされると、マシンは本明細書で更に詳細に説明されるように、タスクを実行し、抽象データ型を定義し、低レベルのハードウェアコンテキストを確立し、かつ/又は他の動作を実行することにより応答することができる。データは、揮発性及び/又は不揮発性データストレージに格納され得る。「コード」又は「プログラム」という用語は、アプリケーション、ドライバ、プロセス、ルーチン、メソッド、モジュール及びサブプログラムを含め、広い範囲のコンポーネント及び構造体を包含しており、またこの用語は、処理システムによって実行されると所望の1つ又は複数の動作を実行する命令の任意の集合を指すこともある。加えて、代替的な実施形態は、開示される動作の全てよりも少ない動作を使用する処理と、追加の動作を使用する処理と、同じ動作を異なる順序で使用する処理と、本明細書で開示される個々の動作を組み合わせるか、細分又は他の方法で変更する処理を含んでもよい。一実施形態において、制御ロジックという用語の使用は、トランジスタ、レジスタ又はプログラム可能な論理デバイス(635)のような他のハードウェアのようなハードウェアを含む。しかしながら、別の実施形態では、ロジックはソフトウェアコード(631)を含む。そのようなロジックは、ファームウェア又はマイクロコード(636)のようにハードウェアに統合され得る。プロセッサ又はコントローラは、本技術分野で公知の多様な制御ロジックのうちのいずれかを表すように意図された制御ロジックを含んでよく、したがって、マイクロプロセッサ、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)等としてより良好に実装され得る。
図7は、本発明の実施形態における方法を含む。ブロック705は、第1のコンピューティングノードに特有であるが、第2のコンピューティングノードには特有ではない、第1の電力メトリックを決定することを含む。ブロック710は、第2のコンピューティングノードに特有であるが、第1のコンピューティングノードには特有ではない、第2の電力メトリックを決定することを含む。第1の及び第2の電力メトリックは、例えば温度、電圧、電流、実行された命令カウント、メモリアクセス、書き込みカウント、読み取りカウント、QOS、キャッシュミス、データ転送レート、エラーレート、サービス応答時間、信号対雑音比及び周波数応答等のうちの1つ又は複数に対応し得る。第1及び第2の電力メトリックは、同じメトリックの異なるインスタンスに対応してもよく(例えば双方が、第1及び第2のコンピューティングノード内にそれぞれ含まれるメモリによって引き込まれる電流に対応してもよい)、あるいは異なるメトリックに対処してもよい(例えば第1のメトリックが、第1のコンピューティングノード内のメモリの温度に対応し、第2のメトリックが、第2のコンピューティングノードのメモリによって引き込まれる電流に対応してもよい)。これは、「低レベル」又は低い粒度の分析を構成し得る。というのも、これは、特定のコンピューティングノード又はコンピューティングノードの一部に関することだからである。一実施形態において、クラウド分析モジュールは、第1及び第2の電力メトリックを、リモートに配置された第1及び第2のコンピューティングノード(又はこれらのノードに対応するテレメトリシステム)からこれらの値を単純に受け取ることにより決定してもよい。他の実施形態において、値を決定することは、クラウドモジュールがその値を実際に決定することを含むことがある(例えばクラウドモジュールに通信される抵抗データに基づいて、電流レベルを決定する)。
ブロック720において、クラウドモジュールは、第1及び第2のコンピューティングノードを含むコンピューティングノードのグループに対応する、グループ電力メトリックを決定することができる。例えば第1及び第2のコンピューティングノードの双方が単一のサーバラックに含まれることがある。各コンピューティングノード(この例ではサーバとすることができる)がメモリを有する。第1及び第2の電力メトリックはそれぞれ、そのラック内に1つ又は複数のサーバ内に含まれる第1及び第2のメモリについての平均メモリアクセス/分を備え得る。グループ電力メトリックは、これらの値の双方に基づく平均メモリアクセス/分を含み得る。したがって、グループメトリックは、低い粒度の第1及び第2のメトリックに基づくが、第1又は第2のコンピューティングノードのいずれかに対して特有なものではない。グループメトリックは、任意の1つの特定のノードよりも高い粒度の分析を有する。
ブロック725は任意であり、この任意性を示すために破線で示されている。ブロック725において、分析クラウドモジュールは、グループ電力メトリックをプロファイルデータと比較することができる。例えばプロファイルデータは、特定のアクセス数/分を経験しているメモリモジュールについて引き込まれるべき平均電流レベルを含み得る。このプロファイルデータは、分析クラウドモジュールによってリモートデータベースから受け取られることがある。しかしながら、分析クラウドモジュールは、代わりに、第1及び第2のコンピューティングデバイスから並びに/あるいは第1及び第2のコンピューティングデバイスと同じグループ内に含まれるか又は含まれないこともある他のコンピューティングノードからのデータの履歴的蓄積に基づいて、プロファイルデータを決定してもよい。グループ電力メトリックは、例えば第1及び第2のコンピューティングノード内のメモリモジュールによって引き込まれている平均電流レベルを含むことがある。
ブロック730において、決定されたグループ電力メトリックに応じて、コンピューティングタスクを、第1及び第2のコンピューティングデバイスには分散させずに、第3のコンピューティングノードに分散することを含むことができる。これは例えば負荷バランシングを伴うことがある。例えばコンピューティングノードグループのために引き込まれている平均電流が、プロファイル値をx%(例えば15%)より多く超えており、その電流平均がy分(例えば5分)より長く維持されていると決定すると、分析クラウドモジュールは、第1の電力メトリック及び/又はグループ電力メトリックを決定したことに応答して、コンピューティングワークロードを、第1のコンピューティングノードから第3のコンピューティングノードにシフトしてよい。ワークロード(例えば命令)は、当初は(例えば中央コントローラの決定、負荷分散についてのスタンディングインストラクション等に基づいて)第1のコンピューティングデバイスに向けられていたが、第1の電力メトリック、グループ電力メトリック等の分析に基づいて再配向された。
ブロック715は、第1及び/又は第2のコンピューティングノードから収集したデータに基づいて履歴プロファイルを構成することを含んでよい。プロファイルは、1つ又は複数の分析クラウドモジュールに通信され得る。1つ又は複数のクラウドモジュールは、次いでこのプロファイル情報を用いて、例えば電力の保護に関する提案を作成することができる(例えばブロック725を参照されたい)。
第1のコンピューティングノードは、第2のコンピューティングノードに含まれる第2のサーバとは別個であり、かつ第2のサーバ内には含まれない、第1のサーバを含み得る。第1及び第2のコンピューティングノードは、第3のコンピューティングノードを含まないコンピュータクラスタ内に含まれ得る。コンピュータクラスタは、クラスタ内に含まれるか又は含まれないコンピューティングノードによって多くの点で単一のシステムとして見られるよう一緒に動作する、緩く接続されたコンピュータのセットで構成されてよい。
本発明の一実施形態における負荷バランシングのための処理を、ここで詳細に検討する。上述のように、負荷バランシングのストラテジは、分析クラウド(例えばクラウド120)において決定され、命令として様々なコンピューティングノードへ通信され得る(ブロック133)。一実施形態において、負荷バランシングは、ジョブや負荷(まとめてワークロードを含む)のスケジューリング又はマイグレートをガイドする特定の制約を満たしつつ、複数のコンピューティングノードにわたってワークロードを分散させることに関する。これらの制約は、コンピューティングノードインフラストラクチャ(例えばサーバインフラストラクチャ)の効率的な動作のための境界条件をガイドする実行可能な限界(viable limit)を部分的に又は十分に定義する。例えばワークロードは、サービス目標を満たすのに必要な電力要件を最小限にしつつも、そのワークロード/演算ノードの組み合わせがサービス目標(例えばクエリの応答時間)を満たすように特定のコンピューティングノードに配置され得る。しかしながら、多数のコンピューティングノードの中で適切な1つのコンピューティングノード(例えばサーバ)又は複数のコンピューティングノード(例えばサーバラック又はサーバクラスタ)を識別することは、(以下で説明される)「NP完全問題」である。一実施形態は、グローバル最適化方程式(global optimization equation)を使用して、その候補の解の適合性の評価を通して候補の解を検証する。
一側面として、計算量のセオリーにおいて、NP(非決定性多項式時間)は基本的な複雑性クラス(fundamental complexity class)である。NPは、全ての決定問題のセットである。その問題について、回答が「はい(yes)」である全てのインスタンスが、その回答が実際に「はい」であるという事実について効率的に検証可能な証拠を有する。より正確には、これらの証拠は、決定性チューリング機械(deterministic Turing machine)により多項式時間内に検証可能であり得る。NPはNP完全問題を含み、(これらの問題は、多項式時間では検証され得るが)これらの問題を解くための多項式時間アルゴリズムは知られていない。
一実施形態において、Aは、1つのノードの平均エネルギ消費であり、Bは、ノードのクラスタの平均電力消費である。負荷分散の目標が、ノード間におけるエネルギ割り当ての分散(variance)を低減することである場合、応答時間のようなサービスレベル目標(SLO)を維持し、かつコンピューティングノードグループ又はクラスタの極限電力(Pmax)を観察するが、一実施形態では、以下のことを実装することができる:
Figure 0006193393
式[1]〜[7]において、実施形態は、平均電力消費An(t)、応答時間Rn(t)をノード内の個々のコンポーネントの利用に基づいて予測する適合性関数を使用する。式の係数は、大きなサンプリング期間にわたるトレーニングのセットを使用してトレーニングされる。式がトレーニングされると、実施形態はマシン学習技術を使用し、(例えばコンピューティングノードの利用の増分的増加及び/又はあるコンピューティングノードから別のコンピューティングノードへの十分な又は部分的にマイグレートされる)追加の演算負荷がクラスタのシステム内に任意の数のノードに適用されるというシナリオをシミュレートすることによって適合性関数を予測する。
図8は、本発明の実施形態における負荷分散のためのシステムを含む。CPU825は、1つ又は複数のコンピューティングノードの1つ又は複数のプロセッサからのデータ(例えば引き込まれた電流、処理された命令)を含み、メモリ821は、1つ又は複数のコンピューティングノードの1つ又は複数のメモリモジュールからのデータ(例えばメモリアクセス)を含み、そしてIO830は、1つ又は複数のコンピューティングノードの1つ又は複数のIOユニットからのデータ(例えばIOトラフィック)を含む。IOは、上記の式[1]〜[7]には現れてはいないが図8には含まれており、どのようにして実施形態がデータのいずれの1つのセットにも制限されないかを図示している。
ブロック890において、これらのデータは、分散低減(variance reduction)を受ける。一実施形態において、ブロック890は、コンポーネント(CPU825、メモリ821、IO830、ハードディスクドライブ(HDD)等)の入力変数のための重みを、(1)出力値に最も相関され;(2)不連続性を生じ、出力値における閾値効果(threshold effects)に寄与し;(3)双方の変数が分析された出力変数に(同一でない場合)非常に類似する方法で影響を与えるよう別の変数との高い程度の線形相関を有するときに、取り除かれる:入力変数を識別した後に選択する。選択された変数は、破棄された変数の係数を用いる。
ブロック890において、入力センサ/性能データは、変数低減(variable reduction)を受ける。変数低減の目的は、システムのモデルの傾斜係数を分析及び比較するのを助けることであり、この場合、最大絶対値の傾斜係数に関連するコンポーネントの入力変数が、最上位(most significant)と見なされる。大きな傾斜係数は、結果として出力変数では非常に大きな変化となる、入力変数の非常に小さな変化に対して、高い感度を示す。一実施形態は、データポイントのサンプリング枠をシフトさせることによって作成される、連続モデルを抽出する。各モデルは、サンプリングされたデータを連続モデルと共有する。これは、多次元の非線形モデルを、一連の線形モデルに変換する際の助けとなる。
ブロック891において、重みが適用される。各変数(Ucpu、Umemといったテレメトリコンポーネント)に、その変数の重要性に応じて割り当てられる重みが存在する。これらの重みは、式[5]及び式[6]では示されていないが、一実施形態では追加されてよい。変数の重要性は、その変数における変化に基づいて出力の感度を評価することにより推定される。トレーニングセットにおける非線形性を回避するために、一実施形態は、サンプルの定数(モデリング枠)によりトレーニングデータのサンプルセットの少ない割合をスライドさせることで重み(感度のファクタ)を評価する。このようにして、実施形態は、複数のサンプルを収集して、複数のモデリング枠を通して取得された重みを平均化する。
ブロック896は、所与の出力について変数の感度を評価するためである。言い換えると、ブロック896は、モデルを一旦トレーニングした後は必要とされないトレーニング基準(reference)として使用され得る。例えばブロック896は、電力推定の場合の電力メータを含み得る。
ブロック892では、複素変数が、電力推定値(897)を決定するために更なる変数が係数894とともに適用されるブロック893に照らして、決定される。ブロック892では、これらの複素変数は、入力(890)からの個々の変数の重み付けされた合計である。関数f1、f2では、複素変数はUdeviceによって表される。これらの変数は、出力(電力、SLO等)に対するコンポーネント特有の寄与について低減された式を表す。
ブロック893は、複素変数(Udevice)を使用することにより線形又は非線形関数で形成されるモデル方程式を表す。図8で使用されるモデル方程式は、aX+bXY+cYZ+dZ+K=出力[電力又はSLO]である。この方程式は関数f1、f2を表すこともでき、この場合、各方程式は複素変数の利用(Udevice)を表す
ブロック894は、係数a、b、c、d、Kを含み、これらの係数は、ブロック896によって与えられる基準(測定された)出力及びトレーニングデータセットを使用して、回帰関数(図8の場合は、遺伝的アルゴリズム)の結果として評価される。トレーニングデータセットは、複素変数の値X、Y、Zと、所与の期間の間に896によって与えられる、測定された出力を含む。
所与のモデルについての電力推定値は、演算負荷をどのノードに(及びどのくらいの割合を所与のノードに)バランスさせるべきかに関する提案(例えば図1のブロック133)を導出することができる。例えば最も低い電力推定値の負荷バランシングスキームが実装され得る。
テレメトリユニットを通して抽出されるデータ(図8のブロック896を参照されたい)は、幾つかのタスクを達成することができる。第1に、このデータを使用して、モデル方程式(例えば式[1]〜[7])が、期待される結果から逸脱する電力推定を生じる場合に、これらのモデル方程式を修正することができる。一実施形態は、回帰分析(例えばサポートベクトルマシン)を使用して、モデルに対する動的な修正を実行し得る。第2に、システムが動的システムであり(図8のブロック895を介して決定されるように)要求の変化を示すので、上記のデータを使用して適合性関数(式[4])を再計算することができる。この結果、ソース/ターゲットノードのセット間における負荷のマイグレーションが生じることになる。第3に、上記データを、電力消費、応答時間、スループット等の視覚的表現に使用してもよい。第4に、上記データは、ワークロードの属性を識別するのを助けることができ、このため、実施形態は、ワークロードの配置に役立つようにリソースの特性及び挙動を識別することができる。これらの属性は、例えば動作の段階、平均及びピーク利用及び/又は他のワークロードとの相互互換性(例えばキャッシュスラッシング、リソース競合)に関するものであってよい。これらの属性により、実施形態は、システムにおける既存の負荷との互換性並びに必要とされるリソースの利用可能性を識別することができる。
他の基準(例えば熱変化、キャッシュミス挙動)を、他のブロック(データセンタ内の環境センサ)に加えて、ブロック825、821、830のいずれかに追加してもよい。
実施形態は、少なくとも1つのプロセッサによって実行される方法を含み、この方法は、第1及び第2のコンピューティングノードを含むコンピューティングノードのグループに対応する第1の電力メトリックを決定するステップと;決定された第1の電力メトリックに応じて、コンピューティングタスクを、第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させるステップと;を含み、第3のコンピューティングノードは、第1及び第2のコンピューティングノードとはリモートに配置される。実施形態において、第1及び第2のコンピューティングノードは、第3のコンピューティングノードを含まないコンピュータクラスタ内に含まれる。実施形態において、第1の電力メトリックは、コンピューティングノードのグループに対して特有であり、第1及び第2のコンピューティングノードのいずれかには特有ではない。実施形態において、第1の電力メトリックは、温度、電圧、電流、実行される命令カウント、メモリアクセス、書き込みカウント、読み取りカウント、サービスの品質(QOS)、キャッシュミス、データ転送レート、エラーレート、サービス応答時間、信号対雑音比及び周波数応答、のうちの1つに対応する。実施形態において、第1の電力メトリックは、第1のコンピューティングノードに対応する温度と、第2のコンピューティングノードに対応する別の温度とに基づく温度を含む。一実施形態において、第1の電力メトリックは、(a)第1のコンピューティングノードに特有であるが、第2のコンピューティングノードには特有でない電力メトリックと、(b)第2のコンピューティングノードに特有であるが、第1のコンピューティングノードには特有でない追加の電力メトリックとの双方に基づく。実施形態は、第1のコンピューティングノードに特有の電力メトリックを、第2のコンピューティングノードから受け取るステップと;第2のコンピューティングノードに特有の電力メトリックを第2のコンピューティングノードから受け取るステップとを含む。実施形態は、第1のコンピューティングノードに特有の電力メトリックを決定したことに応答して、第1のコンピューティングノードから第3のコンピューティングノードへコンピューティングワークロードをシフトするステップを含む。実施形態は、コンピューティングノードのグループに非特有の履歴電力メトリックを決定するステップと;履歴電力メトリックに基づいて第1の電力メトリックを分析するステップと;履歴電力メトリックに基づいて第1の電力メトリックを分析したことに応答して、コンピューティングタスクを第3のコンピューティングノードに分散させるステップとを含む。実施形態は、第1の電力メトリックに基づいて、コンピューティングノードのグループに非特有の履歴電力メトリックを決定するステップを含む。実施形態において、履歴電力メトリックは、第1、第2及び第3のコンピューティングノードそれぞれからの電力メトリックデータに基づく。実施形態において、コンピューティングタスクを、第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させるステップは、決定された第1の電力メトリックに応じて、第1、第2及び第3のコンピューティングノードの間でコンピューティングタスクを負荷バランシングすることを含む。実施形態において、第1のコンピューティングノードは、第2のコンピューティングノードに含まれる第2のサーバとは別個であり、かつ該第2のサーバに含まれない、第1のサーバを含む。実施形態は、決定した第1の電力メトリックに応じて、第1及び第2のコンピューティングノードの一方から第3のコンピューティングノードへコンピューティングワークロードをシフトするステップを含み、当該コンピューティングワークロードをシフトするステップは、コンピューティングタスクを第3のコンピューティングノードに分散させることを含む。実施形態は、コンピューティングノードのグループに非特有の履歴電力メトリックに基づいて、第1の電力メトリックを分析するステップと;履歴電力メトリックに基づいて第1の電力メトリックを分析したことに応答して、コンピューティングタスクを第3のコンピューティングノードに分散させるステップとを含む。
実施形態は装置を含み、この装置は:少なくとも1つのメモリと;メモリに結合され、動作を実行する少なくとも1つのプロセッサと;を備え、上記動作は、第1及び第2のコンピューティングノードを含むコンピューティングノードのグループに対応する第1の電力メトリックを決定するステップと;決定された第1の電力メトリックに応じて、コンピューティングタスクを、第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させるステップと;を含み、第3のコンピューティングノードは、第1及び第2のコンピューティングノードとはリモートに配置される。実施形態において、コンピューティングタスクは、第1のコンピューティングノードに向けられるが、決定された第1の電力メトリックに応答して第3のコンピューティングノードへルート変更(reroute)される。実施形態において、第1の電力メトリックは、コンピューティングノードのグループに対して特有であり、第1及び第2のコンピューティングノードのいずれかには特有ではない。
本発明は、限られた数の実施形態に関連して説明されているが、当業者は、この実施形態から様々な修正及び変形を認識するであろう。添付の特許請求の範囲は、そのような修正及び変形が本発明の真の精神及び範囲内にある限りにおいて、これらの全ての修正及び変形を包含するように意図される。

Claims (19)

  1. 少なくとも1つのプロセッサによって実行される方法であって、
    第1及び第2のコンピューティングノードを含むコンピューティングノードのグループに対応する第1の電力メトリックを決定するステップと、
    前記コンピューティングノードのグループに非特有のデータの履歴的蓄積に基づくグループ電力メトリックに基づいて、前記第1の電力メトリックを分析するステップと、
    記第1の電力メトリックに応じて、コンピューティングタスクを、前記第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させるステップと、
    を含み、
    (a)前記第1の電力メトリックは、前記コンピューティングノードのグループに対して特有であり、前記第1及び第2のコンピューティングノードのいずれかには特有ではなく、(b)前記第1のコンピューティングノードは、前記第2のコンピューティングノードに含まれる第2のサーバとは別個であり、該第2のサーバには含まれない第1のサーバを含む、方法。
  2. 前記第1及び第2のコンピューティングノードは、前記第3のコンピューティングノードを含まないコンピュータクラスタ内に含まれる、
    請求項1に記載の方法。
  3. 前記第1の電力メトリックは、温度、電圧、電流、実行される命令カウント、メモリアクセス、書き込みカウント、読み取りカウント、サービスの品質(QOS)、キャッシュミス、データ転送レート、エラーレート、サービス応答時間、信号対雑音比及び周波数応答、のうちの1つに対応する、
    請求項1に記載の方法。
  4. 前記第1の電力メトリックは、前記第1のコンピューティングノードに対応する温度と、前記第2のコンピューティングノードに対応する別の温度とに基づく温度を含む、
    請求項1に記載の方法。
  5. 前記第1の電力メトリックは、(a)前記第1のコンピューティングノードに特有であるが、前記第2のコンピューティングノードには特有でない電力メトリックと、(b)前記第2のコンピューティングノードに特有であるが、前記第1のコンピューティングノードには特有でない追加の電力メトリックとの双方に基づく、
    請求項1に記載の方法。
  6. 前記第1のコンピューティングノードに特有の電力メトリックを、前記第1のコンピューティングノードから受け取るステップと、
    前記第2のコンピューティングノードに特有の電力メトリックを、前記第2のコンピューティングノードから受け取るステップと、
    を含む、請求項5に記載の方法。
  7. 前記第1のコンピューティングノードに特有の電力メトリックを決定したことに応答して、前記第1のコンピューティングノードから前記第3のコンピューティングノードへコンピューティングワークロードをシフトするステップ、
    を含む、請求項6に記載の方法。
  8. 前記コンピューティングノードのグループに非特有のデータの履歴的蓄積に基づく前記グループ電力メトリックを決定するステップと
    前記グループ電力メトリックに基づいて前記第1の電力メトリックを分析したことに応答して、前記コンピューティングタスクを前記第3のコンピューティングノードに分散させるステップと、
    を含む、請求項1に記載の方法。
  9. 前記第1の電力メトリックに基づいて、前記コンピューティングノードのグループに非特有のデータの履歴的蓄積に基づく前記グループ電力メトリックを決定するステップ、
    を含む、請求項1に記載の方法。
  10. 前記グループ電力メトリックは、前記第1、第2及び第3のコンピューティングノードそれぞれからの電力メトリックデータに基づく、
    請求項9に記載の方法。
  11. 前記コンピューティングタスクを、前記第1及び第2のコンピューティングノードには分散せずに、前記第3のコンピューティングノードに分散させるステップは、前記決定された第1の電力メトリックに応じて、前記第1、第2及び第3のコンピューティングノードの間でコンピューティングタスクを負荷バランシングすることを含む、
    請求項1に記載の方法。
  12. 前記決定された第1の電力メトリックに応じて、前記第1及び第2のコンピューティングノードの一方から前記第3のコンピューティングノードへコンピューティングワークロードをシフトするステップを含み、当該コンピューティングワークロードをシフトするステップは、前記コンピューティングタスクを前記第3のコンピューティングノードに分散させることを含む、
    請求項1に記載の方法。
  13. 請求項1乃至12のいずれかを実行するための手段を備える装置。
  14. コンピューティングデバイスにおいて実行されたことに応答して、該コンピューティングデバイスに請求項1乃至12のいずれかに記載の方法を実行させるコンピュータプログラム。
  15. 少なくとも1つのメモリと;
    前記メモリに結合されて、
    第1及び第2のコンピューティングノードを含むコンピューティングノードのグループに対応する第1の電力メトリックを決定するステップと、
    前記コンピューティングノードのグループに非特有のデータの履歴的蓄積に基づくグループ電力メトリックに基づいて、前記第1の電力メトリックを分析するステップと、
    記第1の電力メトリックに応じて、コンピューティングタスクを、前記第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させるステップと、
    を含む動作を実行する、少なくとも1つのプロセッサと;
    を備え、(a)前記第1の電力メトリックは、前記コンピューティングノードのグループに対して特有であり、前記第1及び第2のコンピューティングノードのいずれかには特有ではなく、(b)前記コンピューティングタスクを、前記第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させるステップは、前記第1の電力メトリックに応じて、前記第1、第2及び第3のコンピューティングノードの間でコンピューティングタスクを負荷バランシングすることを含む、装置。
  16. 前記コンピューティングタスクは、前記第1のコンピューティングノードに向けられるが、前記第1の電力メトリックに応答して前記第3のコンピューティングノードへルート変更される、
    請求項15に記載の装置。
  17. システムによって実行されると、該システムに、
    第1及び第2のコンピューティングノードを含むコンピューティングノードのグループに対応する第1の電力メトリックを決定することと、
    前記コンピューティングノードのグループに非特有のデータの履歴的蓄積に基づくグループ電力メトリックに基づいて、前記第1の電力メトリックを分析することと、
    記第1の電力メトリックに応じて、コンピューティングタスクを、前記第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させることと、
    を実行させるコンピュータプログラムであって、
    (a)前記第1の電力メトリックは、前記コンピューティングノードのグループに対して特有であり、前記第1及び第2のコンピューティングノードのいずれかには特有ではなく、(b)前記第1の電力メトリックは、(i)前記第1のコンピューティングノードに特有であるが、前記第2のコンピューティングノードには特有でない電力メトリックと、(ii)前記第2のコンピューティングノードに特有であるが、前記第1のコンピューティングノードには特有でない追加の電力メトリックと、の双方に基づく、コンピュータプログラム。
  18. 前記第1の電力メトリックは、温度、電圧、電流、実行される命令カウント、メモリアクセス、書き込みカウント、読み取りカウント、サービスの品質(QOS)、キャッシュミス、データ転送レート、エラーレート、サービス応答時間、信号対雑音比及び周波数応答、のうちの1つに対応し、
    前記コンピューティングタスクを、前記第1及び第2のコンピューティングノードには分散せずに、第3のコンピューティングノードに分散させることは、前記第1の電力メトリックに応じて、前記第1、第2及び第3のコンピューティングノードの間でコンピューティングタスクを負荷バランシングすることを含み、
    前記第1及び第2のコンピューティングノードは、前記第3のコンピューティングノードを含まないコンピュータクラスタ内に含まれる、
    請求項17に記載のコンピュータプログラム。
  19. 請求項14、17及び18のいずれか一項に記載のコンピュータプログラムを記憶する少なくとも1つのマシン読取可能媒体。
JP2015544307A 2012-12-28 2012-12-28 分散コンピューティングシステムのための電力の最適化 Active JP6193393B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087820 WO2014101093A1 (en) 2012-12-28 2012-12-28 Power optimization for distributed computing system

Publications (2)

Publication Number Publication Date
JP2015537309A JP2015537309A (ja) 2015-12-24
JP6193393B2 true JP6193393B2 (ja) 2017-09-06

Family

ID=51019728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015544307A Active JP6193393B2 (ja) 2012-12-28 2012-12-28 分散コンピューティングシステムのための電力の最適化

Country Status (4)

Country Link
US (1) US9389668B2 (ja)
EP (2) EP3528087A1 (ja)
JP (1) JP6193393B2 (ja)
WO (1) WO2014101093A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8219258B1 (en) * 2011-02-25 2012-07-10 eCurv, Inc. Queuing access to a shared power supply
US10088891B2 (en) * 2013-09-23 2018-10-02 Cornell University Multi-core computer processor based on a dynamic core-level power management for enhanced overall power efficiency
US9645629B2 (en) * 2014-09-25 2017-05-09 Microsoft Technology Licensing, Llc Providing energy consumption analytics of cloud based service
US10833940B2 (en) 2015-03-09 2020-11-10 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling
US10469347B2 (en) * 2016-03-25 2019-11-05 Intel Corporation Accurate network power estimations to improve performance in large distributed computer systems
WO2017222763A2 (en) * 2016-05-31 2017-12-28 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling
US10868743B2 (en) * 2016-06-01 2020-12-15 Intel Corporation System and method for providing fast platform telemetry data
US10234833B2 (en) * 2016-07-22 2019-03-19 Intel Corporation Technologies for predicting power usage of a data center
US10488911B2 (en) * 2016-11-01 2019-11-26 National Taiwan University Method and computing system of allocating registers
EP3622395A1 (en) * 2017-05-11 2020-03-18 Bull SAS Method of managing resource providing in a computers cluster running jobs
US10462224B2 (en) 2017-06-29 2019-10-29 Intel Corporation Coordinator for low power sensor network with tree or star topology
US20200136921A1 (en) * 2019-09-28 2020-04-30 Intel Corporation Methods, system, articles of manufacture, and apparatus to manage telemetry data in an edge environment
US20230187936A1 (en) * 2020-05-12 2023-06-15 Nippon Telegraph And Telephone Corporation Control apparatus, control method and program
US11500704B2 (en) * 2020-07-31 2022-11-15 Boomi, LP System and method for intelligent real-time listening and load balancing of integration process executions
US20210279186A1 (en) * 2021-05-26 2021-09-09 Intel Corporation Method and apparatus to perform dynamically controlled interrupt coalescing for a solid state drive
US20230126023A1 (en) * 2021-10-26 2023-04-27 Dell Products L.P. Heterogeneous node group efficiency management system
US11915061B2 (en) * 2021-10-26 2024-02-27 Dell Products L.P. Datacenter efficiency management system for migrating workload across nodes based on workload performance efficiency ranking

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3896352B2 (ja) * 2003-08-08 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散コンピューティングシステム
US7756972B2 (en) 2005-12-06 2010-07-13 Cisco Technology, Inc. System for power savings in server farms
US7941805B2 (en) 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
KR100968202B1 (ko) * 2007-12-12 2010-07-06 한국전자통신연구원 소비전력 감소를 위한 클러스터 시스템 및 그의 전원 관리방법
KR20110007205A (ko) * 2008-04-21 2011-01-21 어댑티브 컴퓨팅 엔터프라이즈 인코포레이티드 컴퓨트 환경에서 에너지 소비를 관리하기 위한 시스템 및 방법
US20100037225A1 (en) * 2008-08-07 2010-02-11 International Business Machines Corporation Workload routing based on greenness conditions
CN101819540B (zh) 2009-02-27 2013-03-20 国际商业机器公司 在集群中调度任务的方法和系统
US8275825B2 (en) * 2009-06-03 2012-09-25 International Business Machines Corporation Thermal management using distributed computing systems
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US8639956B2 (en) * 2009-09-30 2014-01-28 International Business Machines Corporation Reducing energy consumption in a computing cluster
US20110106935A1 (en) * 2009-10-29 2011-05-05 International Business Machines Corporation Power management for idle system in clusters
US8589721B2 (en) * 2010-11-30 2013-11-19 International Business Machines Corporation Balancing power consumption and high availability in an information technology system
US9317334B2 (en) * 2011-02-12 2016-04-19 Microsoft Technology Licensing Llc Multilevel multipath widely distributed computational node scenarios
US20130097276A1 (en) * 2011-10-13 2013-04-18 Unisys Corp. Cloud computing integration for sensor networks

Also Published As

Publication number Publication date
US9389668B2 (en) 2016-07-12
WO2014101093A1 (en) 2014-07-03
US20150301572A1 (en) 2015-10-22
EP3528087A1 (en) 2019-08-21
EP2939073A1 (en) 2015-11-04
JP2015537309A (ja) 2015-12-24
EP2939073A4 (en) 2016-08-31

Similar Documents

Publication Publication Date Title
JP6193393B2 (ja) 分散コンピューティングシステムのための電力の最適化
US9696786B2 (en) System and method for optimizing energy consumption by processors
US10552761B2 (en) Non-intrusive fine-grained power monitoring of datacenters
US9400682B2 (en) Ranking and scheduling of monitoring tasks
Chen et al. Distributed autonomous virtual resource management in datacenters using finite-markov decision process
US8533719B2 (en) Cache-aware thread scheduling in multi-threaded systems
Xia et al. Stochastic modeling and performance analysis of migration-enabled and error-prone clouds
Muraña et al. Characterization, modeling and scheduling of power consumption of scientific computing applications in multicores
WO2019153188A1 (en) Gpu power modeling using system performance data
Gupta et al. Long range dependence in cloud servers: a statistical analysis based on google workload trace
US9542294B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
Kianpisheh et al. A grid workflow Quality-of-Service estimation based on resource availability prediction
Ferreira da Silva et al. Accurately simulating energy consumption of I/O-intensive scientific workflows
Wilkins et al. Hybrid Heterogeneous Clusters Can Lower the Energy Consumption of LLM Inference Workloads
Outin et al. Enhancing cloud energy models for optimizing datacenters efficiency
Omoregbee et al. Performability requirements in making a rescaling decision for streaming applications
US20220050761A1 (en) Low overhead performance data collection
Cupertino et al. Energy consumption library
Forshaw et al. The case for energy-aware simulation and modelling of internet of things (IoT)
Shetu et al. Workload-based prediction of CPU temperature and usage for small-scale distributed systems
Muraña et al. Power consumption characterization of synthetic benchmarks in multicores
Shen et al. Data characteristics aware prediction model for power consumption of data center servers
US11714739B2 (en) Job performance breakdown
WO2022127597A1 (en) Methods and devices for anomaly detection
Mortier et al. Hybrid Heterogeneous Clusters Can Lower the Energy Consumption of LLM Inference Workloads

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160920

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170602

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170809

R150 Certificate of patent or registration of utility model

Ref document number: 6193393

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250