JP2023530829A - 電力-性能ベースのシステム管理 - Google Patents
電力-性能ベースのシステム管理 Download PDFInfo
- Publication number
- JP2023530829A JP2023530829A JP2022570218A JP2022570218A JP2023530829A JP 2023530829 A JP2023530829 A JP 2023530829A JP 2022570218 A JP2022570218 A JP 2022570218A JP 2022570218 A JP2022570218 A JP 2022570218A JP 2023530829 A JP2023530829 A JP 2023530829A
- Authority
- JP
- Japan
- Prior art keywords
- workload
- power
- parameter
- computer system
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000010408 sweeping Methods 0.000 claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 24
- 238000004458 analytical method Methods 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims description 68
- 238000004590 computer program Methods 0.000 claims description 22
- 238000007726 management method Methods 0.000 description 77
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 230000009471 action Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
- G06F11/3062—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Remote Monitoring And Control Of Power-Distribution Networks (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Debugging And Monitoring (AREA)
Abstract
方法は、コンピュータ・システムのワークロードを受信することと、ワークロードを実行している間、コンピュータ・システムの少なくとも1つのパラメータを掃引することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの1つまたは複数の特性を監視することであって、1つまたは複数の特性は、コンピュータ・システムの総電力消費を含む、監視することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成することと、少なくとも1つのパラメータのそれぞれの選択値に基づいて、ワークロードを実行することと、を含む。
Description
本発明は、一般には、コンピュータ・システムに関し、より詳細には、コンピュータの電力-性能ベースのシステム管理に関する。
多くの最新のコンピュータ・システムは、特に大規模データ・センタ(例えば、ハイパー・スケール・データ・センタ)において、性能の増大と総所有コスト(TCO)とのバランスをとることに焦点を当てる。TCOは、総取得コスト(TCA)、メンテナンス・コスト、および電力消費に起因した電気料金を含む。TCAおよびメンテナンス・コストは、通常、固定投資であるが、電力消費に起因した料金は、コンピュータ・システムのワークロードおよび構成に基づいて変動する。
本開示の態様は、方法、コンピュータ・プログラム製品およびシステムを含むことができる。方法の1つの例は、コンピュータ・システムのワークロードを受信することと、ワークロードを実行している間、コンピュータ・システムの少なくとも1つのパラメータを掃引する(sweep)ことと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの1つまたは複数の特性を監視することであって、1つまたは複数の特性は、コンピュータ・システムの総電力消費を含む、監視することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成することと、少なくとも1つのパラメータのそれぞれの選択値に基づいて、ワークロードを実行することとを含む。
一態様の観点から、本発明は方法を提供し、この方法は、コンピュータ・システムのワークロードを受信することと、ワークロードを実行している間、コンピュータ・システムの少なくとも1つのパラメータを掃引することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの1つまたは複数の特性を監視することであって、1つまたは複数の特性は、コンピュータ・システムの総電力消費を含む、監視することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成することと、少なくとも1つのパラメータのそれぞれの選択値に基づいて、ワークロードを実行することとを含む。
好ましくは、本発明は、コンピュータ・システムの少なくとも1つのパラメータに対する1つまたは複数の制約を受信することを更に含む方法を提供する。
好ましくは、本発明は、ワークロードを2つ以上のステージに分割することを更に含み、少なくとも1つのパラメータを掃引することが、2つ以上のステージの各々について少なくとも1つのパラメータを掃引することを含み、1つまたは複数の特性を監視することが、2つ以上のステージの各々について少なくとも1つのパラメータを掃引している間、1つまたは複数の特性を監視することを含み、電力プロファイルを生成することが、2つ以上のステージの各々についてそれぞれの電力プロファイルを生成することを含む、方法を提供する。
好ましくは、本発明は、少なくとも1つのパラメータを掃引することが、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを掃引することを含む、方法を提供する。
好ましくは、本発明は、ワークロードが第1のワークロードであり、少なくとも1つのパラメータのそれぞれの選択値に基づいてワークロードを実行することが、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別することと、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングすることとを更に含む、方法を提供する。
好ましくは、本発明は、コンピュータ・システムの監視される1つまたは複数の特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、方法を提供する。
好ましくは、本発明は、ワークロードの初期電力プロファイルを受信することを更に含み、電力プロファイルを生成することが、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて初期電力プロファイルを更新することを含む、方法を提供する。
別の態様の観点から、本発明はコンピュータ管理システムを提供し、このコンピュータ管理システムは、ストレージ・デバイスと、ストレージ・デバイスに通信可能に結合されたプロセッサとを備え、このプロセッサは、コンピュータ・システムのワークロードを受信し、ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを反復的に調整し、少なくとも1つのパラメータを調整している間、コンピュータ・システムの総電力消費を含む、コンピュータ・システムの1つまたは複数の特性を監視し、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成し、電力プロファイルをストレージ・デバイス上に記憶し、電力プロファイルに基づいてワークロードを実行するように構成される。
好ましくは、本発明は、プロセッサが、コンピュータ・システムの少なくとも1つのパラメータに対する1つまたは複数の制約を受信するように更に構成されるコンピュータ管理システムを提供する。
好ましくは、本発明は、プロセッサが、ワークロードを2つ以上のステージに分割し、2つ以上のステージの各々について少なくとも1つのパラメータを反復的に調整し、2つ以上のステージの各々について少なくとも1つのパラメータを調整している間、1つまたは複数の特性を監視し、2つ以上のステージの各々についてそれぞれの電力プロファイルを生成するように更に構成される、コンピュータ管理システムを提供する。
好ましくは、本発明は、プロセッサが、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを反復的に調整するように構成されるコンピュータ管理システムを提供する。
好ましくは、本発明は、ワークロードが第1のワークロードであり、プロセッサが、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較し、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別し、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングするように更に構成される、コンピュータ管理システムを提供する。
好ましくは、本発明は、コンピュータ・システムの監視される1つまたは複数の特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、コンピュータ管理システムを提供する。
好ましくは、本発明は、プロセッサが、ワークロードの初期電力プロファイルを受信し、少なくとも1つのパラメータを調整している間、コンピュータ・システムの監視された総電力消費の分析に基づいて初期電力プロファイルを更新するように更に構成される、コンピュータ管理システムを提供する。
別の態様の観点から、本発明はコンピュータ管理システムを提供し、このコンピュータ管理システムは、電力-性能管理エンジンであって、ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを掃引し、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの総電力消費を含む、コンピュータ・システムの1つまたは複数の特性を監視し、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成するように構成された電力-性能管理エンジンと、生成された電力プロファイルに基づいて、ワークロードを実行のためにスケジューリングするように構成された電力-性能ワークロード・スケジューラとを備える。
好ましくは、本発明は、ワークロードが第1のワークロードであり、電力-性能ワークロード・スケジューラが、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別することと、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングすることとによって、第1のワークロードを実行のためにスケジューリングするように更に構成される、コンピュータ管理システムを提供する。
別の態様の観点から、本発明は方法を提供し、この方法は、複数のワークロードの各々についてそれぞれの電力性能テーブルを比較することであって、各電力性能テーブルは、それぞれのワークロードを実行するためのコンピュータ・システムの1つまたは複数のパラメータのそれぞれの値を示し、1つまたは複数のパラメータのそれぞれの値は、1つまたは複数のパラメータを反復的に調整している間、コンピュータ・システムの電力消費を含む、コンピュータ・システムの1つまたは複数の特性を監視することに基づいて選択されることと、それぞれの電力性能テーブルの比較に基づいて少なくとも2つの両立可能なワークロードを識別することと、コンピュータ・システムによって同時に実行される少なくとも2つの両立可能なワークロードをスケジューリングすることとを含む。
好ましくは、本発明は、1つまたは複数のパラメータが、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを含む、方法を提供する。
好ましくは、本発明は、1つまたは複数の監視される特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、方法を提供する。
別の態様の観点から、本発明は、コンピュータ可読プログラムが記憶されたコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品を提供し、コンピュータ可読プログラムは、プロセッサによって実行されると、プロセッサに、ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを反復的に調整させ、少なくとも1つのパラメータを調整している間、コンピュータ・システムの総電力消費を含む、コンピュータ・システムの1つまたは複数の特性を監視させ、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成させ、生成された電力プロファイルに基づいてワークロードを実行させる。
好ましくは、本発明は、1つまたは複数の監視される特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、コンピュータ・プログラム製品を提供する。
好ましくは、本発明は、コンピュータ可読プログラムが、プロセッサに、コンピュータ・システムの少なくとも1つのパラメータに対する1つまたは複数の制約に従って少なくとも1つのパラメータを反復的に調整させるように更に構成される、コンピュータ・プログラム製品を提供する。
好ましくは、本発明は、ワークロードが第1のワークロードであり、コンピュータ可読プログラムが、プロセッサに、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別することと、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングすることとによって、第1のワークロードを実行させるように更に構成される、コンピュータ・プログラム製品を提供する。
好ましくは、本発明は、コンピュータ可読プログラムが、プロセッサに、ワークロードを2つ以上のステージに分割させ、2つ以上のステージの各々について少なくとも1つのパラメータを反復的に調整させ、2つ以上のステージの各々について少なくとも1つのパラメータを調整している間、1つまたは複数の特性を監視させ、2つ以上のステージの各々についてそれぞれの電力プロファイルを生成させるように更に構成される、コンピュータ・プログラム製品を提供する。
好ましくは、本発明は、コンピュータ可読プログラムが、プロセッサに、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを反復的に調整させるように更に構成される、コンピュータ・プログラム製品を提供する。
図面は本発明の例示的な実施形態のみを示し、したがって、範囲を限定するとみなされないことを理解して、例示的な実施形態が、添付の図面の使用を通じて更に具体的かつ詳細に説明される。
一般的な慣例に従って、様々な説明される機能は、縮尺どおりに描写されていないが、例示的な実施形態に関連する特定の機能を強調するように描写されている。
以下の詳細な説明において、本明細書の一部を形成し、かつ、特定の例示的な実施形態が図示により示される添付図面を参照する。しかしながら、他の実施形態が利用され得ることと、論理、機械および電気的な変更が行われ得ることとが理解されるべきである。さらに、図面および本明細書において提示される方法は、個々のステップが実行され得る順序を限定するものと解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
上記で論じたように、いくつかのシステムは、特に大規模データ・センタ(例えば、ハイパー・スケール・データ・センタ)において、性能の増大と総所有コスト(TCO)とのバランスをとることに焦点を当てる。TCOは、総取得コスト(TCA)、メンテナンス・コスト、および電力消費に起因した電気料金を含む。TCAおよびメンテナンス・コストは、通常、固定投資である。本明細書に記載の実施形態は、コンピュータ・システムの電力あたりの性能(例えば、ワット)を改善または最適化して、TCOの低減に役立つように構成される。
いくつかの最新の中央処理ユニット(CPU)は、CPUの電力バジェットを利用するために異なるワークロードを用いて周波数を調整することができる。例えば、ワークロードが非常に重い場合、周波数は、高い数に達しない場合がある。しかしながら、ワークロードが軽い(例えば、CPUにおいて、1つのアクティブ呼およびロジックの小さな部分が用いられている)場合、CPU周波数は、比較的高い周波数に調整することができる。そのような技術がいくつかの状況において電力節減を改善することができるが、これらは様々な制限も被る可能性がある。例えば、所与のワークロードが、ディスク、ネットワーク、メモリ、グラフィック処理ユニット(GPU)等の非CPUデバイスにおける性能ボトルネックを有する場合、コンピュータ・システムは、より高いCPU周波数および対応するより高いCPU電力使用量を有する場合であっても、より高い性能に達することになる。加えて、ワークロードがCPUの複数のプロセスまたはスレッド間でCPU内部の計算リソースにおいて衝突を有する場合、CPUは、CPU周波数が増大する場合であっても、より僅かな性能改善でより多くの電力を消費することになる。さらに、周波数が増大し、対応する温度が上昇すると、CPU熱要件は、多くの場合、CPU冷却デバイス(例えば、CPUファン)の需要の増大をトリガし、これは、冷却デバイスの電力消費の増大および結果としての電力-性能レートの低下につながり得る。
本明細書に記載の実施形態は、論じた制限および他のものに対処するのに役立つ。特に、以下でより詳細に説明される実施形態は、より包括的で、動的で、自己学習型で、電力-性能ベースのコンピュータ・システム管理方法を可能にする。この方法は、ワークロード変動、ワークロード・スケジューリング、総システム電力消費、環境変化、CPU周波数および電圧等の複数の要因を考慮に入れて、電力使用量あたりの性能またはTCOあたりの性能あるいはその両方を改善することができる、より効率的な管理方式を提供することができる。
本明細書において用いられるとき、「少なくとも1つ」、「1つまたは複数」、および「~または~あるいはその組合せ」という語句は、動作中の結合および分離の両方である無制限の表現である。例えば、「A、B、およびCのうちの少なくとも1つ」、「A、B、またはCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、「A、B、またはCのうちの1つまたは複数」、および「A、B、またはC、あるいはその組合せ」という表現の各々は、A単独、B単独、C単独、AおよびBの組合せ、AおよびCの組合せ、BおよびCの組合せ、またはA、B、およびCの組合せを意味する。換言すれば、「少なくとも1つの」、「1つまたは複数の」、および「~または~あるいはその両方」は、リストからの任意のアイテムの組合せおよびアイテム数を用いることができるが、リスト内の全てのアイテムが必要とされるわけではないことを意味する。アイテムは、特定のオブジェクト、物体、またはカテゴリとすることができる。例えば、いくつかの説明的な例において、「~のうちの少なくとも1つ」は、例えば、制限なく、アイテムAのうちの2つ、アイテムBのうちの1つ、およびアイテムCのうちの10個、ならびにアイテムBのうちの4つおよびアイテムCのうちの7つ、または他の適切な組合せとすることができる。
さらに、「1つの」エンティティという用語は、そのエンティティのうちの1つまたは複数を指す。そのため、「1つの」、「1つまたは複数」および「少なくとも1つ」という用語は、本明細書において交換可能に使用することができる。また、「備える」、「含む」、および「有する」という用語は、交換可能に使用することができることにも留意されたい。
さらに、「自動的」およびその変形の用語は、本明細書において使用されるとき、プロセスまたは動作が実行されるときに、具体的な人間の入力なしで実行される、任意のプロセスまたは動作のことを指す。しかしながら、プロセスまたは動作の実行前に入力が受信された場合、プロセスまたは動作の実行が具体的なまたは具体的ではない人間の入力を使用するとしても、プロセスまたは動作は、自動的であり得る。人間の入力は、そのような入力がプロセスまたは動作が実行される方法に影響を及ぼす場合、具体的であるとみなされる。プロセスまたは動作の実行に同意する人間の入力は、「具体的」であるとみなされない。
加えて本明細書において用いられるとき、「ワークロード」という用語は、コンピュータ・システムが固定の期間内に行わなくてはならない処理量を指す。例えば、ワークロードは、特定の期間に予期されるクライアント要求、処理および通信リソース等の形態での負荷量を示す。このため、ワークロードは、コンピュータ・システムに送信される要求のタイプおよびレート、実行されるソフトウェア・パッケージおよびアプリケーション・プログラム、コンピュータ・システムにおいて実行されるプログラム/アプリケーションの量、コンピュータ・システムのアプリケーションに接続しているユーザ数、これらのインタラクションが消費する時間および処理電力の量等の要素を含む。ワークロードは、コンピュータ・システムがバックグラウンドで行っている作業も含むことができる。例えば、コンピュータ・システムが、他のシステムによって頻繁にアクセスされるファイル・システムを含む場合、これらのアクセスを扱うことは、コンピュータ・システムが正式にはサーバでない場合であっても、ワークロード全体の大きな部分となり得る。
図1は、電力-性能レートに基づいてコンピュータ・システムを管理するように構成された電力-性能管理システム100の1つの実施形態の概略ブロック図である。換言すれば、電力-性能管理システム100は、コンピュータ・システムの電力対性能比を改善して、コンピュータ・システムの総所有コストを低減するように構成される。電力-性能管理システム100は、電力-性能管理システム100によって管理されているコンピュータ・システム全体の一部とすることができる。さらに、数百または数千のサーバを有するデータ・センタ等の管理されているコンピュータ・システムは、単一のデバイスまたは複数のデバイスを含むことができる。
電力-性能管理システム100は、電力-性能管理エンジン(PPME)102と、電力-性能ワークロード・スケジューラ110と、電力-性能テーブル・データベース108とを備える。PPME102は、コンピュータ・システムによって実行されるかまたは実行されている複数のワークロードの各々について電力-性能テーブルを生成するように構成される。各ワークロードのそれぞれの電力-性能テーブルは、コンピュータ・システム、またはデバイスの電力対性能比を改善するように選択されたコンピュータ・システムまたはデバイスの少なくとも1つのパラメータの選択値(例えば、コンピュータ・システムの電力効率)を示し、それによって総所有コストを低減する。PPME102は、ワークロードの電力-性能テーブルを決定および生成するのに用いられる様々な入力を受信する。例えば、入力は、電力使用量情報、システムまたはデバイスあるいはその両方の特性、利用可能な場合、ワークロードごとの性能スコア、および利用可能な場合、ワークロードの初期電力-性能テーブルを含むことができる。初期電力-性能テーブルは、PPME102によって以前にプロファイリングされたワークロードについて利用可能とすることができる。しかしながら、初期電力-性能テーブルは、新たなワークロードまたは以前にプロファイリングされていないワークロード等、全てのワークローについて利用可能であるわけではない。
電力使用量情報は、コンピュータ・システムの総電力消費/使用量に関する情報を含むことができ、コンピュータ・システムの個々の構成要素への電力使用量の分解を含むことができる。例えば、電力使用量情報は、限定ではないが、CPU電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量等を含むことができる。デバイスまたはシステムあるいはその両方の特性は、限定ではないが、メモリ帯域幅、メモリ・レイテンシ、デバイス、ディスクの状態(例えば、アイドル/スリープまたはアクティブ/ウェイク)またはネットワーク入力/出力(I/O)帯域幅、あるいはそれらの組合せ等を含むことができる。
ワークロードの性能スコア(性能目標とも呼ばれる)は、コンピュータ・システムの性能または所望の性能結果あるいはその両方を測定するのに用いられる測定値を示すことができる。例えば、いくつかの状況では、性能スコアは、所望の性能が、指定された最悪のケースの応答時間を保ちながら、システム・スループットを増大させるかまたは最大にすることであることを示す場合がある。他の状況では、性能スコアは、限定ではないが、一定のワークロードについて可能な限り最良の応答時間、ユーザ要求に対する最小の応答時間等を得ること等の他の性能測定値に基づいてもよい。いくつかの実施形態において、性能スコアの決定は、ユーザまたはシステム・マネージャによって設定することができる。
さらに、PPME102は、コンピュータ・システムのためのターゲットまたは制約あるいはその両方を受信することができる。ターゲット/制約は、ワークロードが実行される特定のパラメータまたは条件範囲を定義することができる。例えば、ターゲット/制約は、限定ではないが、最大総電力使用量(例えば、データ・センタ、ラックまたはノードあるいはそれらの組合せの総電力)、ワークロードを完了するための総実行時間、ワークロードのCPUまたはコアあるいはその両方の最大数または最小数あるいはその両方、最小または最大あるいはその両方のメモリ帯域幅/レイテンシ、最小または最大あるいはその両方のネットワーク帯域幅/レイテンシ等のパラメータを定義することができる。
PPME102は、掃引コントローラ(sweeping controller)104および電力-性能評価器およびモニタ106を含む。掃引コントローラ104は、コンピュータ・システムの1つまたは複数のパラメータを掃引する(例えば、反復的に調整/変更する)ように構成される。例えば、いくつかの実施形態では、掃引コントローラ104は、ワークロードの任意の受信したターゲット/制約に従って、CPU周波数、GPU周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅/レイテンシ、デバイス状態等のうちの1つまたは複数を掃引するように構成することができる。すなわち、掃引コントローラ104は、アクティブなコアの数を、ワークロードのアクティブなコアの指定された最小数未満に調整すること、最大実行時間を超えること等、制約と衝突する値の調整なしでパラメータを掃引することができる。掃引コントローラ104は、各パラメータを順に掃引する(すなわち、1つのパラメータを完全に掃引した後に別のパラメータを掃引する)かまたは複数のパラメータを並列に掃引する(例えば、複数のパラメータに対する調整を交互に行うかまたは2つ以上のパラメータを同時に掃引する)ように構成することができる。
電力-性能評価器およびモニタ106は、コンピュータ・システム全体の総電力消費でワークロードをプロファイリングするように構成される。特に、電力-性能評価器およびモニタ106は、掃引コントローラ104が1つまたは複数のパラメータを掃引している間、本明細書に論じた電力使用量情報およびシステム/デバイス特性をPPME102に対する入力として収集するように構成される。例えば、電力-性能評価器およびモニタ106は、電力消費内訳、掃引情報(例えば、掃引されているパラメータの値)、メモリ帯域幅、アクティブなコアの数、ディスクまたはネットワーク使用量等を収集することができる。電力-性能評価器およびモニタ106は、応答または実行時間、スループット制約等の任意の受信したターゲットまたは制約に関して収集された情報を評価するように構成される。さらに、電力-性能評価器およびモニタ106は、いくつかの実施形態では、掃引コントローラ104に対し、収集されたデータの評価に基づいて1つまたは複数のパラメータを調整するようにコマンドを送信することができる。
さらに、評価に基づいて、電力-性能評価器およびモニタ106は、1つまたは複数のパラメータの各々について、任意の適用可能な制約内で、電力使用量を低減させながら、性能を増大させるかまたは性能を定義された制約内に維持する値を選択する。すなわち、電力-性能評価器およびモニタ106は、コンピュータ・システムの性能と、コンピュータ・システムの電力使用量との間のバランスを最適化しようとする。すなわち、結果として最高の性能をもたらさない場合があるが、最高の性能を有する値と比較して十分な電力使用量節減を有する値を選択することができる。同様に、選択された値は、結果として最小の電力使用量をもたらさない場合があるが、最小電力使用量を有する値を上回る十分な性能改善を有する。いくつかの実施形態では、電力使用量のワットあたりの最高性能を結果としてもたらす値が選択される。電力-性能評価器およびモニタ106は、電力-性能テーブル・データベース108に保存されるそれぞれのワークロードのための電力-性能プロファイルまたはテーブルに、選択された値を保存する。換言すれば、電力-性能評価器およびモニタ106は、任意の適用可能なターゲット/制約を所与として、最小電力使用量を有する所望の性能スコアを達成するかまたは超える設定を決定することができる。
いくつかの実施形態では、PPME102は、所与のワークロードを2つ以上のステージまたはサブパートに分割するように構成されることを理解されたい。例えば、所与のワークロードは、ワークロードの開始時において、ワークロードの途中または終了時とは異なる計算要件を有する場合がある。このため、ワークロードは、サブパートまたはステージに分割することができる。そのような状況において、PPME102は、掃引を実行し、各ステージについて別個に監視して、ステージごとの電力-性能テーブルを展開するように構成される。このため、そのようなワークロードは、電力-性能テーブル・データベース108に記憶される複数の電力-性能テーブルを有することができる。他の実施形態において、複数のステージに対応する複数のテーブルは、ワークロードについて単一の電力-性能テーブルにマージする/組み合わせることができる。
ワークロードがコンピュータ・システム上で実行されるとき、PPME102は、電力-性能テーブル・データベース108内にワークロードについての電力-性能テーブルが存在するか否かを判断することができる。1つが利用可能である場合、PPME102は、電力-性能テーブル・データベース108から、パラメータを掃引し、ワークロードの電力対性能の関係を評価するための開始点として用いるためのそれぞれの電力-性能テーブルを索出することができる。すなわち、PPME102は、ワークロードの後続の実行中、ワークロードのための既存の電力-性能テーブルを更新するように構成することができる。さらに、PPME102は、監視されるワークロード性能スコアまたは電力消費が、所与のワークロードの電力-性能テーブルにおける基準値または初期値と比較して、閾値量を超えて変化する場合、電力-性能ワークロード・スケジューラ110に例外を報告するように構成することができる。例えば、所与のワークロードの処理需要が、ワークロードの実行中のデータ、入力、ユーザ挙動/動作の変化等に起因して、ワークロードの実行時間中に変化する場合がある。そのようなシナリオにおいて、例外が、掃引および監視の別のラウンドをトリガし、所与のワークロードのための電力-性能テーブルを、変化したワークロードを反映/特性化するように更新することができる。いくつかの実施形態では、変化したワークロードは、既存の電力-性能テーブルを更新するのではなく、新たな電力-性能テーブルが作成された新たなワークロードとみなされる。
いくつかの実施形態では、PPME102は、コンピュータ・システム上で実行される各ワークロードについて電力-性能テーブルを生成するように構成することができることを理解されたい。他の実施形態では、PPME102は、コンピュータ・システムにおいて実行されるワークロードの総数のサブセットについて電力-性能テーブルの生成または更新あるいはその両方を行うように構成することができる。例えば、いくつかの実施形態では、ユーザは、全てではなくいくつかのみのワークロードがプロファイリングされるように、PPME102によってプロファイリングされるワークロードのタイプを指定することができる。
ワークロードがコンピュータ・システムによって実行されているとき、電力-性能ワークロード・スケジューラ110は、ワークロードのための関連電力-性能テーブル/プロファイル、およびPPME102からの任意の更新を索出し、関連電力-性能テーブルにおける設定(例えば、CPU周波数、GPU周波数、アクティブなコアの数等)を用いてワークロードを実行するようにシステムを構成することができる。このようにして、管理システム100は、個々の構成要素(例えば、CPU、GPU、ファン等)のハードウェア特性、ソフトウェアアプリケーション、電力使用量、および総コンピュータ・システム電力使用量を考慮に入れて、電力使用量を低減しながら、特定の性能スコアまたは制約あるいはその両方を満たすワークロードを実行するための適切な設置/パラメータを決定し、それによって総所有コストも減少させることができる。このため、本明細書に記載の実施形態は、フル・スタック(ソフトウェア/ハードウェア)電力-性能ベースの管理方式を可能にする。
図2は、コンピュータ・システムを管理するための方法200の1つの実施形態の流れ図である。方法200は、PPMEおよび電力-性能ワークロード・スケジューラを含む、上記で説明した管理システム100等の管理システムによって実行することができる。例示的な方法200におけるアクションの順序は、説明の目的で提供されること、および方法200は他の実施形態において異なる順序で実行することができることが理解されよう。例えば、いくつかのアクションは、説明を容易にするために、記載されたような連続形式ではなく、同時に行われてもよい。同様に、他の実施形態では、いくつかのアクションが省かれてもよく、または追加のアクションが含まれてもよいことを理解されたい。
202において、プロファイリングされるワークロードが受信される。ワークロードを受信することは、実行されるワークロードに関する情報を受信すること、または既に実行されているワークロードをプロファイリングするための信号もしくはコマンドを受信することを含むことができる。例えば、ユーザは、いずれのワークロードをプロファイリングするかを示す設定を定義することができる。換言すれば、いくつかの実施形態において、全てのワークロードがプロファイリングされるのに対し、他の実施形態では、ワークロードのサブセットのみが、ユーザが定義した設定に基づいてプロファイリングされる。204において、ワークロードが新たなワークロードであるか否かが判断される。すなわち、ワークロードが以前にプロファイリングされたか否かが判断される(例えば、ワークロードのための電力-性能テーブルが電力-性能テーブル・データベースに記憶される)。
ワークロードが新たなワークロードでない場合、206において、電力-性能テーブル・データベースから初期電力-性能テーブルが索出される。電力-性能テーブルからの設定が、ワークロードを実行する際に用いられる。例えば、CPU周波数、コアの数、ディスク/メモリ/ネットワーク使用量等に対する制約に関する設定が、ワークロードを実行する際に適用される。208において、初期電力-性能テーブルが更新されるか否かが判断される。例えば、いくつかの実施形態では、ユーザ設定に基づいて、電力-性能テーブルの全てまたは一部分が、対応するワークロードが実行されるときに更新されるように設定される。さらに、いくつかの実施形態では、ワークロードは、210において実行されている間に監視され、ワークロードの実行中に、監視される値がある特定の閾値を超えて変化する場合、電力-性能ワークロード・スケジューラに報告される例外等により、更新をトリガすることができる。いくつかの実施形態では、変化が閾値を超えている場合、ワークロードは、新たなワークロードとして扱われ、新たな電力-性能テーブルがワークロードについて生成される。初期電力-性能テーブルが更新されていない場合、方法200は210に続き、210において、ワークロードが、ワークロードに対応する電力-性能テーブルにおける設定に基づいて実行される。
204において、ワークロードが新たなワークロードである場合、または208において、初期電力-性能テーブルが更新される場合、方法200は212に進み、212において、PPMEは、ワークロードを実行している間、コンピュータ・システムの少なくとも1つのパラメータを掃引する。換言すれば、上記で説明したように、PPMEは、少なくとも1つのパラメータを反復的に調整する。
例えば、PPMEは、最低CPU周波数で開始し、CPU周波数を、CPUのための最高CPU周波数に達するまで所定の量で反復的に調整することができる。上記で論じたように、CPU周波数に加えて、またはCPU周波数の代わりに掃引することができる他のパラメータは、限定ではないが、GPU周波数、アクティブなコアの数、メモリ帯域幅、デバイスのアクティブな状態等を含む。いくつかの実施形態では、プロファイリングされているワークロードについて、ターゲットまたは制約が提供された。このため、上記で論じたように、ターゲットまたは制約が違反されない(例えば、最大実行時間を超えない、アクティブなコアの最小数が満たされる等)ように、これらの制約に従って掃引が行われる。
214において、少なくとも1つのパラメータが掃引されている間、PPMEは、上記で説明したように、システムの様々な特性を監視および評価し、監視された特性を、掃引されているパラメータの値と相関付ける。上記で論じたように、そのような特性は、限定ではないが、システムによって消費される総電力、およびパラメータが掃引されているときに個々の構成要素によって消費される総電力の一部、環境温度、プロセッサまたは他の構成要素への電力供給のワット数、応答時間、帯域幅、レイテンシ等を含むことができる。電力消費の監視される特性および分析/評価に基づいて、PPMEは、ワークロードの実行中に消費される電力も低減しながら、性能を増大させるか、または所望の性能スコア内の性能を維持するか、または任意のターゲット/制約に準拠するか、あるいはそれらの組合せである、掃引されている各パラメータのそれぞれの値を選択する。このようにして、電力使用量あたりの性能が改善され、これにより、上記で論じたように、結果として総所有コストが低減され得る。216において、次に、PPMEは、掃引されている1つまたは複数のパラメータ(例えば、CPU周波数、GPU周波数、コア・カウント、メモリ情報、ディスク情報または他の実行時間情報、あるいはそれらの組合せ)の各々についてそれぞれの値を含む電力-性能テーブルを生成または更新する。218において、電力-性能テーブルは、電力-性能テーブル・データベースに記憶される。
さらに、上記で論じたように、212におけるパラメータの掃引、214における特性の監視、216における電力-性能テーブルの生成、および218における電力-性能テーブルの記憶を含むワークロードのプロファイリングを、ワークロードのサブパートまたはステージについて行うことができる。すなわち、上記で論じたように、ワークロードは、プロファイリングのためにより小さなサブセクションに分割することができる。このようにして、性能対電力比の改善において更なる粒度を提供するように、ワークロードにおける変動を考慮に入れることができる。
次に、方法200は210に続き、210において、1つまたは複数のパラメータのそれぞれの選択値を用いてワークロードが実行される。さらに、それぞれの選択値を用いてワークロードを実行することは、ワークロードについての電力-性能テーブルに基づいてワークロードをスケジューリングすることを含むことができる。特に、複数のワークロードの電力-性能テーブル(本明細書において電力プロファイルとも呼ばれる)を比較して、それぞれの電力プロファイルに基づいて2つ以上の両立可能なワークロードを識別することができる。例えば、第1のワークロードの電力プロファイルを、1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較して、少なくとも1つの両立可能なワークロードを識別することができる。本明細書において用いられるとき、両立可能なワークロードは、それぞれの電力プロファイルが、同時に実行することができるかまたは衝突しない設定(例えば、同じまたは類似の設定)を示すワークロードである。例えば、それぞれの電力プロファイルが、例えば同じまたは類似のCPU周波数またはGPU周波数を示す2つのワークロードは、両立可能なワークロードである。同じまたは類似の設定とは、設定間の任意の差が所定の閾値内であることを意味する。次に、管理システムは、同じコンピュータ・システムまたはサーバ上で同時に実行される両立可能なワークロードをスケジューリングすることができる。例えば、数百または数千のサーバを有するデータ・センタにおいて、データ・センタが全体として、それぞれの電力プロファイルにおける設定に従って実行されている複数のワークロードの電力使用量あたりの改善された性能の集約から利益を受けることができるように、同じサーバ上で両立可能なワークロードをスケジューリングすることができる。このようにして、データ・センタが全体として電力あたりの性能を改善し、結果として総所有コストを低減させた。
このため、本明細書に記載の実施形態は、フル・スタック(ソフトウェア-ハードウェア)検討を利用して、より低い電力使用量での性能を得る、例示的な方法200等の電力-性能ベースの管理方式の実行を通じて様々な利点を可能にする。性能対電力比を改善または最適化することによって、コンピュータ・システムの総所有コストを低減することができる。さらに、ワークロードは、単にCPU使用量に基づくのではなく、異なるシステム/ワークロード(例えば、構成、寿命、環境等)の完全な検討に基づいてスケジューリングすることができる。これによって、構成要素(例えば、CPU、ファン等)の使用量およびスケジューリングを改善することによって、ハードウェアのライフ・サイクルに利益がもたらされる。この結果として、インフラストラクチャのコストの低下ももたらすことができる(例えば、空調の最適化された使用、ノイズの低減等に起因する)。
管理システム100は、様々な方式で実施することができることを理解されたい。例えば、いくつかの実施形態では、管理システムは、図3に示す例示的な管理システム等における1つまたは複数のプロセッサにおいて実行されるソフトウェア命令を用いて実施される。図3は、例示的な管理システム300の1つの実施形態のブロック図である。図3に示す例示的な管理システム300の構成要素は、1つまたは複数のプロセッサ302と、メモリ304と、ストレージ・インタフェース316と、入力/出力(「I/O」)デバイス・インタフェース312と、ネットワーク・インタフェース318とを備え、その全てが、メモリ・バス306、I/Oバス308、バス・インタフェース・ユニット(「IF」)309、およびI/Oバス・インタフェース・ユニット310を介した構成要素間通信のために直接または間接的に通信可能に結合される。
図3に示す実施形態において、管理システム300は、本明細書において包括的にプロセッサ302と呼ばれる、1つまたは複数の汎用プログラマブル中央処理ユニット(CPU)302Aおよび302Bも備える。いくつかの実施形態では、管理システム300は複数のプロセッサを含む。しかしながら、他の実施形態では、管理システム300は単一CPUシステムである。各プロセッサ302は、メモリ304に記憶された命令を実行する。
いくつかの実施形態では、メモリ304は、データおよびプログラムを記憶またはエンコードするためのランダム・アクセス半導体メモリ、ストレージ・デバイスまたはストレージ媒体(揮発性または不揮発性)を含む。例えば、メモリ304は、PPME命令340およびPPワークロード・スケジューラ命令342を記憶する。プロセッサ302等のプロセッサによって実行されると、PPME命令340およびPPワークロード・スケジューラ命令342は、プロセッサ302に、図1の管理システム100および図2の方法200に関して上記で論じた機能および計算を実行させる。このため、PPME命令340およびPPワークロード・スケジューラ命令342は、プロセッサ302に、PPME102(掃引コントローラ104および電力-性能評価器およびモニタ106を含む)および上記の電力-性能ワークロード・スケジューラ110を実装させる。
いくつかの実施形態では、メモリ304は、管理システム300の仮想メモリ全体を表し、ネットワークを介して管理システム300に結合された他のコンピュータ・システムの仮想メモリも含むことができる。いくつかの実施形態では、メモリ304は単一のモノリシック・エンティティであるが、他の実施形態では、メモリ304は、キャッシュおよび他のメモリ・デバイスの階層を含む。例えば、メモリ304は、キャッシュの複数のレベルに存在することができ、これらのキャッシュは、1つのキャッシュが命令を保持する一方で、別のキャッシュがプロセッサによって用いられる非命令データを保持するように、機能によって更に分割することができる。例えば、任意の種々のいわゆる不均一メモリ・アクセス(NUMA)コンピュータ・アーキテクチャにおいて知られているように、メモリ304は、更に分散され、異なるCPUまたはCPUのセットと関連付けられていてもよい。このため、説明の目的で、PPME命令340およびPPワークロード・スケジューラ命令342は図3に示す例において同じメモリ304に記憶されているが、他の実施形態は異なる形で実施されてもよいことを理解されたい。例えば、PPME命令340およびPPワークロード・スケジューラ命令342は、複数の物理的媒体にわたって分散されていてもよい。
同様に、この例において、PPME命令340の実行を通じて生成されたPPテーブル346はメモリ304に記憶される。しかしながら、他の実施形態では、PPテーブル346は異なる形で記憶されることを理解されたい。例えば、いくつかの実施形態では、PPテーブル346は、ストレージ・インタフェース316に通信可能にアタッチされたストレージ・デバイス328上に記憶することができる。このため、PPテーブル346は、管理システムにローカルなストレージ・デバイス上に記憶することができるか、または遠隔に位置し、ネットワークを介してアクセスすることができる。
図3に示す実施形態における管理システム300は、プロセッサ302、メモリ304、ディスプレイ・システム324およびI/Oバス・インタフェース・ユニット310間の通信を扱うバス・インタフェース・ユニット309も備える。I/Oバス・インタフェース・ユニット310は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス308と結合される。特に、I/Oバス・インタフェース・ユニット310は、I/Oバス308を通じて、I/Oプロセッサ(IOP)またはI/Oアダプタ(IOA)としても知られる、複数のI/Oインタフェース・ユニット312、316、および318と通信することができる。ディスプレイ・システム324はディスプレイ・コントローラ、ディスプレイ・メモリまたは両方を含む。ディスプレイ・コントローラは、ビデオ、静止画像、オーディオ、またはそれらの組合せをディスプレイ・デバイス326に提供することができる。ディスプレイ・メモリは、ビデオ・データをバッファリングするための専用メモリとすることができる。
I/Oインタフェース・ユニットは、多岐にわたるストレージおよびI/Oデバイスを用いて通信をサポートする。例えば、I/Oデバイス・インタフェース・ユニット312は、1つまたは複数のユーザI/Oデバイス320のアタッチをサポートし、これは、ユーザ出力デバイスおよびユーザ入力デバイス(キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライト・ペンまたは他のポインティング・デバイス等)を含むことができる。ユーザは、ターゲットおよび制約等の入力データおよびコマンドをユーザI/Oデバイス320に提供するために、ユーザ・インタフェースを用いてユーザ入力デバイス320を操作することができる。さらに、ユーザは、ユーザ出力デバイスを介して出力データを受信することができる。例えば、ユーザ・インタフェースは、ディスプレイ・デバイス上に表示されるかまたはスピーカを介して再生される等、ユーザI/Oデバイス320を介して提示することができる。
ストレージ・インタフェース316は、フラッシュ・メモリ等の1つまたは複数のストレージ・デバイス328のアタッチメントをサポートする。メモリ304のコンテンツまたはその任意の部分は、必要に応じて、ストレージ・デバイス328に記憶し、ここから索出することができる。ネットワーク・インタフェース318は、管理システム300から他のデジタル・デバイスおよびコンピュータ・システムへの1つまたは複数の通信経路を提供する。
図3に示す管理システム300は、プロセッサ302、メモリ304、バス・インタフェース309、ディスプレイ・システム324、およびI/Oバス・インタフェース・ユニット310間の直接通信経路を提供する特定のバス構造を示しているが、代替の実施形態では、管理システム300は、階層型、スター型、またはウェブ型構成のポイント・ツー・ポイント・リンク、多階層バス、並列および冗長経路、または任意の他の適切なタイプの構成等の様々な形態のうちの任意のもので配列することができる様々なバスまたは通信経路を含む。さらに、I/Oバス・インタフェース・ユニット310およびI/Oバス308は単一のそれぞれのユニットとして示されているが、他の実施形態では、電子物理ノート(electronic physical note)300は、複数のI/Oバス・インタフェース・ユニット310または複数のI/Oバス308あるいはその両方を含むことができる。I/Oバス308を、様々なI/Oデバイスに達する様々な経路と切り離す、様々な複数のI/Oインタフェース・ユニットが示されているが、他の実施形態では、I/Oデバイスのうちのいくつかまたは全てが1つまたは複数のシステムI/Oバスに直接接続されている。
図3は、例示的な管理システム300の説明的な構成要素を示す。しかしながら、他の実施形態では、図3に示す構成要素のうちのいくつかが省かれてもよく、または他の構成要素が含まれてもよく、あるいはその両方であってもよいことが理解される。例えば、いくつかの実施形態では、ディスプレイ・システム324およびディスプレイ326を省くことができる。さらに、上記で論じたように、いくつかの実施形態では、図3に示す構成要素およびデータのうちの1つ以上は、プロセッサ302上で実行される命令もしくはステートメント、または本明細書に記載の機能を実行するためにプロセッサ302を実行する命令もしくはステートメントによって解釈される命令もしくはステートメントを含む。しかしながら、他の実施形態では、図3に示されるコンポーネントのうちの1つまたは複数は、ソフトウェア命令を実行するプロセッサ・ベース・システムの代わりに、またはプロセッサ・ベース・システムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カードまたは他の物理ハードウェアデバイスあるいはその組合せを介してハードウェアに実装される。
例えば、図4に示すように、例示的な管理システム400は、強化されたCPU402に埋め込まれたファームウェアとしてPPME102を実施するように構成された強化されたCPU402を含む。当業者によって理解されるように、図4に示す強化されたCPU460の構成要素は、例としてのみ提示され、他の実施形態では、浮動小数点ユニット(FPU)等の他の構成要素が含まれてもよいことが理解される。さらに、例示的な管理システム400の構成要素は、例としてのみ提示され、他の実施形態では他の構成要素が含まれてもよいことが理解される。
図4に示す例示的な管理システム400は、バス486を介してメイン・メモリ480、ストレージ・デバイス482およびインタフェース484に通信可能に結合された、強化されたCPU402を備える。メイン・メモリ480は、一般に、ランダム・アクセス・メモリ(例えば、静的ランダム・アクセス・メモリ(SRAM)、動的ランダム・アクセス・メモリ(DRAM)、またはFlash)を表すものとして含まれる。ストレージ・デバイス482は、一般に、ハード・ディスク・ドライブ、ソリッド・ステート・デバイス(SSD)、リムーバブル・メモリ・カード、光学ストレージ、またはフラッシュ・メモリ・デバイス等の不揮発性メモリを表すものとして含まれる。代替的な実施形態では、ストレージ・デバイス482は、インタフェース484に結合された通信ネットワークを介して管理システム400に接続された、ストレージ・エリア・ネットワーク(SAN)デバイス、クラウドまたは他のデバイスと置き換えることができる。
図4の例において、強化されたCPU402は、制御ユニット460と、論理演算ユニット(ALU)462と、バス・インタフェース470と、レジスタ464とを備える。当業者によって理解されるように、制御ユニット460は、命令によって指定されるアクションを実行するようにCPU402の他の構成要素を制御する信号を生成する。例えば、制御ユニット460は、命令/データをフェッチし、命令を復号し、命令を実行するタイミングを判断する。制御ユニット460は、有限状態機械として実施することができ、デコーダ、マルチプレクサおよび他の論理構成要素を含むことができる。
当業者に既知であるように、ALU462は、加算、減算、比較等のビット群に対する算術演算および論理演算を行うデバイスである。バス・インタフェース470は、CPU402を、バス486を介して、メイン・メモリ、480、ストレージ・デバイス482および入力/出力(I/O)デバイス・インタフェース484等のコンピュータの他の構成要素に接続する。例えば、当業者に既知であるように、バス・インタフェース470は、アドレス・バス上にアドレスを配置し、データ・バス上でデータの読み出しおよび書き込みを行い、制御バス上で信号の読み出しおよび書き込みを行うための回路を含むことができる。
当業者に既知であるように、レジスタ464は、データの記憶空間、およびタスクの実行のための他の情報を提供する。当業者に既知であるように、レジスタ464は、算術演算、論理演算および他の演算のためのデータを記憶するのに用いられるデータ・レジスタ、メモリ内のアドレスまたはロケーションへポインティングするのに用いられるポインタ・レジスタ、インデックス付けされたアドレス指定のために用いられるインデックス・レジスタ等の汎用レジスタを含むことができる。当業者に既知であるように、レジスタ464は、プロセッサ・コアの動作のための特定の定義された機能を有する専用レジスタも含むことができる。例えば、当業者に既知であるように、専用レジスタは、動作中の様々なタイプの状態コードを含めるために用いられる状態コードまたはフラグ・レジスタと、実行されている現在の命令または次の命令をポインティングするために用いられるプログラム・カウンタとを含むことができる。
強化されたCPU402は、強化されたCPU402が上記で論じたPPME102の機能を実行することを可能にするPPMEファームウェア472も含む。この例において、電力-性能ワークロード・スケジューラ110の機能は、CPU402によって実行することができるメイン・メモリ480に記憶されたPPワークロード命令442として実施される。しかしながら、他の実施形態では、PPワークロード・スケジューラ命令442は、強化されたCPU402に埋め込まれたファームウェアと置き換えることができることが理解される。さらに、PPテーブル446は、ストレージ・デバイス482に記憶されているものとして示されているが、PPテーブル446は、他の実施形態では、ネットワークを介してアクセスされるリモート・ストレージ・ロケーション等、異なる形で記憶されてもよい。
図5は、上記で論じた管理システム100および方法200の機能を実行するように構成された管理システム500の別の例示的な実施を示す。例示的な管理システム500は、バス586を介して、メイン・メモリ580、ストレージ・デバイス582(この例ではPPテーブル546を記憶する)、インタフェース584(例えば、I/Oデバイス・インタフェースまたはネットワーク・インタフェースあるいはそれらの組合せ)、および電力-性能コプロセッサ590と結合されたCPU502を備える。メイン・メモリ580、ストレージ・デバイス582、インタフェース584およびバス586は、図4に関して上記で論じたメイン・メモリ480、ストレージ・デバイス482、インタフェース484およびバス486と同様である。
この実施形態では、CPU502はPPMEファームウェアを含まない。むしろ、例示的な管理システム500は、電力-性能コプロセッサ590を含む。電力-性能コプロセッサ590は、上記で論じたPPME102および電力-性能ワークロード・スケジューラ110の機能の少なくとも一部を実行するように構成された、アクセラレータ等のハードウェアデバイスである。しかしながら、他の実施形態では、電力-性能コプロセッサ590は、PPME102または電力-性能ワークロード・スケジューラ110の機能のみを実施するように構成されてもよい。コプロセッサは、CPU502がコプロセッサにタスクをオフロードすることを可能にすることによって、プライマリ・プロセッサ(例えば、CPU502)の機能を補うのに用いられるコンピュータ・プロセッサである。
このため、別個のコプロセッサを含めることによって、例示的なシステム500は、PPME102および電力-性能ワークロード・スケジューラ110の処理負荷がCPU502からオフロードされることを可能にする。電力-性能コプロセッサ590は、当業者に既知の任意の数の半導体デバイス、チップ、論理ゲート、回路等を用いて実施することができる。さらに、いくつかの実施形態では、電力-性能コプロセッサ590は、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向け集積回路(ASIC)として実施することができる。このため、図3~図5における例示的な管理システム300、400および500の論考を通じて、管理システム100および方法200の機能を、様々な実施形態において異なる形で実施することができることを理解されたい。
本発明は、統合の任意の可能な技術的詳細レベルにおける、システム、方法またはコンピュータ・プログラム製品、あるいはそれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラムを有するコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによって用いるための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、限定ではないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または上記の任意の適切な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)(登録商標)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造等の機械的に符号化されたデバイス、および上記の任意の適切な組合せが含まれる。本明細書において用いられるとき、コンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号等、それ自体が一過性の信号であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(登録商標)、C++等のオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語等の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がコンピュータもしくはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または接続は外部コンピュータ(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)に対して行ってもよい。いくつかの実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の演算ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、指定される論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことができる。いくつかの代替の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能性に応じて、実際には実質的に同時に実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実施され得ることにも留意されたい。
加えて、いくつかの実施形態では、PPME102または電力-性能ワークロード・スケジューラ110、あるいはその両方の機能の少なくとも一部分は、クラウド・コンピューティング環境において実施することができる。例えば、いくつかの実施形態では、管理システム100は、1つまたは複数のデータ・センタ内に配設され、ネットワークを介してリソースを共有するように構成された多くのコンピュータ、数百または数千のコンピュータを備えることができるクラウド・コンピュータ・システムにおいて実施することができる。しかしながら、クラウド・コンピュータ・システムは、数百または数千のコンピュータを含むものに限定されず、数百よりも少ないコンピュータを含むことができることを理解されたい。以下でより詳細に、いくつかの例示的なクラウド・コンピューティングの実施形態が論じられる。しかしながら、本開示は、クラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実施は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、または後に開発される任意の他のタイプのコンピューティング環境において実施されることが可能である。
クラウド・コンピューティングは、最小限の管理労力およびサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの好都合でオン・デマンドのネットワーク・アクセスを可能にするためのサービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
特性は以下の通りである。
オン・デマンドのセルフサービス:クラウド消費者は、サービス・プロバイダとの人的対話を必要とすることなく、自動的に必要に応じて、サーバ時間およびネットワーク・ストレージ等のコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワークを介して利用可能にされ、異種シンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップおよびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プーリング:マルチ・テナント・モデルを用いて複数の消費者にサービングするために、プロバイダのコンピューティング・リソースがプールされ、異なる物理的リソースおよび仮想リソースは、要求に従って動的に割当ておよび再割当てされる。消費者が、通常、提供されるリソースの厳密な位置に対する制御も知識も有しないが、より高い抽象度(例えば、国、州またはデータ・センタ)で位置を指定することが可能であり得るという点で、位置独立性の意義がある。
高速な弾力性:機能は、場合によっては自動的に、即座にスケール・アウトするように高速かつ弾力的にプロビジョニングされ、即座にスケール・インするように高速に解放され得る。消費者に対しては、プロビジョニングに利用可能な機能が、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、アクティブなユーザ・アカウント)に適したある抽象度において計測機能を活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリング、制御、および報告することができ、利用サービスのプロバイダおよび消費者の両方に透明性がもたらされる。
オン・デマンドのセルフサービス:クラウド消費者は、サービス・プロバイダとの人的対話を必要とすることなく、自動的に必要に応じて、サーバ時間およびネットワーク・ストレージ等のコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワークを介して利用可能にされ、異種シンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップおよびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プーリング:マルチ・テナント・モデルを用いて複数の消費者にサービングするために、プロバイダのコンピューティング・リソースがプールされ、異なる物理的リソースおよび仮想リソースは、要求に従って動的に割当ておよび再割当てされる。消費者が、通常、提供されるリソースの厳密な位置に対する制御も知識も有しないが、より高い抽象度(例えば、国、州またはデータ・センタ)で位置を指定することが可能であり得るという点で、位置独立性の意義がある。
高速な弾力性:機能は、場合によっては自動的に、即座にスケール・アウトするように高速かつ弾力的にプロビジョニングされ、即座にスケール・インするように高速に解放され得る。消費者に対しては、プロビジョニングに利用可能な機能が、多くの場合無制限であるように見え、いつでも任意の量で購入可能である。
測定されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、アクティブなユーザ・アカウント)に適したある抽象度において計測機能を活用することによって、リソース使用を自動的に制御し、最適化する。リソース使用量は、モニタリング、制御、および報告することができ、利用サービスのプロバイダおよび消費者の両方に透明性がもたらされる。
サービス・モデルは、以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ等のシン・クライアント・インタフェース(例えば、ウェブ・ベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または更には個々のアプリケーション機能を含む、基礎となるクラウド・インフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対して制御を有する。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な、他の基本コンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対して制御を有し、かつ場合によっては、選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)に対する限定的な制御を有する。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウド・インフラ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ等のシン・クライアント・インタフェース(例えば、ウェブ・ベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。消費者は、限定されたユーザ固有アプリケーションの構成設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または更には個々のアプリケーション機能を含む、基礎となるクラウド・インフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションを、クラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対して制御を有する。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、ならびに消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な、他の基本コンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対して制御を有し、かつ場合によっては、選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)に対する限定的な制御を有する。
展開モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに動作される。クラウド・インフラストラクチャは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャは、複数の組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成体である。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに動作される。クラウド・インフラストラクチャは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャは、複数の組織によって共有され、共有の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、その組織または第三者によって管理されてもよく、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大きな業界団体に利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成体である。
クラウド・コンピューティング環境は、無国籍性、低結合性、モジュール性、および意味相互運用性に焦点を当てたサービス指向型である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラである。
ここで図6を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示するように、クラウド・コンピューティング環境50は、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・デバイス54N、あるいはそれらの組合せが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を含む。ノード10は、互いに通信することができる。それらは、上述のようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウド、またはそれらの組合せ等の、1つまたは複数のネットワーク内で物理的または仮想的にグループ化されてもよい(図示せず)。これによって、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれらの組合せを、クラウド消費者がローカル・コンピューティング・デバイス上でリソースを維持する必要がないサービスとして提案することが可能となる。図6に示されるコンピューティング・デバイス54A~Nのタイプは、単なる例示であることを意図し、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を経て(例えば、ウェブ・ブラウザを用いて)、任意の種類のコンピュータ化デバイスと通信し得ると理解される。
ここで図7を参照すると、クラウド・コンピューティング環境50(図6)によって提供される機能抽象化層のセットが示されている。図7に示されるコンポーネント、層、および機能は、単なる例示であることを意図し、本発明の実施形態は、それらに限定されないと、予め理解されるべきである。図示するように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベース・サーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る、抽象化層を提供する。
1つの例では、管理層80は、下記の機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用される、コンピューティング・リソースおよび他のリソースの動的な調達を提供する。測定および価格設定82は、リソースがクラウド・コンピューティング環境内で利用されるときにコスト追跡を提供し、これらのリソースの消費に対する課金または請求を提供する。1つの例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド消費者およびタスクについての識別情報検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル83は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース配分および管理を提供する。サービス水準合意(Service Level Agreement(SLA))計画および遂行85は、SLAに従って将来の要件が予期されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
ワークロード層90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフ・サイクル管理92、仮想クラスルーム教育配信93、データ解析処理94、トランザクション処理95、および電力-性能ベースの管理システム96を含む。
例示的な実施形態
例1は、コンピュータ・システムを管理するための方法を含む。方法は、コンピュータ・システムのワークロードを受信することと、ワークロードを実行している間、コンピュータ・システムの少なくとも1つのパラメータを掃引することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの1つまたは複数の特性を監視することと、を含む。1つまたは複数の特性は、コンピュータ・システムの総電力消費を含む。方法は、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成することと、少なくとも1つのパラメータのそれぞれの選択値に基づいて、ワークロードを実行することとを更に含む。
例1は、コンピュータ・システムを管理するための方法を含む。方法は、コンピュータ・システムのワークロードを受信することと、ワークロードを実行している間、コンピュータ・システムの少なくとも1つのパラメータを掃引することと、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの1つまたは複数の特性を監視することと、を含む。1つまたは複数の特性は、コンピュータ・システムの総電力消費を含む。方法は、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成することと、少なくとも1つのパラメータのそれぞれの選択値に基づいて、ワークロードを実行することとを更に含む。
例2は、コンピュータ・システムの少なくとも1つのパラメータに対する1つまたは複数の制約を受信することを更に含む、例1に記載の方法を含む。
例3は、ワークロードを2つ以上のステージに分割することを更に含み、少なくとも1つのパラメータを掃引することが、2つ以上のステージの各々について少なくとも1つのパラメータを掃引することを含み、1つまたは複数の特性を監視することが、2つ以上のステージの各々について少なくとも1つのパラメータを掃引している間、1つまたは複数の特性を監視することを含み、電力プロファイルを生成することが、2つ以上のステージの各々についてそれぞれの電力プロファイルを生成することを含む、例1ないし2のうちの任意のものに記載の方法を含む。
例4は、少なくとも1つのパラメータを掃引することが、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを掃引することを含む、例1ないし3のうちの任意のものに記載の方法を含む。
例5は、ワークロードが第1のワークロードであり、少なくとも1つのパラメータのそれぞれの選択値に基づいてワークロードを実行することが、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別することと、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングすることとを更に含む、例1ないし4のうちの任意のものに記載の方法を含む。
例6は、コンピュータ・システムの監視される1つまたは複数の特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、例1ないし5のうちの任意のものに記載の方法を含む。
例7は、ワークロードの初期電力プロファイルを受信することを更に含み、電力プロファイルを生成することが、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて初期電力プロファイルを更新することを含む、例1ないし6のうちの任意のものに記載の方法を提供する。
例8はコンピュータ管理システムを含む。コンピュータ管理システムは、ストレージ・デバイスと、ストレージ・デバイスに通信可能に結合されたプロセッサとを備える。プロセッサは、コンピュータ・システムのワークロードを受信し、ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを反復的に調整し、少なくとも1つのパラメータを調整している間、コンピュータ・システムの1つまたは複数の特性を監視するように構成される。1つまたは複数の特性は、コンピュータ・システムの総電力消費を含む。プロセッサは、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成し、電力プロファイルをストレージ・デバイス上に記憶し、電力プロファイルに基づいてワークロードを実行するように更に構成される。
例9は、プロセッサが、コンピュータ・システムの少なくとも1つのパラメータに対する1つまたは複数の制約を受信するように更に構成される、例8に記載のコンピュータ管理システムを含む。
例10は、プロセッサが、ワークロードを2つ以上のステージに分割し、2つ以上のステージの各々について少なくとも1つのパラメータを反復的に調整し、2つ以上のステージの各々について少なくとも1つのパラメータを調整している間、1つまたは複数の特性を監視し、2つ以上のステージの各々についてそれぞれの電力プロファイルを生成するように更に構成される、例8ないし9のうちの任意のものに記載のコンピュータ管理システムを含む。
例11は、プロセッサが、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを反復的に調整するように構成される、例8ないし10のうちの任意のものに記載のコンピュータ管理システムを含む。
例12は、ワークロードが第1のワークロードであり、プロセッサが、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較し、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別し、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングするように更に構成される、例8ないし11のうちの任意のものに記載のコンピュータ管理システムを含む。
例13は、コンピュータ・システムの監視される1つまたは複数の特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、例8ないし12のうちの任意のものに記載のコンピュータ管理システムを含む。
例14は、プロセッサが、ワークロードの初期電力プロファイルを受信し、少なくとも1つのパラメータを調整している間、コンピュータ・システムの監視された総電力消費の分析に基づいて初期電力プロファイルを更新するように更に構成される、例8ないし13のうちの任意のものに記載のコンピュータ管理システムを含む。
例15はコンピュータ管理システムを含む。コンピュータ管理システムは、電力-性能管理エンジンであって、ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを掃引し、少なくとも1つのパラメータを掃引している間、コンピュータ・システムの総電力消費を含む、コンピュータ・システムの1つまたは複数の特性を監視し、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成するように構成された、電力-性能管理エンジンを備える。コンピュータ管理システムは、生成された電力プロファイルに基づいて、ワークロードを実行のためにスケジューリングするように構成された電力-性能ワークロード・スケジューラを更に備える。
例16は、ワークロードが第1のワークロードであり、電力-性能ワークロード・スケジューラが、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別することと、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングすることとによって、第1のワークロードを実行のためにスケジューリングするように更に構成される、例15に記載のコンピュータ管理システムを含む。
例17は、コンピュータ・システムを管理するための方法を含む。方法は、複数のワークロードの各々についてそれぞれの電力性能テーブルを比較することを含み、各性能テーブルはそれぞれのワークロードを実行するためのコンピュータ・システムの1つまたは複数のパラメータのそれぞれの値を示す。1つまたは複数のパラメータのそれぞれの値は、1つまたは複数のパラメータを反復的に調整している間、コンピュータ・システムの電力消費を含むコンピュータ・システムの1つまたは複数の特性を監視することに基づいて選択される。方法は、それぞれの電力性能テーブルの比較に基づいて少なくとも2つの両立可能なワークロードを識別することと、コンピュータ・システムによって同時に実行される少なくとも2つの両立可能なワークロードをスケジューリングすることとを更に含む。
例18は、1つまたは複数のパラメータが、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを含む、例17に記載の方法を含む。
例19は、1つまたは複数の監視される特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、例18ないし19のうちの任意のものに記載の方法を含む。
例20は、コンピュータ可読プログラムが記憶されたコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品であって、コンピュータ可読プログラムは、プロセッサによって実行されると、プロセッサに、ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを反復的に調整させ、少なくとも1つのパラメータを調整している間、コンピュータ・システムの総電力消費を含む、コンピュータ・システムの1つまたは複数の特性を監視させ、コンピュータ・システムの監視された総電力消費の分析に基づいて、少なくとも1つのパラメータについてそれぞれの選択値を示す、ワークロードの電力プロファイルを生成させ、生成された電力プロファイルに基づいてワークロードを実行させる。
例21は、1つまたは複数の監視される特性が、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、例20に記載のコンピュータ・プログラム製品を含む。
例22は、コンピュータ可読プログラムが、プロセッサに、コンピュータ・システムの少なくとも1つのパラメータに対する1つまたは複数の制約に従って少なくとも1つのパラメータを反復的に調整させるように更に構成される、例20ないし21のうちの任意のものに記載のコンピュータ・プログラム製品を含む。
例23は、ワークロードが第1のワークロードであり、コンピュータ可読プログラムが、プロセッサに、第1のワークロードの電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、第1のワークロードの電力プロファイルと、1つまたは複数の他のワークロードのそれぞれの電力プロファイルとの比較に基づいて、両立可能なワークロードを識別することと、両立可能なワークロードを、第1のワークロードと同時に実行されるようにスケジューリングすることとによって、第1のワークロードを実行させるように更に構成される、例20ないし22のうちの任意のものに記載のコンピュータ・プログラム製品を含む。
例24は、コンピュータ可読プログラムが、プロセッサに、ワークロードを2つ以上のステージに分割させ、2つ以上のステージの各々について少なくとも1つのパラメータを反復的に調整させ、2つ以上のステージの各々について少なくとも1つのパラメータを調整している間、1つまたは複数の特性を監視させ、2つ以上のステージの各々についてそれぞれの電力プロファイルを生成させるように更に構成される、例20ないし23のうちの任意のものに記載のコンピュータ・プログラム製品を含む。
例25は、コンピュータ可読プログラムが、プロセッサに、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを反復的に調整させるように更に構成される、例20ないし24のうちの任意のものに記載のコンピュータ・プログラム製品を含む。
本明細書において特定の実施形態を図示および説明してきたが、同じ目的を達成するように計算される任意の配置が、示された特定の実施形態のために置き換えられ得ることが、当業者には理解されるであろう。したがって、本発明が特許請求の範囲およびその均等物によってのみ限定されることが明白に意図されている。
Claims (25)
- コンピュータ・システムのワークロードを受信することと、
前記ワークロードを実行している間、前記コンピュータ・システムの少なくとも1つのパラメータを掃引することと、
前記少なくとも1つのパラメータを掃引している間、前記コンピュータ・システムの1つまたは複数の特性を監視することであって、前記1つまたは複数の特性は、前記コンピュータ・システムの総電力消費を含む、前記監視することと、
前記少なくとも1つのパラメータを掃引している間、前記コンピュータ・システムの前記監視された総電力消費の分析に基づいて、前記少なくとも1つのパラメータについてそれぞれの選択値を示す、前記ワークロードの電力プロファイルを生成することと、
前記少なくとも1つのパラメータの前記それぞれの選択値に基づいて、前記ワークロードを実行することと、
を含む、方法。 - 前記コンピュータ・システムの前記少なくとも1つのパラメータに対する1つまたは複数の制約を受信することを更に含む、請求項1に記載の方法。
- 前記ワークロードを2つ以上のステージに分割することを更に含み、
前記少なくとも1つのパラメータを掃引することは、前記2つ以上のステージの各々について前記少なくとも1つのパラメータを掃引することを含み、
前記1つまたは複数の特性を監視することは、前記2つ以上のステージの各々について前記少なくとも1つのパラメータを掃引している間、前記1つまたは複数の特性を監視することを含み、
電力プロファイルを生成することは、前記2つ以上のステージの各々についてそれぞれの電力プロファイルを生成することを含む、請求項1に記載の方法。 - 前記少なくとも1つのパラメータを掃引することは、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを掃引することを含む、請求項1に記載の方法。
- 前記ワークロードは第1のワークロードであり、前記少なくとも1つのパラメータの前記それぞれの選択値に基づいて前記ワークロードを実行することは、
前記第1のワークロードの前記電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、
前記第1のワークロードの前記電力プロファイルと、前記1つまたは複数の他のワークロードの前記それぞれの電力プロファイルとの前記比較に基づいて、両立可能なワークロードを識別することと、
前記両立可能なワークロードを、前記第1のワークロードと同時に実行されるようにスケジューリングすることと、
を更に含む、請求項1に記載の方法。 - 前記コンピュータ・システムの前記監視される1つまたは複数の特性は、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、請求項1に記載の方法。
- 前記ワークロードの初期電力プロファイルを受信することを更に含み、
前記電力プロファイルを生成することは、前記少なくとも1つのパラメータを掃引している間、前記コンピュータ・システムの前記監視された総電力消費の分析に基づいて前記初期電力プロファイルを更新することを含む、請求項1に記載の方法。 - コンピュータ管理システムであって、
ストレージ・デバイスと、
前記ストレージ・デバイスに通信可能に結合されたプロセッサであって、前記プロセッサは、
コンピュータ・システムのワークロードを受信し、
前記ワークロードが実行されている間、前記コンピュータ・システムの少なくとも1つのパラメータを反復的に調整し、
前記少なくとも1つのパラメータを調整している間、前記コンピュータ・システムの総電力消費を含む、前記コンピュータ・システムの1つまたは複数の特性を監視し、
前記少なくとも1つのパラメータを掃引している間、前記コンピュータ・システムの前記監視された総電力消費の分析に基づいて、前記少なくとも1つのパラメータについてそれぞれの選択値を示す、前記ワークロードの電力プロファイルを生成し、
前記電力プロファイルを前記ストレージ・デバイス上に記憶し、
前記電力プロファイルに基づいて前記ワークロードを実行する、
ように構成される、前記プロセッサと、
を備える、コンピュータ管理システム。 - 前記プロセッサは、前記コンピュータ・システムの前記少なくとも1つのパラメータに対する1つまたは複数の制約を受信するように更に構成される、請求項8に記載のコンピュータ管理システム。
- 前記プロセッサは、
前記ワークロードを2つ以上のステージに分割し、
前記2つ以上のステージの各々について前記少なくとも1つのパラメータを反復的に調整し、
前記2つ以上のステージの各々について前記少なくとも1つのパラメータを調整している間、前記1つまたは複数の特性を監視し、
前記2つ以上のステージの各々についてそれぞれの電力プロファイルを生成する、
ように更に構成される、請求項8に記載のコンピュータ管理システム。 - 前記プロセッサは、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを反復的に調整するように構成される、請求項8に記載のコンピュータ管理システム。
- 前記ワークロードは第1のワークロードであり、前記プロセッサは、
前記第1のワークロードの前記電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較し、
前記第1のワークロードの前記電力プロファイルと、前記1つまたは複数の他のワークロードの前記それぞれの電力プロファイルとの前記比較に基づいて、両立可能なワークロードを識別し、
前記両立可能なワークロードを、前記第1のワークロードと同時に実行されるようにスケジューリングする、
ように更に構成される、請求項8に記載のコンピュータ管理システム。 - 前記コンピュータ・システムの前記監視される1つまたは複数の特性は、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、請求項8に記載のコンピュータ管理システム。
- 前記プロセッサは、
前記ワークロードの初期電力プロファイルを受信し、
前記少なくとも1つのパラメータを調整している間、前記コンピュータ・システムの前記監視された総電力消費の分析に基づいて前記初期電力プロファイルを更新する、
ように更に構成される、請求項8に記載のコンピュータ管理システム。 - コンピュータ管理システムであって、
電力-性能管理エンジンであって、
ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを掃引し、
前記少なくとも1つのパラメータを掃引している間、前記コンピュータ・システムの総電力消費を含む、前記コンピュータ・システムの1つまたは複数の特性を監視し、
前記コンピュータ・システムの前記監視された総電力消費の分析に基づいて、前記少なくとも1つのパラメータについてそれぞれの選択値を示す、前記ワークロードの電力プロファイルを生成する、
ように構成された、前記電力-性能管理エンジンと、
前記生成された電力プロファイルに基づいて、前記ワークロードを実行のためにスケジューリングするように構成された電力-性能ワークロード・スケジューラと、
を備える、コンピュータ管理システム。 - 前記ワークロードは第1のワークロードであり、前記電力-性能ワークロード・スケジューラは、
前記第1のワークロードの前記電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、
前記第1のワークロードの前記電力プロファイルと、前記1つまたは複数の他のワークロードの前記それぞれの電力プロファイルとの前記比較に基づいて、両立可能なワークロードを識別することと、
前記両立可能なワークロードを、前記第1のワークロードと同時に実行されるようにスケジューリングすることと、
によって、前記第1のワークロードを実行のためにスケジューリングするように更に構成される、請求項15に記載のコンピュータ管理システム。 - 複数のワークロードの各々についてそれぞれの電力性能テーブルを比較することであって、各電力性能テーブルは、それぞれのワークロードを実行するためのコンピュータ・システムの1つまたは複数のパラメータのそれぞれの値を示し、前記1つまたは複数のパラメータの前記それぞれの値は、前記1つまたは複数のパラメータを反復的に調整している間、前記コンピュータ・システムの電力消費を含む、前記コンピュータ・システムの1つまたは複数の特性を監視することに基づいて選択される、前記比較することと、
前記それぞれの電力性能テーブルの前記比較に基づいて、少なくとも2つの両立可能なワークロードを識別することと、
前記コンピュータ・システムによって同時に実行される前記少なくとも2つの両立可能なワークロードをスケジューリングすることと、
を含む、方法。 - 前記1つまたは複数のパラメータは、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを含む、請求項17に記載の方法。
- 前記1つまたは複数の監視される特性は、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、請求項17に記載の方法。
- コンピュータ可読プログラムが記憶されたコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、プロセッサによって実行されると、前記プロセッサに、
ワークロードが実行されている間、コンピュータ・システムの少なくとも1つのパラメータを反復的に調整させ、
前記少なくとも1つのパラメータを調整している間、前記コンピュータ・システムの総電力消費を含む、前記コンピュータ・システムの1つまたは複数の特性を監視させ、
前記コンピュータ・システムの前記監視された総電力消費の分析に基づいて、前記少なくとも1つのパラメータについてそれぞれの選択値を示す、前記ワークロードの電力プロファイルを生成させ、
前記生成された電力プロファイルに基づいて前記ワークロードを実行させる、
コンピュータ・プログラム製品。 - 前記1つまたは複数の監視される特性は、中央処理ユニット(CPU)電力使用量、グラフィック処理ユニット(GPU)電力使用量、ファン電力使用量、メモリ電力使用量、ディスク電力使用量、メモリ帯域幅、メモリ・レイテンシ、ディスク入力/出力帯域幅、およびネットワーク帯域幅のうちの1つまたは複数を含む、請求項20に記載のコンピュータ・プログラム製品。
- 前記コンピュータ可読プログラムは、前記プロセッサに、前記コンピュータ・システムの前記少なくとも1つのパラメータに対する1つまたは複数の制約に従って前記少なくとも1つのパラメータを反復的に調整させるように更に構成される、請求項20に記載のコンピュータ・プログラム製品。
- 前記ワークロードは第1のワークロードであり、前記コンピュータ可読プログラムは、前記プロセッサに、
前記第1のワークロードの前記電力プロファイルを1つまたは複数の他のワークロードのそれぞれの電力プロファイルと比較することと、
前記第1のワークロードの前記電力プロファイルと、前記1つまたは複数の他のワークロードの前記それぞれの電力プロファイルとの前記比較に基づいて、両立可能なワークロードを識別することと、
前記両立可能なワークロードを、前記第1のワークロードと同時に実行されるようにスケジューリングすることと、
によって前記第1のワークロードを実行させるように更に構成される、請求項20に記載のコンピュータ・プログラム製品。 - 前記コンピュータ可読プログラムは、前記プロセッサに、
前記ワークロードを2つ以上のステージに分割させ、
前記2つ以上のステージの各々について前記少なくとも1つのパラメータを反復的に調整させ、
前記2つ以上のステージの各々について前記少なくとも1つのパラメータを調整している間、前記1つまたは複数の特性を監視させ、
前記2つ以上のステージの各々についてそれぞれの電力プロファイルを生成させる、
ように更に構成される、請求項20に記載のコンピュータ・プログラム製品。 - 前記コンピュータ可読プログラムは、前記プロセッサに、中央処理ユニット(CPU)周波数、グラフィック処理ユニット(GPU)周波数、マルチコア・プロセッサにおけるアクティブなコアの数、メモリ帯域幅、ネットワーク帯域幅、およびデバイス状態のうちの少なくとも1つを反復的に調整させるように更に構成される、請求項20に記載のコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/904,621 | 2020-06-18 | ||
US16/904,621 US20210397476A1 (en) | 2020-06-18 | 2020-06-18 | Power-performance based system management |
PCT/IB2021/055315 WO2021255666A1 (en) | 2020-06-18 | 2021-06-16 | Power-performance based system management |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023530829A true JP2023530829A (ja) | 2023-07-20 |
Family
ID=79022522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022570218A Pending JP2023530829A (ja) | 2020-06-18 | 2021-06-16 | 電力-性能ベースのシステム管理 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20210397476A1 (ja) |
JP (1) | JP2023530829A (ja) |
KR (1) | KR20230002989A (ja) |
CN (1) | CN115698958A (ja) |
AU (1) | AU2021291706B2 (ja) |
CA (1) | CA3176180A1 (ja) |
DE (1) | DE112021003294T5 (ja) |
GB (1) | GB2611683A (ja) |
IL (1) | IL297745A (ja) |
WO (1) | WO2021255666A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240028396A1 (en) * | 2020-11-24 | 2024-01-25 | Raytheon Company | Run-time schedulers for field programmable gate arrays or other logic devices |
US20220236912A1 (en) * | 2021-01-27 | 2022-07-28 | SK Hynix Inc. | Firmware parameters auto-tuning for memory systems |
US11934286B2 (en) * | 2021-04-29 | 2024-03-19 | Dell Products L.P. | Subsystem power range configuration based on workload profile |
US20230031805A1 (en) * | 2021-07-30 | 2023-02-02 | Texas Instruments Incorporated | Multi-level power management operation framework |
US20230305905A1 (en) * | 2022-03-22 | 2023-09-28 | Red Hat, Inc. | Assigning computer workloads to nodes based on energy consumption modes of the nodes |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405348B2 (en) * | 2008-04-21 | 2016-08-02 | Adaptive Computing Enterprises, Inc | System and method for managing energy consumption in a compute environment |
US8489745B2 (en) * | 2010-02-26 | 2013-07-16 | International Business Machines Corporation | Optimizing power consumption by dynamic workload adjustment |
US9557792B1 (en) * | 2013-05-31 | 2017-01-31 | Amazon Technologies, Inc. | Datacenter power management optimizations |
US10289183B2 (en) * | 2014-08-22 | 2019-05-14 | Intel Corporation | Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system |
US20160077571A1 (en) * | 2014-09-12 | 2016-03-17 | Microsoft Corporation | Heuristic Processor Power Management in Operating Systems |
CN106502358A (zh) * | 2015-09-04 | 2017-03-15 | 李涛 | 一种新能源服务器系统的多模式电源管理策略及装置 |
CN109614216A (zh) * | 2018-08-30 | 2019-04-12 | 广东工业大学 | 一种基于烟花算法的云平台能耗优化管理方法 |
US11106261B2 (en) * | 2018-11-02 | 2021-08-31 | Nvidia Corporation | Optimal operating point estimator for hardware operating under a shared power/thermal constraint |
JP7288189B2 (ja) * | 2019-05-29 | 2023-06-07 | 富士通株式会社 | ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置 |
-
2020
- 2020-06-18 US US16/904,621 patent/US20210397476A1/en active Pending
-
2021
- 2021-06-16 WO PCT/IB2021/055315 patent/WO2021255666A1/en active Application Filing
- 2021-06-16 DE DE112021003294.1T patent/DE112021003294T5/de active Pending
- 2021-06-16 AU AU2021291706A patent/AU2021291706B2/en active Active
- 2021-06-16 GB GB2300445.0A patent/GB2611683A/en active Pending
- 2021-06-16 CN CN202180038757.8A patent/CN115698958A/zh active Pending
- 2021-06-16 JP JP2022570218A patent/JP2023530829A/ja active Pending
- 2021-06-16 IL IL297745A patent/IL297745A/en unknown
- 2021-06-16 CA CA3176180A patent/CA3176180A1/en active Pending
- 2021-06-16 KR KR1020227040980A patent/KR20230002989A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
KR20230002989A (ko) | 2023-01-05 |
IL297745A (en) | 2022-12-01 |
WO2021255666A1 (en) | 2021-12-23 |
US20210397476A1 (en) | 2021-12-23 |
GB202300445D0 (en) | 2023-03-01 |
AU2021291706A1 (en) | 2022-11-10 |
CA3176180A1 (en) | 2021-12-23 |
AU2021291706B2 (en) | 2024-02-22 |
CN115698958A (zh) | 2023-02-03 |
GB2611683A (en) | 2023-04-12 |
DE112021003294T5 (de) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593179B2 (en) | Capacity and load analysis using storage attributes | |
JP2023530829A (ja) | 電力-性能ベースのシステム管理 | |
Hwang et al. | Cloud performance modeling with benchmark evaluation of elastic scaling strategies | |
US10310908B2 (en) | Dynamic usage balance of central processing units and accelerators | |
US10401940B2 (en) | Power management in disaggregated computing systems | |
Beloglazov et al. | Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers | |
US9612878B2 (en) | Resource allocation in job scheduling environment | |
US8776066B2 (en) | Managing task execution on accelerators | |
Qureshi | Profile-based power-aware workflow scheduling framework for energy-efficient data centers | |
Rogers et al. | A generic auto-provisioning framework for cloud databases | |
US20150370603A1 (en) | Dynamic parallel distributed job configuration in a shared-resource environment | |
US10545560B2 (en) | Power management and utilization detection of computing components | |
US20180052714A1 (en) | Optimized resource metering in a multi tenanted distributed file system | |
US10411977B2 (en) | Visualization of workload distribution on server resources | |
Ramanathan et al. | Towards optimal resource provisioning for Hadoop-MapReduce jobs using scale-out strategy and its performance analysis in private cloud environment | |
JP2021504780A (ja) | 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け | |
US20200153709A1 (en) | Optimizing streaming graph topology based on service level agreement | |
CN107251007B (zh) | 集群计算服务确保装置和方法 | |
JPWO2012127641A1 (ja) | 情報処理システム | |
US11567664B2 (en) | Distributing data across a mixed data storage center | |
JP2021504777A (ja) | 分散コンピューティング環境における作業負荷の自動対角スケーリング | |
JP2023545316A (ja) | システム性能に対する複数のアプリケーションの影響の決定 | |
Rani et al. | A workload-aware vm placement algorithm for performance improvement and energy efficiency in OpenStack cloud | |
Das et al. | Augmenting amdahl's second law: A theoretical model to build cost-effective balanced HPC infrastructure for data-driven science | |
US20230418688A1 (en) | Energy efficient computing workload placement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231114 |