JP2018500673A - ホリスティックグローバルなパフォーマンス及び電力管理 - Google Patents

ホリスティックグローバルなパフォーマンス及び電力管理 Download PDF

Info

Publication number
JP2018500673A
JP2018500673A JP2017531539A JP2017531539A JP2018500673A JP 2018500673 A JP2018500673 A JP 2018500673A JP 2017531539 A JP2017531539 A JP 2017531539A JP 2017531539 A JP2017531539 A JP 2017531539A JP 2018500673 A JP2018500673 A JP 2018500673A
Authority
JP
Japan
Prior art keywords
nodes
policy
power
performance
job
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
Application number
JP2017531539A
Other languages
English (en)
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 JP2018500673A publication Critical patent/JP2018500673A/ja
Priority to JP2021100077A priority Critical patent/JP7222029B2/ja
Priority to JP2023014366A priority patent/JP2023041852A/ja
Pending legal-status Critical Current

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/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/189Power distribution
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Inorganic Insulating Materials (AREA)
  • Lubricants (AREA)

Abstract

ホリスティックグローバルなパフォーマンス及び電力管理を提供する方法及び装置が記載されている。実施形態においては、(例えば、複数の計算ノードのうちの各計算ノードに結合されている)ロジックは、複数の計算ノードにわたる電力及びパフォーマンス管理のためのポリシーの決定を引き起こす。ポリシーは、複数の計算ノードにわたり調整され、1つ以上の目的関数に向けてジョブを管理する。ここで、ジョブは、複数の計算ノードで同時に動作する複数のタスクを含む。他の実施形態も開示され、特許請求の範囲に記載されている。

Description

本開示は、概して、電子工学の分野に関する。より詳細には、実施形態によっては、サーバ及び他のコンピューティングデバイスについての電力管理に関する。
高パフォーマンスコンピューティング(HPC)システムは、分散コンピューティングのためにファブリックによって接続された多数のノードを含むことができる。さらに、アプリケーションは、HPCシステム内のノード間で同時に動作するタスクに分割される。これらのタスクは順次のマイルストーンにブレークダウンされ、タスクはこれらのマイルストーンのそれぞれに同時に到達することが期待される。
残念ながら、いずれかのノードが他のノードより遅く次のマイルストーンに向けて作業を完了すると、最も遅いタスクがその作業を完了するまでは、アプリケーション全体の進行が停止する。この状況が発生すると、アプリケーションは潜在的なパフォーマンスを失い、待機しなければならないノードでは電力が無駄になる。
発明を実施するための形態は、添付図面を参照して提供される。図面において、参照番号の最も左の桁は、その参照番号が最初に現れる図を識別する。異なる図面での同じ参照番号の使用は、類似または同一の項目を示す。
図1は、いくつかの実施形態による、様々なコンピューティングシステムのブロック図を示す。 図2は、実施形態による、ホリスティックグローバルなパフォーマンス及び電力管理(HGPPM)システムのブロック図を示す。 図3は、実施形態による、階層的部分観測マルコフ決定プロセス(H−POMDP)エージェントの相互作用の詳細のブロック図を示す。 図4は、いくつかの実施形態による、様々なコンピューティングシステムのブロック図を示す。 図5は、いくつかの実施形態による、様々なコンピューティングシステムのブロック図を示す。 図6は、いくつかの実施形態による、様々なコンピューティングシステムのブロック図を示す。
以下の説明では、様々な実施形態の十分な理解を提供するために、多数の特定の詳細が述べられる。しかし、様々な実施形態を特定の詳細なしに実施することができる。他の例では、周知の方法、手順、コンポーネント、及び回路は、特定の実施形態を不明瞭にしないようにするため、詳細には説明していない。さらに、実施形態の様々な態様は、集積半導体回路(「ハードウェア」)、1つ以上のプログラム(「ソフトウェア」)に編成されたコンピュータ読み取り可能命令、ハードウェアとソフトウェアのいくつかの組み合わせ等の様々な手段を使用して実行されることができる。本開示の目的のために、「ロジック」とは、ハードウェア、ソフトウェア、又はそれらのいくつかの組み合わせを意味するものとする。
上述のように、高パフォーマンスコンピューティング(HPC)システムは、分散コンピューティングのために高速ネットワークファブリックによって結合された多数のノードを含むことができる。本明細書で説明するように、「ノード」は、概して、(本明細書で説明する汎用プロセッサ、グラフィックスプロセッサ等の1つ以上のプロセッサを含み得る)計算要素、ネットワークファブリックへの接続、ログインコンポーネント、サービスコンポーネント、場合によってはメモリ、IO(入力/出力)装置又は他のコンポーネントを示す。概して、アプリケーション(本明細書では、「ジョブ」とも呼ぶ)は、HPCシステム内の多数のノード(例えば、数万)にわたって同時に動作するタスクに分割される。各ノードに1つ又は多数のタスクがマップされることもあれば、1つ以上のコアにわたって単一のタスクが動作することもある。タスクは、同じ問題セットの異なるデータで動く同じプログラムからなることができる。タスクは順次のマイルストーン(milestones)にブレークダウン(broken down)され、全てのタスクは同じ時間量内にマイルストーン間での計算を完了することが期待され、いわゆるバルク同期スタイルの計算につながる。マイルストーンでは、タスクはグローバル障壁のようなオペレーションを通じて同期することができる。
残念ながら、任意のコア又はノードが(多くの理由のいずれか1つにより)他のものよりもゆっくりと同期化の間での作業を完了する場合、最も遅いタスクが作業を完了するまで、アプリケーション全体の進行が停止する。これが起こると、アプリケーションは潜在的なパフォーマンスを失い、待機しなければならないコア又はノードでは電力が無駄になる。この問題には、負荷不均衡、アプリケーション又はオペレーティングシステムのジッタ及びパフォーマンス変動を含む多くの名前がある。負荷不均衡には、ハードウェアコンポーネントのパフォーマンスの分布(distribution)につながる製造変動性などの静的要因から、異なるコア上の異なる時間に発生するページフォルト、一部のコアだけに影響を与えるオペレーティングシステムの干渉、1つのコア又はノードだけを一時的に機能を損なわせる回復可能なハードウェアエラー、アプリケーション内のタスク間の作業の不均一な分布等の動的要因にまでわたる多数の原因があり得る。
HPCシステムの規模と複雑さが増し続けるにつれて、負荷不均衡がパフォーマンスの低下と電力の無駄についての重大な発信元になりつつある。製造変動性は特に問題である。最近のプロセッサでは、熱的設計及び電力制限を超えないで、最大コア周波数で浮動小数点集約型ワークロードを実行することができない。さらに、同じモデル及びステッピングの2つのプロセッサは、同じコア周波数を達成するために異なる電力を必要とする。産業界は、所与の電力バジェット(power budget)においてプロセッサパフォーマンスの変動が20%を超えると予想している。
この目的のため、いくつかの実施形態は、ホリスティックグローバルな(holistic global)パフォーマンス及び電力管理を提供する。より具体的には、構成可能な目的関数(objective functions)に向けてジョブを管理しながら(例えば、ジョブ電力上限内でのパフォーマンス最大化、ジョブ電力上限内での効率最大化等)、ジョブ内の(例えば、全ての)ノードにわたるソフトウェア及びハードウェアポリシーを調整するための新しいパフォーマンス及び電力管理フレームワークが記述される。フレームワークの1つの用途は、上記の負荷均衡についての問題を解決することである。
付加的に、いくつかの実施形態は、パフォーマンス最大化、効率最大化(例えば、最小エネルギー遅延製品)、ジョブ電力上限に向けて管理しながらのパフォーマンス最大化、ジョブ電力上限に向けて管理しながらの効率最大化等、ジョブ電力上限又は他の構成可能な目的関数に向けてジョブを管理しながら、ジョブ内の(例えば、全ての)ノードにわたるパフォーマンス及び電力管理の決定を調整するホリスティックグローバルなパフォーマンス及び電力管理(HGPPM)フレームワークを提供する。HGPPM技術は、少なくとも部分的には、高速階層的部分観測マルコフ決定過程(H−POMDP)強化学習(RL)法で実装された、階層的フィードバック誘導制御システムに基づいている。そのような実施形態は、階層システムドメイン間で電力を導き(steering)、ソフトウェア及びハードウェア抽象化境界にわたる他のより幅広い最適化を調整するための重要な機能を導入することによってアプリケーション負荷不均衡を緩和することができる。例えば、いくつかの実施形態では、HGPPMは、負荷均衡を達成するため、階層システムドメイン間の電力割り当てを選択することと、所与のシステムアーキテクチャ、問題サイズ又は電力割り当てについての最高の実行オプションを見つけるため、レパートリーからのアプリケーションアルゴリズムの選択を、同時に調整、最適化することによってより高いパフォーマンス又は効率を達成することができる。
さらに、本明細書で説明する技術は、図1から図6を参照して説明するものを含め、様々なコンピューティングシステム(例えば、デスクトップ、ワークステーション、サーバ、ラックシステム等の非モバイルコンピューティングデバイス、及びスマートフォン、タブレット、UMPC(ウルトラモバイルパーソナルコンピュータ)、ラップトップコンピュータ、ウルトラブック(登録商標)コンピューティングデバイス、スマートウォッチ、スマートグラス等のモバイルコンピューティングデバイス)に提供されることができる。より詳細には、図1は、実施形態によるコンピューティングシステム100のブロック図を示す。図1は、模式的な表現であり、物理的な構成を反映することは意味しない。システム100は、1つ以上のプロセッサ102−1から102−N(一般的に、本明細書では「複数のプロセッサ102」又は「プロセッサ102」と呼ばれる)を含む。プロセッサ102は、相互接続(ファブリック)104を介して通信することができる。また、1つ以上のプロセッサが相互接続・ファブリックへの接続を共有し得る可能性がある。各プロセッサは、様々なコンポーネントを含むことができるが、明瞭性のため、その一部のみをプロセッサ102−1を参照して説明する。そして、残りのプロセッサ102−2〜102−Nの各々は、プロセッサ102−1を参照して説明するものと同一又は類似のコンポーネントを含むことができる。
実施形態では、プロセッサ102−1は、1つ以上のプロセッサコア106−1〜106−M(本明細書では「複数のコア106」又はより一般的に「コア106」と呼ばれる)、キャッシュ108様々な実施形態では共有キャッシュ又はプライベートキャッシュであり得る)及び/又はルータ110を含むことができる。プロセッサコア106は、単一の集積回路(IC)チップ上に実装されることができる。これは、同じパッケージ内の複数の集積回路で実装されることもできる。さらに、チップは、1つ以上の共有及び/又はプライベートキャッシュ(キャッシュ108など)、バス又は相互接続(バス又は相互接続112など)、ロジック150、図4から図6を参照して説明するようなメモリコントローラ(例えば、フラッシュメモリ、SSD(ソリッドステートドライブ)等のNVM(不揮発性メモリ)を含む)又は他のコンポーネントを含むことができる。他の実施形態では、図1のコンポーネントは、異なるやり方でアレンジされることができ、例えば、ルータをプロセッサの外部にする一方で、VR、メモリコントローラ及びメインメモリをプロセッサの内部とすることができる。
一実施形態では、ルータ110は、プロセッサ102−1及び/又はシステム100の様々なコンポーネント間で通信するために使用されることができる。さらに、プロセッサ102−1は、複数のルータ110を含むことができる。さらに、多数のルータ110は、プロセッサ102−1の内部又は外部の様々なコンポーネント間のデータルーティングを可能にするために通信していることができる。いくつかの実施形態では、多数のルータがある場合、その一部がプロセッサの内部にあることができるし、その一部が外部にあることもできる。
キャッシュ108は、コア106などのプロセッサ102−1の1つ以上のコンポーネントによって利用されるデータ(例えば、命令を含む)を記憶することができる。例えば、キャッシュ108は、プロセッサ102のコンポーネントによる高速アクセスのため、(揮発性及び/又は不揮発性)メモリ114(本明細書では、相互変換可能に「メインメモリ」とも呼ばれる)に記憶されているデータを局所的にキャッシュすることができる。図1に示すように、メモリ114は、相互接続104を介してプロセッサ102と通信していることができる。実施形態では、(共有され得る)キャッシュ108は、様々なレベルを有することができ、例えば、キャッシュ108は、中間レベルキャッシュ及び/又は最終レベルキャッシュ(LLC)(L1、L2キャッシュ等)とすることができる。また、各コア106は、レベル1(L1)キャッシュ(116−1)(本明細書では、一般的に「L1キャッシュ116」と呼ばれる)を含むことができる。プロセッサ102−1の様々なコンポーネントは、バス・ファブリック(例えば、バス112)及び/又はメモリコントローラ・ハブを介して、直接キャッシュ108と通信することができる。
システム100はまた、システム100の1つ以上のコンポーネントに電力を供給するための(例えば、プラットフォーム)電源125(例えば、直流(DC)電源又は交流電源)を含むことができる。電源125は、PV(太陽光発電)パネル、風力発電機、熱による発電機、水/水力タービン等を含むことができる。いくつかの実施形態では、電源125は、1つ以上のバッテリパック(例えば、PVパネル、風力発電機、熱による発電機、水/水力タービン、プラグイン電源(例えば、AC電力網に結合されたもの)の1つ以上によりチャージされる)及び/又はプラグイン電源を含む。
電源125は、電圧レギュレータ(VR)130を介してシステム100のコンポーネントに結合されることができる。さらに、図1は、1つの電源125及び単一の電圧レギュレータ130を示しているが、追加の電源及び/又は電圧レギュレータが利用されることができる。例えば、1つ以上のプロセッサ102は、対応する電圧レギュレータ及び/又は電源を有することができる。また、電圧レギュレータ130は、単一電力プレーン(例えば、全てのコア106に電力を供給する)又は複数の電力プレーン(例えば、各電力プレーンが、異なるコア若しくはコアのグループ及び/又はシステム100の他のコンポーネントに電力を供給することができる)を介してプロセッサ102に結合されることができる。追加的に、図1は、電源125及び電圧レギュレータ130を別個のコンポーネントとして示しているが、電源125及び電圧レギュレータ130は、システム100の他のコンポーネントに組み込まれることができる。例えば、VR130の全て又は一部は、ソース125、SOC(図6を参照して説明するものなど)及び/又はプロセッサ102に組み込まれることができる。
図1に示すように、メモリ114は、メモリコントローラ120を通してシステム100の他のコンポーネントに結合されることができる。システム100はまた、本明細書で説明するHGPPM技術/実施形態を参照して1つ以上の動作を容易にする及び/又は実行するロジック150を含む。例えば、ロジック150は、1つ以上の計算ノード及び/又はシステム100のコンポーネント(例えば、プロセッサ102、メモリコントローラ120、メモリ114(本明細書では、「外部メモリ」と呼ばれることもある)、キャッシュ116、108及び/又は相互接続・ファブリック104、112など))のパフォーマンス及び/又は電力管理に対応する動作を実行することができる。さらに、ロジック150がシステム100内のいくつかの任意の位置に示されているが、ロジック150はシステム100内の他の場所に配置されることができる。
さらに、実施形態は、構成可能な目的関数に向けてジョブを全面的に管理しながら、ジョブ内の全てのノードにわたり、かつ、ソフトウェア及びハードウェア抽象化層にわたるパフォーマンス及び電力管理ポリシーを調整するスケーラブルな動的技術を提供する。目的関数は、電力上限を満たしながらパフォーマンスを最大化すること、電力上限を満たしながら計算要素(ノード又はコア)間のパフォーマンス差を最小化すること(負荷不均衡を緩和する)、効率を最大化すること等を含むことができるが、これらに限定されない。そのような技術は、本明細書では、包括的に、ホリスティックグローバルなパフォーマンス及び電力管理(HGPPM)と呼び、それは、一実施形態では、階層的機械学習アルゴリズムに少なくとも部分的に基づくものである。
従来のHPC電力マネージャには多くの制限がある。第1に、各ノードに均一の電力上限を適用することにより、ノード間のパフォーマンス差を悪化させ、各ノードの周波数が不均一になり、アプリケーションのパフォーマンスが低下する。産業界は、一般に、所与の電力上限でノードのパフォーマンスが20%以上変動すると予想しているため、これらのパフォーマンスの差を悪化させないように緩和することが重要である。第2に、従来の電力マネージャは、ソフトウェア及びハードウェアポリシーを調整する機能に欠けている。残念ながら、ソフトウェア及びハードウェアポリシーは、歴史的には、独立した制御システムを介して調整されてきた。これは結果を低下させる制御システム間の干渉を招く。統一された制御システム下でソフトウェア及びハードウェアポリシーの調整を行うことが重要である。第3に、従来のHPC電力マネージャはスケーラビリティに欠けている。それらは、将来のシステムにおいて多数の(例えば、数万)ノードにわたるポリシーを調整するようにはできない集中設計を採用している。根本的に異なる設計が必要とされている。最後に、従来のHPCシステムはフレキシビリティに欠けている。エクサスケールシステムの最も高いパフォーマンスと効率の課題を満たすには、新しいポリシーノブ(policy knob)が設計される必要があり、システムを最適化するためにより多くの機会が利用される必要があるが、現在のソリューションでは新しいポリシーの理解と制御が可能な電力マネージャフレームワークに欠けている。また、電力マネージャが行うパフォーマンスと電力との間のトレードオフをプログラムする際にフレキシビリティが必要とされる(例えば、場合によっては、効率がパフォーマンスより優先される)が、従来の電力マネージャはパフォーマンスに偏った目的関数をのみをサポートする傾向がある。現在の管理技術では、あまりにももろい(brittle)。
HGPPMの実施形態は、ソフトウェア及びハードウェアポリシーを調整する重要な機能を導入しながら、負荷不均衡の問題、スケーラビリティの問題、及びフレキシビリティの問題を同時に解決する画期的なものである。これらは、エクサスケールシステムのパフォーマンスと効率を高めるための重要な要件と考えられる。より詳細には、HGPPMは、従来技術を多くの重要な点で改善する。HGPPMは、計算要素に割り当てられた電力の均衡をとり、それらの負荷を等しくすることによって、ジョブ内の負荷不均衡を検出し緩和する機能を導入している。HGPPMは、製造変動性からアプリケーション又はオペレーティングシステムのジッタ、ハードウェアのエラー、アプリケーション又はオペレーティングシステムなどが計算要素(本明細書では相互変換可能に「ノード」又は「コア」とも呼ばれる)間で均等に作業を分割しないという不均衡の内在的原因にまでわたる様々な負荷不均衡の原因を緩和することができる初めての技術である。さらに、少なくとも1つの実施形態は、これと同時にジョブを電力上限に向けて管理することと相乗的な負荷均衡技術を提供する。
HGPPMの実施形態はまた、以下の重要な新機能を導入している。(a)ソフトウェア及びハードウェアの抽象化境界にわたるポリシー最適化の調整、(b)ポリシー最適化のための堅牢な技術による新しいタイプのポリシーへの拡張性、及び/又は(c)構成可能な目的関数に向けた管理のためのサポートを介したフレキシビリティである。ジョブ内の全ての計算要素にわたるポリシーを調整するためのスケーリングを同時に行いながら、これらの機能をサポートする他のパフォーマンス又は電力マネージャはない。そのような実施形態のスケーラビリティ、堅牢性及びフレキシビリティは画期的なものである。
HGPPMの実施形態によって可能にされる新しいポリシー及び最適化の例は、(a)各アプリケーションタスクが利用することができるコアの数を制御する新しいポリシーノブを通じてパフォーマンス又は効率の最大化のためにアプリケーションを調整すること、(b)プロセッサが投機的に算術演算、メモリプリフェッチ動作等をどれほど積極的に実行するかを制御する新しいポリシーノブを通じてよりよいパフォーマンス又は効率のためにプロセッサを調整することを含むが、これらに限定されない。新しいポリシー及び最適化の設計は、エクサスケールシステムのパフォーマンス及び効率の課題を満たすのに重要であると考えられ、HGPPM実施形態は、そのような最適化を画策することができる初めてのパフォーマンス及び電力管理フレームワークである。さらに、HGPPMの階層的学習フレームワークは、スケーラビリティをさらに向上させ、アプリケーションのより良好なパフォーマンス又は効率に対する負荷均衡の応答性を高める。
実施形態では、HGPPMを使用して、構成可能な目的関数に向けてジョブを管理しながら、ジョブ内の(例えば、全ての)ノードにわたるパフォーマンス及び電力ポリシーを全体的に(globally)調整する。各ジョブにバインドされたHGPPMインスタンスがある。HGPPMアプローチは、階層的部分観測マルコフ決定プロセス(H−POMDP)機械学習に基づく階層設計を採用することによって、ジョブ内の多くのノード(例えば、数万ノード)に対するポリシーを決定するスケーラビリティの課題を解決する。特に、一実施形態は、同一の強化学習エージェントの階層を採用している。本明細書で説明するように、「ノード」、「コア」、「計算要素」等の使用は、相互変換可能であり、例えば、そのようなユニットの各々は、そのユニットを参照して本明細書で説明する1つ以上の動作を実行することができるコンピューティングコンポーネントを示す。
強化学習エージェントは、モデルを通じてではなく、環境との相互作用及び経験的な実験によってポリシーを最適化する。それらは、行動を最良の結果に適合させるためにアクション(actions)の結果を継続的に評価する。ここで、結果の質は、目的関数により定義される。実験は、全ての可能なポリシーオプションの空間を効率的にナビゲートする(navigate)体系的な方法で選択される。実施形態によれば、強化学習アルゴリズムは、依然として良好な又は許容可能な結果を達成しながら効率的にナビゲートするために確率的ポリシー勾配(Stochastic Policy Gradient)と呼ばれる技術を採用している。
H−POMDPでは、各エージェントは同一であり、全体問題のサブ問題に対して独立して動作するが、全てのエージェントは同じ目的関数を使用し、1つのエージェントの決定がその子供が考慮することができるオプション空間を抑制するように、サブ問題は階層的に定義されている。そのようにして、親は子供の行動を導いて、子供が最良のポリシーをより迅速に特定するのを手助けする、又は子供が特定のポリシーオプションを選択するのを排除する。この階層的なやり方では、強化学習エージェントツリー階層のルートからリーフにまで、パフォーマンス及び電力ポリシーの決定が調整される。
図2は、実施形態による、HGPPMシステムのブロック図を示す。図2は、ツリーの深さが3であるものを示すが、これは例示的な目的のためだけのものであり、より深い又はより浅いツリーの深さが様々な実施形態で使用されることができる。実施形態では、図2に示すシステムの各計算ノードは、図1、図4、図5及び/又は図6のコンピューティングシステムで説明する1つ以上のコンポーネントを含むことができる。より詳細には、全体的な調整は、スケーラブルで階層的なk変数のツリー設計によって可能になる。システムポリシーは、階層的に分解される(例えば、キャビネット202−0〜202−m(ここで、「キャビネット」とは一般に、複数のノードを示す)間で電力を割り当て、次いで、ノード間で電力を割り当てる)。本明細書でさらに説明するように、ツリーの各ノードで動作するH−POMDP強化学習エージェントを介して、良好な全体的な電力割り当て決定が得られる。電力及び/又はパフォーマンステレメトリの集約(リーフからルートへ向かってツリーを逆流する)及び制御の分散(親から子供へ)が、スケーラブルなオーバレイネットワーク(SCON)204により提供される。SCONは、HPCシステムにおいて物理ネットワークの1つのトップ(top)で実装される論理ネットワークである。物理ネットワークは、アプリケーション(例えば、ネットワークファブリック)によって使用される帯域内ネットワークであってもよいし、イーサネット(登録商標)(例えば、IEEE(米国電気電子学会)802.3標準に従ったもの)などの帯域外ネットワークであってもよい。一実施形態では、物理ネットワークは、図4及び図5を参照して説明するネットワーク403と同じであってもよいし、類似していてもよい。図2において、「DN」は、専用ノード(例えば、アプリケーションによって予約され、使用されていないノード)を示し、各DN及び計算ノード内の小さなボックスは、H−POMDPエージェントを示す。本明細書で説明するように、実施形態では、H−POMDPエージェントは強化学習エージェントとすることができる。本明細書で説明するように、コアごとの(又はコアの一部ごとの)ポリシー(各コア又はコア部分への電力の割り当てなど)が提供されることができる。図2に示すように、各計算ノードは、1つ以上のコアを含むことができる。また、実施形態では、リーフのH−POMDPエージェントは、計算ノード内の任意のポリシー(コアごとのポリシーの調整を含むことができる)を調整する役割を担う。
一実施形態では、確率的ポリシー勾配技術が使用される。HGPPMツリーの各ノードは強化学習POMDPアルゴリズムを実装し、ポリシー勾配法を適用して最適なポリシーを探索する。例えば、ポリシーは、ディスクリートなノブ設定のセットに対する確率分布と考えられる。例えば、ノブは、親エージェントが子供達の間でどのように電力を割り当てることができるかの選択肢のセットを含む。ポリシーは、分布からノブの設定をサンプリングし、何回かテストし、結果として生じる報酬を測定することによって評価される。実施形態における勾配上昇と類似の方法を通じてポリシーが改善される。勾配ベースの方法を使用するため、ポリシーは微分可能にされる、確率的ソフトマックスポリシーを適合させることによって微分可能にされることができる。次いで、報酬の勾配がポリシーに関して推定され、ポリシーを勾配方向にステップして、報酬を最大化するポリシーに移動させることができる。確率的ポリシーは、よりシンプルな勾配方法の「局所的最大の」落とし穴(local maxima pitfall)を避け、探索(exploration)と利用(exploitation)のトレードオフのバランスをとるように適合されることができる。
一実施形態では、以下の操作が、確率的なポリシー勾配を実装するために使用されることができる。確率的ポリシー勾配アルゴリズムは、Natural Actor-Criticフレームワークを使用して実装されることができる。ここで、aはアクション(別名ノブ設定)であり、rは報酬であり、αはステップサイズである。
Figure 2018500673
前述したように、ポリシーを微分可能にし、勾配ベースの学習に適したものにするために、確率的ソフトマックスポリシーが使用されることができる。特に、多項分布の指数関数族パラメータ化が使用されて、各ノブiに実数重みθのセットを与える。ノブiに対する確率分布からサンプリングするときにn個の可能性からノブ設定jを得る確率は、
Figure 2018500673
によって与えられる。
Natural Actor Criticアルゴリズムに必要とされる勾配は、
Figure 2018500673
によって(効率的に)計算されることができる。ここで、
Figure 2018500673
は、ノブiが取ることのできる設定についての現在の確率分布であり、tは、アルゴリズムの時間ステップであり、∇は勾配演算子であり、∇θはθに関する勾配である。
Figure 2018500673
は、
Figure 2018500673
によって与えられるインデックスにおいてa1を備えたゼロベクトルである。
本明細書で説明するように、HGPPMは、ジョブ内のノード間で電力の均衡をとることによってアプリケーションの負荷不均衡を修正するために適用されることができる。負荷均衡の問題が階層的にどのように分解されることができるのかについての一例では、ジョブ全体に対する負荷均衡の問題は、ジョブで使用されるキャビネット間での負荷均衡に、次いで、各キャビネット内のノード間での負荷均衡に、次いで、各ノードにマップされたタスク間での負荷均衡に、次いで、各タスクを実行しているコア間での負荷均衡に分割される。各粒度では、パフォーマンスが動的に比較され、電力は、アプリケーションのパフォーマンスを最大化又は向上させるために、先行する計算要素から遅れている要素に(シーケンスにおいて次のマイルストーンへの到達及び障壁への到達を参照して)導かれる。
ある実施形態は、a)子供エージェントのパフォーマンスの不一致はペナルティーを科される、b)集約パフォーマンスが報酬を受けているように、各エージェントに、子供達の間でのその入力電力バジェットの最良配分を学習させ、目的関数を定義することによって、ジョブの負荷分散のプロセスを強化学習の抽象化にマッピングする。ここで、集約パフォーマンスは、子供エージェントによって取得された最小パフォーマンスとみなされる。各子供エージェントのパフォーマンスは、いくつかのサンプル数の平均値又は中央値(又は他の関数)である。各エージェントは、(その親からの)その入力バジェットを子供達の間でどのように分割して、子供達から最高の成果を得るかを学習する。子供達は、今度は、彼らのバジェットを取り、その彼らの子供達などにバジェット(budget)を分割する。ツリーの最下位レベルでの決定では、ハードウェアが異なるタイプのプロセッサと外部メモリリソースとでどのように電力を分割すべきかを指定することができる。パフォーマンスは、多くの指標(metrics)に基づいて定義されることができる。例えば、H−POMDPツリーの最下位レベルでは、指標は、コア周波数、次のアプリケーションマイルストーン(プログラマが作成した注釈を介してHGPPMに提供される、若しくはパフォーマンスカウンタの分析によって自動的に推察される又は他の手段)又は他の手段)に向けた各コアの進行の測定、マイルストーン間で今までに完了したアプリケーションのフェーズのランタイム、リタイアした命令の割合(rate)、メインメモリアクセスの割合等とすることができる。
一般に、H−POMDPにおける各強化学習エージェントによって評価される目的関数は、各子供の目的関数値の集約である。子供の目的関数値の最小、平均、変動等を含め、多くの集約が可能である。一実施形態では、目的関数は、パフォーマンスを最大化することである場合、ノードのパフォーマンスは、ノード内のプロセッサの任意のアクティブコアの最小パフォーマンスとして定義されることができ、キャビネットのパフォーマンスは、キャビネット内の任意のアクティブノードの最小パフォーマンスとして定義され、ジョブのパフォーマンスは、ジョブ内のアクティブキャビネットの最小パフォーマンスとして定義されることができる。集約計算は、HGPPM技術によって、及び/又はHPCシステム内のSCONの支援を通じて実行されることができる。
本明細書で説明するように、HGPPMの実施形態は、(電力バジェットを超える)異なる種類のポリシーを調整し、一度に複数のタイプを調整することができる。このモードでは、HGPPM技術はポリシーを結合ポリシー(joint policy)に構成する。強化学習エージェントは、結合ポリシーオプションで実験し、目的関数に従って結合ポリシーを最適化する。一例では、各ノードに対して1つの強化学習エージェントで終了する階層を考える。エージェントが、ノードにおける様々なタイプのハードウェアリソース間でノードの電力バジェットをどうのように分割するかということと、ノード上の各ソフトウェアプロセスが利用するスレッド/コアの数はいくつかということの、2つのポリシーを結合して学習することが任せられている場合を考える。エージェントは、電力バジェットの選択肢と並列性の選択肢の各組み合わせに対して1つのオプションを有する結合ポリシーを作成する。学習エージェントは、新しい電力バジェットの選択肢と新しい並列性の選択肢を一緒にテストして、目的関数での組み合わせ効果を測定し、経時的に最良の結合ポリシーに向けてナビゲートする。
図3は、図2の計算ノードの1つのうち、リーフH−POMDP RLエージェントに拡大表示している。RLエージェントへの入力(図3では、観測量(Observables)とラベル付けされている)及びRLによって出力される新しいポリシー設定を含め、RLエージェント、アプリケーション、及びノード内のプロセッサ間の相互作用が示されている。この図は、上記で説明したポリシー例の管理を示す。アプリケーションプロセスごとのスレッド数と、ハードウェアリソース間でのノード電力バジェットの分割である。一実施形態では、H−POMDP RLエージェントは、アプリケーションからパフォーマンス及び位相信号を取り込む。他の実施形態では、パフォーマンス及び位相信号は、(前述のように)アプリケーションのプログラマ注釈なしでHGPPMによって自動的に推察されてもよい。プロセッサから、H−POMDP RLエージェントはエネルギー信号を取り込む。RLエージェントの出力は、新しいポリシー設定(例えば、アプリケーションプロセスごとのスレッド数についての新しい設定、又はノードのハードウェアコンポーネント間でのノード電力バジェットの新たな再分割)である。
観測量は、様々な方法で合成されて、所望の目的関数を定義する。目的関数は評価され、(前述のように)報酬として学習(Learning)アルゴリズムに供給される。RLエージェントは、この報酬信号を使用して、異なるポリシー設定の影響を測定する。RLエージェントはポリシーを制定することによってポリシー設定で実験し(図3では、出力ポリシー設定はアクション(Actions)としてラベル付けされている)、観測量及び報酬信号への影響を測定して、経時的にポリシー空間を探索する。前述のように、RLエージェントは、最良のポリシー設定を識別するまで、効率的なやり方で探索して、経時的にポリシー空間をナビゲートする。
図3の図は、複数のポリシーが合成されたHGPPMの実施形態の例である。より多くのポリシーが合成されるにつれて、探索空間のサイズが指数関数的に増加することがある。また、探索空間を複雑にするポリシー間の依存関係もある。上述した結合ポリシー(ノードハードウェアリソース間でのノード電力バジェットの分割とソフトウェアプロセスごとのスレッド/コア数)は、複雑な相互依存関係を持つ結合ポリシーの一例である。リソース間での最適な電力分割は、通信、メモリ、及びアプリケーションプロセス内での計算のバランスに依存し、そのバランスはアプリケーションプロセスによって採用されているスレッド/コアの数に依存し、アプリケーションプロセスが使用するスレッド/コアの最適な数は、利用可能な通信、メモリ、及び計算帯域幅に依存する(ただし、帯域幅の量は、各リソースがどの位の電力を割り当てられたかよって異なる)。
HGPPMの一実施形態は、確率的ポリシー勾配強化学習技術を採用することによって、複雑なトレードオフを伴う大きな探索空間を処理するようにスケールする。確率的ポリシー勾配技術は、ポリシーに関する目的関数指標の勾配を推定し、次に勾配方向にステップする。次の回では、試行される結合ポリシーオプションは、(勾配方向において)前のものから離れたステップのものである。確率的ポリシー勾配法は、空間全体を徹底的に探索するのではなく、結果の改善が期待される方向のみ試行して、勾配方向にステップを取得し、指数関数的な探索空間をナビゲートする。
勾配ベースの探索技術の1つの欠点は、探索空間が凸形状であると仮定する傾向があることである。もしそうでなければ、この方法は全体的に最適な決定に着地することが保証されない。このため、通常のポリシー勾配アルゴリズムではなく、確率的ポリシー勾配アルゴリズムが採用され得る。勾配方向に基づいて次のポリシーオプションを選択する代わりに、確率が全てのオプション及び分布からのサンプルに割り当てられる。非ゼロの確率であれば、勾配によって示されていない方向にステップが取られ、最適となる。そうすることで、この実施形態は極大値を免れることができる。確率的ポリシー勾配アルゴリズムでは、目的関数を最大化するポリシーオプションを学習する代わりに、それを最大化するポリシー分布が学習される。勾配方向のステップは、確率分布を更新し、勾配と一致する方向により多くの確率を割り当てる傾向があるが、他のオプションを選択する可能性が依然としてある。
一実施形態で適合されるアプローチは、強化学習技術及びH−POMDPを用いて3つの古典的な課題にも対処する。第1の課題は、強化学習が、ポリシー空間の新しい領域の探索と最もよく知られている最適なポリシーを利用とのバランスを取ることと関係している。探索を重視しすぎる方法は、大部分の時間に次善のポリシーを使用する。利用を重視する方法は、次善のポリシーで妥協してしまい、潜在的な利益をテーブルに残す可能性がある。いくつかの実施形態で使用される確率的ポリシー勾配技術は、全てのポリシーオプションがポリシー分布において非ゼロ確率を有するため、探索空間の新しい領域が試行されることを保証する。
さらに、勾配ステップを取って有望な方向に重みを加えるために分布を更新することは、「最もよく知られている」オプション及び探索を台無しにする強い偏りを徐々に作り出してしまう危険性があるように見えるが、一実施形態は、分布をゆっくりと均一な分布にすることによって過大な偏りにカウンターバランスととる正規化(regularizer)コンポーネントを組み込む。これらの相反する力の強さは、ランタイム時に体系的に調整される。一実施形態は、目的関数指標とポリシーとの間の関係がどれほど安定的で予測できるかを測定する。関係がより安定的で予測できるほど、勾配ステップの力が強くなる(注:各ステップで追加されるバイアスの量は一定であるが、勾配ステップが頻繁に取られることで、力を効果的に強くすることになり得る)。関係が不安定である、又は予測できない場合、正規化が勝つ。
第2の課題は、強化学習制御システムだけでなく、全ての制御システムに影響を及ぼすものである。それはノイズの課題である。実施形態は、上記の対向する力機構を通じて部分的に、そして、デジタル信号処理技術を通じて部分的に、ノイズの課題を解決する。特に、ノイズは、目的関数指標とポリシーとの間の関係が不十分に予測されてしまう原因となる。実施形態は、ノイズが直近で低レベルであり、その関係が予測可能であるとき(言い換えると、勾配結果がより良好なポリシーに向けて導くように信頼し得るとき)にのみ勾配ステップを取る。高ノイズの期間では、正規化が勝ることになる。一実施形態は、各勾配ステップ及び各正規化ステップのバイアス強度を設定する自由パラメータを有する。これらのパラメータは、アプリケーションが目的関数指標とポリシーとの間に安定した予測可能な関係を備えた期間を経験している限り、勾配ステップのバイアスが全体的に勝り、ポリシー分布が時間の経過とともに最適に近づくように設定されている。多くの方法が、バイアス及び正規化ステップサイズを設定するために使用されることができる。いくつかは手動であるが、標準的な技術に従うことができ、いくつかは自動のオンライン方法である。
ノイズの課題を解決するためにいくつかの実施形態が使用する他のメカニズムは、デジタル信号処理である。多くの信号処理方法が使用されることができる。一例では、移動平均又はメジアンフィルタが目的関数信号に適用される。この種のフィルタは、以前の値の短い履歴を使用して信号を平滑化する傾向がある。目的関数の入力にフィルタを適用することが可能である。これは、目的関数が、分母のノイズが除算演算によって増幅されるため、比較的小さな振幅の信号で除算する場合、利点を有することができる。
第3の課題は、H−POMDP強化学習の階層全体に分散された調整であるにもかかわらず、制御の安定性を保証することである。次の例を考える。その子供達の間でそのバジェットの最適な分割を子供が探索する機会を得る前に、親が新たな電力バジェットに変更する場合を想定する。それが起こる場合、親は電力バジェットがどの位うまく働くのかについての推察について子供たちからの不完全なデータを基礎とする可能性がある。実際には、両親は子供達から完全なデータを得ることは決してない可能性があり、データは確率的なものではある。それでも、子供達がバジェットの良好な分割を見つける時間が与えられていない限り、H−POMDPは収束することは決してない可能性がある、又は良好な全体的なポリシーに収束するには時間がかかりすぎる可能性がある。
いくつかの実施形態による、この問題に対する多くの解決策がある。1つの例は、強化習得エージェントが予め定められた時間間隔において、移動が階層を上がるにつれて(リーフからルートへ)粗となる(coarsening)継続期間で動作するようにアレンジすることを含む。もう1つのアプローチは、エージェントの階層全体で調整タイムスケールを自己設定できるようにすることである。階層のレベルは可能な限り速く動作するが、速度は正確性を保証するようにレート制限される。つまり、親のブロックは子供からの入力を待ち、子供は、子供が良好なポリシー(例えば、電力の良好な割り当て)を達成したときに、目的関数を評価するために必要なパフォーマンス又は他の情報のみを親まで送信する。その結果、子供は準備が整う前に、親は新しいポリシー(例えば、子供のための新たな電力バジェット)を設定することができない。この自己設定戦略には、全体的なポリシー最適化の応答性を最大化するという利点がある。いくつかの実施形態によれば、良好なポリシーにいつ到達したかを決定する多くの方法がある。1つの標準的な方法が収束テストである。つまり、最後のk回の反復でのポリシーの変更がイプシロン未満である場合は、良好なポリシーに達したことになる。k及びイプシロンは、オフラインの手動手順に従って調整され得る自由パラメータである。
H−POMDP階層の最後のレベルでは、強化学習エージェントは子供を有していない。この階層レベルでは、エージェントはいつ目的関数指標をサンプリングし、新しいポリシーオプションを試行するかを選択することができる。目的関数は、例えば、フェーズ期間(phase duration)よりも粗い一定の時間間隔でサンプリングされる、又はフェーズ期間よりも細かい一定の時間間隔でサンプリングされる、フェーズ変化事象でサンプリングされることができる。新しいポリシーは、1つ以上のサンプルが収集された後でテストされることができるが、各テストに対して取得するサンプル数は可変でも、固定でもよい。
さらに、いくつかの実施形態は、フェーズベースの最適化と相乗的とすることができる。フェーズベースの最適化では、各アプリケーションフェーズに対する強化学習エージェント用に1つの状態のコピーがインスタンス化される。強化学習エージェントの類似又は同一のH−POMDP階層が使用されることができるが、それらは、アプリケーションがどのフェーズにあるかに応じて異なる状態で動作する。任意の所与の時間で、実施形態は現在のアプリケーションフェーズを決定し、正確な状態をロードする。強化学習エージェントは、全てのフェーズで同じ目的関数に対して最適化することを任されているが、異なるフェーズは独自のポリシーを有する可能性がある。さらに、現在のフェーズ及び各フェーズに対するポリシーの定義は、前述のように多くの方法で決定されることができる。いくつかの例は、アプリケーション(又は他のソフトウェア層)の注釈を介してプログラマから情報を得ることを含む。現在のフェーズを決定する場合、異なる計算リソース内のアクティビティの動的分析を通じて(ハードウェアのイベントカウンタの使用を介して)推察されることもできる。
図4は、実施形態によるコンピューティングシステム400のブロック図を示す。コンピューティングシステム400は、相互接続ネットワーク(又はバス)404を介して通信する1つ以上の中央処理装置(CPU)402又はプロセッサを含むことができる。プロセッサ402は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク403を介して通信されるデータを処理するもの)、アプリケーションプロセッサ(携帯電話、スマートフォンなどで使用されるもの等)、又は他のタイプのプロセッサ(縮小命令セットコンピュータ(RISC)プロセッサ又は複合命令セットコンピュータ(CISC)を含む)。
有線(例えば、イーサネット(登録商標)、ギガビット、ファイバ等)又は無線ネットワーク(セルラー、3G(第3世代携帯電話技術又は第3世代無線フォーマット(UWCC))、4G(第4世代(無線/移動通信))、低電力埋め込み(例えば、LPE)等)を含む様々なタイプのコンピュータネットワーク403が利用されることができる。さらに、プロセッサ402は、単一又は複数のコア設計を有することができる。マルチコア設計を備えるプロセッサ402は、同一の集積回路(IC)ダイ上に異なるタイプのプロセッサコアを集積することができる。また、マルチコア設計を備えるプロセッサ402は、対称又は非対称のマルチプロセッサとして実装されることができる。
実施形態では、1つ以上のプロセッサ402は、図1のプロセッサ102と同じであってもよく、類似していてもよい。例えば、1つ以上のプロセッサ402は、1つ以上のコア106及び/又はキャッシュ108を含むことができる。また、図1から3を参照して説明された動作は、システム400の1つ以上のコンポーネントによって実行されることができる。
チップセット406はまた、相互接続ネットワーク404と通信することができる。チップセット406は、グラフィックス及びメモリ制御ハブ(GMCH)408を含むことができる。GMCH408は、メモリ114と通信するメモリコントローラ410(これは、図1のメモリコントローラ120と同じであってもよく、類似しいてもよい)。システム400はまた、様々な場所(図4に示されているもの等があるが、システム400内の他の場所(図示せず)に存在することができる)にロジック150を含むことができる。メモリ114は、CPU402、又はコンピューティングシステム400に含まれる任意の他のデバイスによって実行される一連の命令を含むデータを記憶することができる。一実施形態では、メモリ114は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)等の1つ以上の揮発性/不揮発性の記憶(若しくはメモリ)デバイス又はハードディスク、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、フラッシュメモリ、スピン注入メモリ(STTRAM)、抵抗ランダムアクセスメモリ、PCM(相変化メモリ)などの3Dクロスポイントメモリ、NAND/NORメモリを備えるソリッドステートドライブ(SSD)等の他のタイプの記憶デバイスを含むことができる。追加のデバイスは、複数のCPU及び/又は複数のシステムメモリなどの相互接続ネットワーク404を介して通信することができる。
GMCH408はまた、グラフィックスアクセラレータ416と通信するグラフィックスインタフェース414を含むことができる。一実施形態では、グラフィックスインタフェース414は、アクセラレーテッドグラフィックスポート(AGP)又はペリフェラルコンポーネントインターコネクト(PCI)(若しくはPCIエクスプレス(PCIe)インタフェース)を介してグラフィックスアクセラレータ416と通信することができる。実施形態では、(フラットパネルディスプレイ、タッチスクリーン等の)表示装置417は、例えば、ビデオメモリ、システムメモリ等の記憶デバイスに記憶されている画像のデジタル表現を、ディスプレイによって解釈され、表示される表示信号に変換する信号変換器を介してグラフィックスインタフェース414と通信することができる。表示装置によって生成された表示信号は、表示装置417によって解釈され、続いて表示される前に、様々な制御装置を通過することができる。
ハブインタフェース418は、GMCH408と入出力制御ハブ(ICH)420とが通信するのを可能にすることができる。ICH420は、コンピューティングシステム400と通信するI/Oデバイスへのインタフェースを提供することができる。ICH420は、ペリフェラルコンポーネントインターコネクト(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、他のタイプの周辺ブリッジ又はコントローラ等の周辺ブリッジ(又はコントローラ)424を介してバス422と通信することができる。ブリッジ424は、CPU402と周辺装置との間にデータ経路を提供することができる。他のタイプのトポロジが利用されてもよい。また、複数のバスが、例えば複数のブリッジ又はコントローラを介してICH420と通信することができる。さらに、ICH420と通信する他の周辺機器は、様々な実施形態において、インテグレーテッドドライブエレクトロニクス(IDE)若しくはスモールコンピュータシステムインタフェース(SCSI)ハードドライブ、USBポート、キーボード、マウス、パラレルシリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタルビデオインタフェース(DVI))、又は他の装置を含むことができる。
バス422は、オーディオデバイス426、1つ以上のディスクドライブ428及びネットワークインタフェースデバイス430(例えば、有線又は無線インタフェースを介してコンピュータネットワーク403と通信する)と通信することができる。図示しているように、ネットワークインタフェースデバイス430はアンテナ431に結合されることができ、無線(例えば、米国電気電子学会(IEEE)802.111インタフェース(IEEE802.11a/b/g/nなどを含む)、セルラーインタフェース、3G、4G、LPE等を介して)でネットワーク403と通信する。他のデバイスは、バス422を介して通信することができる。また、いくつかの実施形態では、様々なコンポーネント(ネットワークインタフェースデバイス430など)がGMCH408と通信することができる。さらに、プロセッサ402及びGMCH408は、単一のチップを形成するように組み合わせられることができる。さらに、他の実施形態ではグラフィックスアクセラレータ416は、GMCH408内に含まれてもよい。
さらに、コンピューティングシステム400は、揮発性及び/又は不揮発性メモリ(又はストレージ)を含むことができる。例えば、不揮発性メモリは、リードオンリメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、428)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、光磁気ディスク又は電子データ(例えば、命令を含む)を記憶することができる他のタイプの不揮発性の機械読み取り可能媒体を含む。
図5は、実施形態による、ポイントツーポイント(PtP)構成でアレンジされたコンピューティングシステム500を示す。特に、図5は、プロセッサ、メモリ、及び入出力装置が多数のポイントツーポイントインタフェースによって相互接続されているシステムを示す。図1〜図4を参照して説明した動作は、システム500の1つ以上のコンポーネントによって実行されることができる。
図5に示すように、システム500はいくつかのプロセッサを含むことができ、そのうちの2つのプロセッサ502及び504のみが明確性のために示されている。プロセッサ502及び504はそれぞれ、メモリ510及び512との通信を可能にするローカルメモリコントローラハブ(MCH)506及び508を含むことができる。メモリ510及び/又は512は、図1及び/又は図4のメモリ114を参照して説明したような様々データを記憶することができる。また、いくつかの実施形態では、MCH506及び508は、図1〜図4のメモリコントローラ120及び/又はロジック150を含むことができる。
実施形態では、プロセッサ502及び504は、図2を参照して説明したプロセッサ402のうちの1つとすることができる。プロセッサ502及び504は、PtPインタフェース回路516及び518をそれぞれ使用して、ポイントツーポイント(PtP)インタフェース514を介してデータを交換することができる。また、プロセッサ502及び504は、ポイントツーポイントインタフェース回路526,528,530及び532を使用して、個々のPtPインタフェース522及び524を介してチップセット520とそれぞれデータを交換することができる。チップセット520は、高パフォーマンスグラフィックスインタフェース536を介して、例えば、PtPインタフェース 回路537を使用して、高パフォーマンスグラフィックス回路534とデータを交換することができる。図4で説明したように、いくつかの実施形態では、グラフィックスインタフェース536は表示装置(例えば、ディスプレイ417)に結合されることができる。
図5に示すように、図1のコア106及び/又はキャッシュ108の1つ以上は、プロセッサ502及び504内に位置することができる。しかし、他の実施形態は、図1のシステム500内の他の回路、ロジックユニット又は装置に存在してもよい。さらに、他の実施形態は、図5に示すいくつかの回路、ロジックユニット又はデバイス全体に分散することができる。
チップセット520は、PtPインタフェース回路541を使用してバス540と通信することができる。バス540は、それと通信する、バスブリッジ542、I/Oデバイス543等の1つ又は複数のデバイスを有することができる。バス544を介して、ブリッジ542は、キーボード/マウス545、通信デバイス546(例えば、アンテナ431を介したものを含めて、ネットワークインタフェースデバイス430を参照して説明したように、モデム、ネットワークインタフェースデバイス、コンピュータネットワーク403と通信することができる他の通信装置等)オーディオI/Oデバイス及び/又はデータ記憶装置548と通信することができる。データ記憶装置548は、プロセッサ502及び/又は504によって実行され得るコード549を記憶することができる。
いくつかの実施形態では、本明細書で説明したコンポーネントの1つ以上は、システムオンチップ(SOC)デバイス上に具体化されることができる。図6は、実施形態によるSOCパッケージのブロック図を示す。図6に示すように、SOC602は、1つ以上の中央処理装置(CPU)コア620と、1つ以上のグラフィックスプロセッサユニット(GPU)コア630と、入力/出力(I/O)インタフェース640と、メモリコントローラ120とを含む。他の図を参照して本明細書で説明したSCON204等、SOCパッケージ602の様々なコンポーネントが相互接続又はバス/ネットワークに結合されることができる。また、SOCパッケージ602は、他の図を参照して本明細書で説明したような、より多くの又はより少ないコンポーネントを含むことができる。さらに、SOCパッケージ602の各コンポーネントは、例えば、本明細書の他の図を参照して説明したように、1つ以上の他のコンポーネントを含むことができる。一実施形態では、SOCパッケージ602(及びそのコンポーネント)は、例えば、単一の半導体デバイス上にパッケージ化された1つ以上の集積回路(IC)ダイ上に提供される。
図6に示すように、SOCパッケージ602は、メモリコントローラ120などのインタフェースを介して(SOCパッケージ602の外部にある)メインメモリ114に結合される。実施形態では、メモリ114(又はその一部)は、SOCパッケージ602上に統合されることができる。
I/Oインタフェース640は、例えば、他の図を参照して本明細書で説明したような相互接続及び/又はバスを介して、1つ以上のI/Oデバイス670に結合されることができる。I/Oデバイス670は、キーボード、マウス、タッチパッド、ディスプレイ、画像/ビデオキャプチャデバイス(カメラ、ビデオカメラ/ビデオレコーダなど)、タッチスクリーン、スピーカ等の1つ以上を含むことができる。さらに、実施形態では、SOCパッケージ602は、ロジック150を含む/統合することができる。あるいは、ロジック150は、SOCパッケージ602の外部に(すなわち、ディスクリートなロジックとして)提供されることができる。
以下の例は、さらなる実施形態に関連する。
例1は、複数のノードの各ノードに結合され、複数のノードに送信するための電力及びパフォーマンス管理のためのポリシーの決定を引き起こすロジックを含み、前記ポリシーは、前記複数のノードにわたる電力及びパフォーマンス管理の調整を引き起こすものであり、前記ポリシーは、1つ以上の目的関数に向けてジョブを管理するものであり、前記ジョブは前記複数のノード上で同時に動作する複数のタスクを含む、装置を含む。
例2は、前記ロジックは、前記複数のノードの各々に対して別個のポリシーを決定するものである、例1に記載の装置を含む。
例3は、前記ロジックは、前記複数のノードの各々の少なくとも一部に対して別個のポリシーを決定するものである、例1に記載の装置を含む。
例4は、前記1つ以上の目的関数は、電力上限を満たしながらパフォーマンスを最大化すること、電力上限を満たしながらエネルギー効率を最大化すること、前記電力上限を満たしながら前記複数のノードの間のパフォーマンス差を最小限に抑えること、パフォーマンスを最大化すること若しくは効率を最大化すること又は電力上限を満たしながらパフォーマンスを最大化しつつ効率を最大化することの1つ以上を含むものである、例1に記載の装置を含む。
例5は、前記ロジックは、階層的機械学習操作に従って動作する、例1に記載の装置を含む。
例6は、前記ロジックは、負荷不均衡の問題、スケーラビリティの問題、又はフレキシビリティの問題のうちの1つ以上を解くための1つ以上の動作を実行するものである、例1に記載の装置を含む。
例7は、前記ポリシーは、前記ジョブ内の全てのノードにわたる電力及びパフォーマンス管理を調整するものである、例1に記載の装置を含む。
例8は、前記ポリシーは、前記ジョブ内の全てのノードにわたり、かつ、ソフトウェア及びハードウェア抽象化層にわたる電力及びパフォーマンス管理を調整するものである、例1に記載の装置を含む。
例9は、前記ロジックは、確率的ポリシー勾配法に従って前記ポリシーを決定するものである、例1に記載の装置を含む。
例10は、前記複数のノードはキャビネットを形成し、前記ポリシーは1つ以上のキャビネット間で階層的に分解され(decomposed)、次いで、前記複数のノード間で分解される、例1に記載の装置を含む。
例11は、前記複数のノードを結合するスケーラブルオーバレイネットワークをさらに含む、例1に記載の装置を含む。
例12は、前記複数のノードを結合するスケーラブルオーバレイネットワークをさらに含み、該スケーラブルオーバレイネットワークは、電力又はパフォーマンステレメトリの集約及び制御の分散を提供する、例1に記載の装置を含む。
例13は、システムオンチップ(SOC)集積回路が前記ロジック及び前記メモリを含む、例1に記載の装置を含む。
例14は、前記複数のノードの各ノードは、1つ以上のプロセッサコアを有するプロセッサと、1つ以上のプロセッサコアを有する画像処理ユニットと、ネットワークファブリックへの接続、ログインコンポーネント、サービスコンポーネント、メモリ、又は入出力デバイスの1つ以上を含むものである、例1に記載の装置を含む。
例15は、複数のノードの各ノードに対して電力及びパフォーマンス管理のためのポリシーの決定を引き起こすステップと、前記ポリシーを前記複数のノードに送信するステップとを含み、前記ポリシーは、前記複数のノードにわたる電力及びパフォーマンス管理の調整を引き起こすものであり、前記ポリシーは、1つ以上の目的関数に向けてジョブを管理するものであり、前記ジョブは前記複数のノード上で同時に動作する複数のタスクを含む、方法を含む。
例16は、前記複数のノードの各々に対して別個のポリシーを決定するステップをさらに含む、例15に記載の方法を含む。
例17は、前記複数のノードの各々の少なくとも一部に対して別個のポリシーを決定するステップをさらに含む、例15に記載の方法を含む。
例18は、前記1つ以上の目的関数は、電力上限を満たしながらパフォーマンスを最大化すること、電力上限を満たしながらエネルギー効率を最大化すること、前記電力上限を満たしながら前記複数のノードの間のパフォーマンス差を最小限に抑えること、パフォーマンスを最大化すること若しくは効率を最大化すること又は電力上限を満たしながらパフォーマンスを最大化しつつ効率を最大化することの1つ以上を含む、例15に記載の方法を含む。
例19は、前記決定は階層的機械学習操作に従って動作する、例15に記載の方法を含む。
例20は、前記決定は、負荷不均衡の問題、スケーラビリティの問題、又はフレキシビリティの問題のうちの1つ以上を解くように実行される、例15に記載の方法を含む。
例21は、前記ポリシーが、前記ジョブ内の全てのノードにわたる電力及びパフォーマンス管理を調整することをさらに含む、例15に記載の方法を含む。
例22は、前記ポリシーが、前記ジョブ内の全てのノードにわたり、かつ、ソフトウェア及びハードウェア抽象化層にわたる電力及びパフォーマンス管理を調整することをさらに含む、例15に記載の方法を含む。
例23は、確率的ポリシー勾配法に従って前記ポリシーを決定するステップをさらに含む、例15に記載の方法を含む。
例24は、前記複数のノードはキャビネットを形成し、前記ポリシーは1つ以上のキャビネット間で階層的に分解され、次いで、前記複数のノード間で分解される、例15に記載の方法を含む。
例25は、スケーラブルオーバレイネットワークを介して、前記複数のノードを結合するステップをさらに含む、例15に記載の方法を含む。
例26は、スケーラブルオーバレイネットワークを介して、前記複数のノードを結合するステップをさらに含み、該スケーラブルオーバレイネットワークは、電力又はパフォーマンステレメトリの集約及び制御の分散を提供する、例15に記載の方法を含む。
例27は、プロセッサ上で実行されて、該プロセッサが1つ以上の動作を実行するように構成する該1つ以上の命令を含むコンピュータ読み取り可能媒体であって、該1つ以上の命令は、複数のノードの各ノードに対して電力及びパフォーマンス管理のためのポリシーの決定を引き起こすステップと、前記ポリシーを前記複数のノードに送信するステップとを含み、前記ポリシーは、前記複数のノードにわたる電力及びパフォーマンス管理の調整を引き起こすものであり、前記ポリシーは、1つ以上の目的関数に向けてジョブを管理するものであり、前記ジョブは前記複数のノード上で同時に動作する複数のタスクを含む。
例28は、前記プロセッサ上で実行されて、前記プロセッサが前記1つ以上の動作を実行するように構成する前記1つ以上の命令を含み、前記1つ以上の命令は、前記複数のノードの各々に対して別個のポリシーを決定するステップをさらに含む、例27に記載のコンピュータ読み取り可能媒体を含む。
例29は、前記プロセッサ上で実行されて、前記プロセッサが前記1つ以上の動作を実行するように構成する前記1つ以上の命令を含み、前記1つ以上の命令は、前記複数のノードの各々の少なくとも一部に対して別個のポリシーを決定するステップをさらに含む、例27に記載の方法を含む。
例30は、前述の例のいずれか一つに記載の方法を実行する手段を含む装置を含む。
例31は、実行されると、前述の例のいずれか一つに記載の方法を実装する又は装置を実現する機械読み取り可能命令を含む機械読み取り可能媒体を含む。
様々な実施形態において、例えば、図1から6を参照して、本明細書で説明されている動作は、ハードウェア(例えば、回路)、ソフトウェア、ファームウェア、マイクロコード又はそれらの組み合わせで実装され、本明細書で説明されているプロセスを実行するようにコンピュータをプログラムするために使用される命令(又は、ソフトウェア手順)を記憶した有形の(例えば、非一時的な)機械読み取り可能又はコンピュータ読み取り可能媒体を含むコンピュータプログラム製品として提供されることができる。また、用語「ロジック」は、例として、ソフトウェア、ハードウェア又はソフトウェアとハードウェアの組み合わせを含むことができる。機械読み取り可能媒体は、図1〜図3に関して説明したような記憶装置を含むことができる。
さらに、そのような有形のコンピュータ読み取り可能媒体は、コンピュータプログラム製品としてダウンロードされてもよく、ここで、プログラムは、通信リンク(例えば、バス、モデム又はネットワーク接続)を介して、データ信号(例えば、搬送波、他の伝播媒体等における)によりリモートコンピュータ(例えば、サーバ)から要求コンピュータ(例えば、クライアント)に転送される。
明細書中の「一実施形態」又は「実施形態」とは、実施形態に関連して説明されている特定の特徴、構造、又は特性が少なくとも1つの実装に含められることができることを意味する。本明細書の様々な場所での語句「一実施形態では」が出現しているが、全て同じ実施形態を示すこともできるし、示さないこともできる。
また、明細書及び特許請求の範囲において、用語「結合された」及び「接続された」は、それらの派生語と共に使用されることができる。いくつかの実施形態では、「接続された」は、2つ以上の要素が互いに直接的に物理的又は電気的に接触していることを示すために使用されることができる。「結合された」とは、2つ以上の要素が直接的に物理的又は電気的に接触していることを意味することがある。しかし、「結合された」とは、2つ以上の要素が互いに直接的に接触していないが、依然として互いに協働し又は相互作用していることを意味することもできる。
したがって、実施形態は、構造的特徴及び/又は方法論的行為に特有の言語で説明されているが、特許請求の範囲に記載されている主題は、説明されている特定の特徴又は動作に限定されないことを理解されたい。むしろ、特定の特徴及び動作は、特許の請求の範囲に記載されている主題を実装するための実例形式として開示されている。

Claims (26)

  1. 複数のノードの各ノードに結合され、複数のノードに送信するための電力及びパフォーマンス管理のためのポリシーの決定を引き起こすロジックを含み、
    前記ポリシーは、前記複数のノードにわたる電力及びパフォーマンス管理の調整を引き起こすものであり、前記ポリシーは、1つ以上の目的関数に向けてジョブを管理するものであり、前記ジョブは前記複数のノード上で同時に動作する複数のタスクを含む、装置。
  2. 前記ロジックは、前記複数のノードの各々に対して別個のポリシーを決定するものである、請求項1に記載の装置。
  3. 前記ロジックは、前記複数のノードの各々の少なくとも一部に対して別個のポリシーを決定するものである、請求項1に記載の装置。
  4. 前記1つ以上の目的関数は、電力上限を満たしながらパフォーマンスを最大化すること、電力上限を満たしながらエネルギー効率を最大化すること、前記電力上限を満たしながら前記複数のノードの間のパフォーマンス差を最小化すること、パフォーマンスを最大化すること若しくは効率を最大化すること又は電力上限を満たしながらパフォーマンスを最大化しつつ効率を最大化することの1つ以上を含むものである、請求項1に記載の装置。
  5. 前記ロジックは、階層的機械学習操作に従って動作する、請求項1に記載の装置。
  6. 前記ロジックは、負荷不均衡の問題、スケーラビリティの問題、又はフレキシビリティの問題のうちの1つ以上を解くための1つ以上の動作を実行するものである、請求項1に記載の装置。
  7. 前記ポリシーは、前記ジョブ内の全てのノードにわたる電力及びパフォーマンス管理を調整するものである、請求項1に記載の装置。
  8. 前記ポリシーは、前記ジョブ内の全てのノードにわたり、かつ、ソフトウェア及びハードウェア抽象化層にわたる電力及びパフォーマンス管理を調整するものである、請求項1に記載の装置。
  9. 前記ロジックは、確率的ポリシー勾配法に従って前記ポリシーを決定するものである、請求項1に記載の装置。
  10. 前記複数のノードはキャビネットを形成し、前記ポリシーは1つ以上のキャビネット間で階層的に分解され、次いで、前記複数のノード間で分解される、請求項1に記載の装置。
  11. 前記複数のノードを結合するスケーラブルオーバレイネットワークをさらに含む、請求項1に記載の装置。
  12. 前記複数のノードを結合するスケーラブルオーバレイネットワークをさらに含み、該スケーラブルオーバレイネットワークは、電力又はパフォーマンステレメトリの集約及び制御の分散を提供する、請求項1に記載の装置。
  13. システムオンチップ(SOC)集積回路が前記ロジック及びメモリを含む、請求項1に記載の装置。
  14. 前記複数のノードの各ノードは、1つ以上のプロセッサコアを有するプロセッサと、1つ以上のプロセッサコアを有する画像処理ユニットと、ネットワークファブリックへの接続、ログインコンポーネント、サービスコンポーネント、メモリ、又は入出力デバイスの1つ以上を含むものである、請求項1に記載の装置。
  15. 複数のノードの各ノードに対して電力及びパフォーマンス管理のためのポリシーの決定を引き起こすステップと、
    前記ポリシーを前記複数のノードに送信するステップと、を含み、
    前記ポリシーは、前記複数のノードにわたる電力及びパフォーマンス管理の調整を引き起こすものであり、前記ポリシーは、1つ以上の目的関数に向けてジョブを管理するものであり、前記ジョブは前記複数のノード上で同時に動作する複数のタスクを含む、方法。
  16. 前記複数のノードの各々に対して別個のポリシーを決定するステップをさらに含む、請求項15に記載の方法。
  17. 前記複数のノードの各々の少なくとも一部に対して別個のポリシーを決定するステップをさらに含む、請求項15に記載の方法。
  18. 前記1つ以上の目的関数は、電力上限を満たしながらパフォーマンスを最大化すること、電力上限を満たしながらエネルギー効率を最大化すること、前記電力上限を満たしながら前記複数のノードの間のパフォーマンス差を最小限に抑えること、パフォーマンスを最大化すること若しくは効率を最大化すること又は電力上限を満たしながらパフォーマンスを最大化しつつ効率を最大化することの1つ以上を含む、請求項15に記載の方法。
  19. 前記決定は階層的機械学習操作に従って動作する、あるいは
    前記決定は、負荷不均衡の問題、スケーラビリティの問題、又はフレキシビリティの問題のうちの1つ以上を解くように実行される、請求項15に記載の方法。
  20. 前記ポリシーが、前記ジョブ内の全てのノードにわたる電力及びパフォーマンス管理を調整することをさらに含む、請求項15に記載の方法。
  21. 前記ポリシーが、前記ジョブ内の全てのノードにわたり、かつ、ソフトウェア及びハードウェア抽象化層にわたる、電力及びパフォーマンス管理を調整することをさらに含む、請求項15に記載の方法。
  22. 確率的ポリシー勾配法に従って前記ポリシーを決定するステップをさらに含む、あるいは
    前記複数のノードはキャビネットを形成し、前記ポリシーは1つ以上のキャビネット間で階層的に分解され、次いで、前記複数のノード間で分解される、請求項15に記載の方法。
  23. スケーラブルオーバレイネットワークを介して、前記複数のノードを結合するステップをさらに含む、あるいは
    スケーラブルオーバレイネットワークを介して、前記複数のノードを結合するステップをさらに含み、該スケーラブルオーバレイネットワークは、電力又はパフォーマンステレメトリの集約及び制御の分散を提供する、請求項15に記載の方法。
  24. プロセッサ上で実行されて、該プロセッサに請求項15から23のいずれか一項に記載の方法の1つ以上の動作を実行させる1つ以上のプログラム。
  25. 請求項15から23のいずれか一項に記載の方法を実行する手段を含む装置。
  26. 請求項24に記載の1つ以上のプログラムを記憶しているコンピュータ読み取り可能媒体。
JP2017531539A 2014-12-22 2015-11-24 ホリスティックグローバルなパフォーマンス及び電力管理 Pending JP2018500673A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021100077A JP7222029B2 (ja) 2014-12-22 2021-06-16 ホリスティックグローバルなパフォーマンス及び電力管理
JP2023014366A JP2023041852A (ja) 2014-12-22 2023-02-02 ホリスティックグローバルなパフォーマンス及び電力管理

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/580,150 US10101786B2 (en) 2014-12-22 2014-12-22 Holistic global performance and power management
US14/580,150 2014-12-22
PCT/US2015/062278 WO2016105791A1 (en) 2014-12-22 2015-11-24 Holistic global performance and power management

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021100077A Division JP7222029B2 (ja) 2014-12-22 2021-06-16 ホリスティックグローバルなパフォーマンス及び電力管理

Publications (1)

Publication Number Publication Date
JP2018500673A true JP2018500673A (ja) 2018-01-11

Family

ID=56129304

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2017531539A Pending JP2018500673A (ja) 2014-12-22 2015-11-24 ホリスティックグローバルなパフォーマンス及び電力管理
JP2021100077A Active JP7222029B2 (ja) 2014-12-22 2021-06-16 ホリスティックグローバルなパフォーマンス及び電力管理
JP2023014366A Pending JP2023041852A (ja) 2014-12-22 2023-02-02 ホリスティックグローバルなパフォーマンス及び電力管理

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2021100077A Active JP7222029B2 (ja) 2014-12-22 2021-06-16 ホリスティックグローバルなパフォーマンス及び電力管理
JP2023014366A Pending JP2023041852A (ja) 2014-12-22 2023-02-02 ホリスティックグローバルなパフォーマンス及び電力管理

Country Status (6)

Country Link
US (3) US10101786B2 (ja)
EP (1) EP3238002A4 (ja)
JP (3) JP2018500673A (ja)
KR (3) KR20210101337A (ja)
CN (2) CN113722061A (ja)
WO (1) WO2016105791A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019079528A (ja) * 2017-10-20 2019-05-23 グラフコアー リミテッドGraphcore Limited マルチタイル処理配列における同期化

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101786B2 (en) 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US9733684B2 (en) 2015-09-14 2017-08-15 Samsung Electronics Co., Ltd. System and method for controlling power consumption
US10002056B2 (en) 2015-09-15 2018-06-19 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10296074B2 (en) 2016-08-12 2019-05-21 Qualcomm Incorporated Fine-grained power optimization for heterogeneous parallel constructs
US9792397B1 (en) * 2017-01-08 2017-10-17 Alphaics Corporation System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning
WO2018153807A1 (en) * 2017-02-24 2018-08-30 Deepmind Technologies Limited Action selection for reinforcement learning using neural networks
KR20180098904A (ko) 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
WO2019018048A1 (en) * 2017-07-20 2019-01-24 Hewlett-Packard Development Company, L.P. APPLICATION POWER ALLOCATION
US10444813B2 (en) * 2017-09-28 2019-10-15 Intel Corporation Multi-criteria power management scheme for pooled accelerator architectures
US11054887B2 (en) * 2017-12-28 2021-07-06 Advanced Micro Devices, Inc. System-wide low power management
US11568236B2 (en) 2018-01-25 2023-01-31 The Research Foundation For The State University Of New York Framework and methods of diverse exploration for fast and safe policy improvement
US11106211B2 (en) * 2018-04-02 2021-08-31 Sony Group Corporation Vision-based sample-efficient reinforcement learning framework for autonomous driving
US11055139B2 (en) * 2018-06-12 2021-07-06 International Business Machines Corporation Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster
CN109242098A (zh) * 2018-07-25 2019-01-18 深圳先进技术研究院 限定代价下神经网络结构搜索方法及相关产品
CN113454638A (zh) * 2018-12-19 2021-09-28 艾奎菲股份有限公司 用于使用计算机视觉进行复杂视觉检查任务的联合学习的***和方法
CN113168588B (zh) * 2019-01-15 2023-11-24 索尼集团公司 服务器以及学习***
US10936712B1 (en) * 2019-06-06 2021-03-02 NortonLifeLock Inc. Systems and methods for protecting users
US11663494B2 (en) * 2019-12-05 2023-05-30 Uchicago Argonne, Llc Systems and methods for hierarchical multi-objective optimization
US11651839B2 (en) 2020-03-02 2023-05-16 Uchicago Argonne, Llc Systems and methods for generating phase diagrams for metastable material states
US11710038B2 (en) 2020-04-13 2023-07-25 Uchicago Argonne, Llc Systems and methods for active learning from sparse training data
CN113239655B (zh) * 2020-05-21 2024-06-28 台湾积体电路制造股份有限公司 半导体电路的约束确定***和方法
US11914527B2 (en) 2021-10-26 2024-02-27 International Business Machines Corporation Providing a dynamic random-access memory cache as second type memory per application process
CN114006941B (zh) * 2021-10-30 2024-07-09 平安国际智慧城市科技股份有限公司 数据同步方法、装置、计算机设备及介质
EP4195044A1 (fr) * 2021-12-09 2023-06-14 Bull SAS Méthode d'optimisation de la consommation énergétique d'une infrastructure informatique par suspension de travaux
JP7392027B2 (ja) * 2022-04-14 2023-12-05 ソフトバンク株式会社 システム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005115939A (ja) * 2003-10-07 2005-04-28 Hewlett-Packard Development Co Lp ラック機器アプリケーション動作変更システムおよび方法
US20080109811A1 (en) * 2006-11-08 2008-05-08 International Business Machines Corporation Computer system management and throughput maximization in the presence of power constraints
JP2011034403A (ja) * 2009-08-03 2011-02-17 Ntt Data Corp サービス実行装置、サービス実行方法
WO2013030860A1 (ja) * 2011-08-26 2013-03-07 株式会社日立製作所 予測型逐次計算装置
JP2014506372A (ja) * 2010-12-30 2014-03-13 パンドウィット・コーポレーション 物理的情報に基づく仮想マシンの割り当てのためのシステムおよび方法
JP2014186522A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd 計算システム及びその電力管理方法
JP2014527248A (ja) * 2011-09-20 2014-10-09 クアルコム,インコーポレイテッド コンピューティングデバイス用の動的な電力最適化

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US6601084B1 (en) 1997-12-19 2003-07-29 Avaya Technology Corp. Dynamic load balancer for multiple network servers
JP3563256B2 (ja) 1998-02-13 2004-09-08 富士通株式会社 省電力機能の遠隔制御方法、情報処理装置及び記憶媒体
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6711691B1 (en) 1999-05-13 2004-03-23 Apple Computer, Inc. Power management for computer systems
US6748222B1 (en) 2000-11-06 2004-06-08 Nortel Networks Limited Method and system for providing load-balanced communication
US6704877B2 (en) 2000-12-29 2004-03-09 Intel Corporation Dynamically changing the performance of devices in a computer platform
US7143300B2 (en) * 2001-07-25 2006-11-28 Hewlett-Packard Development Company, L.P. Automated power management system for a network of computers
US6854035B2 (en) * 2001-10-05 2005-02-08 International Business Machines Corporation Storage area network methods and apparatus for display and management of a hierarchical file system extension policy
US20030079151A1 (en) 2001-10-18 2003-04-24 International Business Machines Corporation Energy-aware workload distribution
US6943714B2 (en) 2002-08-19 2005-09-13 Tdk Semiconductor Corporation Method and apparatus of obtaining power computation parameters
KR100992177B1 (ko) 2003-05-07 2010-11-04 모사이드 테크놀로지스 코포레이션 파워 아일랜드를 사용한 집적 회로의 파워 관리
US7051215B2 (en) * 2003-06-13 2006-05-23 Intel Corporation Power management for clustered computing platforms
US7174471B2 (en) * 2003-12-24 2007-02-06 Intel Corporation System and method for adjusting I/O processor frequency in response to determining that a power set point for a storage device has not been reached
US7693991B2 (en) 2004-01-16 2010-04-06 International Business Machines Corporation Virtual clustering and load balancing servers
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US8271807B2 (en) 2008-04-21 2012-09-18 Adaptive Computing Enterprises, Inc. System and method for managing energy consumption in a compute environment
JP4448784B2 (ja) 2005-03-15 2010-04-14 株式会社日立製作所 並列計算機の同期方法及びプログラム
US7549177B2 (en) 2005-03-28 2009-06-16 Intel Corporation Advanced thermal management using an average power controller over an adjustable time window
US7484108B2 (en) 2005-06-23 2009-01-27 Intel Corporation Enhancing power delivery with transient running average power limits
TW200805047A (en) * 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US7602874B2 (en) 2006-01-26 2009-10-13 International Business Machines Corporation Providing accurate time-based counters for scaling operating frequencies of microprocessors
US8316360B2 (en) 2006-09-29 2012-11-20 Intel Corporation Methods and apparatus to optimize the parallel execution of software processes
US7916676B2 (en) 2007-03-23 2011-03-29 Broadcom Corporation Method and system for holistic energy management in ethernet networks
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8578193B2 (en) 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US7971084B2 (en) * 2007-12-28 2011-06-28 Intel Corporation Power management in electronic systems
US8806491B2 (en) 2007-12-31 2014-08-12 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8301742B2 (en) 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
US8010815B2 (en) * 2008-05-01 2011-08-30 International Business Machines Corporation Computational device power-savings
US8122117B2 (en) 2009-05-28 2012-02-21 Microsoft Corporation Determining an imbalance among computer-component usage
US20110055838A1 (en) 2009-08-28 2011-03-03 Moyes William A Optimized thread scheduling via hardware performance monitoring
US8539155B1 (en) * 2009-09-21 2013-09-17 Tilera Corporation Managing home cache assignment
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
US8527740B2 (en) 2009-11-13 2013-09-03 International Business Machines Corporation Mechanism of supporting sub-communicator collectives with O(64) counters as opposed to one counter for each sub-communicator
US8341441B2 (en) 2009-12-24 2012-12-25 International Business Machines Corporation Reducing energy consumption in a cloud computing environment
US9542231B2 (en) 2010-04-13 2017-01-10 Et International, Inc. Efficient execution of parallel computer programs
US20110307716A1 (en) 2010-06-10 2011-12-15 Broadcom Corporation Global control policy manager
US9268611B2 (en) * 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US20120084028A1 (en) 2010-09-30 2012-04-05 Ibm Corporation Framework and Methodology for a Real-Time Fine-Grained Power Profiling with Integrated Modeling
US8635483B2 (en) 2011-04-05 2014-01-21 International Business Machines Corporation Dynamically tune power proxy architectures
JP5679047B2 (ja) 2011-04-18 2015-03-04 富士通株式会社 スレッド処理方法、およびスレッド処理システム
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8650423B2 (en) 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
US8806410B2 (en) 2011-10-28 2014-08-12 The Board Of Trustees Of The University Of Illinois Power balanced pipelines
US9195516B2 (en) 2011-12-01 2015-11-24 International Business Machines Corporation Determining collective barrier operation skew in a parallel computer
US9141166B2 (en) 2011-12-13 2015-09-22 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains
US9304570B2 (en) 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
CN102427230B (zh) * 2011-12-19 2013-11-20 天津市电力公司 用于分布式微网孤岛运行风光储联合调度的方法及***
US10990407B2 (en) 2012-04-24 2021-04-27 Intel Corporation Dynamic interrupt reconfiguration for effective power management
CN103384372B (zh) * 2012-05-03 2016-08-10 华为技术有限公司 一种优化网络容量和覆盖折中的方法、装置及***
US8930948B2 (en) 2012-06-21 2015-01-06 Vmware, Inc. Opportunistically proactive resource management using spare capacity
US9110644B2 (en) 2012-09-14 2015-08-18 Intel Corporation Providing additional current capacity to a processor for a turbo mode
US9342122B2 (en) 2012-09-17 2016-05-17 Intel Corporation Distributing power to heterogeneous compute elements of a processor
US9110734B2 (en) 2012-11-12 2015-08-18 International Business Machines Corporation Power-constrained compiler code generation and scheduling of work in a heterogeneous processing system
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9195285B2 (en) 2012-12-27 2015-11-24 Intel Corporation Techniques for platform duty cycling
US9395774B2 (en) * 2012-12-28 2016-07-19 Intel Corporation Total platform power control
US9665154B2 (en) 2013-05-31 2017-05-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Subsystem-level power management in a multi-node virtual machine environment
EP3028107A4 (en) 2013-08-02 2017-03-01 Schneider Electric USA, Inc. System and method for representing power system information
US9568978B2 (en) * 2013-09-26 2017-02-14 Intel Corporation Controlling power consumption in processor-based systems and components thereof
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US9588559B2 (en) 2013-12-23 2017-03-07 Intel Corporation Configurable power supplies for dynamic current sharing
US10101786B2 (en) 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US9811143B2 (en) 2014-12-23 2017-11-07 Intel Corporation Systems and methods for dynamic spatial power steering
US10466754B2 (en) 2014-12-26 2019-11-05 Intel Corporation Dynamic hierarchical performance balancing of computational resources
US9477533B2 (en) 2014-12-26 2016-10-25 Intel Corporation Progress meters in parallel computing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005115939A (ja) * 2003-10-07 2005-04-28 Hewlett-Packard Development Co Lp ラック機器アプリケーション動作変更システムおよび方法
US20080109811A1 (en) * 2006-11-08 2008-05-08 International Business Machines Corporation Computer system management and throughput maximization in the presence of power constraints
JP2011034403A (ja) * 2009-08-03 2011-02-17 Ntt Data Corp サービス実行装置、サービス実行方法
JP2014506372A (ja) * 2010-12-30 2014-03-13 パンドウィット・コーポレーション 物理的情報に基づく仮想マシンの割り当てのためのシステムおよび方法
WO2013030860A1 (ja) * 2011-08-26 2013-03-07 株式会社日立製作所 予測型逐次計算装置
JP2014527248A (ja) * 2011-09-20 2014-10-09 クアルコム,インコーポレイテッド コンピューティングデバイス用の動的な電力最適化
JP2014186522A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd 計算システム及びその電力管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019079528A (ja) * 2017-10-20 2019-05-23 グラフコアー リミテッドGraphcore Limited マルチタイル処理配列における同期化

Also Published As

Publication number Publication date
US20190121414A1 (en) 2019-04-25
US10884471B2 (en) 2021-01-05
JP2023041852A (ja) 2023-03-24
EP3238002A4 (en) 2018-08-29
KR20170100487A (ko) 2017-09-04
EP3238002A1 (en) 2017-11-01
US20160179162A1 (en) 2016-06-23
US10101786B2 (en) 2018-10-16
JP2021140825A (ja) 2021-09-16
KR20240005113A (ko) 2024-01-11
WO2016105791A1 (en) 2016-06-30
JP7222029B2 (ja) 2023-02-14
US11740673B2 (en) 2023-08-29
CN107003901A (zh) 2017-08-01
CN113722061A (zh) 2021-11-30
KR20210101337A (ko) 2021-08-18
US20210247829A1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
JP7222029B2 (ja) ホリスティックグローバルなパフォーマンス及び電力管理
US10355966B2 (en) Managing variations among nodes in parallel system frameworks
TWI646418B (zh) 用於計算資源之動態階層式效能平衡的方法、設備及媒體
Czarnul et al. Energy‐aware high‐performance computing: survey of state‐of‐the‐art tools, techniques, and environments
Jin et al. A survey on software methods to improve the energy efficiency of parallel computing
Farokhi et al. Self-adaptation challenges for cloud-based applications: A control theoretic perspective
Li et al. Deploying graph algorithms on gpus: An adaptive solution
Juan et al. Power-aware performance increase via core/uncore reinforcement control for chip-multiprocessors
KR101990411B1 (ko) 클라우드 시스템에서의 우선 순위 기반 자원 스케일링 시스템, 장치 및 방법
US10088891B2 (en) Multi-core computer processor based on a dynamic core-level power management for enhanced overall power efficiency
Islam et al. Distributed temperature-aware resource management in virtualized data center
Bui et al. Energy efficiency in cloud computing based on mixture power spectral density prediction
Kannan et al. Towards Application Centric Carbon Emission Management
Zhou Distributed parallel power system simulation
Konnurmath et al. Power-Aware Characteristics of Matrix Operations on Multicores
Rayan et al. Resource Prediction for Big Data Processing in a Cloud Data Center: A Machine Learning Approach: A Machine Learning Approach
Karamati et al. An energy-efficient single-source shortest path algorithm
Iordache et al. Heterogeneous resource selection for arbitrary HPC applications in the cloud
Landwehr An experimental exploration of self-aware systems for exascale architectures
Namasudra et al. Dark silicon and future on-chip systems
Vakali et al. A multi-layer software architecture framework for adaptive real-time analytics
Liu et al. Enabling Energy-Efficient and Reliable Neural Network via Neuron-Level Voltage Scaling
Shankar SiaHet: Towards Exploiting Intra-Job Resource Heterogeneity in Heterogeneity-aware, Goodput Optimized Deep Learning Cluster Scheduling
Gholkar On the Management of Power Constraints for High Performance Systems
Zhang Maximizing Performance in Power-Constrained Computing Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210309